diff --git a/source/graphics/MiniMapTexture.cpp b/source/graphics/MiniMapTexture.cpp index 7f0377fb42..17fcd3c2e1 100644 --- a/source/graphics/MiniMapTexture.cpp +++ b/source/graphics/MiniMapTexture.cpp @@ -298,7 +298,9 @@ void CMiniMapTexture::Update(const float UNUSED(deltaRealTime)) } } -void CMiniMapTexture::Render(Renderer::Backend::IDeviceCommandContext* deviceCommandContext) +void CMiniMapTexture::Render( + Renderer::Backend::IDeviceCommandContext* deviceCommandContext, + CLOSTexture& losTexture, CTerritoryTexture& territoryTexture) { const CTerrain* terrain = g_Game->GetWorld()->GetTerrain(); if (!terrain) @@ -310,7 +312,7 @@ void CMiniMapTexture::Render(Renderer::Backend::IDeviceCommandContext* deviceCom if (m_TerrainTextureDirty) RebuildTerrainTexture(deviceCommandContext, terrain); - RenderFinalTexture(deviceCommandContext); + RenderFinalTexture(deviceCommandContext, losTexture, territoryTexture); } void CMiniMapTexture::CreateTextures( @@ -428,7 +430,8 @@ void CMiniMapTexture::RebuildTerrainTexture( } void CMiniMapTexture::RenderFinalTexture( - Renderer::Backend::IDeviceCommandContext* deviceCommandContext) + Renderer::Backend::IDeviceCommandContext* deviceCommandContext, + CLOSTexture& losTexture, CTerritoryTexture& territoryTexture) { // only update 2x / second // (note: since units only move a few pixels per second on the minimap, @@ -452,7 +455,6 @@ void CMiniMapTexture::RenderFinalTexture( CmpPtr cmpRangeManager(m_Simulation, SYSTEM_ENTITY); ENSURE(cmpRangeManager); - CLOSTexture& losTexture = g_Renderer.GetSceneRenderer().GetScene().GetLOSTexture(); const float invTileMapSize = 1.0f / static_cast(TERRAIN_TILE_SIZE * m_MapSize); const float texCoordMax = m_TerrainTexture ? static_cast(m_MapSize - 1) / m_TerrainTexture->GetWidth() : 1.0f; @@ -508,9 +510,6 @@ void CMiniMapTexture::RenderFinalTexture( deviceCommandContext->BeginPass(); // Draw territory boundaries - CTerritoryTexture& territoryTexture = - g_Renderer.GetSceneRenderer().GetScene().GetTerritoryTexture(); - deviceCommandContext->SetTexture( shader->GetBindingSlot(str_baseTex), territoryTexture.GetTexture()); deviceCommandContext->SetUniform( @@ -751,7 +750,7 @@ void CMiniMapTexture::RenderFinalTexture( { deviceCommandContext->SetVertexAttributeFormat( Renderer::Backend::VertexAttributeStream::POSITION, - m_AttributePos.format, m_InstanceAttributePosition.offset, + m_InstanceAttributePosition.format, m_InstanceAttributePosition.offset, m_InstanceVertexArray.GetStride(), Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); diff --git a/source/graphics/MiniMapTexture.h b/source/graphics/MiniMapTexture.h index 155844376d..8d4a6a7eec 100644 --- a/source/graphics/MiniMapTexture.h +++ b/source/graphics/MiniMapTexture.h @@ -30,8 +30,10 @@ #include #include +class CLOSTexture; class CSimulation2; class CTerrain; +class CTerritoryTexture; class CMiniMapTexture { @@ -48,7 +50,9 @@ public: /** * Redraws the texture if it's dirty. */ - void Render(Renderer::Backend::IDeviceCommandContext* deviceCommandContext); + void Render( + Renderer::Backend::IDeviceCommandContext* deviceCommandContext, + CLOSTexture& losTexture, CTerritoryTexture& territoryTexture); const CTexturePtr& GetTexture() const { return m_FinalTexture; } @@ -76,7 +80,8 @@ private: Renderer::Backend::IDeviceCommandContext* deviceCommandContext, const CTerrain* terrain); void RenderFinalTexture( - Renderer::Backend::IDeviceCommandContext* deviceCommandContext); + Renderer::Backend::IDeviceCommandContext* deviceCommandContext, + CLOSTexture& losTexture, CTerritoryTexture& territoryTexture); CSimulation2& m_Simulation; diff --git a/source/renderer/SceneRenderer.cpp b/source/renderer/SceneRenderer.cpp index 29d23b78d7..1c2be25db2 100644 --- a/source/renderer/SceneRenderer.cpp +++ b/source/renderer/SceneRenderer.cpp @@ -765,7 +765,8 @@ void CSceneRenderer::RenderSubmissions( GetScene().GetLOSTexture().InterpolateLOS(deviceCommandContext); GetScene().GetTerritoryTexture().UpdateIfNeeded(deviceCommandContext); - GetScene().GetMiniMapTexture().Render(deviceCommandContext); + GetScene().GetMiniMapTexture().Render( + deviceCommandContext, GetScene().GetLOSTexture(), GetScene().GetTerritoryTexture()); CShaderDefines context = m->globalContext;