X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Frenderpass.cpp;h=7431a4461d9977fe6ef601019a12a5705bc63d98;hb=fa2b4c8a93ebad2497cacfdeaa9a2c20be486520;hp=fb092624b756c06ff463cdb34097b458cdd15158;hpb=12342e01c014137b72546c1e3a54181063e69415;p=libs%2Fgl.git diff --git a/source/materials/renderpass.cpp b/source/materials/renderpass.cpp index fb092624..7431a446 100644 --- a/source/materials/renderpass.cpp +++ b/source/materials/renderpass.cpp @@ -77,7 +77,7 @@ void RenderPass::maybe_create_material_shader(DataFile::Collection *coll) shprog.keep(); } else - shprog = material->create_compatible_shader(); + throw invalid_operation("no collection"); if(shdata) shdata = new ProgramData(*shdata, shprog.get()); @@ -106,22 +106,19 @@ void RenderPass::set_shader_program(const Program *prog, const ProgramData *data finalize_material(0); } -const string &RenderPass::get_slotted_uniform_name(const string &slot) const +Tag RenderPass::get_slotted_uniform_tag(Tag slot) const { - map::const_iterator i = uniform_slots.find(slot); + map::const_iterator i = uniform_slots.find(slot); if(i==uniform_slots.end()) - { - static string empty; - return empty; - } + return Tag(); 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)