Make coronas array global

Correctly collect all coronas to be drawn across all view points
This commit is contained in:
Boondorl 2025-01-01 06:52:55 -05:00 committed by Magnus Norddahl
commit 3a179ec1c6
4 changed files with 6 additions and 3 deletions

View file

@ -59,6 +59,7 @@ CVAR(Bool, gl_raytrace, false, 0/*CVAR_ARCHIVE | CVAR_GLOBALCONFIG*/)
extern bool NoInterpolateView;
static SWSceneDrawer *swdrawer;
TArray<AActor*> Coronas;
void CleanSWDrawer()
{
@ -333,6 +334,7 @@ static void CheckTimer(FRenderState &state, uint64_t ShaderStartTime)
sector_t* RenderView(player_t* player)
{
Coronas.Clear();
auto RenderState = screen->RenderState();
RenderState->SetFlatVertexBuffer();
RenderState->ResetVertices();

View file

@ -69,6 +69,8 @@ CVAR(Bool, gl_coronas, true, CVAR_ARCHIVE);
CVAR(Bool, gl_levelmesh, false, 0/*CVAR_ARCHIVE | CVAR_GLOBALCONFIG*/)
extern TArray<AActor*> Coronas;
sector_t * hw_FakeFlat(sector_t * sec, sector_t * dest, area_t in_area, bool back);
@ -136,7 +138,6 @@ void HWDrawInfo::StartScene(FRenderViewpoint &parentvp, HWViewpointUniforms *uni
for (int i = 0; i < GLDL_TYPES; i++) drawlists[i].Reset();
hudsprites.Clear();
Coronas.Clear();
Fogballs.Clear();
VisibleTiles.Clear();
visibleDyn = 0;

View file

@ -155,7 +155,6 @@ struct HWDrawInfo
TArray<HWPortal *> Portals;
TArray<HWDecal *> Decals[2]; // the second slot is for mirrors which get rendered in a separate pass.
TArray<HUDSprite> hudsprites; // These may just be stored by value.
TArray<AActor*> Coronas;
TArray<Fogball> Fogballs;
TArray<LightmapTile*> VisibleTiles;
unsigned visibleDyn;

View file

@ -64,6 +64,7 @@
extern TArray<spritedef_t> sprites;
extern TArray<spriteframe_t> SpriteFrames;
extern uint32_t r_renderercaps;
extern TArray<AActor*> Coronas;
const float LARGE_VALUE = 1e19f;
const float MY_SQRT2 = 1.41421356237309504880; // sqrt(2)
@ -843,7 +844,7 @@ void HWSprite::Process(HWDrawInfo *di, FRenderState& state, AActor* thing, secto
if (thing->IsKindOf(NAME_Corona))
{
di->Coronas.Push(thing);
Coronas.Push(thing);
return;
}