From a92fc3563ccc34f1fb93170f5943c719d843fb35 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Sun, 17 Nov 2013 02:46:05 -0500 Subject: Prevent shaders from being created when disabled --- src/mapblock_mesh.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index 6cbc2c521..253703ddc 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -1109,18 +1109,22 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data): /* Convert MeshCollector to SMesh */ + bool enable_shaders = g_settings->getBool("enable_shaders"); bool enable_bumpmapping = g_settings->getBool("enable_bumpmapping"); - bool enable_shaders = g_settings->getBool("enable_shaders"); - video::E_MATERIAL_TYPE shadermat1 = m_gamedef->getShaderSource()-> - getShader("test_shader_1").material; - video::E_MATERIAL_TYPE shadermat2 = m_gamedef->getShaderSource()-> - getShader("test_shader_2").material; - video::E_MATERIAL_TYPE shadermat3 = m_gamedef->getShaderSource()-> - getShader("test_shader_3").material; - video::E_MATERIAL_TYPE bumpmaps1 = m_gamedef->getShaderSource()-> - getShader("bumpmaps_solids").material; - video::E_MATERIAL_TYPE bumpmaps2 = m_gamedef->getShaderSource()-> - getShader("bumpmaps_liquids").material; + + video::E_MATERIAL_TYPE shadermat1, shadermat2, shadermat3, bumpmaps1, bumpmaps2; + shadermat1 = shadermat2 = shadermat3 = bumpmaps1 = bumpmaps2 = video::EMT_SOLID; + + if (enable_shaders) { + IShaderSource *shdrsrc = m_gamedef->getShaderSource(); + shadermat1 = shdrsrc->getShader("test_shader_1").material; + shadermat2 = shdrsrc->getShader("test_shader_2").material; + shadermat3 = shdrsrc->getShader("test_shader_3").material; + if (enable_bumpmapping) { + bumpmaps1 = shdrsrc->getShader("bumpmaps_solids").material; + bumpmaps2 = shdrsrc->getShader("bumpmaps_liquids").material; + } + } for(u32 i = 0; i < collector.prebuffers.size(); i++) { -- cgit v1.2.3