Răsfoiți Sursa

Merge branch '3.7-beta' into 3.7-beta-cpp

badlogic 7 ani în urmă
părinte
comite
aa0343ac50

+ 1 - 1
spine-starling/spine-starling-example/.settings/com.powerflasher.fdt.classpath

@@ -5,5 +5,5 @@
     <AS3Classpath generateProblems="true" sdkBased="false" type="source" useAsSharedCode="false">src</AS3Classpath>
     <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/spine-starling.swc</AS3Classpath>
     <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/spine-as3.swc</AS3Classpath>
-    <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/starling-2.1.swc</AS3Classpath>
+    <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/starling-2.4.swc</AS3Classpath>
 </AS3Classpath>

BIN
spine-starling/spine-starling-example/lib/spine-starling.swc


BIN
spine-starling/spine-starling-example/lib/starling-2.1.swc


BIN
spine-starling/spine-starling-example/lib/starling-2.4.swc


+ 1 - 1
spine-starling/spine-starling/.settings/com.powerflasher.fdt.classpath

@@ -4,5 +4,5 @@
     <AS3Classpath generateProblems="true" sdkBased="false" type="source" useAsSharedCode="false">src</AS3Classpath>
     <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/spine-as3.swc</AS3Classpath>
     <AS3Classpath generateProblems="true" sdkBased="true" type="lib" useAsSharedCode="false">frameworks/libs/air/airglobal.swc</AS3Classpath>
-    <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/starling-2.1.swc</AS3Classpath>
+    <AS3Classpath generateProblems="true" sdkBased="false" type="lib" useAsSharedCode="false">lib/starling-2.4.swc</AS3Classpath>
 </AS3Classpath>

BIN
spine-starling/spine-starling/lib/starling-2.1.swc


BIN
spine-starling/spine-starling/lib/starling-2.4.swc


+ 14 - 5
spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as

@@ -29,6 +29,7 @@
  *****************************************************************************/
  
 package spine.starling {
+	import starling.styles.MeshStyle;
 	import spine.attachments.ClippingAttachment;
 	import spine.SkeletonClipping;
 	import spine.Bone;
@@ -98,6 +99,7 @@ package spine.starling {
 			for (var i : int = 0, n : int = drawOrder.length; i < n; ++i) {
 				var worldVertices : Vector.<Number> = _tempVertices;
 				var slot : Slot = drawOrder[i];
+
 				if (slot.attachment is RegionAttachment) {
 					var region : RegionAttachment = slot.attachment as RegionAttachment;
 					verticesLength = 4 * 2;
@@ -146,7 +148,7 @@ package spine.starling {
 						indexData.numIndices = indicesLength;
 						indexData.trim();
 					}
-					indexData = mesh.getIndexData();				
+					indexData = mesh.getIndexData();
 					attachmentColor = meshAttachment.color;
 					uvs = meshAttachment.uvs;					
 				} else if (slot.attachment is ClippingAttachment) {
@@ -169,17 +171,22 @@ package spine.starling {
 				if (clipper.isClipping()) {
 					clipper.clipTriangles(worldVertices, indices, indices.length, uvs);
 					
+					// Need to create a new mesh here, see https://github.com/EsotericSoftware/spine-runtimes/issues/1125					
+					mesh = new SkeletonMesh(mesh.texture);
+					if (_twoColorTint) mesh.setStyle(new TwoColorMeshStyle());	
+					indexData = mesh.getIndexData();
+
 					verticesCount = clipper.clippedVertices.length >> 1;
 					worldVertices = clipper.clippedVertices;
 					uvs = clipper.clippedUvs;					
 					
 					indices = clipper.clippedTriangles;
 					indicesLength = indices.length;
+					indexData.numIndices = indicesLength;
+					indexData.trim();
 					for (ii = 0; ii < indicesLength; ii++) {
 						indexData.setIndex(ii, indices[ii]);
 					}
-					indexData.numIndices = indicesLength;
-					indexData.trim();
 				}
 
 				vertexData = mesh.getVertexData();
@@ -214,8 +221,10 @@ package spine.starling {
 						mesh.setTexCoords(ii, uvs[iii], uvs[iii + 1]);
 					}				
 				}
-				painter.state.blendMode = blendModes[slot.data.blendMode.ordinal];				
-				painter.batchMesh(mesh);
+				if (indexData.numIndices > 0 && vertexData.numVertices > 0) {
+					painter.state.blendMode = blendModes[slot.data.blendMode.ordinal];
+					painter.batchMesh(mesh);
+				}
 				
 				clipper.clipEndWithSlot(slot);
 			}

+ 3 - 3
spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs

@@ -1363,9 +1363,9 @@ namespace Spine.Unity.Editor {
 
 			bool pmaVertexColors = false;
 			bool tintBlack = false;
-			foreach (SpineAtlasAsset atlasAsset in skeletonDataAsset.atlasAssets) {
+			foreach (var atlasAsset in skeletonDataAsset.atlasAssets) {
 				if (!pmaVertexColors) {
-					foreach (Material m in atlasAsset.materials) {
+					foreach (Material m in atlasAsset.Materials) {
 						if (m.shader.name.Contains(PMAShaderQuery)) {
 							pmaVertexColors = true;
 							break;
@@ -1374,7 +1374,7 @@ namespace Spine.Unity.Editor {
 				}
 
 				if (!tintBlack) {
-					foreach (Material m in atlasAsset.materials) {
+					foreach (Material m in atlasAsset.Materials) {
 						if (m.shader.name.Contains(TintBlackShaderQuery)) {
 							tintBlack = true;
 							break;