Replace accesses to glsl_type data with query functions
In these particular cases, using the query functions makes it more obvious what is happening.
This commit is contained in:
@@ -83,8 +83,7 @@ arithmetic_result_type(const struct glsl_type *type_a,
|
|||||||
* multiply (*), and divide (/) operate on integer and
|
* multiply (*), and divide (/) operate on integer and
|
||||||
* floating-point scalars, vectors, and matrices."
|
* floating-point scalars, vectors, and matrices."
|
||||||
*/
|
*/
|
||||||
if (! is_numeric_base_type(type_a->base_type)
|
if (!type_a->is_numeric() || !type_b->is_numeric()) {
|
||||||
|| ! is_numeric_base_type(type_b->base_type)) {
|
|
||||||
return glsl_error_type;
|
return glsl_error_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,9 +108,9 @@ arithmetic_result_type(const struct glsl_type *type_a,
|
|||||||
*
|
*
|
||||||
* From this rule and the preceeding conversion it can be inferred that
|
* From this rule and the preceeding conversion it can be inferred that
|
||||||
* both types must be GLSL_TYPE_FLOAT, or GLSL_TYPE_UINT, or GLSL_TYPE_INT.
|
* both types must be GLSL_TYPE_FLOAT, or GLSL_TYPE_UINT, or GLSL_TYPE_INT.
|
||||||
* The is_numeric_base_type check above already filtered out the case
|
* The is_numeric check above already filtered out the case where either
|
||||||
* where either type is not one of these, so now the base types need only
|
* type is not one of these, so now the base types need only be tested for
|
||||||
* be tested for equality.
|
* equality.
|
||||||
*/
|
*/
|
||||||
if (type_a->base_type != type_b->base_type) {
|
if (type_a->base_type != type_b->base_type) {
|
||||||
return glsl_error_type;
|
return glsl_error_type;
|
||||||
@@ -144,8 +143,8 @@ arithmetic_result_type(const struct glsl_type *type_a,
|
|||||||
* <scalar, vector>, <scalar, matrix>, and <matrix, scalar> have been
|
* <scalar, vector>, <scalar, matrix>, and <matrix, scalar> have been
|
||||||
* handled.
|
* handled.
|
||||||
*/
|
*/
|
||||||
assert(type_a->vector_elements > 1);
|
assert(!type_a->is_scalar());
|
||||||
assert(type_b->vector_elements > 1);
|
assert(!type_b->is_scalar());
|
||||||
|
|
||||||
/* "* The two operands are vectors of the same size. In this case, the
|
/* "* The two operands are vectors of the same size. In this case, the
|
||||||
* operation is done component-wise resulting in the same size
|
* operation is done component-wise resulting in the same size
|
||||||
@@ -164,7 +163,7 @@ arithmetic_result_type(const struct glsl_type *type_a,
|
|||||||
* be matrix. Further, since there are no integer matrix types, the base
|
* be matrix. Further, since there are no integer matrix types, the base
|
||||||
* type of both operands must be float.
|
* type of both operands must be float.
|
||||||
*/
|
*/
|
||||||
assert((type_a->matrix_rows > 1) || (type_b->matrix_rows > 1));
|
assert(type_a->is_matrix() || type_b->is_matrix());
|
||||||
assert(type_a->base_type == GLSL_TYPE_FLOAT);
|
assert(type_a->base_type == GLSL_TYPE_FLOAT);
|
||||||
assert(type_b->base_type == GLSL_TYPE_FLOAT);
|
assert(type_b->base_type == GLSL_TYPE_FLOAT);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user