X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramparser.cpp;h=159c314777ecf092f3ad634204f4c2c169b0187d;hp=80917ba39834720b7711810b0844d3f4800e0e01;hb=e598e9d8dacad73b7ee1688e2be738e94b07b9fa;hpb=191610b71271a765c8056ef947b2b04b8bfa84b5 diff --git a/source/programparser.cpp b/source/programparser.cpp index 80917ba3..159c3147 100644 --- a/source/programparser.cpp +++ b/source/programparser.cpp @@ -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 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")