glsl: Pass parse state to can_implicitly_convert_to()
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
a78c663c22
commit
f17428a276
|
@ -701,7 +701,7 @@ process_vec_mat_constructor(exec_list *instructions,
|
|||
glsl_type::get_instance(GLSL_TYPE_FLOAT,
|
||||
ir->type->vector_elements,
|
||||
ir->type->matrix_columns);
|
||||
if (result->type->can_implicitly_convert_to(desired_type)) {
|
||||
if (result->type->can_implicitly_convert_to(desired_type, state)) {
|
||||
/* Even though convert_component() implements the constructor
|
||||
* conversion rules (not the implicit conversion rules), its safe
|
||||
* to use it here because we already checked that the implicit
|
||||
|
@ -830,7 +830,7 @@ process_array_constructor(exec_list *instructions,
|
|||
glsl_type::get_instance(GLSL_TYPE_FLOAT,
|
||||
ir->type->vector_elements,
|
||||
ir->type->matrix_columns);
|
||||
if (result->type->can_implicitly_convert_to(desired_type)) {
|
||||
if (result->type->can_implicitly_convert_to(desired_type, state)) {
|
||||
/* Even though convert_component() implements the constructor
|
||||
* conversion rules (not the implicit conversion rules), its safe
|
||||
* to use it here because we already checked that the implicit
|
||||
|
|
|
@ -678,7 +678,8 @@ glsl_type::component_slots() const
|
|||
}
|
||||
|
||||
bool
|
||||
glsl_type::can_implicitly_convert_to(const glsl_type *desired) const
|
||||
glsl_type::can_implicitly_convert_to(const glsl_type *desired,
|
||||
_mesa_glsl_parse_state *state) const
|
||||
{
|
||||
if (this == desired)
|
||||
return true;
|
||||
|
|
|
@ -314,7 +314,8 @@ struct glsl_type {
|
|||
* integers.
|
||||
* \endverbatim
|
||||
*/
|
||||
bool can_implicitly_convert_to(const glsl_type *desired) const;
|
||||
bool can_implicitly_convert_to(const glsl_type *desired,
|
||||
_mesa_glsl_parse_state *state) const;
|
||||
|
||||
/**
|
||||
* Query whether or not a type is a scalar (non-vector and non-matrix).
|
||||
|
|
|
@ -80,12 +80,12 @@ parameter_lists_match(_mesa_glsl_parse_state *state,
|
|||
|
||||
case ir_var_const_in:
|
||||
case ir_var_function_in:
|
||||
if (!actual->type->can_implicitly_convert_to(param->type))
|
||||
if (!actual->type->can_implicitly_convert_to(param->type, state))
|
||||
return PARAMETER_LIST_NO_MATCH;
|
||||
break;
|
||||
|
||||
case ir_var_function_out:
|
||||
if (!param->type->can_implicitly_convert_to(actual->type))
|
||||
if (!param->type->can_implicitly_convert_to(actual->type, state))
|
||||
return PARAMETER_LIST_NO_MATCH;
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue