diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java index f0c55c3df..6628e7429 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java @@ -240,7 +240,7 @@ public class SkeletonRenderer { if (vertexEffect != null) vertexEffect.begin(skeleton); boolean premultipliedAlpha = this.premultipliedAlpha; - int darkPremultipliedAlpha = (premultipliedAlpha ? 255 : 0) << 24; + int darkAlpha = (premultipliedAlpha ? 255 : 0) << 24; BlendMode blendMode = null; int verticesLength = 0; float[] vertices = null, uvs = null; @@ -288,16 +288,19 @@ public class SkeletonRenderer { Color lightColor = slot.getColor(); float alpha = a * lightColor.a * color.a * 255; float multiplier = premultipliedAlpha ? alpha : 255; + float red = r * color.r * multiplier; + float green = g * color.g * multiplier; + float blue = b * color.b * multiplier; float light = NumberUtils.intToFloatColor(((int)alpha << 24) // - | ((int)(b * lightColor.b * color.b * multiplier) << 16) // - | ((int)(g * lightColor.g * color.g * multiplier) << 8) // - | (int)(r * lightColor.r * color.r * multiplier)); + | ((int)(blue * lightColor.b) << 16) // + | ((int)(green * lightColor.g) << 8) // + | (int)(red * lightColor.r)); Color darkColor = slot.getDarkColor(); - if (darkColor == null) darkColor = Color.BLACK; - float dark = darkColor == null ? 0 : NumberUtils.intToFloatColor(darkPremultipliedAlpha // - | (int)(b * darkColor.b * color.b * multiplier) << 16 // - | (int)(g * darkColor.g * color.g * multiplier) << 8 // - | (int)(r * darkColor.r * color.r * multiplier)); + float dark = darkColor == null ? 0 + : NumberUtils.intToFloatColor(darkAlpha // + | (int)(blue * darkColor.b) << 16 // + | (int)(green * darkColor.g) << 8 // + | (int)(red * darkColor.r)); BlendMode slotBlendMode = slot.data.getBlendMode(); if (slotBlendMode != blendMode) {