Add glsl_types::field_index to get the location of a record field
This commit is contained in:
@@ -718,3 +718,18 @@ glsl_type::field_type(const char *name) const
|
||||
|
||||
return error_type;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
glsl_type::field_index(const char *name) const
|
||||
{
|
||||
if (this->base_type != GLSL_TYPE_STRUCT)
|
||||
return -1;
|
||||
|
||||
for (unsigned i = 0; i < this->length; i++) {
|
||||
if (strcmp(name, this->fields.structure[i].name) == 0)
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -355,6 +355,12 @@ struct glsl_type {
|
||||
const glsl_type *field_type(const char *name) const;
|
||||
|
||||
|
||||
/**
|
||||
* Get the location of a filed within a record type
|
||||
*/
|
||||
int field_index(const char *name) const;
|
||||
|
||||
|
||||
/**
|
||||
* Query the number of elements in an array type
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user