diff options
author | Paul Berry <[email protected]> | 2013-10-22 14:48:08 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2013-10-24 22:00:59 -0700 |
commit | f65feb5335331ed0960d3fd62a70d0d0aaf23ab7 (patch) | |
tree | 4b763d64a299302b4d947385602315f17b7ccd22 | |
parent | 1e3e72e3054de27b35322feb6c715e433b00be2a (diff) |
glsl: Pull interpolation_string() out of ir_variable.
Future patches will need to call this function when there isn't an
ir_varible present to refer to.
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
-rw-r--r-- | src/glsl/ast_to_hir.cpp | 4 | ||||
-rw-r--r-- | src/glsl/ir.cpp | 4 | ||||
-rw-r--r-- | src/glsl/ir.h | 30 | ||||
-rw-r--r-- | src/glsl/link_varyings.cpp | 4 |
4 files changed, 22 insertions, 20 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index b644b22c7ad..908816701b0 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2111,7 +2111,7 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual, _mesa_glsl_error(loc, state, "interpolation qualifier `%s' can only be applied to " "shader inputs or outputs.", - var->interpolation_string()); + interpolation_string(var->interpolation)); } @@ -2120,7 +2120,7 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual, _mesa_glsl_error(loc, state, "interpolation qualifier `%s' cannot be applied to " "vertex shader inputs or fragment shader outputs", - var->interpolation_string()); + interpolation_string(var->interpolation)); } } diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp index 54a8e400c16..c682e3ed536 100644 --- a/src/glsl/ir.cpp +++ b/src/glsl/ir.cpp @@ -1616,9 +1616,9 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name, const char * -ir_variable::interpolation_string() const +interpolation_string(unsigned interpolation) { - switch (this->interpolation) { + switch (interpolation) { case INTERP_QUALIFIER_NONE: return "no"; case INTERP_QUALIFIER_SMOOTH: return "smooth"; case INTERP_QUALIFIER_FLAT: return "flat"; diff --git a/src/glsl/ir.h b/src/glsl/ir.h index aac8cbb7dbe..c4c00552ac3 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -312,6 +312,22 @@ struct ir_state_slot { int swizzle; }; + +/** + * Get the string value for an interpolation qualifier + * + * \return The string that would be used in a shader to specify \c + * mode will be returned. + * + * This function is used to generate error messages of the form "shader + * uses %s interpolation qualifier", so in the case where there is no + * interpolation qualifier, it returns "no". + * + * This function should only be used on a shader input or output variable. + */ +const char *interpolation_string(unsigned interpolation); + + class ir_variable : public ir_instruction { public: ir_variable(const struct glsl_type *, const char *, ir_variable_mode); @@ -332,20 +348,6 @@ public: /** - * Get the string value for the interpolation qualifier - * - * \return The string that would be used in a shader to specify \c - * mode will be returned. - * - * This function is used to generate error messages of the form "shader - * uses %s interpolation qualifier", so in the case where there is no - * interpolation qualifier, it returns "no". - * - * This function should only be used on a shader input or output variable. - */ - const char *interpolation_string() const; - - /** * Determine how this variable should be interpolated based on its * interpolation qualifier (if present), whether it is gl_Color or * gl_SecondaryColor, and whether flatshading is enabled in the current GL diff --git a/src/glsl/link_varyings.cpp b/src/glsl/link_varyings.cpp index c503645fda1..be36b5f8f6b 100644 --- a/src/glsl/link_varyings.cpp +++ b/src/glsl/link_varyings.cpp @@ -125,9 +125,9 @@ cross_validate_types_and_qualifiers(struct gl_shader_program *prog, "interpolation qualifier\n", _mesa_glsl_shader_target_name(producer_type), output->name, - output->interpolation_string(), + interpolation_string(output->interpolation), _mesa_glsl_shader_target_name(consumer_type), - input->interpolation_string()); + interpolation_string(input->interpolation)); return; } } |