From 19d5b620091ae2f3995dfd3990dc35fe9c552072 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 16 Dec 2013 17:22:23 +0100 Subject: [PATCH] Fixed crash on ForwardRenderTechnique Former-commit-id: 80181ffddf69a52af96814db54aa18a7809fa5d5 --- src/Nazara/Graphics/ForwardRenderTechnique.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Nazara/Graphics/ForwardRenderTechnique.cpp b/src/Nazara/Graphics/ForwardRenderTechnique.cpp index abc73fe38..41c34f492 100644 --- a/src/Nazara/Graphics/ForwardRenderTechnique.cpp +++ b/src/Nazara/Graphics/ForwardRenderTechnique.cpp @@ -302,9 +302,7 @@ void NzForwardRenderTechnique::DrawOpaqueModels(const NzScene* scene) // Calcul des lumières les plus proches if (lightCount < m_maxLightsPerObject && !m_lights.IsEmpty()) { - unsigned int count = m_lights.ComputeClosestLights(data.transformMatrix.GetTranslation() + boundingSphere.GetPosition(), boundingSphere.radius, maxLightCount); - count -= lightCount; - + unsigned int count = std::min(m_maxLightsPerObject-lightCount, m_lights.ComputeClosestLights(data.transformMatrix.GetTranslation() + boundingSphere.GetPosition(), boundingSphere.radius, maxLightCount)); for (unsigned int i = 0; i < count; ++i) m_lights.GetResult(i)->Enable(program, lightCount++); } @@ -478,9 +476,7 @@ void NzForwardRenderTechnique::DrawTransparentModels(const NzScene* scene) // Calcul des lumières les plus proches if (lightCount < m_maxLightsPerObject && !m_lights.IsEmpty()) { - unsigned int count = m_lights.ComputeClosestLights(matrix.GetTranslation() + staticModel.boundingSphere.GetPosition(), staticModel.boundingSphere.radius, maxLightCount); - count -= lightCount; - + unsigned int count = std::min(m_maxLightsPerObject-lightCount, m_lights.ComputeClosestLights(matrix.GetTranslation() + staticModel.boundingSphere.GetPosition(), staticModel.boundingSphere.radius, maxLightCount)); for (unsigned int i = 0; i < count; ++i) m_lights.GetResult(i)->Enable(program, lightCount++); }