diff --git a/SpineViewer/Controls/SpineListView.cs b/SpineViewer/Controls/SpineListView.cs
index 5b0452a..bb2ee10 100644
--- a/SpineViewer/Controls/SpineListView.cs
+++ b/SpineViewer/Controls/SpineListView.cs
@@ -15,7 +15,7 @@ using System.Collections.Specialized;
using NLog;
using SpineViewer.Extensions;
using SpineViewer.PropertyGridWrappers.Spine;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Controls
{
@@ -29,12 +29,12 @@ namespace SpineViewer.Controls
///
/// Spine 列表只读视图, 访问时必须使用 lock 语句锁定视图本身
///
- public readonly ReadOnlyCollection Spines;
+ public readonly ReadOnlyCollection Spines;
///
/// Spine 列表, 访问时必须使用 lock 语句锁定只读视图 Spines
///
- private readonly List spines = [];
+ private readonly List spines = [];
///
/// 用于属性页显示模型参数的包装类
@@ -80,7 +80,7 @@ namespace SpineViewer.Controls
{
try
{
- var spine = Spine.Spine.New(result.Version, result.SkelPath, result.AtlasPath);
+ var spine = Spine.SpineObject.New(result.Version, result.SkelPath, result.AtlasPath);
// 如果索引无效则在末尾添加
if (index < 0 || index > listView.Items.Count)
@@ -155,7 +155,7 @@ namespace SpineViewer.Controls
try
{
- var spine = Spine.Spine.New(version, skelPath);
+ var spine = Spine.SpineObject.New(version, skelPath);
var preview = spine.Preview;
lock (Spines) { spines.Add(spine); }
spinePropertyWrappers[spine.ID] = new(spine);
diff --git a/SpineViewer/Controls/SpinePreviewer.cs b/SpineViewer/Controls/SpinePreviewer.cs
index 014315c..cce1102 100644
--- a/SpineViewer/Controls/SpinePreviewer.cs
+++ b/SpineViewer/Controls/SpinePreviewer.cs
@@ -10,7 +10,7 @@ using System.Windows.Forms;
using System.Security.Policy;
using System.Diagnostics;
using NLog;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Controls
{
diff --git a/SpineViewer/Controls/SpinePropertyGrid.cs b/SpineViewer/Controls/SpinePropertyGrid.cs
index 708198d..3bb5d4b 100644
--- a/SpineViewer/Controls/SpinePropertyGrid.cs
+++ b/SpineViewer/Controls/SpinePropertyGrid.cs
@@ -8,7 +8,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SpineViewer.PropertyGridWrappers.Spine;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Controls
{
diff --git a/SpineViewer/Dialogs/AboutDialog.cs b/SpineViewer/Dialogs/AboutDialog.cs
index 400d52c..f5ff22c 100644
--- a/SpineViewer/Dialogs/AboutDialog.cs
+++ b/SpineViewer/Dialogs/AboutDialog.cs
@@ -1,4 +1,4 @@
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/SpineViewer/Dialogs/BatchOpenSpineDialog.cs b/SpineViewer/Dialogs/BatchOpenSpineDialog.cs
index 19c23c6..0e7ee71 100644
--- a/SpineViewer/Dialogs/BatchOpenSpineDialog.cs
+++ b/SpineViewer/Dialogs/BatchOpenSpineDialog.cs
@@ -1,5 +1,5 @@
using SpineViewer.Spine;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -49,7 +49,7 @@ namespace SpineViewer.Dialogs
}
}
- if (version != SpineVersion.Auto && !Spine.Spine.HasImplementation(version))
+ if (version != SpineVersion.Auto && !Spine.SpineObject.HasImplementation(version))
{
MessagePopup.Info($"{version.GetName()} 版本尚未实现(咕咕咕~)");
return;
diff --git a/SpineViewer/Dialogs/ConvertFileFormatDialog.cs b/SpineViewer/Dialogs/ConvertFileFormatDialog.cs
index 30b98f4..5124015 100644
--- a/SpineViewer/Dialogs/ConvertFileFormatDialog.cs
+++ b/SpineViewer/Dialogs/ConvertFileFormatDialog.cs
@@ -1,5 +1,5 @@
using SpineViewer.Spine;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/SpineViewer/Dialogs/DiagnosticsDialog.cs b/SpineViewer/Dialogs/DiagnosticsDialog.cs
index 44094f6..fb5cdbd 100644
--- a/SpineViewer/Dialogs/DiagnosticsDialog.cs
+++ b/SpineViewer/Dialogs/DiagnosticsDialog.cs
@@ -1,5 +1,5 @@
using Microsoft.Win32;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/SpineViewer/Dialogs/ExportDialog.cs b/SpineViewer/Dialogs/ExportDialog.cs
index 25aae4a..a5af9a4 100644
--- a/SpineViewer/Dialogs/ExportDialog.cs
+++ b/SpineViewer/Dialogs/ExportDialog.cs
@@ -1,5 +1,5 @@
using SpineViewer.PropertyGridWrappers.Exporter;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections;
using System.Collections.Generic;
diff --git a/SpineViewer/Dialogs/OpenSpineDialog.cs b/SpineViewer/Dialogs/OpenSpineDialog.cs
index 4d14194..2525818 100644
--- a/SpineViewer/Dialogs/OpenSpineDialog.cs
+++ b/SpineViewer/Dialogs/OpenSpineDialog.cs
@@ -1,5 +1,5 @@
using SpineViewer.Spine;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -80,7 +80,7 @@ namespace SpineViewer.Dialogs
atlasPath = Path.GetFullPath(atlasPath);
}
- if (version != SpineVersion.Auto && !Spine.Spine.HasImplementation(version))
+ if (version != SpineVersion.Auto && !Spine.SpineObject.HasImplementation(version))
{
MessagePopup.Info($"{version.GetName()} 版本尚未实现(咕咕咕~)");
return;
diff --git a/SpineViewer/Dialogs/ProgressDialog.cs b/SpineViewer/Dialogs/ProgressDialog.cs
index ba00b1e..3d8a8e3 100644
--- a/SpineViewer/Dialogs/ProgressDialog.cs
+++ b/SpineViewer/Dialogs/ProgressDialog.cs
@@ -1,5 +1,5 @@
using NLog;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/SpineViewer/Exporter/Exporter.cs b/SpineViewer/Exporter/Exporter.cs
index 5a70697..35c68ab 100644
--- a/SpineViewer/Exporter/Exporter.cs
+++ b/SpineViewer/Exporter/Exporter.cs
@@ -1,7 +1,7 @@
using NLog;
using SpineViewer.Extensions;
using SpineViewer.PropertyGridWrappers;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -96,12 +96,12 @@ namespace SpineViewer.Exporter
///
/// 获取单个模型的单帧画面
///
- protected SFMLImageVideoFrame GetFrame(Spine.Spine spine) => GetFrame([spine]);
+ protected SFMLImageVideoFrame GetFrame(Spine.SpineObject spine) => GetFrame([spine]);
///
/// 获取模型列表的单帧画面
///
- protected SFMLImageVideoFrame GetFrame(Spine.Spine[] spinesToRender)
+ protected SFMLImageVideoFrame GetFrame(Spine.SpineObject[] spinesToRender)
{
// RenderTexture 必须临时创建, 随用随取, 防止出现跨线程的情况
using var texPma = GetRenderTexture();
@@ -149,12 +149,12 @@ namespace SpineViewer.Exporter
///
/// 每个模型在同一个画面进行导出
///
- protected abstract void ExportSingle(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null);
+ protected abstract void ExportSingle(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null);
///
/// 每个模型独立导出
///
- protected abstract void ExportIndividual(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null);
+ protected abstract void ExportIndividual(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null);
///
/// 检查参数是否合法并规范化参数值, 否则返回用户错误原因
@@ -178,7 +178,7 @@ namespace SpineViewer.Exporter
/// 要进行导出的 Spine 列表
/// 用来执行该函数的 worker
///
- public virtual void Export(Spine.Spine[] spines, BackgroundWorker? worker = null)
+ public virtual void Export(Spine.SpineObject[] spines, BackgroundWorker? worker = null)
{
if (Validate() is string err)
throw new ArgumentException(err);
diff --git a/SpineViewer/Exporter/FFmpegVideoExporter.cs b/SpineViewer/Exporter/FFmpegVideoExporter.cs
index eab9375..9490d19 100644
--- a/SpineViewer/Exporter/FFmpegVideoExporter.cs
+++ b/SpineViewer/Exporter/FFmpegVideoExporter.cs
@@ -51,7 +51,7 @@ namespace SpineViewer.Exporter
return null;
}
- protected override void ExportSingle(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportSingle(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
var noteSuffix = FileNameNoteSuffix;
if (!string.IsNullOrWhiteSpace(noteSuffix)) noteSuffix = $"_{noteSuffix}";
@@ -76,7 +76,7 @@ namespace SpineViewer.Exporter
}
}
- protected override void ExportIndividual(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportIndividual(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
var noteSuffix = FileNameNoteSuffix;
if (!string.IsNullOrWhiteSpace(noteSuffix)) noteSuffix = $"_{noteSuffix}";
diff --git a/SpineViewer/Exporter/FrameExporter.cs b/SpineViewer/Exporter/FrameExporter.cs
index 5080068..f23df3a 100644
--- a/SpineViewer/Exporter/FrameExporter.cs
+++ b/SpineViewer/Exporter/FrameExporter.cs
@@ -43,7 +43,7 @@ namespace SpineViewer.Exporter
}
private SizeF dpi = new(144, 144);
- protected override void ExportSingle(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportSingle(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
// 导出单个时必定提供输出文件夹
var filename = $"frame_{timestamp}{ImageFormat.GetSuffix()}";
@@ -65,7 +65,7 @@ namespace SpineViewer.Exporter
worker?.ReportProgress(100, $"已处理 1/1");
}
- protected override void ExportIndividual(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportIndividual(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
int total = spinesToRender.Length;
int success = 0;
diff --git a/SpineViewer/Exporter/FrameSequenceExporter.cs b/SpineViewer/Exporter/FrameSequenceExporter.cs
index bdfac0a..4bbc55f 100644
--- a/SpineViewer/Exporter/FrameSequenceExporter.cs
+++ b/SpineViewer/Exporter/FrameSequenceExporter.cs
@@ -18,7 +18,7 @@ namespace SpineViewer.Exporter
///
public string Suffix { get; set; } = ".png";
- protected override void ExportSingle(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportSingle(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
// 导出单个时必定提供输出文件夹,
var saveDir = Path.Combine(OutputDir, $"frames_{timestamp}_{FPS:f0}");
@@ -47,7 +47,7 @@ namespace SpineViewer.Exporter
}
}
- protected override void ExportIndividual(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected override void ExportIndividual(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
foreach (var spine in spinesToRender)
{
diff --git a/SpineViewer/Exporter/VideoExporter.cs b/SpineViewer/Exporter/VideoExporter.cs
index 0c99ae9..a36ea2b 100644
--- a/SpineViewer/Exporter/VideoExporter.cs
+++ b/SpineViewer/Exporter/VideoExporter.cs
@@ -41,7 +41,7 @@ namespace SpineViewer.Exporter
///
/// 生成单个模型的帧序列
///
- protected IEnumerable GetFrames(Spine.Spine spine, BackgroundWorker? worker = null)
+ protected IEnumerable GetFrames(Spine.SpineObject spine, BackgroundWorker? worker = null)
{
// 独立导出时如果 Duration 小于 0 则使用所有轨道上动画时长最大值
var duration = Duration;
@@ -90,7 +90,7 @@ namespace SpineViewer.Exporter
///
/// 生成多个模型的帧序列
///
- protected IEnumerable GetFrames(Spine.Spine[] spinesToRender, BackgroundWorker? worker = null)
+ protected IEnumerable GetFrames(Spine.SpineObject[] spinesToRender, BackgroundWorker? worker = null)
{
// 导出单个时必须根据 Duration 决定导出时长
var duration = Duration;
@@ -135,7 +135,7 @@ namespace SpineViewer.Exporter
}
}
- public override void Export(Spine.Spine[] spines, BackgroundWorker? worker = null)
+ public override void Export(Spine.SpineObject[] spines, BackgroundWorker? worker = null)
{
// 导出视频格式需要把模型时间都重置到 0
foreach (var spine in spines) spine.ResetAnimationsTime();
diff --git a/SpineViewer/Forms/SpineViewerForm.cs b/SpineViewer/Forms/SpineViewerForm.cs
index bd298e2..1ecefe9 100644
--- a/SpineViewer/Forms/SpineViewerForm.cs
+++ b/SpineViewer/Forms/SpineViewerForm.cs
@@ -5,8 +5,8 @@ using System.Diagnostics;
using SpineViewer.Exporter;
using System.Reflection.Metadata;
using SpineViewer.PropertyGridWrappers.Exporter;
-using SpineViewer.Utilities;
using SpineViewer.Natives;
+using SpineViewer.Utils;
namespace SpineViewer
{
diff --git a/SpineViewer/Program.cs b/SpineViewer/Program.cs
index 88d62c6..aceb313 100644
--- a/SpineViewer/Program.cs
+++ b/SpineViewer/Program.cs
@@ -1,5 +1,5 @@
using NLog;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System.Diagnostics;
using System.Reflection;
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineAnimationWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineAnimationWrapper.cs
index 1d34434..2264c59 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineAnimationWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineAnimationWrapper.cs
@@ -14,9 +14,9 @@ namespace SpineViewer.PropertyGridWrappers.Spine
///
///
[TypeConverter(typeof(TrackWrapperConverter))]
- public class TrackWrapper(SpineViewer.Spine.Spine spine, int i)
+ public class TrackWrapper(SpineObject spine, int i)
{
- private readonly SpineViewer.Spine.Spine spine = spine;
+ private readonly SpineObject spine = spine;
[Browsable(false)]
public int Index { get; } = i;
@@ -47,7 +47,7 @@ namespace SpineViewer.PropertyGridWrappers.Spine
///
/// 用于在 PropertyGrid 上显示 Spine 动画列表的包装类
///
- public class SpineAnimationWrapper(SpineViewer.Spine.Spine spine) : ICustomTypeDescriptor
+ public class SpineAnimationWrapper(SpineObject spine) : ICustomTypeDescriptor
{
///
/// 轨道属性描述符, 实现对属性的读取和赋值
@@ -88,7 +88,7 @@ namespace SpineViewer.PropertyGridWrappers.Spine
}
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// 全轨道动画最大时长
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineBaseInfoWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineBaseInfoWrapper.cs
index 18feccb..8741051 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineBaseInfoWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineBaseInfoWrapper.cs
@@ -11,10 +11,10 @@ namespace SpineViewer.PropertyGridWrappers.Spine
///
/// 用于在 PropertyGrid 上显示 Spine 基本信息的包装类
///
- public class SpineBaseInfoWrapper(SpineViewer.Spine.Spine spine)
+ public class SpineBaseInfoWrapper(SpineObject spine)
{
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// 获取所属版本
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineDebugWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineDebugWrapper.cs
index 2182e81..4e6a170 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineDebugWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineDebugWrapper.cs
@@ -4,16 +4,17 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using SpineViewer.Spine;
namespace SpineViewer.PropertyGridWrappers.Spine
{
///
/// 用于在 PropertyGrid 上显示 Spine 调试属性的包装类
///
- public class SpineDebugWrapper(SpineViewer.Spine.Spine spine)
+ public class SpineDebugWrapper(SpineObject spine)
{
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// 显示纹理
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineRenderWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineRenderWrapper.cs
index 11f3619..f7068ab 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineRenderWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineRenderWrapper.cs
@@ -4,16 +4,17 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using SpineViewer.Spine;
namespace SpineViewer.PropertyGridWrappers.Spine
{
///
/// 用于在 PropertyGrid 上显示 Spine 渲染设置的包装类
///
- public class SpineRenderWrapper(SpineViewer.Spine.Spine spine)
+ public class SpineRenderWrapper(SpineObject spine)
{
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// 是否被隐藏, 被隐藏的模型将仅仅在列表显示, 不参与其他行为
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineSkinWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineSkinWrapper.cs
index 6b6b653..2932db5 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineSkinWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineSkinWrapper.cs
@@ -12,9 +12,9 @@ namespace SpineViewer.PropertyGridWrappers.Spine
/// 对皮肤属性的包装类
///
[TypeConverter(typeof(SkinWrapperConverter))]
- public class SkinWrapper(SpineViewer.Spine.Spine spine, int i)
+ public class SkinWrapper(SpineObject spine, int i)
{
- private readonly SpineViewer.Spine.Spine spine = spine;
+ private readonly SpineObject spine = spine;
[Browsable(false)]
public int Index { get; } = i;
@@ -40,7 +40,7 @@ namespace SpineViewer.PropertyGridWrappers.Spine
/// 皮肤列表动态类型包装类, 用于提供对 Spine 皮肤列表的管理能力
///
/// 关联的 Spine 对象
- public class SpineSkinWrapper(SpineViewer.Spine.Spine spine) : ICustomTypeDescriptor
+ public class SpineSkinWrapper(SpineObject spine) : ICustomTypeDescriptor
{
///
/// 皮肤属性描述符, 实现对属性的读取和赋值
@@ -80,7 +80,7 @@ namespace SpineViewer.PropertyGridWrappers.Spine
}
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// SkinWrapper 属性缓存
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineTransformWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineTransformWrapper.cs
index 7de63e7..febf1f6 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineTransformWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineTransformWrapper.cs
@@ -4,16 +4,17 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using SpineViewer.Spine;
namespace SpineViewer.PropertyGridWrappers.Spine
{
///
/// 用于在 PropertyGrid 上显示 Spine 空间变换的包装类
///
- public class SpineTransformWrapper(SpineViewer.Spine.Spine spine)
+ public class SpineTransformWrapper(SpineObject spine)
{
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
///
/// 缩放比例
diff --git a/SpineViewer/PropertyGridWrappers/Spine/SpineWrapper.cs b/SpineViewer/PropertyGridWrappers/Spine/SpineWrapper.cs
index b46b8ec..592c205 100644
--- a/SpineViewer/PropertyGridWrappers/Spine/SpineWrapper.cs
+++ b/SpineViewer/PropertyGridWrappers/Spine/SpineWrapper.cs
@@ -5,13 +5,14 @@ using System.Drawing.Design;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using SpineViewer.Spine;
namespace SpineViewer.PropertyGridWrappers.Spine
{
- public class SpineWrapper(SpineViewer.Spine.Spine spine)
+ public class SpineWrapper(SpineObject spine)
{
[Browsable(false)]
- public SpineViewer.Spine.Spine Spine { get; } = spine;
+ public SpineObject Spine { get; } = spine;
[DisplayName("基本信息")]
public SpineBaseInfoWrapper BaseInfo { get; } = new(spine);
diff --git a/SpineViewer/PropertyGridWrappers/TypeConverter.cs b/SpineViewer/PropertyGridWrappers/TypeConverter.cs
index c951e1a..27f7592 100644
--- a/SpineViewer/PropertyGridWrappers/TypeConverter.cs
+++ b/SpineViewer/PropertyGridWrappers/TypeConverter.cs
@@ -120,11 +120,11 @@ namespace SpineViewer.PropertyGridWrappers
public override StandardValuesCollection? GetStandardValues(ITypeDescriptorContext? context)
{
- if (context?.Instance is SpineViewer.Spine.Spine obj)
+ if (context?.Instance is SpineObject obj)
{
return new StandardValuesCollection(obj.SkinNames);
}
- else if (context?.Instance is SpineViewer.Spine.Spine[] spines)
+ else if (context?.Instance is SpineObject[] spines)
{
if (spines.Length > 0)
{
@@ -146,11 +146,11 @@ namespace SpineViewer.PropertyGridWrappers
public override StandardValuesCollection? GetStandardValues(ITypeDescriptorContext? context)
{
- if (context?.Instance is SpineViewer.Spine.Spine obj)
+ if (context?.Instance is SpineObject obj)
{
return new StandardValuesCollection(obj.AnimationNames);
}
- else if (context?.Instance is SpineViewer.Spine.Spine[] spines)
+ else if (context?.Instance is SpineObject[] spines)
{
if (spines.Length > 0)
{
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine21.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine21.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
index b151c5c..1239b6a 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine21.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
@@ -7,12 +7,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime21;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V21)]
- internal class Spine21 : SpineViewer.Spine.Spine
+ internal class SpineObject21 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -48,7 +48,7 @@ namespace SpineViewer.Spine.Implementations.Spine
// 2.1.x 不支持剪裁
//private SkeletonClipping clipping = new();
- public Spine21(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject21(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine36.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine36.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
index 65e1832..c4e6ee9 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine36.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
@@ -7,12 +7,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime36;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V36)]
- internal class Spine36 : SpineViewer.Spine.Spine
+ internal class SpineObject36 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -47,7 +47,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine36(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject36(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine37.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine37.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
index de441c1..6fc9318 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine37.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
@@ -4,12 +4,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime37;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V37)]
- internal class Spine37 : SpineViewer.Spine.Spine
+ internal class SpineObject37 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -45,7 +45,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine37(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject37(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine38.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine38.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
index 62032ff..0143f4a 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine38.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
@@ -7,12 +7,12 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime38;
using SpineRuntime38.Attachments;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V38)]
- internal class Spine38 : SpineViewer.Spine.Spine
+ internal class SpineObject38 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -51,7 +51,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine38(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject38(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine40.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine40.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
index 139e2a7..58756c6 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine40.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime40;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V40)]
- internal class Spine40 : SpineViewer.Spine.Spine
+ internal class SpineObject40 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -47,7 +47,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine40(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject40(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine41.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine41.cs
rename to SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
index 1de932c..5675f40 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine41.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime41;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V41)]
- internal class Spine41 : SpineViewer.Spine.Spine
+ internal class SpineObject41 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -47,7 +47,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine41(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public SpineObject41(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine42.cs b/SpineViewer/Spine/Implementations/SpineObject/Spineobject42.cs
similarity index 98%
rename from SpineViewer/Spine/Implementations/Spine/Spine42.cs
rename to SpineViewer/Spine/Implementations/SpineObject/Spineobject42.cs
index e95b39e..61fcbf3 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine42.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/Spineobject42.cs
@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpineRuntime42;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(SpineVersion.V42)]
- internal class Spine42 : SpineViewer.Spine.Spine
+ internal class Spineobject42 : SpineObject
{
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
@@ -47,7 +47,7 @@ namespace SpineViewer.Spine.Implementations.Spine
private SkeletonClipping clipping = new();
- public Spine42(string skelPath, string atlasPath) : base(skelPath, atlasPath)
+ public Spineobject42(string skelPath, string atlasPath) : base(skelPath, atlasPath)
{
atlas = new Atlas(AtlasPath, textureLoader);
try
diff --git a/SpineViewer/Spine/SkeletonConverter.cs b/SpineViewer/Spine/SkeletonConverter.cs
index c86387f..0785456 100644
--- a/SpineViewer/Spine/SkeletonConverter.cs
+++ b/SpineViewer/Spine/SkeletonConverter.cs
@@ -9,7 +9,7 @@ using System.Text;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Encodings.Web;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine
{
diff --git a/SpineViewer/Spine/SpineHelper.cs b/SpineViewer/Spine/SpineHelper.cs
index 2fb30a3..4b60700 100644
--- a/SpineViewer/Spine/SpineHelper.cs
+++ b/SpineViewer/Spine/SpineHelper.cs
@@ -1,4 +1,4 @@
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
diff --git a/SpineViewer/Spine/Spine.cs b/SpineViewer/Spine/SpineObject.cs
similarity index 94%
rename from SpineViewer/Spine/Spine.cs
rename to SpineViewer/Spine/SpineObject.cs
index fd00ea6..59e11a6 100644
--- a/SpineViewer/Spine/Spine.cs
+++ b/SpineViewer/Spine/SpineObject.cs
@@ -5,14 +5,14 @@ using System.Drawing.Design;
using NLog;
using System.Xml.Linq;
using SpineViewer.Extensions;
-using SpineViewer.Utilities;
+using SpineViewer.Utils;
namespace SpineViewer.Spine
{
///
/// Spine 基类, 使用静态方法 New 来创建具体版本对象, 该类是线程安全的
///
- public abstract class Spine : ImplementationResolver, SFML.Graphics.Drawable, IDisposable
+ public abstract class SpineObject : ImplementationResolver, SFML.Graphics.Drawable, IDisposable
{
///
/// 空动画标记
@@ -32,7 +32,7 @@ namespace SpineViewer.Spine
///
/// 创建特定版本的 Spine
///
- public static Spine New(SpineVersion version, string skelPath, string? atlasPath = null)
+ public static SpineObject New(SpineVersion version, string skelPath, string? atlasPath = null)
{
atlasPath ??= Path.ChangeExtension(skelPath, ".atlas");
skelPath = Path.GetFullPath(skelPath);
@@ -48,13 +48,16 @@ namespace SpineViewer.Spine
///
private readonly object _lock = new();
- private readonly Logger logger = LogManager.GetCurrentClassLogger();
+ ///
+ /// 日志器
+ ///
+ protected readonly Logger logger = LogManager.GetCurrentClassLogger();
private bool skinLoggerWarned = false;
///
/// 构造函数
///
- public Spine(string skelPath, string atlasPath)
+ public SpineObject(string skelPath, string atlasPath)
{
Version = GetType().GetCustomAttribute().ImplementationKey;
AssetsDir = Directory.GetParent(skelPath).FullName;
@@ -66,7 +69,7 @@ namespace SpineViewer.Spine
///
/// 构造函数之后的初始化工作
///
- private Spine PostInit()
+ private SpineObject PostInit()
{
SkinNames = skinNames.AsReadOnly();
AnimationNames = animationNames.AsReadOnly();
@@ -98,7 +101,7 @@ namespace SpineViewer.Spine
return this;
}
- ~Spine() { Dispose(false); }
+ ~SpineObject() { Dispose(false); }
public void Dispose() { Dispose(true); GC.SuppressFinalize(this); }
protected virtual void Dispose(bool disposing) { Preview?.Dispose(); }
@@ -279,7 +282,7 @@ namespace SpineViewer.Spine
loadedSkins.Add(name);
reloadSkins();
- if (!skinLoggerWarned && Version <= SpineVersion.V37 && loadedSkins.Count > 1)
+ if (!skinLoggerWarned && Version < SpineVersion.V38 && loadedSkins.Count > 1)
{
logger.Warn($"Multiplt skins not supported in SpineVersion {Version.GetName()}");
skinLoggerWarned = true;
@@ -292,9 +295,9 @@ namespace SpineViewer.Spine
///
public void UnloadSkin(int idx)
{
- if (idx < 0 || idx >= loadedSkins.Count) return;
lock (_lock)
{
+ if (idx < 0 || idx >= loadedSkins.Count) return;
loadedSkins.RemoveAt(idx);
reloadSkins();
}
@@ -305,9 +308,9 @@ namespace SpineViewer.Spine
///
public void ReplaceSkin(int idx, string name)
{
- if (idx < 0 || idx >= loadedSkins.Count || !skinNames.Contains(name)) return;
lock (_lock)
{
+ if (idx < 0 || idx >= loadedSkins.Count || !skinNames.Contains(name)) return;
loadedSkins[idx] = name;
reloadSkins();
}
diff --git a/SpineViewer/Utilities/ImplementationResolver.cs b/SpineViewer/Utils/ImplementationResolver.cs
similarity index 98%
rename from SpineViewer/Utilities/ImplementationResolver.cs
rename to SpineViewer/Utils/ImplementationResolver.cs
index fba9151..eb1a1aa 100644
--- a/SpineViewer/Utilities/ImplementationResolver.cs
+++ b/SpineViewer/Utils/ImplementationResolver.cs
@@ -6,7 +6,7 @@ using System.Reflection;
using System.Text;
using System.Threading.Tasks;
-namespace SpineViewer.Utilities
+namespace SpineViewer.Utils
{
public interface IImplementationKey
{
diff --git a/SpineViewer/Utilities/MessagePopup.cs b/SpineViewer/Utils/MessagePopup.cs
similarity index 97%
rename from SpineViewer/Utilities/MessagePopup.cs
rename to SpineViewer/Utils/MessagePopup.cs
index c897880..e900923 100644
--- a/SpineViewer/Utilities/MessagePopup.cs
+++ b/SpineViewer/Utils/MessagePopup.cs
@@ -5,7 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
-namespace SpineViewer.Utilities
+namespace SpineViewer.Utils
{
///
/// 弹窗消息静态类
diff --git a/SpineViewer/Utilities/SFMLBlendMode.cs b/SpineViewer/Utils/SFMLBlendMode.cs
similarity index 99%
rename from SpineViewer/Utilities/SFMLBlendMode.cs
rename to SpineViewer/Utils/SFMLBlendMode.cs
index e0bdd15..d07f366 100644
--- a/SpineViewer/Utilities/SFMLBlendMode.cs
+++ b/SpineViewer/Utils/SFMLBlendMode.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace SpineViewer.Utilities
+namespace SpineViewer.Utils
{
///
/// SFML 混合模式, 预乘模式下输入和输出的像素值都是预乘的
diff --git a/SpineViewer/Utilities/SFMLShader.cs b/SpineViewer/Utils/SFMLShader.cs
similarity index 98%
rename from SpineViewer/Utilities/SFMLShader.cs
rename to SpineViewer/Utils/SFMLShader.cs
index a03e709..e93ccd9 100644
--- a/SpineViewer/Utilities/SFMLShader.cs
+++ b/SpineViewer/Utils/SFMLShader.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace SpineViewer.Utilities
+namespace SpineViewer.Utils
{
public static class SFMLShader
{