]> git.tdb.fi Git - libs/gl.git/commitdiff
Add a collection parameter to RenderPass::set_material
authorMikko Rasa <tdb@tdb.fi>
Sun, 21 Mar 2021 15:50:19 +0000 (17:50 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sun, 21 Mar 2021 15:52:34 +0000 (17:52 +0200)
If the pass did not already have a shader, it will try to create one from
the material and fail if it has no collection.

source/materials/renderpass.cpp
source/materials/renderpass.h

index 5ee50f8a1726b39cf986740db7326c699281f2d6..810b3673e584671423c95795a0eaab5cdd9c5e93 100644 (file)
@@ -117,11 +117,11 @@ const string &RenderPass::get_slotted_uniform_name(const string &slot) const
        return i->second;
 }
 
-void RenderPass::set_material(const Material *mat)
+void RenderPass::set_material(const Material *mat, DataFile::Collection *coll)
 {
        material = mat;
        material.keep();
-       finalize_material(0);
+       finalize_material(coll);
 }
 
 void RenderPass::set_texture(unsigned index, const Texture *tex, const Sampler *samp)
index 96b892dff07295275b4f1cd66e17f071a5d8f1a3..b674945ee1a23136d34bd6931b074760fa7779a5 100644 (file)
@@ -87,7 +87,7 @@ public:
        const Program *get_shader_program() const { return shprog.get(); }
        const ProgramData *get_shader_data() const { return shdata.get(); }
        const std::string &get_slotted_uniform_name(const std::string &) const;
-       void set_material(const Material *);
+       void set_material(const Material *, DataFile::Collection * = 0);
        const Material *get_material() const { return material.get(); }
        const std::string &get_material_slot_name() const { return material_slot; }
        void set_texture(unsigned, const Texture *, const Sampler * = 0);