From ede4205b245ee58bacf866d298273ebbe31feacf Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Mon, 6 Sep 2010 00:56:07 +0200 Subject: mesa: add PIPE_SHADER_* like constants and conversions to/from enums (v2) Changes in v2: - No longer adds tessellation enums --- src/mesa/main/shaderobj.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/mesa/main/shaderobj.h') diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index 4800046375..cbe7ae7b06 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -96,6 +96,37 @@ _mesa_init_shader_state(GLcontext *ctx); extern void _mesa_free_shader_state(GLcontext *ctx); +static INLINE GLuint +_mesa_shader_type_to_index(GLenum v) +{ + switch(v) + { + case GL_VERTEX_SHADER: + return MESA_SHADER_VERTEX; + case GL_FRAGMENT_SHADER: + return MESA_SHADER_FRAGMENT; + case GL_GEOMETRY_SHADER: + return MESA_SHADER_GEOMETRY; + default: + ASSERT(0); + return ~0; + } +} + +static INLINE GLenum +_mesa_shader_index_to_type(GLuint i) +{ + GLenum enums[MESA_SHADER_TYPES] = { + GL_VERTEX_SHADER, + GL_FRAGMENT_SHADER, + GL_GEOMETRY_SHADER , + }; + if(i >= MESA_SHADER_TYPES) + return 0; + else + return enums[i]; +} + #ifdef __cplusplus } #endif -- cgit v1.2.3