9 const char builtins_src[] =
10 "#pragma MSP stage(vertex)\n"
11 "out gl_PerVertex {\n"
12 " vec4 gl_Position;\n"
13 " float gl_ClipDistance[];\n"
15 "#pragma MSP stage(geometry)\n"
17 " vec4 gl_Position;\n"
18 " float gl_ClipDistance[];\n"
20 "out gl_PerVertex {\n"
21 " vec4 gl_Position;\n"
22 " float gl_ClipDistance[];\n"
31 Module *create_builtins_module()
34 Module *module = new Module(parser.parse(builtins_src, "<builtin>"));
35 for(list<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++i)
37 VariableResolver resolver;
38 i->content.visit(resolver);
39 for(map<string, VariableDeclaration *>::iterator j=i->content.variables.begin(); j!=i->content.variables.end(); ++j)
40 j->second->linked_declaration = j->second;
45 Module &get_builtins_module()
47 static RefPtr<Module> builtins_module = create_builtins_module();
48 return *builtins_module;
51 Stage *get_builtins(Stage::Type type)
53 Module &module = get_builtins_module();
54 for(list<Stage>::iterator i=module.stages.begin(); i!=module.stages.end(); ++i)