[scene] Move dynamic lights into the scene ECS

While the insertion of dlights into the BSP might wind up being overly
expensive, the automatic management of the component pool cleans up the
various loops in the renderers.

Unfortunately, (current bug) lights on entities cause the entity to
disappear due to how the entity queue system works, and the doubled
efrag chain causes crashes when changing maps, meaning lights should be
on their own entities, not additional components on entities with
visible models.

Also, the vulkan renderer segfaults on dlights (fix incoming, along with
shadows for dlights).
This commit is contained in:
Bill Currie 2023-08-04 14:56:16 +09:00
parent 7537cb8d1c
commit 35ec2ebb4c
34 changed files with 405 additions and 444 deletions

View file

@ -52,6 +52,7 @@
#include "QF/plugin/console.h"
#include "QF/plugin/vid_render.h"
#include "QF/scene/entity.h"
#include "QF/scene/light.h"
#include "QF/scene/scene.h"
#include "QF/ui/font.h"//FIXME
@ -659,7 +660,7 @@ CL_Frame (void)
if (l)
asl = l->ambient_sound_level;
S_Update (cl.viewstate.camera_transform, asl);
R_DecayLights (host_frametime);
Light_DecayLights (cl_world.scene->lights, host_frametime, realtime);
} else
S_Update (nulltransform, 0);