]> git.lizzy.rs Git - irrlicht.git/blobdiff - source/Irrlicht/CNullDriver.h
Replace HWBufferMap with a list and back pointers (#99)
[irrlicht.git] / source / Irrlicht / CNullDriver.h
index e95931f4da327c98516d61acd8430c28fe6e3e2b..c9960f9acf2177fd46315d0574ca13d2e5111894 100644 (file)
@@ -21,6 +21,7 @@
 #include "SVertexIndex.h"\r
 #include "SLight.h"\r
 #include "SExposedVideoData.h"\r
+#include <list>\r
 \r
 namespace irr\r
 {\r
@@ -388,25 +389,29 @@ namespace video
                {\r
                        SHWBufferLink(const scene::IMeshBuffer *_MeshBuffer)\r
                                :MeshBuffer(_MeshBuffer),\r
-                               ChangedID_Vertex(0),ChangedID_Index(0),LastUsed(0),\r
+                               ChangedID_Vertex(0),ChangedID_Index(0),\r
                                Mapped_Vertex(scene::EHM_NEVER),Mapped_Index(scene::EHM_NEVER)\r
                        {\r
-                               if (MeshBuffer)\r
+                               if (MeshBuffer) {\r
                                        MeshBuffer->grab();\r
+                                       MeshBuffer->setHWBuffer(reinterpret_cast<void*>(this));\r
+                               }\r
                        }\r
 \r
                        virtual ~SHWBufferLink()\r
                        {\r
-                               if (MeshBuffer)\r
+                               if (MeshBuffer) {\r
+                                       MeshBuffer->setHWBuffer(NULL);\r
                                        MeshBuffer->drop();\r
+                               }\r
                        }\r
 \r
                        const scene::IMeshBuffer *MeshBuffer;\r
                        u32 ChangedID_Vertex;\r
                        u32 ChangedID_Index;\r
-                       u32 LastUsed;\r
                        scene::E_HARDWARE_MAPPING Mapped_Vertex;\r
                        scene::E_HARDWARE_MAPPING Mapped_Index;\r
+                       std::list<SHWBufferLink*>::iterator listPosition;\r
                };\r
 \r
                //! Gets hardware buffer link from a meshbuffer (may create or update buffer)\r
@@ -818,8 +823,7 @@ namespace video
                core::array<SLight> Lights;\r
                core::array<SMaterialRenderer> MaterialRenderers;\r
 \r
-               //core::array<SHWBufferLink*> HWBufferLinks;\r
-               core::map< const scene::IMeshBuffer* , SHWBufferLink* > HWBufferMap;\r
+               std::list<SHWBufferLink*> HWBufferList;\r
 \r
                io::IFileSystem* FileSystem;\r
 \r