]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/environmentmap.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / effects / environmentmap.cpp
index f6e1c41186442791a98b19d0cad600d829e61aba..a59c14315faf20a6b7ac0ac107835ed59176e9cc 100644 (file)
@@ -74,7 +74,7 @@ EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable
                prefilter_shdata.uniform("roughness", 1.0f);
        }
 
-       shdata.uniform("env_world_matrix", LinAl::SquareMatrix<float, 3>::identity());
+       shdata.uniform("env_world_matrix", LinAl::Matrix<float, 3, 3>::identity());
 }
 
 void EnvironmentMap::set_fixed_position(const Vector3 &p)
@@ -141,6 +141,7 @@ void EnvironmentMap::setup_frame(Renderer &renderer)
                environment.render(renderer);
        }
 
+       renderer.set_pipeline_key(this);
        renderer.set_framebuffer(&irradiance_fbo);
        renderer.set_shader_program(&irradiance_shprog, &prefilter_shdata);
        renderer.set_texture("environment_map", &env_tex, 0, &sampler);
@@ -150,6 +151,7 @@ void EnvironmentMap::setup_frame(Renderer &renderer)
        for(unsigned i=0; i<specular_fbos.size(); ++i)
        {
                prefilter_shdata.uniform("roughness", 1.0f-sqrt(1.0f-static_cast<float>(i+1)/specular_fbos.size()));
+               renderer.set_pipeline_key(this, 1+i);
                renderer.set_framebuffer(&specular_fbos[i]);
                fullscreen_mesh.draw(renderer);
        }
@@ -216,6 +218,8 @@ EnvironmentMap *EnvironmentMap::Template::create(const map<string, Renderable *>
                env_map->set_fixed_position(fixed_position);
        env_map->set_depth_clip(near_clip, far_clip);
 
+       create_base(*env_map);
+
        return env_map.release();
 }