summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2021-02-18 12:21:47 +0100
committeraap <aap@papnet.eu>2021-02-18 12:21:47 +0100
commit9db87fc6365ee76f3281ca2474f92ec4f155920d (patch)
tree1b60c229e7ac6212d1d96025d32473c9ec9f6eef
parentupdate librw (diff)
downloadre3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar.gz
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar.bz2
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar.lz
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar.xz
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.tar.zst
re3-9db87fc6365ee76f3281ca2474f92ec4f155920d.zip
-rw-r--r--src/control/Pickups.cpp4
-rw-r--r--src/core/main.cpp16
-rw-r--r--src/core/main.h6
-rw-r--r--src/extras/postfx.cpp4
-rw-r--r--src/render/Antennas.cpp4
-rw-r--r--src/render/Clouds.cpp13
-rw-r--r--src/render/Coronas.cpp8
-rw-r--r--src/render/Fluff.cpp2
-rw-r--r--src/render/Glass.cpp4
-rw-r--r--src/render/MBlur.cpp3
-rw-r--r--src/render/Particle.cpp5
-rw-r--r--src/render/PointLights.cpp4
-rw-r--r--src/render/Renderer.cpp28
-rw-r--r--src/render/Rubbish.cpp4
-rw-r--r--src/render/Shadows.cpp8
-rw-r--r--src/render/Skidmarks.cpp4
-rw-r--r--src/render/SpecialFX.cpp2
-rw-r--r--src/render/WaterCannon.cpp2
-rw-r--r--src/render/WaterLevel.cpp3
-rw-r--r--src/rw/VisibilityPlugins.cpp3
-rw-r--r--src/weapons/WeaponEffects.cpp5
21 files changed, 132 insertions, 0 deletions
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 <d3d8caps.h>
#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<EntityInfo> *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<EntityInfo> *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);