]> git.tdb.fi Git - libs/gl.git/blobdiff - source/objectpass.cpp
Inherit Loaders from the ObjectLoader classes
[libs/gl.git] / source / objectpass.cpp
index 153186d8388583b8778621567097f87353aec582..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"
@@ -16,7 +17,8 @@ namespace GL {
 
 ObjectPass::ObjectPass():
        shprog(0),
-       shdata(0)
+       shdata(0),
+       use_textures(true)
 { }
 
 ObjectPass::~ObjectPass()
@@ -25,24 +27,24 @@ 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);
 }
 
 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();
        }
 }