2 #include "morph_renderer.h"
5 #include "shader_manager.h"
7 MorphRenderer::MorphRenderer()
13 /* we won't use them */
18 MorphRenderer::~MorphRenderer()
22 bool MorphRenderer::create()
24 if(!(sprog = sdr_man->create_shader_program("morphing.v.glsl", "morphing.f.glsl"))) {
28 /* getting material uniform locations: diffuse, specular, specular exponent (strength) */
30 diff_loc = sprog->get_uniform_location("diffuse");
31 spec_loc = sprog->get_uniform_location("specular");
32 shin_loc = sprog->get_uniform_location("shininess");
33 t_loc = sprog->get_uniform_location("t");
35 /* uniform locations for matrices */
37 mmviewproj_loc = sprog->get_uniform_location("mmviewproj");
38 mview_loc = sprog->get_uniform_location("mview");
43 void MorphRenderer::draw() const
53 for(size_t i=0; i<scene->objects.size(); i++) {
54 draw_object(scene->objects[i]);
58 void MorphRenderer::draw_object(Object *object) const
60 float t = (sin(time_sec) + 1) * 0.5;
63 sprog->set_uniformf(t_loc, t);
65 Renderer::draw_object(object);