Compare commits

..

76 Commits

Author SHA1 Message Date
ww-rm
4b23c779d3 Merge pull request #124 from ww-rm/dev/wpf
v0.16.7
2025-10-06 14:04:13 +08:00
ww-rm
f5684a50dc update to v0.16.7 2025-10-06 14:03:19 +08:00
ww-rm
579ce9f944 update changelog 2025-10-06 14:03:03 +08:00
ww-rm
7aa88089b8 修复空帧导致的包围盒计算错误 2025-10-06 14:02:21 +08:00
ww-rm
be983f8407 修复窗口二次显示错误 2025-10-06 13:32:03 +08:00
ww-rm
249b930602 Merge pull request #122 from ww-rm/dev/wpf
v0.16.6
2025-10-04 20:55:59 +08:00
ww-rm
6472f378b7 update to v0.16.6 2025-10-04 20:53:29 +08:00
ww-rm
8672f0571c udpate changelog 2025-10-04 20:53:06 +08:00
ww-rm
e7a990c1bd 修复可能出现的0缩放错误 2025-10-04 20:50:08 +08:00
ww-rm
6727fa8e8f Merge pull request #120 from ww-rm/dev/wpf
v0.16.5
2025-10-04 16:59:08 +08:00
ww-rm
66d8c489b5 update to v0.16.5 2025-10-04 16:58:32 +08:00
ww-rm
1931c4713a update changelog 2025-10-04 16:58:09 +08:00
ww-rm
f19f172e7c 修复窗口联动显示问题 2025-10-04 16:56:32 +08:00
ww-rm
092fa76124 修复对于某些旧atlas没有size行的读取异常 2025-10-04 16:38:14 +08:00
ww-rm
a0b7db0a70 Merge pull request #119 from ww-rm/dev/wpf
v0.16.4
2025-10-04 00:11:15 +08:00
ww-rm
6438b46ea0 修复样式错误 2025-10-04 00:09:38 +08:00
ww-rm
2bf73db9d3 补充前景色绑定 2025-10-03 23:54:54 +08:00
ww-rm
03c4974c9f Merge pull request #118 from ww-rm/dev/wpf
v0.16.4
2025-10-03 23:50:05 +08:00
ww-rm
760fa3a451 update to v0.16.4 2025-10-03 23:49:12 +08:00
ww-rm
018d8f5330 update changelog 2025-10-03 23:48:25 +08:00
ww-rm
c9730e1a11 完善标题栏皮肤颜色切换 2025-10-03 23:45:35 +08:00
ww-rm
1f6e19e544 修改日志着色 2025-10-03 22:29:43 +08:00
ww-rm
a1a0777791 重构样式 2025-10-03 22:22:21 +08:00
ww-rm
887e3f76d2 增加程序皮肤首选项 2025-10-03 19:38:48 +08:00
ww-rm
8b622050fa 重构 2025-10-03 19:11:59 +08:00
ww-rm
20369aaf43 调整颜色按钮背景色固定白色 2025-10-03 16:17:26 +08:00
ww-rm
07c0e84b7d 修复颜色错误 2025-10-03 16:11:04 +08:00
ww-rm
6770acaffd small change 2025-10-03 13:34:45 +08:00
ww-rm
6201ccc7d1 去除独立颜色使用 2025-10-03 09:46:14 +08:00
ww-rm
965d1c469e 增加ColorPicker使用 2025-10-03 09:19:02 +08:00
ww-rm
b448ca8cb0 重构 2025-10-02 22:42:21 +08:00
ww-rm
2204eb6c75 增加apng格式并且调整部分布局结构 2025-10-02 22:18:05 +08:00
ww-rm
0abe063899 调整文件结构 2025-10-02 15:18:40 +08:00
ww-rm
6f9b357473 Merge pull request #116 from ww-rm/dev/wpf
v0.16.3
2025-10-02 14:22:11 +08:00
ww-rm
152d842043 update to v0.16.3 2025-10-02 14:21:35 +08:00
ww-rm
d16f97d574 update changelog 2025-10-02 14:21:18 +08:00
ww-rm
d28eabaca5 解决可能卡死问题 2025-10-02 14:19:53 +08:00
ww-rm
b730f677be 完善像素检测 2025-10-02 14:04:42 +08:00
ww-rm
8f8806417a 完善工作区加载模型逻辑 2025-10-02 11:44:51 +08:00
ww-rm
06694c9e89 补充注释 2025-10-02 11:29:13 +08:00
ww-rm
e9b0ce3db2 增加None命中测试等级 2025-10-02 11:19:22 +08:00
ww-rm
4c72608398 修改部分布局 2025-10-02 11:01:38 +08:00
ww-rm
7e99882fbf 增加命中测试等级选项 2025-10-02 10:32:24 +08:00
ww-rm
0d72d8749a 调整调试输出逻辑 2025-10-02 10:23:51 +08:00
ww-rm
d5b7a74520 增加Name属性 2025-10-02 10:17:12 +08:00
ww-rm
0202027edb 修复模型添加顺序错误 2025-10-02 09:32:17 +08:00
ww-rm
d1d32b6292 Merge pull request #115 from ww-rm/dev/wpf
v0.16.2
2025-10-01 23:48:03 +08:00
ww-rm
b32485e122 update to v0.16.2 2025-10-01 23:45:01 +08:00
ww-rm
36d578f4d4 update changelog 2025-10-01 23:44:42 +08:00
ww-rm
42bd5c2830 增加精确命中检测和插槽输出 2025-10-01 23:43:03 +08:00
ww-rm
44548618e8 精简代码 2025-10-01 19:58:39 +08:00
ww-rm
681b1be360 修复添加顺序错误 2025-10-01 18:45:03 +08:00
ww-rm
30dee9978c 重构并增加HitTest 2025-10-01 16:35:51 +08:00
ww-rm
47aafc7948 Merge pull request #113 from ww-rm/dev/wpf
v0.16.1
2025-09-30 22:19:01 +08:00
ww-rm
1d8e2efdff update to v0.16.1 2025-09-30 22:14:07 +08:00
ww-rm
dd504d32ca 修复3.4的附件残留问题 2025-09-30 14:47:00 +08:00
ww-rm
267c7b81c3 Merge pull request #111 from ww-rm/dev/wpf
update readme
2025-09-30 12:19:17 +08:00
ww-rm
c4a6fd9d86 update readme 2025-09-30 12:18:45 +08:00
ww-rm
6e46152e4c Merge pull request #110 from ww-rm/dev/wpf
update readme
2025-09-30 12:00:41 +08:00
ww-rm
f2f296e494 update readme 2025-09-30 11:59:51 +08:00
ww-rm
34f9eeff2c Merge pull request #109 from ww-rm/dev/wpf
v0.16.0
2025-09-30 11:49:45 +08:00
ww-rm
1278fefea2 update readme 2025-09-30 11:47:55 +08:00
ww-rm
48d46afcff update readme 2025-09-30 11:12:06 +08:00
ww-rm
6742dacaf2 update to v0.16.0 2025-09-30 10:53:06 +08:00
ww-rm
3337ecc03a update changelog 2025-09-30 10:52:10 +08:00
ww-rm
b9eaacd1f7 修复可能的3.4版本附件残留问题 2025-09-30 10:30:25 +08:00
ww-rm
a0ada51325 修复跨线程错误 2025-09-30 09:21:54 +08:00
ww-rm
8e03911957 修复可能的窗口大小不正确问题 2025-09-30 08:55:00 +08:00
ww-rm
0b3db0fd0d 增加IsShuttingDownFromTray标志位 2025-09-30 08:45:28 +08:00
ww-rm
bb2862ed4f 增加最小化至托盘图标功能 2025-09-30 01:53:14 +08:00
ww-rm
8c3be98b54 修复记忆状态中的长度单位错误 2025-09-30 00:28:05 +08:00
ww-rm
b76224c010 调整顺序 2025-09-30 00:00:32 +08:00
ww-rm
bd9f8d714a 增加开机自启功能和自启设置 2025-09-29 23:26:06 +08:00
ww-rm
6900968555 调整布局 2025-09-29 00:05:41 +08:00
ww-rm
741d334a92 切换桌面投影时自动设置预览分辨率为主屏幕分辨率 2025-09-28 22:20:48 +08:00
ww-rm
b583108afa 更新模板 2025-09-28 20:44:12 +08:00
221 changed files with 3685 additions and 1903 deletions

