diff --git a/src/glsl/glsl_types.h b/src/glsl/glsl_types.h index 50cd655dc76..92578ff47ac 100644 --- a/src/glsl/glsl_types.h +++ b/src/glsl/glsl_types.h @@ -464,6 +464,18 @@ struct glsl_type { return base_type == GLSL_TYPE_ERROR; } + /** + * Get the type stripped of any arrays + * + * \return + * Pointer to the type of elements of the first non-array type for array + * types, or pointer to itself for non-array types. + */ + const glsl_type *without_array() const + { + return this->is_array() ? this->fields.array : this; + } + /** * Return the amount of atomic counter storage required for a type. */