diff options
author | Paul Berry <[email protected]> | 2014-01-08 11:09:58 -0800 |
---|---|---|
committer | Paul Berry <[email protected]> | 2014-01-09 09:31:27 -0800 |
commit | 8668eaaa007a1a0b23a4bc39469d6dba293b7da9 (patch) | |
tree | 33b9067a26c4e2a5d7b9a8f83fba9fa74939b9f5 /src/mesa/program | |
parent | e654216ac7ec2d254685d0ff5f437917747c9bd3 (diff) |
mesa: Use functions to convert gl_shader_stage to PROGRAM enum or pipe target.
Suggested-by: Brian Paul <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
v2: Improve assert message.
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 17 | ||||
-rw-r--r-- | src/mesa/program/program.h | 18 |
2 files changed, 19 insertions, 16 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 7988248bb83..f6c229c7dc5 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2799,26 +2799,11 @@ get_mesa_program(struct gl_context *ctx, ir_instruction **mesa_instruction_annotation; int i; struct gl_program *prog; - GLenum target; + GLenum target = _mesa_shader_stage_to_program(shader->Stage); const char *target_string = _mesa_shader_stage_to_string(shader->Stage); struct gl_shader_compiler_options *options = &ctx->ShaderCompilerOptions[shader->Stage]; - switch (shader->Stage) { - case MESA_SHADER_VERTEX: - target = GL_VERTEX_PROGRAM_ARB; - break; - case MESA_SHADER_FRAGMENT: - target = GL_FRAGMENT_PROGRAM_ARB; - break; - case MESA_SHADER_GEOMETRY: - target = GL_GEOMETRY_PROGRAM_NV; - break; - default: - assert(!"should not be reached"); - return NULL; - } - validate_ir_tree(shader->ir); prog = ctx->Driver.NewProgram(ctx, target, shader_program->Name); diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h index 4015b4c202b..0e350cd6f86 100644 --- a/src/mesa/program/program.h +++ b/src/mesa/program/program.h @@ -207,6 +207,24 @@ _mesa_program_enum_to_shader_stage(GLenum v) } } + +static inline GLenum +_mesa_shader_stage_to_program(gl_shader_stage stage) +{ + switch (stage) { + case MESA_SHADER_VERTEX: + return GL_VERTEX_PROGRAM_ARB; + case MESA_SHADER_FRAGMENT: + return GL_FRAGMENT_PROGRAM_ARB; + case MESA_SHADER_GEOMETRY: + return GL_GEOMETRY_PROGRAM_NV; + } + + assert(!"Unexpected shader stage in _mesa_shader_stage_to_program"); + return GL_VERTEX_PROGRAM_ARB; +} + + static inline GLenum _mesa_program_index_to_target(GLuint i) { |