From 34f8afbefc95cf8c31a4bfb3d50e6534054e3b87 Mon Sep 17 00:00:00 2001 From: pharan Date: Mon, 27 Feb 2017 00:51:54 +0800 Subject: [PATCH] [unity] Remove old front-facing-triangles code. --- .../Assets/spine-unity/SkeletonRenderer.cs | 158 +----------------- 1 file changed, 1 insertion(+), 157 deletions(-) diff --git a/spine-unity/Assets/spine-unity/SkeletonRenderer.cs b/spine-unity/Assets/spine-unity/SkeletonRenderer.cs index 64e477cd5..17c811b66 100644 --- a/spine-unity/Assets/spine-unity/SkeletonRenderer.cs +++ b/spine-unity/Assets/spine-unity/SkeletonRenderer.cs @@ -33,8 +33,6 @@ #define SPINE_OPTIONAL_NORMALS #define SPINE_OPTIONAL_SOLVETANGENTS -//#define SPINE_OPTIONAL_FRONTFACING - using System; using System.Collections.Generic; using UnityEngine; @@ -73,9 +71,6 @@ namespace Spine.Unity { #if SPINE_OPTIONAL_SOLVETANGENTS public bool calculateTangents; #endif - #if SPINE_OPTIONAL_FRONTFACING - public bool frontFacing; - #endif public bool logErrors = false; @@ -257,14 +252,6 @@ namespace Spine.Unity { workingAttachments.Count = drawOrderCount; var workingAttachmentsItems = workingInstruction.attachments.Items; - #if SPINE_OPTIONAL_FRONTFACING - var workingFlips = workingInstruction.attachmentFlips; - workingFlips.Clear(false); - workingFlips.GrowIfNeeded(drawOrderCount); - workingFlips.Count = drawOrderCount; - var workingFlipsItems = workingFlips.Items; - #endif - var workingSubmeshInstructions = workingInstruction.submeshInstructions; // Items array should not be cached. There is dynamic writing to this list. workingSubmeshInstructions.Clear(false); @@ -282,11 +269,6 @@ namespace Spine.Unity { Attachment attachment = slot.attachment; workingAttachmentsItems[i] = attachment; - #if SPINE_OPTIONAL_FRONTFACING - bool flip = frontFacing && (slot.bone.WorldSignX != slot.bone.WorldSignY); - workingFlipsItems[i] = flip; - #endif - object rendererObject = null; // An AtlasRegion in plain Spine-Unity. Spine-TK2D hooks into TK2D's system. eventual source of Material object. int attachmentVertexCount, attachmentTriangleCount; bool noRender = false; @@ -395,9 +377,6 @@ namespace Spine.Unity { workingInstruction.vertexCount = vertexCount; workingInstruction.immutableTriangles = this.immutableTriangles; - #if SPINE_OPTIONAL_FRONTFACING - workingInstruction.frontFacing = this.frontFacing; - #endif // STEP 1.9. Post-process workingInstructions. ============================================================ @@ -509,8 +488,7 @@ namespace Spine.Unity { var submeshInstruction = workingSubmeshInstructions.Items[i]; if (mutableTriangles || i >= oldSubmeshCount) { - - #if !SPINE_OPTIONAL_FRONTFACING + var currentSubmesh = submeshes.Items[i]; int instructionTriangleCount = submeshInstruction.triangleCount; if (renderMeshes) { @@ -519,9 +497,6 @@ namespace Spine.Unity { } else { ArraysMeshGenerator.FillTrianglesQuads(ref currentSubmesh.triangles, ref currentSubmesh.triangleCount, ref currentSubmesh.firstVertex, submeshInstruction.firstVertexIndex, instructionTriangleCount, (i == last)); } - #else - SetSubmesh(i, submeshInstruction, currentInstructions.attachmentFlips, i == last); - #endif } @@ -613,19 +588,6 @@ namespace Spine.Unity { return true; } - #if SPINE_OPTIONAL_FRONTFACING - if (a.frontFacing != b.frontFacing) { // if settings changed - return true; - } else if (a.frontFacing) { // if settings matched, only need to check one. - var flipsA = a.attachmentFlips.Items; - var flipsB = b.attachmentFlips.Items; - for (int i = 0; i < attachmentCountB; i++) { - if (flipsA[i] != flipsB[i]) - return true; - } - } - #endif - // Submesh count changed int submeshCountA = a.submeshInstructions.Count; int submeshCountB = b.submeshInstructions.Count; @@ -652,106 +614,6 @@ namespace Spine.Unity { return false; } - #if SPINE_OPTIONAL_FRONTFACING - void SetSubmesh (int submeshIndex, Spine.Unity.MeshGeneration.SubmeshInstruction submeshInstructions, ExposedList flipStates, bool isLastSubmesh) { - var currentSubmesh = submeshes.Items[submeshIndex]; - int[] triangles = currentSubmesh.triangles; - - int triangleCount = submeshInstructions.triangleCount; - int firstVertex = submeshInstructions.firstVertexIndex; - - int trianglesCapacity = triangles.Length; - if (isLastSubmesh && trianglesCapacity > triangleCount) { - // Last submesh may have more triangles than required, so zero triangles to the end. - for (int i = triangleCount; i < trianglesCapacity; i++) - triangles[i] = 0; - - currentSubmesh.triangleCount = triangleCount; - - } else if (trianglesCapacity != triangleCount) { - // Reallocate triangles when not the exact size needed. - currentSubmesh.triangles = triangles = new int[triangleCount]; - currentSubmesh.triangleCount = 0; - } - - if (!this.renderMeshes && !this.frontFacing) { - // Use stored triangles if possible. - if (currentSubmesh.firstVertex != firstVertex || currentSubmesh.triangleCount < triangleCount) { //|| currentSubmesh.triangleCount == 0 - currentSubmesh.triangleCount = triangleCount; - currentSubmesh.firstVertex = firstVertex; - - for (int i = 0; i < triangleCount; i += 6, firstVertex += 4) { - triangles[i] = firstVertex; - triangles[i + 1] = firstVertex + 2; - triangles[i + 2] = firstVertex + 1; - triangles[i + 3] = firstVertex + 2; - triangles[i + 4] = firstVertex + 3; - triangles[i + 5] = firstVertex + 1; - } - } - return; - } - - var flipStatesItems = flipStates.Items; - - // Iterate through all slots and store their triangles. - var drawOrderItems = skeleton.DrawOrder.Items; - int triangleIndex = 0; // Modified by loop - for (int i = submeshInstructions.startSlot, n = submeshInstructions.endSlot; i < n; i++) { - Attachment attachment = drawOrderItems[i].attachment; - bool flip = frontFacing && flipStatesItems[i]; - - // Add RegionAttachment triangles - if (attachment is RegionAttachment) { - if (!flip) { - triangles[triangleIndex] = firstVertex; - triangles[triangleIndex + 1] = firstVertex + 2; - triangles[triangleIndex + 2] = firstVertex + 1; - triangles[triangleIndex + 3] = firstVertex + 2; - triangles[triangleIndex + 4] = firstVertex + 3; - triangles[triangleIndex + 5] = firstVertex + 1; - } else { - triangles[triangleIndex] = firstVertex + 1; - triangles[triangleIndex + 1] = firstVertex + 2; - triangles[triangleIndex + 2] = firstVertex; - triangles[triangleIndex + 3] = firstVertex + 1; - triangles[triangleIndex + 4] = firstVertex + 3; - triangles[triangleIndex + 5] = firstVertex + 2; - } - - triangleIndex += 6; - firstVertex += 4; - continue; - } - - // Add (Weighted)MeshAttachment triangles - int[] attachmentTriangles; - int attachmentVertexCount; - var meshAttachment = attachment as MeshAttachment; - if (meshAttachment != null) { - attachmentVertexCount = meshAttachment.worldVerticesLength >> 1; // length/2 - attachmentTriangles = meshAttachment.triangles; - } else { - continue; - } - - if (flip) { - for (int ii = 0, nn = attachmentTriangles.Length; ii < nn; ii += 3, triangleIndex += 3) { - triangles[triangleIndex + 2] = firstVertex + attachmentTriangles[ii]; - triangles[triangleIndex + 1] = firstVertex + attachmentTriangles[ii + 1]; - triangles[triangleIndex] = firstVertex + attachmentTriangles[ii + 2]; - } - } else { - for (int ii = 0, nn = attachmentTriangles.Length; ii < nn; ii++, triangleIndex++) { - triangles[triangleIndex] = firstVertex + attachmentTriangles[ii]; - } - } - - firstVertex += attachmentVertexCount; - } - } - #endif - ///This is a Mesh that also stores the instructions SkeletonRenderer generated for it. public class SmartMesh { public Mesh mesh = Spine.Unity.SpineMesh.NewMesh(); @@ -763,18 +625,9 @@ namespace Spine.Unity { public readonly ExposedList attachments = new ExposedList(); public readonly ExposedList submeshInstructions = new ExposedList(); - #if SPINE_OPTIONAL_FRONTFACING - public bool frontFacing; - public readonly ExposedList attachmentFlips = new ExposedList(); - #endif - public void Clear () { this.attachments.Clear(false); this.submeshInstructions.Clear(false); - - #if SPINE_OPTIONAL_FRONTFACING - this.attachmentFlips.Clear(false); - #endif } public void Set (Instruction other) { @@ -786,15 +639,6 @@ namespace Spine.Unity { this.attachments.Count = other.attachments.Count; other.attachments.CopyTo(this.attachments.Items); - #if SPINE_OPTIONAL_FRONTFACING - this.frontFacing = other.frontFacing; - this.attachmentFlips.Clear(false); - this.attachmentFlips.GrowIfNeeded(other.attachmentFlips.Capacity); - this.attachmentFlips.Count = other.attachmentFlips.Count; - if (this.frontFacing) - other.attachmentFlips.CopyTo(this.attachmentFlips.Items); - #endif - this.submeshInstructions.Clear(false); this.submeshInstructions.GrowIfNeeded(other.submeshInstructions.Capacity); this.submeshInstructions.Count = other.submeshInstructions.Count;