1 #ifndef _GRAPHICSBUFFER_H
2 #define _GRAPHICSBUFFER_H
5 #define GL_GLEXT_PROTOTYPES
6 #include <SDL_opengl.h>
12 * The "Screen" class handles managing the OS window (using SDL2).
19 BufferTypeVertex, // A Vertex Buffer
20 BufferTypeIndex, // An Index Buffer
21 BufferTypePixelPack, // Pixel Pack buffer
22 BufferTypePixelUnpack,
23 BufferTypeUniform, // Uniform/Constant buffer
24 BufferTypeDrawIndirect,
29 BufferUsageStaticDraw,
30 BufferUsageStaticRead,
31 BufferUsageStaticCopy,
32 BufferUsageDynamicDraw,
33 BufferUsageDynamicRead,
34 BufferUsageDynamicCopy,
35 BufferUsageStreamDraw,
36 BufferUsageStreamRead,
43 void SetType(BufferType bufType);
44 void SetUsage(BufferUsage bufUsage);
46 void *Map(bool read, bool write, bool invalidate);
47 void *MapRange(int offset, int length, bool read, bool write, bool invalidate);
51 void Upload(size_t length, const void *data);
52 void UploadRange(size_t length, intptr_t offset, const void *data);
54 void Resize(size_t length);
58 GLuint m_buffer_handle;
59 BufferType m_buffer_type;
60 BufferUsage m_buffer_usage;