Adds wireframe mode to overlays and replace the private m_TerrainRenderMode usages by related getter.
This was SVN commit r24143.
This commit is contained in:
parent
ad7ac8d595
commit
4b52e87934
@ -390,18 +390,21 @@ InReaction CGameView::HandleEvent(const SDL_Event_* ev)
|
||||
g_Renderer.SetTerrainRenderMode(EDGED_FACES);
|
||||
g_Renderer.SetWaterRenderMode(EDGED_FACES);
|
||||
g_Renderer.SetModelRenderMode(EDGED_FACES);
|
||||
g_Renderer.SetOverlayRenderMode(EDGED_FACES);
|
||||
}
|
||||
else if (g_Renderer.GetModelRenderMode() == EDGED_FACES)
|
||||
{
|
||||
g_Renderer.SetTerrainRenderMode(WIREFRAME);
|
||||
g_Renderer.SetWaterRenderMode(WIREFRAME);
|
||||
g_Renderer.SetModelRenderMode(WIREFRAME);
|
||||
g_Renderer.SetOverlayRenderMode(WIREFRAME);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_Renderer.SetTerrainRenderMode(SOLID);
|
||||
g_Renderer.SetWaterRenderMode(SOLID);
|
||||
g_Renderer.SetModelRenderMode(SOLID);
|
||||
g_Renderer.SetOverlayRenderMode(SOLID);
|
||||
}
|
||||
return IN_HANDLED;
|
||||
}
|
||||
|
@ -367,6 +367,9 @@ void OverlayRenderer::RenderOverlaysBeforeWater()
|
||||
#if CONFIG2_GLES
|
||||
#warning TODO: implement OverlayRenderer::RenderOverlaysBeforeWater for GLES
|
||||
#else
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
||||
pglActiveTextureARB(GL_TEXTURE0);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glEnable(GL_BLEND);
|
||||
@ -395,6 +398,9 @@ void OverlayRenderer::RenderOverlaysBeforeWater()
|
||||
glLineWidth(1.f);
|
||||
glDepthFunc(GL_LEQUAL);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -483,6 +489,10 @@ void OverlayRenderer::RenderTexturedOverlayLines()
|
||||
|
||||
void OverlayRenderer::RenderTexturedOverlayLines(CShaderProgramPtr shader, bool alwaysVisible)
|
||||
{
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
#endif
|
||||
for (size_t i = 0; i < m->texlines.size(); ++i)
|
||||
{
|
||||
SOverlayTexturedLine* line = m->texlines[i];
|
||||
@ -494,6 +504,10 @@ void OverlayRenderer::RenderTexturedOverlayLines(CShaderProgramPtr shader, bool
|
||||
ENSURE(line->m_RenderData);
|
||||
line->m_RenderData->Render(*line, shader);
|
||||
}
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
}
|
||||
|
||||
void OverlayRenderer::RenderQuadOverlays()
|
||||
@ -522,6 +536,11 @@ void OverlayRenderer::RenderQuadOverlays()
|
||||
if (!shader)
|
||||
return;
|
||||
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
#endif
|
||||
|
||||
pglActiveTextureARB(GL_TEXTURE0);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glEnable(GL_BLEND);
|
||||
@ -584,6 +603,11 @@ void OverlayRenderer::RenderQuadOverlays()
|
||||
|
||||
glDepthMask(1);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
}
|
||||
|
||||
void OverlayRenderer::RenderForegroundOverlays(const CCamera& viewCamera)
|
||||
@ -593,6 +617,9 @@ void OverlayRenderer::RenderForegroundOverlays(const CCamera& viewCamera)
|
||||
#if CONFIG2_GLES
|
||||
#warning TODO: implement OverlayRenderer::RenderForegroundOverlays for GLES
|
||||
#else
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
||||
pglActiveTextureARB(GL_TEXTURE0);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glEnable(GL_BLEND);
|
||||
@ -662,6 +689,9 @@ void OverlayRenderer::RenderForegroundOverlays(const CCamera& viewCamera)
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glDisable(GL_BLEND);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
if (g_Renderer.GetOverlayRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1467,7 +1467,7 @@ void CPatchRData::RenderWater(CShaderProgramPtr& shader, bool onlyShore, bool fi
|
||||
return;
|
||||
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.m_WaterRenderMode == WIREFRAME)
|
||||
if (g_Renderer.GetWaterRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
#endif
|
||||
|
||||
@ -1515,7 +1515,7 @@ void CPatchRData::RenderWater(CShaderProgramPtr& shader, bool onlyShore, bool fi
|
||||
CVertexBuffer::Unbind();
|
||||
|
||||
#if !CONFIG2_GLES
|
||||
if (g_Renderer.m_WaterRenderMode == WIREFRAME)
|
||||
if (g_Renderer.GetWaterRenderMode() == WIREFRAME)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
#endif
|
||||
}
|
||||
|
@ -422,6 +422,7 @@ CRenderer::CRenderer()
|
||||
m_TerrainRenderMode = SOLID;
|
||||
m_WaterRenderMode = SOLID;
|
||||
m_ModelRenderMode = SOLID;
|
||||
m_OverlayRenderMode = SOLID;
|
||||
m_ClearColor[0] = m_ClearColor[1] = m_ClearColor[2] = m_ClearColor[3] = 0;
|
||||
|
||||
m_DisplayTerrainPriorities = false;
|
||||
|
@ -211,6 +211,11 @@ public:
|
||||
// get the mode to render subsequent models
|
||||
ERenderMode GetModelRenderMode() const { return m_ModelRenderMode; }
|
||||
|
||||
// Get the mode to render subsequent overlays.
|
||||
ERenderMode GetOverlayRenderMode() const { return m_OverlayRenderMode; }
|
||||
// Set the mode to render subsequent overlays.
|
||||
void SetOverlayRenderMode(ERenderMode mode) { m_OverlayRenderMode = mode; }
|
||||
|
||||
// debugging
|
||||
void SetDisplayTerrainPriorities(bool enabled) { m_DisplayTerrainPriorities = enabled; }
|
||||
|
||||
@ -358,12 +363,15 @@ protected:
|
||||
int m_Width;
|
||||
// view height
|
||||
int m_Height;
|
||||
// current terrain rendering mode
|
||||
|
||||
// Current terrain rendering mode.
|
||||
ERenderMode m_TerrainRenderMode;
|
||||
// current water rendering mode
|
||||
// Current water rendering mode.
|
||||
ERenderMode m_WaterRenderMode;
|
||||
// current model rendering mode
|
||||
// Current model rendering mode.
|
||||
ERenderMode m_ModelRenderMode;
|
||||
// Current overlay rendering mode.
|
||||
ERenderMode m_OverlayRenderMode;
|
||||
|
||||
CShaderDefines m_SystemShaderDefines;
|
||||
|
||||
|
@ -199,6 +199,7 @@ MESSAGEHANDLER(RenderStyle)
|
||||
g_Renderer.SetTerrainRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
||||
g_Renderer.SetWaterRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
||||
g_Renderer.SetModelRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
||||
g_Renderer.SetOverlayRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user