From fd9f195fcc2e4e592dbad3290876486eb08318b2 Mon Sep 17 00:00:00 2001 From: Lars Hofhansl Date: Mon, 4 Dec 2017 22:25:09 -0800 Subject: Use Irrlicht's mesh cache for animated meshes. Fixes #6676. Allow animated meshes to be cached in Irrlicht's builtin mesh cache. Use Material.EmmissiveColor instead of manipulating the mesh' vertex colors. --- src/mesh.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mesh.cpp') diff --git a/src/mesh.cpp b/src/mesh.cpp index 218e2d0b2..7fc7531f2 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include // In Irrlicht 1.8 the signature of ITexture::lock was changed from // (bool, u32) to (E_TEXTURE_LOCK_MODE, u32). @@ -184,6 +185,13 @@ void setMeshBufferColor(scene::IMeshBuffer *buf, const video::SColor &color) ((video::S3DVertex *) (vertices + i * stride))->Color = color; } +void setAnimatedMeshColor(scene::IAnimatedMeshSceneNode *node, const video::SColor &color) +{ + for (u32 i = 0; i < node->getMaterialCount(); ++i) { + node->getMaterial(i).EmissiveColor = color; + } +} + void setMeshColor(scene::IMesh *mesh, const video::SColor &color) { if (mesh == NULL) -- cgit v1.2.3