View File

@@ -15,4 +15,4 @@ assignees: ''
如果有必要,提供报错时的有关截图。/If applicable, add screenshots to help explain your problem.
## 附件(可选)/Attachments (Optional)
请将会**出现问题的文件**以及**日志文件**打包成一个 ZIP 后作为附件贴在 issue 内。/Please compress the problematic files and the log files into a single ZIP archive and attach it to this issue.
请将会**出现问题的文件**以及**日志文件**打包成一个 ZIP 后作为附件贴在 issue 内,日志文件位于程序目录下的 `logs` 文件夹内。/Please compress the problematic files and the log files into a single ZIP archive and attach it to this issue. The log files are located in the `logs` folder under the program directory.

View File

@@ -1,5 +1,50 @@
# CHANGELOG
## v0.16.7
- 修复空帧导致的包围盒计算错误
- 修复重复启动程序无法唤出界面的问题
## v0.16.6
- 修复控件尺寸为0时导致的画面缩放错误
## v0.16.5
- 修复对于无 size 行的旧 atlas 格式读取错误
- 修复托盘化之后无法联动显示窗口的问题
## v0.16.4
- 增加 apng 导出格式
- 增加颜色拾取器面板
- 增加程序皮肤(主题颜色)首选项
- 优化部分使用体验
## v0.16.3
- 修复加载工作区时的顺序错误
- 调整部分调试渲染的逻辑
- 完善命中检测逻辑
## v0.16.2
- 修复批量添加时的添加顺序错误
- 增加精确命中检测和插槽输出功能
- 部分代码重构
## v0.16.1
- 修复 3.4 版本存在的附件残留问题
## v0.16.0
- 增加最小化至托盘图标功能
- 调整部分参数项的顺序
- 增加开机自启和自启文件设置
- 切换桌面投影时自动设置预览分辨率为主屏幕分辨率
- 修复 3.4 版本下可能存在的附件残留问题
## v0.15.19
- 模型重载后选中最后一个重载模型

