Completely remove dynamic lights

This commit is contained in:
Shinovon 2026-05-03 07:14:41 +05:00
parent 2b8a26d4d7
commit d2fbcccd01
10 changed files with 9 additions and 264 deletions

View file

@ -19,8 +19,6 @@
namespace rw {
namespace gl3 {
#define MAX_LIGHTS
extern "C" int draw;
extern "C" int render;
@ -28,7 +26,6 @@ void
drawInst_simple(InstanceDataHeader *header, InstanceData *inst)
{
draw++;
flushCache();
glDrawElements(header->primType, inst->numIndex,
GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset);
}
@ -113,20 +110,9 @@ int32
lightingCB(Atomic *atomic)
{
WorldLights lightData;
Light *directionals[8];
Light *locals[8];
lightData.directionals = directionals;
lightData.numDirectionals = 0; // 8;
lightData.locals = locals;
lightData.numLocals = 0; // 8;
if(atomic->geometry->flags & rw::Geometry::LIGHT){
((World*)engine->currentWorld)->enumerateLights(atomic, &lightData);
if((atomic->geometry->flags & rw::Geometry::NORMALS) == 0){
// Get rid of lights that need normals when we don't have any
lightData.numDirectionals = 0;
lightData.numLocals = 0;
}
return setLights(&lightData);
}else{
memset(&lightData, 0, sizeof(lightData));
@ -142,12 +128,17 @@ defaultRenderCB(Atomic *atomic, InstanceDataHeader *header)
uint32 flags = atomic->geometry->flags;
setWorldMatrix(atomic->getFrame()->getLTM());
int32 vsBits = lightingCB(atomic);
lightingCB(atomic);
setupVertexInput(header);
InstanceData *inst = header->inst;
int32 n = header->numMeshes;
if(getAlphaTest())
defaultShader->use();
else
defaultShader_noAT->use();
while(n--){
m = inst->material;
@ -158,18 +149,6 @@ defaultRenderCB(Atomic *atomic, InstanceDataHeader *header)
rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 0xFF);
// if((vsBits & VSLIGHT_MASK) == 0){
if(getAlphaTest())
defaultShader->use();
else
defaultShader_noAT->use();
// }else{
// if(getAlphaTest())
// defaultShader_fullLight->use();
// else
// defaultShader_fullLight_noAT->use();
// }
drawInst(header, inst);
inst++;
}