mat.set_specular(GL::Color(0.45, 0.5, 0.4));
mat.set_shininess(50);
vector<GL::Program *> programs;
- vector<GL::ProgramData *> progdata;
for(unsigned i=0; i<12; ++i)
{
GL::Program::StandardFeatures feat;
programs.back()->bind_attribute(4, "tangent");
programs.back()->bind_attribute(5, "binormal");
programs.back()->link();
- progdata.push_back(new GL::ProgramData(*programs.back()));
- progdata.back()->uniform("normalmap", 1);
}
- else
- progdata.push_back(0);
}
+ GL::ProgramData progdata;
+ progdata.uniform("normalmap", 1);
+
GL::Lighting lighting;
GL::Light light;
light.set_position(GL::Vector4(0, 2, 3, 0));
for(unsigned i=0; i<12; ++i)
{
GL::MatrixStack::Push push(renderer.matrix_stack());
- renderer.set_shader(programs[i], progdata[i]);
+ renderer.set_shader(programs[i], &progdata);
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);