]> git.tdb.fi Git - libs/gl.git/blobdiff - source/objectpass.cpp
Inherit Loaders from the ObjectLoader classes
[libs/gl.git] / source / objectpass.cpp
index afb9f45d96b7209bb9dd63dab6e3b91229e89fdb..01a6c2eb3e21bcae46fe34507f8a0b1027eea35c 100644 (file)
@@ -5,6 +5,7 @@ Copyright © 2007  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
+#include <msp/datafile/collection.h>
 #include "objectpass.h"
 #include "program.h"
 #include "programdata.h"
@@ -26,8 +27,7 @@ ObjectPass::~ObjectPass()
 
 
 ObjectPass::Loader::Loader(ObjectPass &p, Collection &c):
-       pass(p),
-       coll(c)
+       DataFile::CollectionObjectLoader<ObjectPass>(p, &c)
 {
        add("shader", &Loader::shader);
        add("use_textures", &ObjectPass::use_textures);
@@ -35,16 +35,16 @@ ObjectPass::Loader::Loader(ObjectPass &p, Collection &c):
 
 void ObjectPass::Loader::shader(const string &n)
 {
-       Program *shprog=coll.get<Program>(n);
+       Program *shprog=coll->get<Program>(n);
        if(shprog)  // Allow for unsupported shaders
        {
                RefPtr<ProgramData> shdata=new ProgramData;
                load_sub(*shdata, *shprog);
 
-               pass.shprog=shprog;
-               if(pass.shdata)
-                       delete pass.shdata;
-               pass.shdata=shdata.release();
+               obj.shprog=shprog;
+               if(obj.shdata)
+                       delete obj.shdata;
+               obj.shdata=shdata.release();
        }
 }