]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/validate.cpp
Disallow bool variables in shader interface blocks
[libs/gl.git] / source / glsl / validate.cpp
index 0c4b98cbb2c8fd9de87ec21b553d911febde227a..ec322f4207751af90482893dc21dc4f4dce39e0a 100644 (file)
@@ -254,8 +254,13 @@ void DeclarationValidator::visit(VariableDeclaration &var)
        }
        else if(kind==BasicTypeDeclaration::VOID)
                error(var, "Type 'void' not allowed on variable");
-       else if(kind==BasicTypeDeclaration::BOOL && !var.interface.empty() && var.source!=BUILTIN_SOURCE)
-               error(var, "Type 'bool' not allowed on interface variable");
+       else if(kind==BasicTypeDeclaration::BOOL && var.source!=BUILTIN_SOURCE)
+       {
+               if(scope==INTERFACE_BLOCK)
+                       error(var, "Type 'bool' not allowed in an interface block");
+               else if(!var.interface.empty())
+                       error(var, "Type 'bool' not allowed on interface variable");
+       }
 
        if(var.init_expression)
        {