]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/parser.cpp
Add support for uint types in GLSL
[libs/gl.git] / source / glsl / parser.cpp
index 72f8ebfa6279982e675b98b9c5364044e90f3150..0512c10b235ea6d384d17e319d9a4a5ce3e5c7b2 100644 (file)
@@ -72,6 +72,7 @@ void Parser::parse_source(const string &name, int index)
                declared_types.insert("void");
                declared_types.insert("bool");
                declared_types.insert("int");
+               declared_types.insert("uint");
                declared_types.insert("float");
        }
 
@@ -536,7 +537,9 @@ RefPtr<Literal> Parser::parse_literal()
        if(isdigit(literal->token[0]))
        {
                // TODO have the tokenizer return the type of the token
-               if(literal->token.back()=='f')
+               if(literal->token.back()=='u')
+                       literal->value = lexical_cast<unsigned>(literal->token.substr(0, literal->token.size()-1));
+               else if(literal->token.back()=='f')
                        literal->value = lexical_cast<float>(literal->token.substr(0, literal->token.size()-1));
                else if(literal->token.find('.')!=string::npos)
                        literal->value = lexical_cast<float>(literal->token);