From: Ian Romanick Date: Mon, 31 Oct 2011 21:43:27 +0000 (-0700) Subject: glsl: Refactor generate_ARB_draw_buffers_variables to use add_builtin_constant X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d3b39194dc60fa933f5e8df30bcd8d1cb64dbc4c;p=mesa.git glsl: Refactor generate_ARB_draw_buffers_variables to use add_builtin_constant v2: Remove int cast based on feedback from Ken. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke Acked-by: Paul Berry --- diff --git a/src/glsl/ir_variable.cpp b/src/glsl/ir_variable.cpp index 1ee84d21977..8fbcf1da8cb 100644 --- a/src/glsl/ir_variable.cpp +++ b/src/glsl/ir_variable.cpp @@ -400,7 +400,7 @@ add_builtin_variable(exec_list *instructions, glsl_symbol_table *symtab, } } -static void +static ir_variable * add_builtin_constant(exec_list *instructions, glsl_symbol_table *symtab, const char *name, int value) { @@ -408,6 +408,7 @@ add_builtin_constant(exec_list *instructions, glsl_symbol_table *symtab, name, glsl_type::int_type, ir_var_auto, -1); var->constant_value = new(var) ir_constant(value); + return var; } /* Several constants in GLSL ES have different names than normal desktop GLSL. @@ -749,16 +750,12 @@ generate_ARB_draw_buffers_variables(exec_list *instructions, /* gl_MaxDrawBuffers is available in all shader stages. */ ir_variable *const mdb = - add_variable(instructions, state->symbols, - "gl_MaxDrawBuffers", glsl_type::int_type, ir_var_auto, -1); + add_builtin_constant(instructions, state->symbols, "gl_MaxDrawBuffers", + state->Const.MaxDrawBuffers); if (warn) mdb->warn_extension = "GL_ARB_draw_buffers"; - mdb->constant_value = new(mdb) - ir_constant(int(state->Const.MaxDrawBuffers)); - - /* gl_FragData is only available in the fragment shader. */ if (target == fragment_shader) {