diff --git a/group/common.mmh b/group/common.mmh index 48e8aaa..aa91247 100644 --- a/group/common.mmh +++ b/group/common.mmh @@ -10,6 +10,7 @@ USERINCLUDE . MACRO LIBRW MACRO RW_GL3 +MACRO RW_OPENGL // because carbide is too stupid MACRO MASTER DEBUGGABLE diff --git a/vendor/librw/src/gl/gl3pipe.cpp b/vendor/librw/src/gl/gl3pipe.cpp index 4df0b7c..1d43193 100644 --- a/vendor/librw/src/gl/gl3pipe.cpp +++ b/vendor/librw/src/gl/gl3pipe.cpp @@ -28,7 +28,7 @@ freeInstanceData(Geometry *geometry) return; InstanceDataHeader *header = (InstanceDataHeader*)geometry->instData; geometry->instData = nil; - glDeleteBuffers(1, &header->ibo); +// glDeleteBuffers(1, &header->ibo); glDeleteBuffers(1, &header->vbo); #ifdef RW_GL_USE_VAOS glDeleteBuffers(1, &header->vao); @@ -92,10 +92,10 @@ instanceMesh(rw::ObjPipeline *rwpipe, Geometry *geo) glGenVertexArrays(1, &header->vao); glBindVertexArray(header->vao); #endif - glGenBuffers(1, &header->ibo); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, header->totalNumIndex*2, - header->indexBuffer, GL_STATIC_DRAW); +// glGenBuffers(1, &header->ibo); +// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo); +// glBufferData(GL_ELEMENT_ARRAY_BUFFER, header->totalNumIndex*2, +// header->indexBuffer, GL_STATIC_DRAW); return header; } diff --git a/vendor/librw/src/gl/gl3render.cpp b/vendor/librw/src/gl/gl3render.cpp index 5cb201f..d4866bb 100644 --- a/vendor/librw/src/gl/gl3render.cpp +++ b/vendor/librw/src/gl/gl3render.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "../rwbase.h" #include "../rwerror.h" @@ -25,7 +26,7 @@ drawInst_simple(InstanceDataHeader *header, InstanceData *inst) { flushCache(); glDrawElements(header->primType, inst->numIndex, - GL_UNSIGNED_SHORT, (void*)(uintptr)inst->offset); + GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset); } // Emulate PS2 GS alpha test FB_ONLY case: failed alpha writes to frame- but not to depth buffer @@ -93,7 +94,7 @@ disableAttribPointers(AttribDesc *attribDescs, int32 numAttribs) void setupVertexInput(InstanceDataHeader *header) { - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, header->vbo); setAttribPointers(header->attribDesc, header->numAttribs); }