1
1
forked from 0ad/0ad

Territory boundaries are now rendered before transparent objects, so these can properly cover them.

This was SVN commit r4306.
This commit is contained in:
Matei 2006-09-06 22:26:27 +00:00
parent e2262b0525
commit c183bcde1f
3 changed files with 16 additions and 5 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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<CEntity*>& 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);
}