]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/environmentmap.cpp
Overhaul texture management in rendering classes
[libs/gl.git] / source / effects / environmentmap.cpp
index a20f73bb9567dc84d4c3f2c6c6082a701dfff42a..1448c49cfd844165770b5c330b2091f1b437ef49 100644 (file)
@@ -99,21 +99,17 @@ void EnvironmentMap::finish_frame()
        }
 }
 
-void EnvironmentMap::render(Renderer &renderer, const Tag &tag) const
+void EnvironmentMap::render(Renderer &renderer, Tag tag) const
 {
        if(!enabled_passes.count(tag))
                return renderer.render(renderable, tag);
 
        Renderer::Push _push_rend(renderer);
 
-       unsigned unit = renderer.allocate_effect_texunit();
-       shdata.uniform("environment_map", static_cast<int>(unit));
-       Bind _bind_sampler(sampler, unit);
-       Bind _bind_env(env_tex, unit);
-
        const Matrix &camera_matrix = renderer.get_camera()->get_object_matrix();
        shdata.uniform("env_eye_matrix", camera_matrix.block<3, 3>(0, 0));
 
+       renderer.set_texture("environment_map", &env_tex, &sampler);
        renderer.add_shader_data(shdata);
        renderer.render(renderable, tag);
 }