Add glsl_type::element_type and glsl_type::array_size queries
The former gets the type of elements in an array, and the later gets the declared size, if any, of the array.
This commit is contained in:
parent
ebfdef7a83
commit
00e517616b
25
glsl_types.h
25
glsl_types.h
|
@ -163,6 +163,18 @@ struct glsl_type {
|
||||||
*/
|
*/
|
||||||
const glsl_type *get_base_type() const;
|
const glsl_type *get_base_type() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query the type of elements in an array
|
||||||
|
*
|
||||||
|
* \return
|
||||||
|
* Pointer to the type of elements in the array for array types, or \c NULL
|
||||||
|
* for non-array types.
|
||||||
|
*/
|
||||||
|
const glsl_type *element_type() const
|
||||||
|
{
|
||||||
|
return is_array() ? fields.array : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the instance of a built-in scalar, vector, or matrix type
|
* Get the instance of a built-in scalar, vector, or matrix type
|
||||||
*/
|
*/
|
||||||
|
@ -308,6 +320,19 @@ struct glsl_type {
|
||||||
: error_type;
|
: error_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query the number of elements in an array type
|
||||||
|
*
|
||||||
|
* \return
|
||||||
|
* The number of elements in the array for array types or -1 for non-array
|
||||||
|
* types. If the number of elements in the array has not yet been declared,
|
||||||
|
* zero is returned.
|
||||||
|
*/
|
||||||
|
int array_size() const
|
||||||
|
{
|
||||||
|
return is_array() ? length : -1;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* Constructor for array types
|
* Constructor for array types
|
||||||
|
|
Loading…
Reference in New Issue