#ifndef _VERTEXBUFFER_VBO_H #define _VERTEXBUFFER_VBO_H #include "common.h" #include "vertexbuffer.h" class VertexBufferVBO: public VertexBuffer { private: GLuint indices; GLuint verts; GLuint norms; GLuint colors; GLuint *texcoords; public: VertexBufferVBO(); VertexBufferVBO(int attribs); virtual ~VertexBufferVBO(); virtual void NumIndices(unsigned int num); virtual unsigned int NumIndices(); virtual void NumVerts(unsigned int num); virtual unsigned int NumVerts(); virtual void NumTextures(unsigned int num); virtual unsigned int NumTextures(); virtual void SetInterleaved(void *data); // all data (but indices) passed in interleaved format added for optimal D3D support virtual void Set(int type,int idx,void *data); virtual void Get(int type,int idx,void **data); // this is NOT a software buffer, so NO CLIENT-SIDE STORAGE FOR YOU virtual unsigned int Size(int type); // this is a hardware buffer, so we have a direct rendering function! virtual bool IsSoftBuffer(); virtual bool Render(GeometryType geomtype); }; #endif