shprog.keep();
}
else
- shprog = material->create_compatible_shader();
+ throw invalid_operation("no collection");
if(shdata)
shdata = new ProgramData(*shdata, shprog.get());
finalize_material(0);
}
-const string &RenderPass::get_slotted_uniform_name(const string &slot) const
+Tag RenderPass::get_slotted_uniform_tag(Tag slot) const
{
- map<string, string>::const_iterator i = uniform_slots.find(slot);
+ map<Tag, Tag>::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)