]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/parser.cpp
Clear load ID when assigning to a component
[libs/gl.git] / source / glsl / parser.cpp
index 8c10c443002e130fa01f42b32ceb18cbe5f4d772..615d75d426a38e1e2e83dabf09fee6edd23b78e7 100644 (file)
@@ -176,7 +176,7 @@ bool Parser::is_interface_qualifier(const string &token)
 
 bool Parser::is_sampling_qualifier(const string &token)
 {
-       return (token=="centroid" || token=="sample");
+       return (token=="centroid" || token=="sample" || token=="patch");
 }
 
 bool Parser::is_interpolation_qualifier(const string &token)
@@ -707,6 +707,8 @@ RefPtr<ImageTypeDeclaration> Parser::parse_image_type_declaration()
                        type->sampled = true;
                else if(token=="shadow")
                        type->shadow = true;
+               else if(token=="multisample")
+                       type->multisample = true;
                else
                        throw parse_error(tokenizer.get_location(), token, "image type attribute");
 
@@ -851,7 +853,11 @@ RefPtr<StructDeclaration> Parser::parse_interface_block()
                if(check("["))
                {
                        var->array = true;
-                       tokenizer.expect("]");
+                       if(!check("]"))
+                       {
+                               var->array_size = parse_expression();
+                               tokenizer.expect("]");
+                       }
                }
                tokenizer.expect(";");
        }