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,
|
_mesa_glsl_error(loc, state,
|
||||||
"interpolation qualifier `%s' can only be applied to "
|
"interpolation qualifier `%s' can only be applied to "
|
||||||
"shader inputs or outputs.",
|
"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,
|
_mesa_glsl_error(loc, state,
|
||||||
"interpolation qualifier `%s' cannot be applied to "
|
"interpolation qualifier `%s' cannot be applied to "
|
||||||
"vertex shader inputs or fragment shader outputs",
|
"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 *
|
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_NONE: return "no";
|
||||||
case INTERP_QUALIFIER_SMOOTH: return "smooth";
|
case INTERP_QUALIFIER_SMOOTH: return "smooth";
|
||||||
case INTERP_QUALIFIER_FLAT: return "flat";
|
case INTERP_QUALIFIER_FLAT: return "flat";
|
||||||
|
@@ -312,6 +312,22 @@ struct ir_state_slot {
|
|||||||
int swizzle;
|
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 {
|
class ir_variable : public ir_instruction {
|
||||||
public:
|
public:
|
||||||
ir_variable(const struct glsl_type *, const char *, ir_variable_mode);
|
ir_variable(const struct glsl_type *, const char *, ir_variable_mode);
|
||||||
@@ -331,20 +347,6 @@ public:
|
|||||||
virtual ir_visitor_status accept(ir_hierarchical_visitor *);
|
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
|
* Determine how this variable should be interpolated based on its
|
||||||
* interpolation qualifier (if present), whether it is gl_Color or
|
* 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",
|
"interpolation qualifier\n",
|
||||||
_mesa_glsl_shader_target_name(producer_type),
|
_mesa_glsl_shader_target_name(producer_type),
|
||||||
output->name,
|
output->name,
|
||||||
output->interpolation_string(),
|
interpolation_string(output->interpolation),
|
||||||
_mesa_glsl_shader_target_name(consumer_type),
|
_mesa_glsl_shader_target_name(consumer_type),
|
||||||
input->interpolation_string());
|
interpolation_string(input->interpolation));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user