From 9db87fc6365ee76f3281ca2474f92ec4f155920d Mon Sep 17 00:00:00 2001 From: aap Date: Thu, 18 Feb 2021 12:21:47 +0100 Subject: [PATCH] add debug render groups --- src/control/Pickups.cpp | 4 ++++ src/core/main.cpp | 16 ++++++++++++++++ src/core/main.h | 6 ++++++ src/extras/postfx.cpp | 4 ++++ src/render/Antennas.cpp | 4 ++++ src/render/Clouds.cpp | 13 +++++++++++++ src/render/Coronas.cpp | 8 ++++++++ src/render/Fluff.cpp | 2 ++ src/render/Glass.cpp | 4 ++++ src/render/MBlur.cpp | 3 +++ src/render/Particle.cpp | 5 +++++ src/render/PointLights.cpp | 4 ++++ src/render/Renderer.cpp | 28 ++++++++++++++++++++++++++++ src/render/Rubbish.cpp | 4 ++++ src/render/Shadows.cpp | 8 ++++++++ src/render/Skidmarks.cpp | 4 ++++ src/render/SpecialFX.cpp | 2 ++ src/render/WaterCannon.cpp | 2 ++ src/render/WaterLevel.cpp | 3 +++ src/rw/VisibilityPlugins.cpp | 3 +++ src/weapons/WeaponEffects.cpp | 5 +++++ 21 files changed, 132 insertions(+) diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index 96a8a670..be9f734d 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -1330,6 +1330,8 @@ CPacManPickups::Render() { if (!bPMActive) return; + PUSH_RENDERGROUP("CPacManPickups::Render"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE); @@ -1363,6 +1365,8 @@ CPacManPickups::Render() RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, FALSE); + + POP_RENDERGROUP(); } void diff --git a/src/core/main.cpp b/src/core/main.cpp index b47f5d37..5eccf759 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1313,6 +1313,7 @@ if(gbRenderEverythingBarRoads) void RenderScene_new(void) { + PUSH_RENDERGROUP("RenderScene_new"); CClouds::Render(); DoRWRenderHorizon(); @@ -1320,6 +1321,7 @@ RenderScene_new(void) DefinedState(); // CMattRenderer::ResetRenderStates // moved CRenderer::RenderBoats to before transparent water + POP_RENDERGROUP(); } // TODO @@ -1327,6 +1329,7 @@ bool FredIsInFirstPersonCam(void) { return false; } void RenderEffects_new(void) { + PUSH_RENDERGROUP("RenderEffects_new"); CShadows::RenderStaticShadows(); // CRenderer::GenerateEnvironmentMap CShadows::RenderStoredShadows(); @@ -1369,6 +1372,7 @@ if(gbRenderFadingInEntities) CPointLights::RenderFogEffect(); CMovingThings::Render(); CRenderer::RenderFirstPersonVehicle(); + POP_RENDERGROUP(); } #endif @@ -1381,6 +1385,7 @@ RenderScene(void) return; } #endif + PUSH_RENDERGROUP("RenderScene"); CClouds::Render(); DoRWRenderHorizon(); CRenderer::RenderRoads(); @@ -1395,11 +1400,13 @@ RenderScene(void) CRenderer::RenderVehiclesButNotBoats(); #endif CWeather::RenderRainStreaks(); + POP_RENDERGROUP(); } void RenderDebugShit(void) { + PUSH_RENDERGROUP("RenderDebugShit"); CTheScripts::RenderTheScriptDebugLines(); #ifndef FINAL if(gbShowCollisionLines) @@ -1408,6 +1415,7 @@ RenderDebugShit(void) CDebug::DrawLines(); DefinedState(); #endif + POP_RENDERGROUP(); } void @@ -1419,6 +1427,7 @@ RenderEffects(void) return; } #endif + PUSH_RENDERGROUP("RenderEffects"); CGlass::Render(); CWaterCannons::Render(); CSpecialFX::Render(); @@ -1434,11 +1443,13 @@ RenderEffects(void) CPointLights::RenderFogEffect(); CMovingThings::Render(); CRenderer::RenderFirstPersonVehicle(); + POP_RENDERGROUP(); } void Render2dStuff(void) { + PUSH_RENDERGROUP("Render2dStuff"); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); @@ -1504,6 +1515,7 @@ Render2dStuff(void) #ifdef DEBUGMENU DebugMenuRender(); #endif + POP_RENDERGROUP(); } void @@ -1511,21 +1523,25 @@ RenderMenus(void) { if (FrontEndMenuManager.m_bMenuActive) { + PUSH_RENDERGROUP("RenderMenus"); PUSH_MEMID(MEMID_FRONTEND); FrontEndMenuManager.DrawFrontEnd(); POP_MEMID(); + POP_RENDERGROUP(); } } void Render2dStuffAfterFade(void) { + PUSH_RENDERGROUP("Render2dStuffAfterFade"); #ifndef MASTER DisplayGameDebugText(); #endif CHud::DrawAfterFade(); CFont::DrawFonts(); + POP_RENDERGROUP(); } void diff --git a/src/core/main.h b/src/core/main.h index 9f181101..787d4f52 100644 --- a/src/core/main.h +++ b/src/core/main.h @@ -1,5 +1,11 @@ #pragma once +#if defined(RW_OPENGL) +#define PUSH_RENDERGROUP(str) glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, str) +#define POP_RENDERGROUP() glPopDebugGroup() +#else +#endif + struct GlobalScene { RpWorld *world; diff --git a/src/extras/postfx.cpp b/src/extras/postfx.cpp index b94d245d..03d4833e 100644 --- a/src/extras/postfx.cpp +++ b/src/extras/postfx.cpp @@ -7,6 +7,7 @@ #error "Need librw for EXTENDED_COLOURFILTER" #endif +#include "main.h" #include "RwHelper.h" #include "Camera.h" #include "MBlur.h" @@ -407,6 +408,7 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu break; } + PUSH_RENDERGROUP("CPostFX::Render"); if(pFrontBuffer == nil) Open(cam); assert(pFrontBuffer); @@ -464,6 +466,8 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu bJustInitialised = false; }else bJustInitialised = true; + + POP_RENDERGROUP(); } #endif diff --git a/src/render/Antennas.cpp b/src/render/Antennas.cpp index 452069a0..5e30aca2 100644 --- a/src/render/Antennas.cpp +++ b/src/render/Antennas.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "Antennas.h" CAntenna CAntennas::aAntennas[NUMANTENNAS]; @@ -70,6 +71,7 @@ CAntennas::Render(void) { int i, j; + PUSH_RENDERGROUP("CAntennas::Render"); for(i = 0; i < NUMANTENNAS; i++){ if(!aAntennas[i].active) continue; @@ -101,6 +103,8 @@ CAntennas::Render(void) } RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); + + POP_RENDERGROUP(); } void diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp index 684f5d74..957844a5 100644 --- a/src/render/Clouds.cpp +++ b/src/render/Clouds.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "Sprite.h" #include "Sprite2d.h" #include "General.h" @@ -123,6 +124,8 @@ CClouds::Render(void) RwV3d screenpos; RwV3d worldpos; + PUSH_RENDERGROUP("CClouds::Render"); + CCoronas::SunBlockedByClouds = false; RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); @@ -310,6 +313,8 @@ CClouds::Render(void) RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); + + POP_RENDERGROUP(); } bool @@ -322,6 +327,8 @@ void CClouds::RenderBackground(int16 topred, int16 topgreen, int16 topblue, int16 botred, int16 botgreen, int16 botblue, int16 alpha) { + PUSH_RENDERGROUP("CClouds::RenderBackground"); + CVector left = TheCamera.GetRight(); float c = left.Magnitude2D(); if(c > 1.0f) @@ -422,6 +429,8 @@ CClouds::RenderBackground(int16 topred, int16 topgreen, int16 topblue, ms_colourBottom.g = (topgreen + 2 * botgreen) / 3; ms_colourBottom.b = (topblue + 2 * botblue) / 3; } + + POP_RENDERGROUP(); } void @@ -436,6 +445,8 @@ CClouds::RenderHorizon(void) if(ms_horizonZ > SCREEN_HEIGHT) return; + PUSH_RENDERGROUP("CClouds::RenderHorizon"); + float z1 = Min(ms_horizonZ + SMALLSTRIPHEIGHT, SCREEN_HEIGHT); CSprite2d::DrawRectXLU(CRect(0, ms_horizonZ, SCREEN_WIDTH, z1), ms_colourBottom, ms_colourBottom, ms_colourTop, ms_colourTop); @@ -450,4 +461,6 @@ CClouds::RenderHorizon(void) z2 = Min(z2, SCREEN_HEIGHT); CSprite2d::DrawRect(CRect(0, z1, SCREEN_WIDTH, z2), ms_colourBottom, ms_colourBottom, ms_colourTop, ms_colourTop); + + POP_RENDERGROUP(); } diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp index 32957259..68e57b16 100644 --- a/src/render/Coronas.cpp +++ b/src/render/Coronas.cpp @@ -235,6 +235,8 @@ CCoronas::Render(void) int i, j; int screenw, screenh; + PUSH_RENDERGROUP("CCoronas::Render"); + screenw = RwRasterGetWidth(RwCameraGetRaster(Scene.camera)); screenh = RwRasterGetHeight(RwCameraGetRaster(Scene.camera)); @@ -418,6 +420,8 @@ CCoronas::Render(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void @@ -428,6 +432,8 @@ CCoronas::RenderReflections(void) CEntity *entity; if(CWeather::WetRoads > 0.0f){ + PUSH_RENDERGROUP("CCoronas::RenderReflections"); + #ifdef FIX_BUGS CSprite::InitSpriteBuffer(); #endif @@ -505,6 +511,8 @@ CCoronas::RenderReflections(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); + + POP_RENDERGROUP(); }else{ for(i = 0; i < NUMCORONAS; i++) aCoronas[i].renderReflection = false; diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp index c76d6109..c4cfe7f7 100644 --- a/src/render/Fluff.cpp +++ b/src/render/Fluff.cpp @@ -189,6 +189,7 @@ void CMovingThings::Update() void CMovingThings::Render() { int i; + PUSH_RENDERGROUP("CMovingThings::Render"); for (i = 0; i < ARRAY_SIZE(aScrollBars); ++i) { if (aScrollBars[i].IsVisible()) @@ -204,6 +205,7 @@ void CMovingThings::Render() if (aDigitalClocks[i].IsVisible()) aDigitalClocks[i].Render(); } + POP_RENDERGROUP(); } // ---------- CMovingThing ---------- diff --git a/src/render/Glass.cpp b/src/render/Glass.cpp index 3b6fbd46..ede06ba1 100644 --- a/src/render/Glass.cpp +++ b/src/render/Glass.cpp @@ -261,6 +261,8 @@ CGlass::Render(void) RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDONE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); + PUSH_RENDERGROUP("CGlass::Render"); + for ( int32 i = 0; i < NUM_GLASSPANES; i++ ) { if ( aGlassPanes[i].m_bActive ) @@ -270,6 +272,8 @@ CGlass::Render(void) for ( uint32 i = 0; i < NumGlassEntities; i++ ) RenderEntityInGlass(apEntitiesToBeRendered[i]); + POP_RENDERGROUP(); + NumGlassEntities = 0; RenderHiLightPolys(); diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp index a7d07ad9..8e5fba2a 100644 --- a/src/render/MBlur.cpp +++ b/src/render/MBlur.cpp @@ -6,6 +6,7 @@ #include #endif +#include "main.h" #include "RwHelper.h" #include "Camera.h" #include "MBlur.h" @@ -208,6 +209,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u #ifdef EXTENDED_COLOURFILTER CPostFX::Render(cam, red, green, blue, blur, type, bluralpha); #else + PUSH_RENDERGROUP("CMBlur::MotionBlurRender"); RwRGBA color = { (RwUInt8)red, (RwUInt8)green, (RwUInt8)blue, (RwUInt8)blur }; #ifdef GTA_PS2 if( pFrontBuffer ) @@ -227,6 +229,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u OverlayRender(cam, nil, color, type, bluralpha); } #endif + POP_RENDERGROUP(); #endif } diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 6c643caf..07e80abe 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "General.h" #include "Timer.h" #include "TxdStore.h" @@ -1477,6 +1478,8 @@ void CParticle::Update() void CParticle::Render() { + PUSH_RENDERGROUP("CParticle::Render"); + RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void *)rwTEXTUREADDRESSWRAP); RwRenderStateSet(rwRENDERSTATETEXTUREPERSPECTIVE, (void *)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void *)FALSE); @@ -1794,6 +1797,8 @@ void CParticle::Render() RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void *)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDSRCALPHA); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDINVSRCALPHA); + + POP_RENDERGROUP(); } void CParticle::RemovePSystem(tParticleType type) diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp index 6f0b4d46..84ac4ab2 100644 --- a/src/render/PointLights.cpp +++ b/src/render/PointLights.cpp @@ -142,6 +142,8 @@ CPointLights::RenderFogEffect(void) CVector spriteCoors; float spritew, spriteh; + PUSH_RENDERGROUP("CPointLights::RenderFogEffect"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE); @@ -282,4 +284,6 @@ CPointLights::RenderFogEffect(void) } } } + + POP_RENDERGROUP(); } diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 2c224677..9e60fe22 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -158,6 +158,8 @@ CRenderer::RenderOneRoad(CEntity *e) #ifdef EXTENDED_PIPELINES CustomPipes::AttachGlossPipe(e->GetAtomic()); #endif + PUSH_RENDERGROUP(CModelInfo::GetModelInfo(e->GetModelIndex())->GetModelName()); + #ifdef EXTRA_MODEL_FLAGS if(!e->IsBuilding() || CModelInfo::GetModelInfo(e->GetModelIndex())->RenderDoubleSided()){ BACKFACE_CULLING_OFF; @@ -166,6 +168,8 @@ CRenderer::RenderOneRoad(CEntity *e) }else #endif e->Render(); + + POP_RENDERGROUP(); } } @@ -213,6 +217,8 @@ CRenderer::RenderOneNonRoad(CEntity *e) } #endif + PUSH_RENDERGROUP(CModelInfo::GetModelInfo(e->GetModelIndex())->GetModelName()); + resetLights = e->SetupLighting(); if(e->IsVehicle()) @@ -246,6 +252,8 @@ CRenderer::RenderOneNonRoad(CEntity *e) } e->RemoveLighting(resetLights); + + POP_RENDERGROUP(); } void @@ -271,6 +279,7 @@ CRenderer::RenderRoads(void) int i; CTreadable *t; + PUSH_RENDERGROUP("CRenderer::RenderRoads"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); BACKFACE_CULLING_ON; DeActivateDirectional(); @@ -296,6 +305,7 @@ CRenderer::RenderRoads(void) #endif } } + POP_RENDERGROUP(); } void @@ -306,6 +316,7 @@ CRenderer::RenderEverythingBarRoads(void) CVector dist; EntityInfo ei; + PUSH_RENDERGROUP("CRenderer::RenderEverythingBarRoads"); BACKFACE_CULLING_ON; gSortedVehiclesAndPeds.Clear(); @@ -337,6 +348,7 @@ CRenderer::RenderEverythingBarRoads(void) }else RenderOneNonRoad(e); } + POP_RENDERGROUP(); } void @@ -361,6 +373,7 @@ CRenderer::RenderBoats(void) { CLink *node; + PUSH_RENDERGROUP("CRenderer::RenderBoats"); BACKFACE_CULLING_ON; for(node = gSortedVehiclesAndPeds.tail.prev; @@ -371,6 +384,7 @@ CRenderer::RenderBoats(void) if(v->IsBoat()) RenderOneNonRoad(v); } + POP_RENDERGROUP(); } #ifdef NEW_RENDERER @@ -475,6 +489,7 @@ CRenderer::RenderWorld(int pass) switch(pass){ case 0: // Roads + PUSH_RENDERGROUP("CRenderer::RenderWorld - Roads"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); for(i = 0; i < ms_nNoOfVisibleBuildings; i++){ e = ms_aVisibleBuildingPtrs[i]; @@ -495,9 +510,11 @@ CRenderer::RenderWorld(int pass) RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); WorldRender::RenderBlendPass(PASS_BLEND); WorldRender::numBlendInsts[PASS_BLEND] = 0; + POP_RENDERGROUP(); break; case 1: // Opaque + PUSH_RENDERGROUP("CRenderer::RenderWorld - Opaque"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); for(i = 0; i < ms_nNoOfVisibleBuildings; i++){ e = ms_aVisibleBuildingPtrs[i]; @@ -518,14 +535,17 @@ CRenderer::RenderWorld(int pass) RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE); WorldRender::RenderBlendPass(PASS_NOZ); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); + POP_RENDERGROUP(); break; case 2: // Transparent + PUSH_RENDERGROUP("CRenderer::RenderWorld - Transparent"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE); WorldRender::RenderBlendPass(PASS_ADD); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); WorldRender::RenderBlendPass(PASS_BLEND); + POP_RENDERGROUP(); break; } } @@ -536,11 +556,13 @@ CRenderer::RenderPeds(void) int i; CEntity *e; + PUSH_RENDERGROUP("CRenderer::RenderPeds"); for(i = 0; i < ms_nNoOfVisibleVehicles; i++){ e = ms_aVisibleVehiclePtrs[i]; if(e->IsPed()) RenderOneNonRoad(e); } + POP_RENDERGROUP(); } void @@ -551,6 +573,7 @@ CRenderer::RenderVehicles(void) EntityInfo ei; CLink *node; + PUSH_RENDERGROUP("CRenderer::RenderVehicles"); // not the real thing for(i = 0; i < ms_nNoOfVisibleVehicles; i++){ e = ms_aVisibleVehiclePtrs[i]; @@ -567,6 +590,7 @@ CRenderer::RenderVehicles(void) node != &gSortedVehiclesAndPeds.head; node = node->prev) RenderOneNonRoad(node->item.ent); + POP_RENDERGROUP(); } void @@ -575,6 +599,7 @@ CRenderer::RenderWater(void) int i; CEntity *e; + PUSH_RENDERGROUP("CRenderer::RenderWater"); RwRenderStateSet(rwRENDERSTATETEXTURERASTER, nil); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); @@ -598,6 +623,7 @@ CRenderer::RenderWater(void) CWaterLevel::RenderWater(); SetStencilState(0); + POP_RENDERGROUP(); } void @@ -618,11 +644,13 @@ CRenderer::ClearForFrame(void) void CRenderer::RenderFadingInEntities(void) { + PUSH_RENDERGROUP("CRenderer::RenderFadingInEntities"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); BACKFACE_CULLING_ON; DeActivateDirectional(); SetAmbientColours(); CVisibilityPlugins::RenderFadingEntities(); + POP_RENDERGROUP(); } void diff --git a/src/render/Rubbish.cpp b/src/render/Rubbish.cpp index 18a20bc7..8da6b025 100644 --- a/src/render/Rubbish.cpp +++ b/src/render/Rubbish.cpp @@ -52,6 +52,8 @@ CRubbish::Render(void) { int type; + PUSH_RENDERGROUP("CRubbish::Render"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); @@ -137,6 +139,8 @@ CRubbish::Render(void) RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index d7eccbfd..3884d3bb 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -687,6 +687,8 @@ CShadows::SetRenderModeForShadowType(uint8 ShadowType) void CShadows::RenderStoredShadows(void) { + PUSH_RENDERGROUP("CShadows::RenderStoredShadows"); + RenderBuffer::ClearRenderBuffer(); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)FALSE); @@ -784,11 +786,15 @@ CShadows::RenderStoredShadows(void) RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void *)TRUE); ShadowsStoredToBeRendered = 0; + + POP_RENDERGROUP(); } void CShadows::RenderStaticShadows(void) { + PUSH_RENDERGROUP("CShadows::RenderStaticShadows"); + RenderBuffer::ClearRenderBuffer(); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)FALSE); @@ -855,6 +861,8 @@ CShadows::RenderStaticShadows(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)TRUE); + + POP_RENDERGROUP(); } void diff --git a/src/render/Skidmarks.cpp b/src/render/Skidmarks.cpp index 9e509b52..4c662a79 100644 --- a/src/render/Skidmarks.cpp +++ b/src/render/Skidmarks.cpp @@ -118,6 +118,8 @@ CSkidmarks::Render(void) int i, j; RwTexture *lastTex = nil; + PUSH_RENDERGROUP("CSkidmarks::Render"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); @@ -174,6 +176,8 @@ CSkidmarks::Render(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void diff --git a/src/render/SpecialFX.cpp b/src/render/SpecialFX.cpp index 97b70a94..6d96d21a 100644 --- a/src/render/SpecialFX.cpp +++ b/src/render/SpecialFX.cpp @@ -136,6 +136,7 @@ CSpecialFX::Shutdown(void) void CSpecialFX::Render(void) { + PUSH_RENDERGROUP("CSpecialFX::Render"); CMotionBlurStreaks::Render(); CBulletTraces::Render(); CBrightLights::Render(); @@ -145,6 +146,7 @@ CSpecialFX::Render(void) if(!(gbNewRenderer && FredIsInFirstPersonCam())) #endif C3dMarkers::Render(); + POP_RENDERGROUP(); } CRegisteredMotionBlurStreak CMotionBlurStreaks::aStreaks[NUMMBLURSTREAKS]; diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp index 3aaa74be..08898be8 100644 --- a/src/render/WaterCannon.cpp +++ b/src/render/WaterCannon.cpp @@ -297,9 +297,11 @@ void CWaterCannons::Update(void) void CWaterCannons::Render(void) { + PUSH_RENDERGROUP("CWaterCannons::Render"); for ( int32 i = 0; i < NUM_WATERCANNONS; i++ ) { if ( aCannons[i].m_nId != 0 ) aCannons[i].Render(); } + POP_RENDERGROUP(); } diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index 7aa01f5a..bccaea39 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -643,6 +643,7 @@ CWaterLevel::RenderWater() if (gbDontRenderWater) return; #endif + PUSH_RENDERGROUP("CWaterLevel::RenderWater"); bool bUseCamEndX = false; bool bUseCamStartY = false; @@ -1066,6 +1067,8 @@ CWaterLevel::RenderWater() } DefinedState(); + + POP_RENDERGROUP(); } void diff --git a/src/rw/VisibilityPlugins.cpp b/src/rw/VisibilityPlugins.cpp index 051a6883..9ea5b11c 100644 --- a/src/rw/VisibilityPlugins.cpp +++ b/src/rw/VisibilityPlugins.cpp @@ -293,6 +293,7 @@ CVisibilityPlugins::RenderFadingEntities(void) continue; #endif mi = (CSimpleModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex()); + #ifdef FIX_BUGS if(mi->GetModelType() == MITYPE_SIMPLE && mi->m_noZwrite) #else @@ -308,7 +309,9 @@ CVisibilityPlugins::RenderFadingEntities(void) DeActivateDirectional(); SetAmbientColours(); e->bImBeingRendered = true; + PUSH_RENDERGROUP(mi->GetModelName()); RenderFadingAtomic((RpAtomic*)e->m_rwObject, node->item.sort); + POP_RENDERGROUP(); e->bImBeingRendered = false; }else CRenderer::RenderOneNonRoad(e); diff --git a/src/weapons/WeaponEffects.cpp b/src/weapons/WeaponEffects.cpp index 214ae9c7..32e55fb1 100644 --- a/src/weapons/WeaponEffects.cpp +++ b/src/weapons/WeaponEffects.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "WeaponEffects.h" #include "TxdStore.h" #include "Sprite.h" @@ -84,11 +85,15 @@ CWeaponEffects::Render(void) float w, h; if ( CSprite::CalcScreenCoors(gCrossHair.m_vecPos, &pos, &w, &h, true) ) { + PUSH_RENDERGROUP("CWeaponEffects::Render"); + float recipz = 1.0f / pos.z; CSprite::RenderOneXLUSprite(pos.x, pos.y, pos.z, gCrossHair.m_fSize * w, gCrossHair.m_fSize * h, gCrossHair.m_nRed, gCrossHair.m_nGreen, gCrossHair.m_nBlue, 255, recipz, 255); + + POP_RENDERGROUP(); } RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)FALSE);