update librw; gl cleanup

This commit is contained in:
aap 2021-02-18 01:58:42 +01:00
parent 5ce7a0bde4
commit 59bf3a1cc4
2 changed files with 15 additions and 71 deletions

View file

@ -91,13 +91,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
setWorldMatrix(atomic->getFrame()->getLTM()); setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic); lightingCB(atomic);
#ifdef RW_GL_USE_VAOS setupVertexInput(header);
glBindVertexArray(header->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo);
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
setAttribPointers(header->attribDesc, header->numAttribs);
#endif
InstanceData *inst = header->inst; InstanceData *inst = header->inst;
rw::int32 n = header->numMeshes; rw::int32 n = header->numMeshes;
@ -138,9 +132,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
SetRenderState(SRCBLEND, BLENDSRCALPHA); SetRenderState(SRCBLEND, BLENDSRCALPHA);
#ifndef RW_GL_USE_VAOS teardownVertexInput(header);
disableAttribPointers(header->attribDesc, header->numAttribs);
#endif
} }
void void
@ -211,13 +203,7 @@ worldRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
setWorldMatrix(atomic->getFrame()->getLTM()); setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic); lightingCB(atomic);
#ifdef RW_GL_USE_VAOS setupVertexInput(header);
glBindVertexArray(header->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo);
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
setAttribPointers(header->attribDesc, header->numAttribs);
#endif
InstanceData *inst = header->inst; InstanceData *inst = header->inst;
rw::int32 n = header->numMeshes; rw::int32 n = header->numMeshes;
@ -255,9 +241,7 @@ worldRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
inst++; inst++;
} }
setTexture(1, nil); setTexture(1, nil);
#ifndef RW_GL_USE_VAOS teardownVertexInput(header);
disableAttribPointers(header->attribDesc, header->numAttribs);
#endif
} }
void void
@ -319,13 +303,7 @@ glossRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
Material *m; Material *m;
#ifdef RW_GL_USE_VAOS setupVertexInput(header);
glBindVertexArray(header->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo);
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
setAttribPointers(header->attribDesc, header->numAttribs);
#endif
InstanceData *inst = header->inst; InstanceData *inst = header->inst;
rw::int32 n = header->numMeshes; rw::int32 n = header->numMeshes;
@ -368,9 +346,7 @@ glossRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
SetRenderState(SRCBLEND, BLENDSRCALPHA); SetRenderState(SRCBLEND, BLENDSRCALPHA);
SetRenderState(DESTBLEND, BLENDINVSRCALPHA); SetRenderState(DESTBLEND, BLENDINVSRCALPHA);
#ifndef RW_GL_USE_VAOS teardownVertexInput(header);
disableAttribPointers(header->attribDesc, header->numAttribs);
#endif
} }
void void
@ -454,13 +430,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
setWorldMatrix(atomic->getFrame()->getLTM()); setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic); lightingCB(atomic);
#ifdef RW_GL_USE_VAOS setupVertexInput(header);
glBindVertexArray(header->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo);
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
setAttribPointers(header->attribDesc, header->numAttribs);
#endif
InstanceData *inst = header->inst; InstanceData *inst = header->inst;
rw::int32 n = header->numMeshes; rw::int32 n = header->numMeshes;
@ -483,9 +453,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
drawInst(header, inst); drawInst(header, inst);
inst++; inst++;
} }
#ifndef RW_GL_USE_VAOS teardownVertexInput(header);
disableAttribPointers(header->attribDesc, header->numAttribs);
#endif
} }
static void static void
@ -505,13 +473,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
setWorldMatrix(atomic->getFrame()->getLTM()); setWorldMatrix(atomic->getFrame()->getLTM());
lightingCB(atomic); lightingCB(atomic);
#ifdef RW_GL_USE_VAOS setupVertexInput(header);
glBindVertexArray(header->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, header->ibo);
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
setAttribPointers(header->attribDesc, header->numAttribs);
#endif
InstanceData *inst = header->inst; InstanceData *inst = header->inst;
rw::int32 n = header->numMeshes; rw::int32 n = header->numMeshes;
@ -532,9 +494,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header)
drawInst(header, inst); drawInst(header, inst);
inst++; inst++;
} }
#ifndef RW_GL_USE_VAOS teardownVertexInput(header);
disableAttribPointers(header->attribDesc, header->numAttribs);
#endif
} }
void void
@ -697,13 +657,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
if(!setupDone){ if(!setupDone){
defaultShader->use(); defaultShader->use();
setWorldMatrix(&building->matrix); setWorldMatrix(&building->matrix);
#ifdef RW_GL_USE_VAOS setupVertexInput(building->instHeader);
glBindVertexArray(building->instHeader->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, building->instHeader->ibo);
glBindBuffer(GL_ARRAY_BUFFER, building->instHeader->vbo);
setAttribPointers(building->instHeader->attribDesc, building->instHeader->numAttribs);
#endif
setLights(&lights); setLights(&lights);
setupDone = true; setupDone = true;
} }
@ -714,9 +668,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass)
drawInst(building->instHeader, inst); drawInst(building->instHeader, inst);
} }
#ifndef RW_GL_USE_VAOS teardownVertexInput(building->instHeader);
disableAttribPointers(building->instHeader->attribDesc, building->instHeader->numAttribs);
#endif
if(defer) if(defer)
numBlendInsts[pass]++; numBlendInsts[pass]++;
} }
@ -755,13 +707,7 @@ RenderBlendPass(int pass)
for(i = 0; i < numBlendInsts[pass]; i++){ for(i = 0; i < numBlendInsts[pass]; i++){
BuildingInst *building = &blendInsts[pass][i]; BuildingInst *building = &blendInsts[pass][i];
#ifdef RW_GL_USE_VAOS setupVertexInput(building->instHeader);
glBindVertexArray(building->instHeader->vao);
#else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, building->instHeader->ibo);
glBindBuffer(GL_ARRAY_BUFFER, building->instHeader->vbo);
setAttribPointers(building->instHeader->attribDesc, building->instHeader->numAttribs);
#endif
setWorldMatrix(&building->matrix); setWorldMatrix(&building->matrix);
if(building->lighting) if(building->lighting)
lights.ambient = pAmbient->color; lights.ambient = pAmbient->color;
@ -783,9 +729,7 @@ RenderBlendPass(int pass)
drawInst(building->instHeader, inst); drawInst(building->instHeader, inst);
} }
#ifndef RW_GL_USE_VAOS teardownVertexInput(building->instHeader);
disableAttribPointers(building->instHeader->attribDesc, building->instHeader->numAttribs);
#endif
} }
} }
} }

2
vendor/librw vendored

@ -1 +1 @@
Subproject commit c2defffca391a865af77146dffe762419066af74 Subproject commit 576d211cbd76bfef43f33f2f837c0f392dbe86fe