summaryrefslogtreecommitdiff
path: root/src/mapblock_mesh.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-12-01 03:02:16 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-12-02 00:46:18 +0200
commit27373919f4369c0c511f9f0ac66854b7f76e101d (patch)
treee830e623af8b51b72468f9aa04faf85210d66177 /src/mapblock_mesh.cpp
parent22e6fb7056dcc888e9ccf768fefb6c073077a3b5 (diff)
downloadminetest-27373919f4369c0c511f9f0ac66854b7f76e101d.tar.gz
minetest-27373919f4369c0c511f9f0ac66854b7f76e101d.tar.bz2
minetest-27373919f4369c0c511f9f0ac66854b7f76e101d.zip
Implement a global shader parameter passing system and useful shaders
Diffstat (limited to 'src/mapblock_mesh.cpp')
-rw-r--r--src/mapblock_mesh.cpp15
1 files changed, 11 insertions, 4 deletions
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