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;
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
|
@ -308,6 +320,19 @@ struct glsl_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:
|
||||
/**
|
||||
* Constructor for array types
|
||||
|
|
Loading…
Reference in New Issue