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