From 1552fc843ac2157087d71a942eb4d7cbada083ec Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 13 Dec 2022 18:43:47 +0100 Subject: [PATCH 1/3] [unity] Fixed blend mode shaders being broken on Unity 2017. Closes #2212. --- .../Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader | 7 +++++++ .../Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader | 7 +++++++ .../Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader | 7 +++++++ .../Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc | 3 --- .../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc | 4 ---- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader index 95f608a33..3e962ac2c 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader @@ -44,6 +44,9 @@ Shader "Spine/Blend Modes/Skeleton PMA Additive" { Pass { Name "Normal" CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc" ENDCG } @@ -57,6 +60,10 @@ Shader "Spine/Blend Modes/Skeleton PMA Additive" { ZTest LEqual CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest #include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc" ENDCG } diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader index 0fa270294..7261ba339 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader @@ -44,6 +44,9 @@ Shader "Spine/Blend Modes/Skeleton PMA Multiply" { Pass { Name "Normal" CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc" ENDCG } @@ -57,6 +60,10 @@ Shader "Spine/Blend Modes/Skeleton PMA Multiply" { ZTest LEqual CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest #include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc" ENDCG } diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader index 9ddb59854..ce9306480 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader @@ -44,6 +44,9 @@ Shader "Spine/Blend Modes/Skeleton PMA Screen" { Pass { Name "Normal" CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc" ENDCG } @@ -57,6 +60,10 @@ Shader "Spine/Blend Modes/Skeleton PMA Screen" { ZTest LEqual CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest #include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc" ENDCG } diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc index 9f6f85b53..297b469f6 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc @@ -1,9 +1,6 @@ #ifndef BLENDMODES_NORMAL_PASS_INCLUDED #define BLENDMODES_NORMAL_PASS_INCLUDED -#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT -#pragma vertex vert -#pragma fragment frag #include "UnityCG.cginc" #include "../CGIncludes/Spine-Common.cginc" uniform sampler2D _MainTex; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc index a6c22c458..4021511d6 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc @@ -1,10 +1,6 @@ #ifndef BLENDMODES_SHADOWCASTER_PASS_INCLUDED #define BLENDMODES_SHADOWCASTER_PASS_INCLUDED -#pragma vertex vert -#pragma fragment frag -#pragma multi_compile_shadowcaster -#pragma fragmentoption ARB_precision_hint_fastest #include "UnityCG.cginc" struct v2f { V2F_SHADOW_CASTER; From 1624960daeb5e88d2a13e25d841209d4939f7bdc Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 14 Dec 2022 12:16:41 +0100 Subject: [PATCH 2/3] [csharp] Minor improvement of documentation. --- spine-csharp/src/Skeleton.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-csharp/src/Skeleton.cs b/spine-csharp/src/Skeleton.cs index 175a54101..a1d1842b3 100644 --- a/spine-csharp/src/Skeleton.cs +++ b/spine-csharp/src/Skeleton.cs @@ -540,7 +540,7 @@ namespace Spine { return null; } - /// Sets a skin by name (). + /// Sets a skin by name (see ). public void SetSkin (string skinName) { Skin foundSkin = data.FindSkin(skinName); if (foundSkin == null) throw new ArgumentException("Skin not found: " + skinName, "skinName"); From 2459755f8cc00b5823c7fb19e23b1c7229b92fe4 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 14 Dec 2022 17:44:06 +0100 Subject: [PATCH 3/3] [csharp] Fixed IndexOutOfBounds at loading sequence attachments from json on older dotnet runtime version. Clsoes #2213. --- spine-csharp/src/SkeletonJson.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spine-csharp/src/SkeletonJson.cs b/spine-csharp/src/SkeletonJson.cs index beb2bea2f..9000ee913 100644 --- a/spine-csharp/src/SkeletonJson.cs +++ b/spine-csharp/src/SkeletonJson.cs @@ -1027,8 +1027,8 @@ namespace Spine { } else if (timelineName == "sequence") { SequenceTimeline timeline = new SequenceTimeline(frames, slot.index, attachment); float lastDelay = 0; - for (int frame = 0; keyMap != null; - keyMapEnumerator.MoveNext(), keyMap = (Dictionary)keyMapEnumerator.Current, frame++) { + for (int frame = 0; keyMap != null; keyMap = keyMapEnumerator.MoveNext() ? + (Dictionary)keyMapEnumerator.Current : null, frame++) { float delay = GetFloat(keyMap, "delay", lastDelay); SequenceMode sequenceMode = (SequenceMode)Enum.Parse(typeof(SequenceMode),