From 27373919f4369c0c511f9f0ac66854b7f76e101d Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 1 Dec 2012 03:02:16 +0200 Subject: Implement a global shader parameter passing system and useful shaders --- src/mapblock_mesh.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/mapblock_mesh.cpp') diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index cbc38ddb5..c871b6dbe 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -1012,8 +1012,11 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data): Convert MeshCollector to SMesh Also store animation info */ - video::E_MATERIAL_TYPE shadermat = m_gamedef->getShaderSource()-> - getShader("the_darkness_of_light").material; + bool enable_shaders = (g_settings->getS32("enable_shaders") > 0); + 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; for(u32 i = 0; i < collector.prebuffers.size(); i++) { PreMeshBuffer &p = collector.prebuffers[i]; @@ -1080,8 +1083,12 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data): material.setTexture(0, p.tile.texture.atlas); p.tile.applyMaterialOptions(material); - //if(material.MaterialType == video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF) - material.MaterialType = shadermat; + if(enable_shaders){ + if(material.MaterialType == video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF) + material.MaterialType = shadermat1; + if(material.MaterialType == video::EMT_TRANSPARENT_VERTEX_ALPHA) + material.MaterialType = shadermat2; + } // Create meshbuffer -- cgit v1.2.3