* integer vectors. The operand types must both be signed or both be
* unsigned."
*/
- if (! is_integer_base_type(type_a->base_type)
- || ! is_integer_base_type(type_b->base_type)
+ if (!type_a->is_integer() || !type_b->is_integer()
|| (type_a->base_type != type_b->base_type)) {
return glsl_type::error_type;
}
#define is_numeric_base_type(b) \
(((b) >= GLSL_TYPE_UINT) && ((b) <= GLSL_TYPE_FLOAT))
-#define is_integer_base_type(b) \
- (((b) == GLSL_TYPE_UINT) || ((b) == GLSL_TYPE_INT))
-
#define is_error_type(t) ((t)->base_type == GLSL_TYPE_ERROR)
enum glsl_sampler_dim {
return (base_type >= GLSL_TYPE_UINT) && (base_type <= GLSL_TYPE_FLOAT);
}
+ /**
+ * Query whether or not a type is an integral type
+ */
+ bool is_integer() const
+ {
+ return (base_type == GLSL_TYPE_UINT) || (base_type == GLSL_TYPE_INT);
+ }
+
/**
* Query whether or not a type is a non-array boolean type
*/