/* $Id$
This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2008-2011 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
namespace Msp {
namespace GL {
+RenderPass &Technique::add_pass(const GL::Tag &tag)
+{
+ if(passes.count(tag))
+ throw KeyError("Duplicate pass");
+
+ return passes[tag];
+}
+
bool Technique::has_pass(const GL::Tag &tag) const
{
return passes.count(tag);
add("texture", &InheritLoader::texture);
}
-void Technique::InheritLoader::texture(const string &slot, const string &name)
+void Technique::InheritLoader::texture(const std::string &slot, const string &name)
{
Texture *tex = get_collection().get<Texture>(name);
for(PassMap::iterator i=obj.passes.begin(); i!=obj.passes.end(); ++i)
{
- try
- {
- i->second.set_texture(slot, tex);
- }
- catch(const KeyError &)
- { }
+ int index = i->second.get_texture_index(slot);
+ if(index<0)
+ continue;
+ i->second.set_texture(index, tex);
}
}