]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderpass.cpp
Remove the deprecated ProgramBuilder class
[libs/gl.git] / source / renderpass.cpp
index 8281b2151f3c6c9b54d7ba2c83cc6bbbfad05880..835e78a672cd6203649cdd9cbba4345421fa41b8 100644 (file)
@@ -128,7 +128,7 @@ void RenderPass::set_texture(unsigned index, const Texture *tex)
        if(!texturing)
                texturing = new Texturing;
 
-       texturing->attach(index, *tex);
+       texturing->attach(index, *tex, texturing->get_attached_sampler(index));
 }
 
 int RenderPass::get_texture_index(const string &n) const
@@ -246,14 +246,30 @@ void RenderPass::Loader::uniform_slot2(const string &name, const string &slot)
 
 RenderPass::TextureLoader::TextureLoader(Texturing &t, unsigned i, Collection *c):
        DataFile::CollectionObjectLoader<Texturing>(t, c),
-       index(i)
+       index(i),
+       tex(0),
+       samp(0)
 {
+       add("sampler",   &TextureLoader::sampler);
        add("texture",   &TextureLoader::texture);
 }
 
+void RenderPass::TextureLoader::finish()
+{
+       if(tex)
+               obj.attach(index, *tex, samp);
+       else if(samp)
+               obj.attach(index, *samp);
+}
+
+void RenderPass::TextureLoader::sampler(const string &name)
+{
+       samp = &get_collection().get<Sampler>(name);
+}
+
 void RenderPass::TextureLoader::texture(const string &name)
 {
-       obj.attach(index, get_collection().get<Texture>(name));
+       tex = &get_collection().get<Texture>(name);
 }
 
 } // namespace GL