mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-12 16:58:39 +00:00
Handle vertex & index VBOs separately in GL drivers
This commit is contained in:
parent
be9aa19208
commit
6b7fc1e9fe
7 changed files with 346 additions and 283 deletions
|
@ -58,27 +58,28 @@ public:
|
|||
|
||||
struct SHWBufferLink_opengl : public SHWBufferLink
|
||||
{
|
||||
SHWBufferLink_opengl(const scene::IMeshBuffer *_MeshBuffer) :
|
||||
SHWBufferLink(_MeshBuffer), vbo_verticesID(0), vbo_indicesID(0) {}
|
||||
SHWBufferLink_opengl(const scene::IVertexBuffer *vb) : SHWBufferLink(vb) {}
|
||||
SHWBufferLink_opengl(const scene::IIndexBuffer *ib) : SHWBufferLink(ib) {}
|
||||
|
||||
GLuint vbo_verticesID; // tmp
|
||||
GLuint vbo_indicesID; // tmp
|
||||
|
||||
GLuint vbo_verticesSize; // tmp
|
||||
GLuint vbo_indicesSize; // tmp
|
||||
GLuint vbo_ID = 0;
|
||||
u32 vbo_Size = 0;
|
||||
};
|
||||
|
||||
//! updates hardware buffer if needed
|
||||
bool updateHardwareBuffer(SHWBufferLink *HWBuffer) override;
|
||||
|
||||
//! Create hardware buffer from mesh
|
||||
SHWBufferLink *createHardwareBuffer(const scene::IMeshBuffer *mb) override;
|
||||
//! Create hardware buffer from vertex buffer
|
||||
SHWBufferLink *createHardwareBuffer(const scene::IVertexBuffer *vb) override;
|
||||
|
||||
//! Create hardware buffer from index buffer
|
||||
SHWBufferLink *createHardwareBuffer(const scene::IIndexBuffer *ib) override;
|
||||
|
||||
//! Delete hardware buffer (only some drivers can)
|
||||
void deleteHardwareBuffer(SHWBufferLink *HWBuffer) override;
|
||||
|
||||
//! Draw hardware buffer
|
||||
void drawHardwareBuffer(SHWBufferLink *HWBuffer) override;
|
||||
void drawBuffers(const scene::IVertexBuffer *vb,
|
||||
const scene::IIndexBuffer *ib, u32 primCount,
|
||||
scene::E_PRIMITIVE_TYPE pType = scene::EPT_TRIANGLES) override;
|
||||
|
||||
//! Create occlusion query.
|
||||
/** Use node for identification and mesh for occlusion test. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue