]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programparser.cpp
Some cleanup for View and WindowView
[libs/gl.git] / source / programparser.cpp
index 80917ba39834720b7711810b0844d3f4800e0e01..159c314777ecf092f3ad634204f4c2c169b0187d 100644 (file)
@@ -315,7 +315,12 @@ bool ProgramParser::is_interface_qualifier(const string &token)
 
 bool ProgramParser::is_sampling_qualifier(const string &token)
 {
-       return token=="centroid";
+       return (token=="centroid" || token=="sample");
+}
+
+bool ProgramParser::is_interpolation_qualifier(const string &token)
+{
+       return (token=="smooth" || token=="flat" || token=="noperspective");
 }
 
 bool ProgramParser::is_precision_qualifier(const string &token)
@@ -325,7 +330,11 @@ bool ProgramParser::is_precision_qualifier(const string &token)
 
 bool ProgramParser::is_qualifier(const string &token)
 {
-       return (token=="const" || is_interface_qualifier(token) || is_sampling_qualifier(token) || is_precision_qualifier(token));
+       return (token=="const" ||
+               is_interface_qualifier(token) ||
+               is_sampling_qualifier(token) ||
+               is_interpolation_qualifier(token) ||
+               is_precision_qualifier(token));
 }
 
 bool ProgramParser::is_builtin_type(const string &token)
@@ -725,6 +734,8 @@ RefPtr<VariableDeclaration> ProgramParser::parse_variable_declaration()
                        var->interface = token;
                else if(is_sampling_qualifier(token))
                        var->sampling = token;
+               else if(is_interpolation_qualifier(token))
+                       var->interpolation = token;
                else if(is_precision_qualifier(token))
                        var->precision = token;
                else if(token=="const")