{
if (this->is_array()) {
return this->fields.array->contains_sampler();
- } else if (this->is_record()) {
+ } else if (this->is_record() || this->is_interface()) {
for (unsigned int i = 0; i < this->length; i++) {
if (this->fields.structure[i].type->contains_sampler())
return true;
{
if (this->is_array()) {
return this->fields.array->contains_integer();
- } else if (this->is_record()) {
+ } else if (this->is_record() || this->is_interface()) {
for (unsigned int i = 0; i < this->length; i++) {
if (this->fields.structure[i].type->contains_integer())
return true;
{
if (this->is_array()) {
return this->fields.array->contains_double();
- } else if (this->is_record()) {
+ } else if (this->is_record() || this->is_interface()) {
for (unsigned int i = 0; i < this->length; i++) {
if (this->fields.structure[i].type->contains_double())
return true;
case GLSL_TYPE_ARRAY:
return fields.array->contains_opaque();
case GLSL_TYPE_STRUCT:
+ case GLSL_TYPE_INTERFACE:
for (unsigned int i = 0; i < length; i++) {
if (fields.structure[i].type->contains_opaque())
return true;
{
if (this->is_array()) {
return this->fields.array->contains_subroutine();
- } else if (this->is_record()) {
+ } else if (this->is_record() || this->is_interface()) {
for (unsigned int i = 0; i < this->length; i++) {
if (this->fields.structure[i].type->contains_subroutine())
return true;
{
if (this->is_array()) {
return this->fields.array->contains_image();
- } else if (this->is_record()) {
+ } else if (this->is_record() || this->is_interface()) {
for (unsigned int i = 0; i < this->length; i++) {
if (this->fields.structure[i].type->contains_image())
return true;
}
/**
- * Query whether or not type is an integral type, or for struct and array
- * types, contains an integral type.
+ * Query whether or not type is an integral type, or for struct, interface
+ * and array types, contains an integral type.
*/
bool contains_integer() const;
/**
- * Query whether or not type is a double type, or for struct and array
- * types, contains a double type.
+ * Query whether or not type is a double type, or for struct, interface and
+ * array types, contains a double type.
*/
bool contains_double() const;
}
/**
- * Query whether or not type is a sampler, or for struct and array
- * types, contains a sampler.
+ * Query whether or not type is a sampler, or for struct, interface and
+ * array types, contains a sampler.
*/
bool contains_sampler() const;
gl_texture_index sampler_index() const;
/**
- * Query whether or not type is an image, or for struct and array
- * types, contains an image.
+ * Query whether or not type is an image, or for struct, interface and
+ * array types, contains an image.
*/
bool contains_image() const;