#pragma once #ifndef BUFFER #define BUFFER #include #include #include "mesh.h" struct meshDesc { meshDesc() : mesh(0), vertexOffset(0), vertexSize(0), texCoordOffset(0), texCoordSize(0), normalOffset(0), normalSize(0), vbo(0) { } Xr_Mesh *mesh; unsigned int vertexOffset; unsigned int vertexSize; unsigned int texCoordOffset; unsigned int texCoordSize; unsigned int normalOffset; unsigned int normalSize; GLuint vbo; }; class Xr_BufferManager { public: Xr_BufferManager(); ~Xr_BufferManager(); static Xr_BufferManager* getInstance(); static bool instanced(); static void quitInstance(); bool load(Xr_Mesh*); void unload(Xr_Mesh*); void unloadAll(); void fetchVertex(Xr_Mesh*); void fetchTexCoord(Xr_Mesh*); void fetchNormal(Xr_Mesh*); void fetchNull(); private: static Xr_BufferManager* B_instance; std::vector B_meshList; }; #endif