diff --git a/source/ps/GameSetup/GameSetup.cpp b/source/ps/GameSetup/GameSetup.cpp index 0ff94d3cd9..05d577473e 100644 --- a/source/ps/GameSetup/GameSetup.cpp +++ b/source/ps/GameSetup/GameSetup.cpp @@ -314,6 +314,7 @@ void Render() } glEnable( GL_DEPTH_TEST ); + PROFILE_START( "render entity outlines" ); g_Mouseover.renderSelectionOutlines(); g_Selection.renderSelectionOutlines(); @@ -324,11 +325,7 @@ void Render() g_Selection.renderAuras(); PROFILE_END( "render entity auras" ); - PROFILE_START( "render territories" ); - g_Game->GetWorld()->GetTerritoryManager()->renderTerritories(); - PROFILE_END( "render territories" ); - glDisable( GL_DEPTH_TEST ); - + glDisable(GL_DEPTH_TEST); PROFILE_START( "render entity bars" ); pglActiveTextureARB(GL_TEXTURE1_ARB); diff --git a/source/renderer/Renderer.cpp b/source/renderer/Renderer.cpp index 0d7629d2ca..d00e8ede32 100644 --- a/source/renderer/Renderer.cpp +++ b/source/renderer/Renderer.cpp @@ -33,6 +33,7 @@ #include "ps/World.h" #include "ps/Player.h" #include "simulation/LOSManager.h" +#include "simulation/TerritoryManager.h" #include "graphics/Model.h" #include "graphics/ModelDef.h" @@ -1209,8 +1210,12 @@ void CRenderer::FlushFrame() RenderPatches(); oglCheck(); + g_Game->GetWorld()->GetTerritoryManager()->renderTerritories(); + oglCheck(); + // render debug-related terrain overlays TerrainOverlay::RenderOverlays(); + oglCheck(); MICROLOG(L"render models"); RenderModels(); diff --git a/source/simulation/TerritoryManager.cpp b/source/simulation/TerritoryManager.cpp index 9088464a6d..d6a19ffada 100644 --- a/source/simulation/TerritoryManager.cpp +++ b/source/simulation/TerritoryManager.cpp @@ -4,6 +4,7 @@ #include "ps/Game.h" #include "ps/Player.h" +#include "ps/Profile.h" #include "graphics/Terrain.h" #include "graphics/GameView.h" #include "Entity.h" @@ -218,12 +219,17 @@ void CTerritoryManager::CalculateBoundary( std::vector& centres, size_ } void CTerritoryManager::renderTerritories() { + PROFILE( "render territories" ); + if (m_DelayedRecalculate) { Recalculate(); m_DelayedRecalculate = false; } + glDisable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_LINE_SMOOTH); glLineWidth(1.5f); @@ -313,6 +319,9 @@ void CTerritoryManager::renderTerritories() } } + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); glDisable(GL_LINE_SMOOTH); glLineWidth(1.0f); + glColor4f(1,1,1,1); } \ No newline at end of file