]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderpass.cpp
Correct some #includes
[libs/gl.git] / source / renderpass.cpp
index d2fe668839816688fbab3d60414d2d092d15a7a8..9e5b71d91f6a7a778902400d58fb0f5316dc40b7 100644 (file)
@@ -36,19 +36,6 @@ RenderPass::RenderPass(const RenderPass &other):
        textures(other.textures)
 { }
 
-/*RenderPass &RenderPass::operator=(const RenderPass &other)
-{
-       shprog=other.shprog;
-       delete shdata;
-       shdata=(other.shdata ? new ProgramData(*other.shdata) : 0);
-       material=other.material;
-       use_material=other.use_material;
-       textures=other.textures;
-       use_textures=other.use_textures;
-
-       return *this;
-}*/
-
 RenderPass::~RenderPass()
 {
        delete shdata;
@@ -127,6 +114,8 @@ void RenderPass::unbind()
 RenderPass::Loader::Loader(RenderPass &p, Collection &c):
        DataFile::CollectionObjectLoader<RenderPass>(p, &c)
 {
+       allow_pointer_reload=false;
+
        add("shader",   &RenderPass::shprog);
        add("material", &Loader::material);
        add("material", &RenderPass::material);
@@ -151,7 +140,9 @@ void RenderPass::Loader::finish()
 
 void RenderPass::Loader::material()
 {
-       // XXX Potential memory management trouble with multiple material statements
+       if(obj.material)
+               throw InvalidState("A material is already loaded");
+
        RefPtr<Material> mat=new Material;
        load_sub(*mat);
        obj.material=mat.release();