XRay3D/include/buffer.h
2020-04-17 18:11:57 +02:00

52 lines
926 B
C++

#pragma once
#ifndef BUFFER
#define BUFFER
#include <vector>
#include <GL/glew.h>
#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<meshDesc> B_meshList;
};
#endif