]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/parser.cpp
Remove support for the legacy stage change syntax
[libs/gl.git] / source / glsl / parser.cpp
index eaf5706f25a6fd8b30935835efb32272943427e4..60cc3516b0750db9f131e8a665b135c89d7dab7b 100644 (file)
@@ -49,17 +49,6 @@ Module &Parser::parse(IO::Base &io, const string &n, unsigned i)
 
 void Parser::parse_source(const string &name)
 {
-       while(1)
-       {
-               string::size_type slashes = source.find("//////");
-               if(slashes==string::npos)
-                       break;
-
-               string::size_type newline = source.find('\n', slashes);
-               string pragma = format("#pragma MSP stage(%s)", source.substr(slashes+6, newline-slashes-6));
-               source.replace(slashes, newline-slashes, pragma);
-       }
-
        delete module;
        module = new Module;
        cur_stage = &module->shared;
@@ -73,16 +62,16 @@ void Parser::set_required_version(const Version &ver)
        cur_stage->required_version = ver;
 }
 
-void Parser::stage_change(StageType stage)
+void Parser::stage_change(Stage::Type stage)
 {
        if(!allow_stage_change)
                throw invalid_shader_source(tokenizer.get_location(), "Changing stage not allowed here");
        else if(stage<=cur_stage->type)
-               throw invalid_shader_source(tokenizer.get_location(), "Stage '%s' not allowed here", stage);
+               throw invalid_shader_source(tokenizer.get_location(), "Stage '%s' not allowed here", Stage::get_stage_name(stage));
 
        module->stages.push_back(stage);
 
-       if(cur_stage->type!=SHARED)
+       if(cur_stage->type!=Stage::SHARED)
                module->stages.back().previous = cur_stage;
        cur_stage = &module->stages.back();
 }
@@ -254,7 +243,7 @@ RefPtr<Statement> Parser::parse_statement()
 
 RefPtr<Import> Parser::parse_import()
 {
-       if(cur_stage->type!=SHARED)
+       if(cur_stage->type!=Stage::SHARED)
                throw invalid_shader_source(tokenizer.get_location(), "Imports are only allowed in the shared section");
 
        tokenizer.expect("import");
@@ -651,7 +640,7 @@ RefPtr<Passthrough> Parser::parse_passthrough()
        RefPtr<Passthrough> pass = new Passthrough;
        pass->source = source_index;
        pass->line = tokenizer.get_location().line;
-       if(cur_stage->type==GEOMETRY)
+       if(cur_stage->type==Stage::GEOMETRY)
        {
                tokenizer.expect("[");
                pass->subscript = parse_expression();