mirror of
https://github.com/love2d/love.git
synced 2026-08-19 20:19:42 +02:00
Meshes expose GraphicsBuffers, part 2
This commit is contained in:
@@ -32,6 +32,9 @@ namespace love
|
||||
{
|
||||
namespace graphics
|
||||
{
|
||||
|
||||
class Graphics;
|
||||
|
||||
namespace opengl
|
||||
{
|
||||
|
||||
@@ -39,9 +42,14 @@ class Buffer final : public love::graphics::Buffer, public Volatile
|
||||
{
|
||||
public:
|
||||
|
||||
Buffer(size_t size, const void *data, BufferTypeFlags typeflags, BufferUsage usage, uint32 mapflags);
|
||||
Buffer(const Settings &settings, const void *data, size_t size);
|
||||
Buffer(love::graphics::Graphics *gfx, const Settings &settings, const std::vector<DataDeclaration> &format, const void *data, size_t size, size_t arraylength);
|
||||
virtual ~Buffer();
|
||||
|
||||
// Implements Volatile.
|
||||
bool loadVolatile() override;
|
||||
void unloadVolatile() override;
|
||||
|
||||
void *map() override;
|
||||
void unmap() override;
|
||||
void setMappedRangeModified(size_t offset, size_t size) override;
|
||||
@@ -50,29 +58,26 @@ public:
|
||||
|
||||
void copyTo(size_t offset, size_t size, love::graphics::Buffer *other, size_t otheroffset) override;
|
||||
|
||||
// Implements Volatile.
|
||||
bool loadVolatile() override;
|
||||
void unloadVolatile() override;
|
||||
|
||||
private:
|
||||
|
||||
void initialize(const void *data);
|
||||
|
||||
bool load(bool restore);
|
||||
void unload();
|
||||
|
||||
void unmapStatic(size_t offset, size_t size);
|
||||
void unmapStream();
|
||||
|
||||
BufferType mapType;
|
||||
GLenum target;
|
||||
BufferType mapType = BUFFERTYPE_VERTEX;
|
||||
GLenum target = 0;
|
||||
|
||||
// The VBO identifier. Assigned by OpenGL.
|
||||
GLuint vbo;
|
||||
GLuint vbo = 0;
|
||||
|
||||
// A pointer to mapped memory.
|
||||
char *memoryMap;
|
||||
char *memoryMap = nullptr;
|
||||
|
||||
size_t modifiedOffset;
|
||||
size_t modifiedSize;
|
||||
size_t modifiedOffset = 0;
|
||||
size_t modifiedSize = 0;
|
||||
|
||||
}; // Buffer
|
||||
|
||||
|
||||
Reference in New Issue
Block a user