]> git.tdb.fi Git - libs/gl.git/blobdiff - source/scene.h
Allow copying of Uniforms and ProgramData
[libs/gl.git] / source / scene.h
index 6bfad812e517ecc45216216ed2aa0a37c50e3789..6a4be91d9f77a75a06017f572c5e214e13abb0cd 100644 (file)
@@ -8,22 +8,30 @@ Distributed under the LGPL
 #ifndef MSP_GL_SCENE_H_
 #define MSP_GL_SCENE_H_
 
+#include <map>
 #include <set>
 #include "renderable.h"
 
 namespace Msp {
 namespace GL {
 
+class Object;
+class ObjectInstance;
+
 class Scene: public Renderable
 {
 private:
-       std::set<const Renderable *> renderables;
+       typedef std::set<const ObjectInstance *> InstanceSet;
+       typedef std::map<const Object *, InstanceSet> ObjectMap;
+       typedef std::set<const Renderable *> RenderableSet;
+
+       ObjectMap objects;
+       RenderableSet renderables;
 
 public:
        void add(const Renderable &);
        void remove(const Renderable &);
 
-       virtual bool has_pass(const Tag &) const { return true; }
        virtual void render(const Tag &tag=Tag()) const;
 };