From d994f7ca5f75431da8e17fd6762209c404d89482 Mon Sep 17 00:00:00 2001 From: stujones11 Date: Thu, 20 Dec 2018 22:40:17 +0000 Subject: [PATCH] Fix more transparency issues with ogles2 driver (#8005) --- src/client/content_cao.cpp | 3 +++ src/client/wieldmesh.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 9e4725881..d2bd32afa 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1062,6 +1062,7 @@ void GenericCAO::updateTextures(std::string mod) texturestring = m_prop.textures[0]; texturestring += mod; m_spritenode->getMaterial(0).MaterialType = material_type; + m_spritenode->getMaterial(0).MaterialTypeParam = 0.5f; m_spritenode->setMaterialTexture(0, tsrc->getTextureForMesh(texturestring)); @@ -1097,6 +1098,7 @@ void GenericCAO::updateTextures(std::string mod) // Set material flags and texture video::SMaterial& material = m_animated_meshnode->getMaterial(i); material.MaterialType = material_type; + material.MaterialTypeParam = 0.5f; material.TextureLayer[0].Texture = texture; material.setFlag(video::EMF_LIGHTING, true); material.setFlag(video::EMF_BILINEAR_FILTER, false); @@ -1143,6 +1145,7 @@ void GenericCAO::updateTextures(std::string mod) // Set material flags and texture video::SMaterial& material = m_meshnode->getMaterial(i); material.MaterialType = material_type; + material.MaterialTypeParam = 0.5f; material.setFlag(video::EMF_LIGHTING, false); material.setFlag(video::EMF_BILINEAR_FILTER, false); material.setTexture(0, diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp index 4c25fafb1..2c6807fab 100644 --- a/src/client/wieldmesh.cpp +++ b/src/client/wieldmesh.cpp @@ -282,6 +282,7 @@ void WieldMeshSceneNode::setExtruded(const std::string &imagename, material.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE; material.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE; material.MaterialType = m_material_type; + material.MaterialTypeParam = 0.5f; material.setFlag(video::EMF_BACK_FACE_CULLING, true); // Enable bi/trilinear filtering only for high resolution textures if (dim.Width > 32) { @@ -426,6 +427,7 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che for (u32 i = 0; i < material_count; ++i) { video::SMaterial &material = m_meshnode->getMaterial(i); material.MaterialType = m_material_type; + material.MaterialTypeParam = 0.5f; material.setFlag(video::EMF_BACK_FACE_CULLING, true); material.setFlag(video::EMF_BILINEAR_FILTER, m_bilinear_filter); material.setFlag(video::EMF_TRILINEAR_FILTER, m_trilinear_filter); @@ -569,6 +571,7 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) scene::IMeshBuffer *buf = mesh->getMeshBuffer(i); video::SMaterial &material = buf->getMaterial(); material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + material.MaterialTypeParam = 0.5f; material.setFlag(video::EMF_BILINEAR_FILTER, false); material.setFlag(video::EMF_TRILINEAR_FILTER, false); material.setFlag(video::EMF_BACK_FACE_CULLING, true); @@ -619,6 +622,7 @@ scene::SMesh *getExtrudedMesh(ITextureSource *tsrc, material.setFlag(video::EMF_BACK_FACE_CULLING, true); material.setFlag(video::EMF_LIGHTING, false); material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + material.MaterialTypeParam = 0.5f; } scaleMesh(mesh, v3f(2.0, 2.0, 2.0)); -- 2.25.1