#include "SVertexIndex.h"\r
#include "SLight.h"\r
#include "SExposedVideoData.h"\r
+#include <list>\r
\r
namespace irr\r
{\r
{\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
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