From 1e0074e9daccc111c499fda238aab08f89dbabfa Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Thu, 29 Dec 2011 13:35:07 +0000 Subject: [PATCH] Fix crash with missing shader support This was SVN commit r10829. --- source/renderer/ParticleRenderer.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/renderer/ParticleRenderer.cpp b/source/renderer/ParticleRenderer.cpp index 7154d32665..1aa7b95459 100644 --- a/source/renderer/ParticleRenderer.cpp +++ b/source/renderer/ParticleRenderer.cpp @@ -82,10 +82,15 @@ void ParticleRenderer::PrepareForRendering() // renderer initialisation is complete, so load it the first time through here if (!m->shader) { - typedef std::map Defines; - Defines defNull; - m->shader = g_Renderer.GetShaderManager().LoadProgram("particle", defNull); - m->shaderSolid = g_Renderer.GetShaderManager().LoadProgram("particle_solid", defNull); + // Only construct the shaders when shaders are supported and enabled; otherwise + // RenderParticles will never be called so it's safe to leave the shaders as null + if (g_Renderer.GetRenderPath() == CRenderer::RP_SHADER) + { + typedef std::map Defines; + Defines defNull; + m->shader = g_Renderer.GetShaderManager().LoadProgram("particle", defNull); + m->shaderSolid = g_Renderer.GetShaderManager().LoadProgram("particle_solid", defNull); + } } {