]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/environmentmap.cpp
Support specifying enabled methods in effect templates
[libs/gl.git] / source / effects / environmentmap.cpp
index f6e1c41186442791a98b19d0cad600d829e61aba..7590579192b868951014adfa8072f71de493ba1a 100644 (file)
@@ -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();
 }