View File

@@ -7,7 +7,7 @@
<TargetFramework>net8.0-windows</TargetFramework>
<BaseOutputPath>$(SolutionDir)out</BaseOutputPath>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<Version>0.15.18</Version>
<Version>0.16.0</Version>
<UseWPF>true</UseWPF>
</PropertyGroup>

View File

@@ -8,29 +8,32 @@
A simple and user-friendly Spine file viewer and exporter with multi-language support (Chinese/English/Japanese).
![previewer](img/preview.webp)
![previewer](https://github.com/user-attachments/assets/697ae86f-ddf0-445d-951c-cf04f5206e40)
https://github.com/user-attachments/assets/37b6b730-088a-4352-827a-c338127a16f0
## Features
* Supports multiple versions of Spine files.
* Batch open files via drag-and-drop or copy-paste.
* Batch preview functionality.
* List-based multi-skeleton viewing and render order management.
* Batch adjustment of skeleton parameters using multi-selection.
* Multi-track animation settings.
* Skin and custom slot attachment settings.
* Custom slot visibility settings.
* Debug rendering support.
* View/model/track time scale adjustment.
* Track alpha blending parameter settings.
* Fullscreen preview mode.
* Export to single frame/image sequence/animated GIF/video formats.
* Automatic resolution batch export.
* FFmpeg custom export support.
* Program parameter saving.
* File name extension association.
* Supports texture image formats other than PNG.
* ...
- Multiple versions of Spine files
- Batch file opening via drag-and-drop or copy-paste
- Batch preview
- List-based multi-skeleton viewing and render order management
- Multi-selection in lists for batch skeleton parameter settings
- Multi-track animation settings
- Skin and custom slot attachment settings
- Custom slot visibility
- Debug rendering
- Playback speed adjustment for view/model/track timelines
- Track alpha blending parameter settings
- Fullscreen preview
- Export to single frame, image sequence, animated GIF, or video file
- Automatic resolution batch export
- Custom export with FFmpeg
- Program parameter saving
- File extension association
- Texture images in formats other than PNG
- Launch at startup with persistent dynamic wallpaper
- ......
### Supported Spine Versions
@@ -78,14 +81,14 @@ In the menu, go to "File" -> "Preferences..." -> "Language," select your desired
The program is organized into a left-right layout:
* **Left Panel:** Functionality panel.
* **Right Panel:** Preview display.
- **Left Panel:** Functionality panel.
- **Right Panel:** Preview display.
The left panel includes three sub-panels:
* **Browse:** Preview the content of a specified folder without importing files into the program. This panel allows generating `.webp` previews for models or importing selected models.
* **Model:** Lists imported models for rendering. Parameters and rendering order can be adjusted here, along with other model-related functionalities.
* **Display:** Adjust parameters for the right-side preview display.
- **Browse:** Preview the content of a specified folder without importing files into the program. This panel allows generating `.webp` previews for models or importing selected models.
- **Model:** Lists imported models for rendering. Parameters and rendering order can be adjusted here, along with other model-related functionalities.
- **Display:** Adjust parameters for the right-side preview display.
Hover your mouse over buttons, labels, or input fields to see help text for most UI elements.
@@ -101,10 +104,10 @@ The Model panel supports right-click menus, some shortcuts, and batch adjustment
For preview display adjustments:
* **Left-click:** Select and drag models. Hold `Ctrl` for multi-selection, synchronized with the left-side list.
* **Right-click:** Drag the entire display.
* **Scroll wheel:** Zoom in/out. Hold `Ctrl` to scale selected models.
* **Render selected-only mode:** In this mode, the preview only shows selected models, and selection status can only be changed via the left-side list.
- **Left-click:** Select and drag models. Hold `Ctrl` for multi-selection, synchronized with the left-side list.
- **Right-click:** Drag the entire display.
- **Scroll wheel:** Zoom in/out. Hold `Ctrl` to scale selected models.
- **Render selected-only mode:** In this mode, the preview only shows selected models, and selection status can only be changed via the left-side list.
The buttons below the preview display allow time adjustments, serving as a simple playback control.
@@ -116,9 +119,17 @@ Use the right-click menu in the Model panel to export selected items.
Key export parameters include:
* **Output folder:** Optional. When not specified, output is saved to the respective model folder; otherwise, all output is saved to the provided folder.
* **Export single:** By default, each model is exported independently. Selecting "Export single" renders all selected models in a single frame, producing a unified output.
* **Auto resolution:** Ignores the preview resolution and viewport parameters, exporting output at the actual size of the content. For animations/videos, the output matches the size required for full visibility.
- **Output folder:** Optional. When not specified, output is saved to the respective model folder; otherwise, all output is saved to the provided folder.
- **Export single:** By default, each model is exported independently. Selecting "Export single" renders all selected models in a single frame, producing a unified output.
- **Auto resolution:** Ignores the preview resolution and viewport parameters, exporting output at the actual size of the content. For animations/videos, the output matches the size required for full visibility.
### Dynamic Wallpaper
Dynamic wallpaper is implemented through desktop projection, allowing the content of the current preview to be projected onto the desktop in real time.
You can enable or disable desktop projection from the program preferences or the right-click menu of the tray icon. After adjusting the model and display parameters, you can save the current configuration as a workspace file for convenient restoration later.
If you want the wallpaper to stay active after startup, you can enable auto-start in the preferences and specify which workspace file should be loaded when the program launches.
### More Information
@@ -126,12 +137,12 @@ For detailed usage and documentation, see the [Wiki](https://github.com/ww-rm/Sp
## Acknowledgements
* [spine-runtimes](https://github.com/EsotericSoftware/spine-runtimes)
* [SFML.Net](https://github.com/SFML/SFML.Net)
* [FFMpegCore](https://github.com/rosenbjerg/FFMpegCore)
* [HandyControl](https://github.com/HandyOrg/HandyControl)
* [NLog](https://github.com/NLog/NLog)
* [SkiaSharp](https://github.com/mono/SkiaSharp)
- [spine-runtimes](https://github.com/EsotericSoftware/spine-runtimes)
- [SFML.Net](https://github.com/SFML/SFML.Net)
- [FFMpegCore](https://github.com/rosenbjerg/FFMpegCore)
- [HandyControl](https://github.com/HandyOrg/HandyControl)
- [NLog](https://github.com/NLog/NLog)
- [SkiaSharp](https://github.com/mono/SkiaSharp)
---

View File

@@ -4,11 +4,15 @@
[![GitHub Release](https://img.shields.io/github/v/release/ww-rm/SpineViewer?logo=github&logoColor=959da5&label=Release&labelColor=3f4850)](https://github.com/ww-rm/SpineViewer/releases)
[![Downloads](https://img.shields.io/github/downloads/ww-rm/SpineViewer/total?logo=github&logoColor=959da5&label=Downloads&labelColor=3f4850)](https://github.com/ww-rm/SpineViewer/releases)
![Languages](https://img.shields.io/badge/Languages-中文%20%7C%20English%20%7C%20日本語-blue)
[中文](README.md) | [English](README.en.md)
一个简单好用的 Spine 文件查看&导出程序, 支持中/英/日多语言界面.
Spine 文件查看&导出程序, 同时也是支持 Spine 的动态壁纸程序.
![previewer](img/preview.webp)
![previewer](https://github.com/user-attachments/assets/697ae86f-ddf0-445d-951c-cf04f5206e40)
https://github.com/user-attachments/assets/37b6b730-088a-4352-827a-c338127a16f0
## 功能
@@ -30,6 +34,7 @@
- 支持程序参数保存
- 支持文件后缀关联
- 支持非 png 格式的纹理图片格式
- 支持开机自启常驻动态壁纸
- ......
### Spine 版本支持
@@ -117,6 +122,14 @@
- 导出单个. 默认是每个模型独立导出, 即对模型列表进行批量操作, 如果选择仅导出单个, 那么被导出的所有模型将在同一个画面上被渲染, 输出产物只有一份.
- 自动分辨率. 该模式会忽略预览画面的分辨率和视区参数, 导出产物的分辨率与被导出内容的实际大小一致, 如果是动图或者视频则会与完整显示动画的必需大小一致.
### 动态壁纸
动态壁纸通过桌面投影实现, 可以将当前预览画面上的内容实时投影至桌面.
在程序首选项或者托盘图标右键菜单中可以进行桌面投影的启用与否, 模型和画面参数调整完成后, 可以将当前参数保存为工作区文件, 方便之后恢复该配置.
如果希望开机自启常驻壁纸, 也可以在首选项中启用开机自启, 并且设置启动后需要加载的工作区文件.
### 更多
更为详细的使用方法和说明见 [Wiki](https://github.com/ww-rm/SpineViewer/wiki), 有使用上的问题或者 BUG 可以提个 [Issue](https://github.com/ww-rm/SpineViewer/issues).

View File

@@ -240,8 +240,8 @@ namespace SFMLRenderer
if (RenderWindow is null) return;
float parentW = (float)sizeInfo.NewSize.Width;
float parentH = (float)sizeInfo.NewSize.Height;
float renderW = (float)_hwndHost.ActualWidth;
float renderH = (float)_hwndHost.ActualHeight;
float renderW = _resolution.X;
float renderH = _resolution.Y;
float scale = Math.Min(parentW / renderW, parentH / renderH); // 两方向取较小值, 保证 parent 覆盖 render
renderW *= scale;
renderH *= scale;

View File

@@ -7,7 +7,7 @@
<TargetFramework>net8.0-windows</TargetFramework>
<BaseOutputPath>$(SolutionDir)out</BaseOutputPath>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<Version>0.15.19</Version>
<Version>0.16.6</Version>
<UseWPF>true</UseWPF>
</PropertyGroup>

View File

@@ -28,6 +28,7 @@ namespace Spine.Exporters
{
Gif,
Webp,
Apng,
Mp4,
Webm,
Mkv,
@@ -41,31 +42,37 @@ namespace Spine.Exporters
private VideoFormat _format = VideoFormat.Mp4;
/// <summary>
/// 动图是否循环 [Gif/Webp]
/// [Gif/Webp/Apng] 动图是否循环
/// </summary>
public bool Loop { get => _loop; set => _loop = value; }
private bool _loop = true;
/// <summary>
/// 质量 [Webp]
/// [Webp] 质量
/// </summary>
public int Quality { get => _quality; set => _quality = Math.Clamp(value, 0, 100); }
private int _quality = 75;
/// <summary>
/// 无损压缩 [Webp]
/// [Webp] 无损压缩
/// </summary>
public bool Lossless { get => _lossless; set => _lossless = value; }
private bool _lossless = false;
/// <summary>
/// CRF [Mp4/Webm/Mkv]
/// [Apng] 预测器算法, 取值范围 0-5, 分别对应 none, sub, up, avg, paeth, mixed
/// </summary>
public int ApngPred { get => _apngPred; set => _apngPred = Math.Clamp(value, 0, 5); }
private int _apngPred = 5;
/// <summary>
/// [Mp4/Webm/Mkv] CRF
/// </summary>
public int Crf { get => _crf; set => _crf = Math.Clamp(value, 0, 63); }
private int _crf = 23;
/// <summary>
/// prores_ks 编码器的配置等级, -1 是自动, 越高质量越好, 只有 4 及以上才有透明通道 [Mov]
/// [Mov] prores_ks 编码器的配置等级, -1 是自动, 越高质量越好, 只有 4 及以上才有透明通道
/// </summary>
public int Profile { get => _profile; set => _profile = Math.Clamp(value, -1, 5); }
private int _profile = 5;
@@ -93,6 +100,7 @@ namespace Spine.Exporters
{
VideoFormat.Gif => SetGifOptions,
VideoFormat.Webp => SetWebpOptions,
VideoFormat.Apng => SetApngOptions,
VideoFormat.Mp4 => SetMp4Options,
VideoFormat.Webm => SetWebmOptions,
VideoFormat.Mkv => SetMkvOptions,
@@ -132,6 +140,13 @@ namespace Spine.Exporters
.WithCustomArgument(customArgs);
}
private void SetApngOptions(FFMpegArgumentOptions options)
{
var customArgs = $"-vf unpremultiply=inplace=1 -plays {(_loop ? 0 : 1)} -pred {_apngPred}";
options.ForceFormat("apng").WithVideoCodec("apng").ForcePixelFormat("rgba")
.WithCustomArgument(customArgs);
}
private void SetMp4Options(FFMpegArgumentOptions options)
{
// XXX: windows 默认播放器在播放 MP4 格式时对于 libx264 编码器只支持 yuv420p 的像素格式

View File

@@ -7,7 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.SpineWrappers
namespace Spine.Implementations
{
/// <summary>
/// 实现不同版本的 TextureLoader
@@ -112,6 +112,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime34.AtlasPage page, string path)
@@ -147,6 +155,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime35.AtlasPage page, string path)
@@ -182,6 +198,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime36.AtlasPage page, string path)
@@ -217,6 +241,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime37.AtlasPage page, string path)
@@ -252,6 +284,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime38.AtlasPage page, string path)
@@ -288,9 +328,13 @@ namespace Spine.SpineWrappers
page.rendererObject = texture;
// 似乎是不需要设置的, 因为存在某些 png 和 atlas 大小不同的情况, 一般是有一些缩放, 如果设置了反而渲染异常
// page.width = (int)texture.Size.X;
// page.height = (int)texture.Size.Y;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime40.AtlasPage page, string path)
@@ -326,6 +370,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime41.AtlasPage page, string path)
@@ -361,6 +413,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Load(SpineRuntime42.AtlasPage page, string path)
@@ -396,6 +456,14 @@ namespace Spine.SpineWrappers
if (ForceMipmap) texture.GenerateMipmap();
page.rendererObject = texture;
// 有些旧的 atlas 会省略 size 行, 这时需要在读取纹理时赋值
if (page.width <= 0 || page.height <= 0)
{
var texSize = texture.Size;
page.width = (int)texSize.X;
page.height = (int)texSize.Y;
}
}
public virtual void Unload(object texture)

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime21;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class Animation21(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class AnimationState21(AnimationState innerObject, SpineObjectData21 data) : IAnimationState
{
@@ -35,7 +35,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -64,7 +64,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -93,7 +93,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21.Attachments
namespace Spine.Implementations.V21.Attachments
{
internal abstract class Attachment21(Attachment innerObject) : IAttachment
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V21;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21.Attachments
namespace Spine.Implementations.V21.Attachments
{
internal sealed class BoundingBoxAttachment21(BoundingBoxAttachment innerObject) :
Attachment21(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V21.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot21 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V21;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21.Attachments
namespace Spine.Implementations.V21.Attachments
{
internal sealed class MeshAttachment21(MeshAttachment innerObject) :
Attachment21(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V21.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot21 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V21;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21.Attachments
namespace Spine.Implementations.V21.Attachments
{
internal sealed class RegionAttachment21(RegionAttachment innerObject) :
Attachment21(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V21.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot21 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V21;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21.Attachments
namespace Spine.Implementations.V21.Attachments
{
internal sealed class SkinnedMeshAttachment21(SkinnedMeshAttachment innerObject) :
Attachment21(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V21.Attachments
public override SkinnedMeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot21 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class Bone21(Bone innerObject, Bone21? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime21;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class Skeleton21 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V21
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,11 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V21
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
_o.GetBounds(out x, out y, out w, out h);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime21;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class SkeletonClipping21 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime21;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class Skin21 : ISkin
{

View File

@@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime21;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class Slot21 : ISlot
{
@@ -39,7 +40,7 @@ namespace Spine.Implementations.SpineWrappers.V21
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime21;
using Spine.Implementations.SpineWrappers.V21.Attachments;
using Spine.Implementations.V21.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
[SpineImplementation(2, 1)]
internal sealed class SpineObjectData21 : SpineObjectData
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V21
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData21(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData21(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime21;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V21
namespace Spine.Implementations.V21
{
internal sealed class TrackEntry21(TrackEntry innerObject, AnimationState21 animationState, SpineObjectData21 data): ITrackEntry
{
@@ -34,7 +34,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -63,7 +63,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -92,7 +92,7 @@ namespace Spine.Implementations.SpineWrappers.V21
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime34;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class Animation34(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class AnimationState34(AnimationState innerObject, SpineObjectData34 data) : IAnimationState
{
@@ -36,7 +36,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -65,7 +65,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -94,7 +94,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34.Attachments
namespace Spine.Implementations.V34.Attachments
{
internal abstract class Attachment34(Attachment innerObject) : IAttachment
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V34;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34.Attachments
namespace Spine.Implementations.V34.Attachments
{
internal sealed class BoundingBoxAttachment34(BoundingBoxAttachment innerObject) :
Attachment34(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V34.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot34 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V34;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34.Attachments
namespace Spine.Implementations.V34.Attachments
{
internal sealed class MeshAttachment34(MeshAttachment innerObject) :
Attachment34(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V34.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot34 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V34;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34.Attachments
namespace Spine.Implementations.V34.Attachments
{
internal sealed class PathAttachment34(PathAttachment innerObject) :
Attachment34(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V34.Attachments
public override PathAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot34 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V34;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34.Attachments
namespace Spine.Implementations.V34.Attachments
{
internal sealed class RegionAttachment34(RegionAttachment innerObject) :
Attachment34(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V34.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot34 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class Bone34(Bone innerObject, Bone34? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime34;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class Skeleton34 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V34
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,12 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V34
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
float[] _ = [];
_o.GetBounds(out x, out y, out w, out h);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime34;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class SkeletonClipping34 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime34;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class Skin34 : ISkin
{

View File

@@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime34;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class Slot34 : ISlot
{
@@ -46,7 +47,7 @@ namespace Spine.Implementations.SpineWrappers.V34
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime34;
using Spine.Implementations.SpineWrappers.V34.Attachments;
using Spine.Implementations.V34.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
[SpineImplementation(3, 4)]
internal sealed class SpineObjectData34 : SpineObjectData
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V34
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData34(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData34(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime34;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V34
namespace Spine.Implementations.V34
{
internal sealed class TrackEntry34(TrackEntry innerObject, AnimationState34 animationState, SpineObjectData34 data): ITrackEntry
{
@@ -34,7 +34,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -63,7 +63,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -92,7 +92,7 @@ namespace Spine.Implementations.SpineWrappers.V34
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime35;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class Animation35(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class AnimationState35(AnimationState innerObject, SpineObjectData35 data) : IAnimationState
{
@@ -27,7 +27,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -56,7 +56,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -85,7 +85,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -114,7 +114,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -143,7 +143,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal abstract class Attachment35(Attachment innerObject) : IAttachment
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class BoundingBoxAttachment35(BoundingBoxAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class ClippingAttachment35(ClippingAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override ClippingAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class MeshAttachment35(MeshAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class PathAttachment35(PathAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override PathAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class PointAttachment35(PointAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override PointAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35.Attachments
namespace Spine.Implementations.V35.Attachments
{
internal sealed class RegionAttachment35(RegionAttachment innerObject) :
Attachment35(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V35.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot35 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class Bone35(Bone innerObject, Bone35? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime35;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class Skeleton35 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V35
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,12 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V35
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
float[] _ = [];
_o.GetBounds(out x, out y, out w, out h, ref _);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime35;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class SkeletonClipping35 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime35;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class Skin35 : ISkin
{

View File

@@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime35;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class Slot35 : ISlot
{
@@ -46,7 +47,7 @@ namespace Spine.Implementations.SpineWrappers.V35
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime35;
using Spine.Implementations.SpineWrappers.V35.Attachments;
using Spine.Implementations.V35.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
[SpineImplementation(3, 5)]
internal sealed class SpineObjectData35 : SpineObjectData
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V35
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData35(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData35(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime35;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V35
namespace Spine.Implementations.V35
{
internal sealed class TrackEntry35(TrackEntry innerObject, AnimationState35 animationState, SpineObjectData35 data): ITrackEntry
{
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -55,7 +55,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -84,7 +84,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -113,7 +113,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -142,7 +142,7 @@ namespace Spine.Implementations.SpineWrappers.V35
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime36;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class Animation36(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class AnimationState36(AnimationState innerObject, SpineObjectData36 data) : IAnimationState
{
@@ -27,7 +27,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -56,7 +56,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -85,7 +85,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -114,7 +114,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -143,7 +143,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal abstract class Attachment36(Attachment innerObject) : IAttachment
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class BoundingBoxAttachment36(BoundingBoxAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class ClippingAttachment36(ClippingAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override ClippingAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class MeshAttachment36(MeshAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class PathAttachment36(PathAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override PathAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class PointAttachment36(PointAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override PointAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36.Attachments
namespace Spine.Implementations.V36.Attachments
{
internal sealed class RegionAttachment36(RegionAttachment innerObject) :
Attachment36(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V36.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot36 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class Bone36(Bone innerObject, Bone36? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime36;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class Skeleton36 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V36
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,12 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V36
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
float[] _ = [];
_o.GetBounds(out x, out y, out w, out h, ref _);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime36;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class SkeletonClipping36 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime36;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class Skin36 : ISkin
{

View File

@@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime36;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class Slot36 : ISlot
{
@@ -46,7 +47,7 @@ namespace Spine.Implementations.SpineWrappers.V36
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime36;
using Spine.Implementations.SpineWrappers.V36.Attachments;
using Spine.Implementations.V36.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
[SpineImplementation(3, 6)]
internal sealed class SpineObjectData36 : SpineObjectData
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V36
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData36(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData36(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime36;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V36
namespace Spine.Implementations.V36
{
internal sealed class TrackEntry36(TrackEntry innerObject, AnimationState36 animationState, SpineObjectData36 data): ITrackEntry
{
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -55,7 +55,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -84,7 +84,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -113,7 +113,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -142,7 +142,7 @@ namespace Spine.Implementations.SpineWrappers.V36
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime37;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class Animation37(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class AnimationState37(AnimationState innerObject, SpineObjectData37 data) : IAnimationState
{
@@ -27,7 +27,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -56,7 +56,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -85,7 +85,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -114,7 +114,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -143,7 +143,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal abstract class Attachment37(Attachment innerObject) : IAttachment
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class BoundingBoxAttachment37(BoundingBoxAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class ClippingAttachment37(ClippingAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override ClippingAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class MeshAttachment37(MeshAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class PathAttachment37(PathAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override PathAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class PointAttachment37(PointAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override PointAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37.Attachments
namespace Spine.Implementations.V37.Attachments
{
internal sealed class RegionAttachment37(RegionAttachment innerObject) :
Attachment37(innerObject),
@@ -16,7 +18,7 @@ namespace Spine.Implementations.SpineWrappers.V37.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot37 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class Bone37(Bone innerObject, Bone37? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime37;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class Skeleton37 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V37
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,12 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V37
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
float[] _ = [];
_o.GetBounds(out x, out y, out w, out h, ref _);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime37;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class SkeletonClipping37 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime37;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class Skin37 : ISkin
{

View File

@@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime37;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class Slot37 : ISlot
{
@@ -46,7 +47,7 @@ namespace Spine.Implementations.SpineWrappers.V37
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,12 +6,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime37;
using Spine.Implementations.SpineWrappers.V37.Attachments;
using Spine.Implementations.V37.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
[SpineImplementation(3, 7)]
internal sealed class SpineObjectData37 : SpineObjectData
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V37
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData37(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData37(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime37;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V37
namespace Spine.Implementations.V37
{
internal sealed class TrackEntry37(TrackEntry innerObject, AnimationState37 animationState, SpineObjectData37 data): ITrackEntry
{
@@ -26,7 +26,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -55,7 +55,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -84,7 +84,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -113,7 +113,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -142,7 +142,7 @@ namespace Spine.Implementations.SpineWrappers.V37
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(_animationState.GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(_animationState.GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -1,4 +1,4 @@
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime38;
using System;
using System.Collections.Generic;
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class Animation38(Animation innerObject) : IAnimation
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime38;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class AnimationState38(AnimationState innerObject, SpineObjectData38 data) : IAnimationState
{
@@ -27,7 +27,7 @@ namespace Spine.Implementations.SpineWrappers.V38
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Start += f;
@@ -56,7 +56,7 @@ namespace Spine.Implementations.SpineWrappers.V38
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Interrupt += f;
@@ -85,7 +85,7 @@ namespace Spine.Implementations.SpineWrappers.V38
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.End += f;
@@ -114,7 +114,7 @@ namespace Spine.Implementations.SpineWrappers.V38
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Complete += f;
@@ -143,7 +143,7 @@ namespace Spine.Implementations.SpineWrappers.V38
if (value is null) return;
if (!_eventMapping.TryGetValue(value, out var f))
{
_eventMapping[value] = f = (TrackEntry t) => value(GetTrackEntry(t));
_eventMapping[value] = f = (t) => value(GetTrackEntry(t));
_eventCount[value] = 0;
}
_o.Dispose += f;

View File

@@ -3,12 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal abstract class Attachment38(Attachment innerObject) : IAttachment
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class BoundingBoxAttachment38(BoundingBoxAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override BoundingBoxAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class ClippingAttachment38(ClippingAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override ClippingAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class MeshAttachment38(MeshAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override MeshAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class PathAttachment38(PathAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override PathAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class PointAttachment38(PointAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override PointAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,11 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers.Attachments;
using Spine.Implementations.V38;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
namespace Spine.Implementations.SpineWrappers.V38.Attachments
namespace Spine.Implementations.V38.Attachments
{
internal sealed class RegionAttachment38(RegionAttachment innerObject) :
Attachment38(innerObject),
@@ -17,7 +19,7 @@ namespace Spine.Implementations.SpineWrappers.V38.Attachments
public override RegionAttachment InnerObject => _o;
public override int ComputeWorldVertices(Spine.SpineWrappers.ISlot slot, ref float[] worldVertices)
public override int ComputeWorldVertices(ISlot slot, ref float[] worldVertices)
{
if (slot is Slot38 st)
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime38;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class Bone38(Bone innerObject, Bone38? parent = null) : IBone
{

View File

@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Collections.Frozen;
using System.Collections.Immutable;
using Spine.SpineWrappers;
using SpineRuntime38;
using Spine.Interfaces;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class Skeleton38 : ISkeleton
{
@@ -52,6 +52,7 @@ namespace Spine.Implementations.SpineWrappers.V38
public Skeleton InnerObject => _o;
public string Name => _o.Data.Name;
public float R { get => _o.R; set => _o.R = value; }
public float G { get => _o.G; set => _o.G = value; }
public float B { get => _o.B; set => _o.B = value; }
@@ -95,12 +96,6 @@ namespace Spine.Implementations.SpineWrappers.V38
public void SetSlotsToSetupPose() => _o.SetSlotsToSetupPose();
public void Update(float delta) => _o.Update(delta);
public void GetBounds(out float x, out float y, out float w, out float h)
{
float[] _ = [];
_o.GetBounds(out x, out y, out w, out h, ref _);
}
public override string ToString() => _o.ToString();
}
}

View File

@@ -1,5 +1,5 @@
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
using Spine.Utils;
using SpineRuntime38;
using System;
@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class SkeletonClipping38 : ISkeletonClipping
{

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.SpineWrappers;
using Spine.Interfaces;
using SpineRuntime38;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class Skin38 : ISkin
{

View File

@@ -5,11 +5,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using SpineRuntime38;
using SpineRuntime38.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
internal sealed class Slot38 : ISlot
{
@@ -47,7 +48,7 @@ namespace Spine.Implementations.SpineWrappers.V38
public float A { get => _o.A; set => _o.A = value; }
public IBone Bone => _bone;
public Spine.SpineWrappers.Attachments.IAttachment? Attachment
public IAttachment? Attachment
{
get
{

View File

@@ -6,13 +6,13 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spine.Utils;
using Spine.SpineWrappers;
using Spine.SpineWrappers.Attachments;
using SpineRuntime38;
using SpineRuntime38.Attachments;
using Spine.Implementations.SpineWrappers.V38.Attachments;
using Spine.Implementations.V38.Attachments;
using Spine.Interfaces;
using Spine.Interfaces.Attachments;
namespace Spine.Implementations.SpineWrappers.V38
namespace Spine.Implementations.V38
{
[SpineImplementation(3, 8)]
internal sealed class SpineObjectData38 : SpineObjectData
@@ -27,7 +27,7 @@ namespace Spine.Implementations.SpineWrappers.V38
private readonly ImmutableArray<IAnimation> _animations;
private readonly FrozenDictionary<string, IAnimation> _animationsByName;
public SpineObjectData38(string skelPath, string atlasPath, Spine.SpineWrappers.TextureLoader textureLoader)
public SpineObjectData38(string skelPath, string atlasPath, TextureLoader textureLoader)
: base(skelPath, atlasPath, textureLoader)
{
// 加载 atlas

Some files were not shown because too many files have changed in this diff Show More