]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/shaders.cpp
Entirely new system for building standard shaders
[libs/gl.git] / demos / shaders.cpp
index ae5c98fbb727cd42e4259a44d446148dc9b56d47..73ae1b721321696ddc3114bfbb97676df16e00bd 100644 (file)
@@ -67,7 +67,7 @@ int main()
        vector<GL::Program *> programs;
        for(unsigned i=0; i<12; ++i)
        {
-               GL::Program::StandardFeatures feat;
+               GL::ProgramBuilder::StandardFeatures feat;
                feat.material = i/4>0;
                feat.texture = i/4>1;
                feat.lighting = i%4>0;
@@ -83,6 +83,7 @@ int main()
        }
 
        GL::ProgramData progdata;
+       progdata.uniform("texture", 0);
        progdata.uniform("normalmap", 1);
 
        GL::Lighting lighting;
@@ -112,10 +113,11 @@ int main()
                        GL::Renderer renderer(0);
                        renderer.set_material(&mat);
                        renderer.set_texturing(&texturing);
+                       renderer.add_shader_data(progdata);
                        for(unsigned i=0; i<12; ++i)
                        {
                                GL::MatrixStack::Push push(renderer.matrix_stack());
-                               renderer.set_shader(programs[i], &progdata);
+                               renderer.set_shader_program(programs[i]);
                                renderer.matrix_stack() *= GL::Matrix::translation(-3.3+(i%4)*2.2, 0, -3.5+(i/4)*3.0);
                                renderer.matrix_stack() *= GL::Matrix::rotation(angle, 0, 0, 1);
                                mesh.draw(renderer);