소스 검색

[gdx] Minor cleanup for PMA tint black.

#1003
Nathan Sweet 8 년 전
부모
커밋
8ab5ad4b6c
1개의 변경된 파일12개의 추가작업 그리고 9개의 파일을 삭제
  1. 12 9
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java

+ 12 - 9
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) {