| | 32 | { |
| | 33 | const char shader_str[] = |
| | 34 | "vec4 colour()\n" |
| | 35 | "{\n" |
| | 36 | " return vec4(1.0,0.5,1.0,1.0);\n" |
| | 37 | "}\n"; |
| | 38 | |
| | 39 | osg::Shader* vertex_shader = new osg::Shader(osg::Shader::VERTEX, shader_str); |
| | 40 | vertex_shader->addCodeInjection(-1,"varying vec4 c;\n"); |
| | 41 | vertex_shader->addCodeInjection(-1,"vec4 colour();\n"); |
| | 42 | vertex_shader->addCodeInjection(0,"gl_Position = ftransform();\n"); |
| | 43 | vertex_shader->addCodeInjection(0,"c = colour();\n"); |
| | 44 | |
| | 45 | sa->addShader(vertex_shader); |
| | 46 | } |
| | 47 | |
| | 48 | { |
| | 49 | osg::Shader* fragment_shader = new osg::Shader(osg::Shader::FRAGMENT); |
| | 50 | fragment_shader->addCodeInjection(-1,"varying vec4 c;\n"); |
| | 51 | fragment_shader->addCodeInjection(0,"gl_FragColor = c;\n"); |
| | 52 | |
| | 53 | sa->addShader(fragment_shader); |
| | 54 | } |
| | 55 | |