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 <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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";
|
||||
|
@@ -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);
|
||||
@@ -331,20 +347,6 @@ public:
|
||||
virtual ir_visitor_status accept(ir_hierarchical_visitor *);
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user