From 0a423c37575f9304756aa39d6149363930a5e660 Mon Sep 17 00:00:00 2001 From: pharan Date: Fri, 23 Dec 2016 12:24:58 +0800 Subject: [PATCH] [unity] Updated editors. --- spine-csharp/src/SkeletonBinary.cs | 24 +++++++++++++++++++ .../Editor/SpineEditorUtilities.cs | 19 --------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/spine-csharp/src/SkeletonBinary.cs b/spine-csharp/src/SkeletonBinary.cs index 908ac444f..14a670988 100644 --- a/spine-csharp/src/SkeletonBinary.cs +++ b/spine-csharp/src/SkeletonBinary.cs @@ -110,6 +110,30 @@ namespace Spine { TransformMode.NoScaleOrReflection }; + /// Returns the version string of binary skeleton data. + public static string GetVersionString (Stream input) { + if (input == null) throw new ArgumentNullException("input"); + + try { + // Hash. + int byteCount = ReadVarint(input, true); + if (byteCount > 1) input.Position += byteCount - 1; + + // Version. + byteCount = ReadVarint(input, true); + if (byteCount > 1) { + byteCount--; + var buffer = new byte[byteCount]; + ReadFully(input, buffer, 0, byteCount); + return System.Text.Encoding.UTF8.GetString(buffer, 0, byteCount); + } + + throw new ArgumentException("Stream does not contain a valid binary Skeleton Data.", "input"); + } catch (Exception e) { + throw new ArgumentException("Stream does not contain a valid binary Skeleton Data.\n" + e, "input"); + } + } + public SkeletonData ReadSkeletonData (Stream input) { if (input == null) throw new ArgumentNullException("input"); float scale = Scale; diff --git a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs index 8c0f2d24d..fc51875da 100644 --- a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs +++ b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs @@ -1461,25 +1461,6 @@ namespace Spine.Unity.Editor { public static string GetPathSafeRegionName (AtlasRegion region) { return region.name.Replace("/", "_"); } - - internal static int ReadVarint (Stream input, bool optimizePositive) { - int b = input.ReadByte(); - int result = b & 0x7F; - if ((b & 0x80) != 0) { - b = input.ReadByte(); - result |= (b & 0x7F) << 7; - if ((b & 0x80) != 0) { - b = input.ReadByte(); - result |= (b & 0x7F) << 14; - if ((b & 0x80) != 0) { - b = input.ReadByte(); - result |= (b & 0x7F) << 21; - if ((b & 0x80) != 0) result |= (input.ReadByte() & 0x7F) << 28; - } - } - } - return optimizePositive ? result : ((result >> 1) ^ -(result & 1)); - } } public static class SpineHandles {