]> git.tdb.fi Git - libs/gl.git/blobdiff - source/technique.cpp
Reintroduce named texture slots for Technique inheritance
[libs/gl.git] / source / technique.cpp
index 9d13a8976ac4b40f56f077b4a4fcf5120bdea4f1..49b487982993d259f3807c8b3820f9991cf85998 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Copyright © 2008-2011  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
@@ -88,17 +88,15 @@ Technique::InheritLoader::InheritLoader(Technique &t, Collection &c):
        add("texture", &InheritLoader::texture);
 }
 
-void Technique::InheritLoader::texture(unsigned index, 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(index, tex);
-               }
-               catch(const KeyError &)
-               { }
+               int index = i->second.get_texture_index(slot);
+               if(index<0)
+                       continue;
+               i->second.set_texture(index, tex);
        }
 }