]> git.tdb.fi Git - libs/gl.git/blobdiff - source/materials/renderpass.cpp
Allow materials to return per-texture samplers
[libs/gl.git] / source / materials / renderpass.cpp
index 62056ff9f56c63f103edb920ee8b546c7b13fe91..70143e96a497c7e299f088855c83903c4397fedc 100644 (file)
@@ -9,7 +9,6 @@
 #include "renderer.h"
 #include "texture.h"
 #include "texture2d.h"
-#include "texturing.h"
 #include "uniform.h"
 
 using namespace std;
@@ -31,7 +30,7 @@ void RenderPass::set_material_textures()
 {
        const Tag *material_texture_tags = material->get_texture_tags();
        for(const Tag *tag=material_texture_tags; tag->id; ++tag)
-               set_texture(*tag, material->get_texture(*tag), material->get_sampler());
+               set_texture(*tag, material->get_texture(*tag), material->get_sampler(*tag));
 }
 
 void RenderPass::maybe_create_material_shader()
@@ -139,8 +138,9 @@ void RenderPass::apply(Renderer &renderer) const
 {
        for(vector<TextureSlot>::const_iterator i=textures.begin(); i!=textures.end(); ++i)
                renderer.set_texture(i->tag, i->texture, i->sampler);
-       renderer.set_material(material);
        renderer.set_shader_program(shprog, shdata.get());
+       if(material)
+               renderer.add_shader_data(material->get_shader_data());
        renderer.set_reverse_winding(back_faces);
 }