// ============================================================== // This file is part of MegaGlest Shared Library (www.megaglest.org) // // Copyright (C) 2012 Mark Vejvoda, Titus Tscharntke // The MegaGlest Team, under GNU GPL v3.0 // ============================================================== #ifndef _SHARED_GRAPHICS_BUFFER_H_ #define _SHARED_GRAPHICS_BUFFER_H_ #include #include "leak_dumper.h" using std::string; namespace Shared{ namespace Graphics{ // ===================================================== // class VertexBuffer // ===================================================== class VertexBuffer{ private: static const int texCoordCount = 8; static const int attribCount = 8; private: void *positionPointer; void *normalPointer; void *texCoordPointers[texCoordCount]; int texCoordCoordCounts[texCoordCount]; void *attribPointers[attribCount]; int attribCoordCounts[attribCount]; string attribNames[attribCount]; public: VertexBuffer(); virtual ~VertexBuffer(){}; virtual void init(int size)= 0; void setPositionPointer(void *pointer); void setNormalPointer(void *pointer); void setTexCoordPointer(void *pointer, int texCoordIndex, int coordCount); void setAttribPointer(void *pointer, int attribIndex, int coordCount, const string &name); }; // ===================================================== // class IndexBuffer // ===================================================== class IndexBuffer{ private: void *indexPointer; public: IndexBuffer(); virtual ~IndexBuffer(){} virtual void init(int size)= 0; void setIndexPointer(void *pointer); }; }}//end namespace #endif