diff --git a/spine-flutter/CHANGELOG.md b/spine-flutter/CHANGELOG.md index 841271ad1..891b28c9d 100644 --- a/spine-flutter/CHANGELOG.md +++ b/spine-flutter/CHANGELOG.md @@ -1,110 +1,149 @@ # 4.2.22 -* Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2 + +- Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2 # 4.2.21 -* FilterQuality for texture atlas pages is now set to medium. It is configurable via `Atlas.filterQuality`. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 -* Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349 + +- FilterQuality for texture atlas pages is now set to medium. It is configurable via `Atlas.filterQuality`. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 +- Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349 # 4.2.20 -* Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431 + +- Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431 # 4.2.19 -* Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account. + +- Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account. # 4.2.18 -* Fixes compilation errors due to API change in Flutter 3.16.0, see [this issue](https://github.com/EsotericSoftware/spine-runtimes/issues/2420). **Note**: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well. + +- Fixes compilation errors due to API change in Flutter 3.16.0, see [this issue](https://github.com/EsotericSoftware/spine-runtimes/issues/2420). **Note**: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well. + +# 4.1.14 + +- Temporary "fix" for https://github.com/EsotericSoftware/spine-runtimes/issues/2479. It appears the canvaskit backend of Flutter has a bug. We currently do not set a `FilterQuality` anymore. The Flutter rendering backend is supposed to pick a good one depending the platform. Users can still set `FilterQuality` globally via `Atlas.filterQuality` as before. # 4.1.13 -* Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2 + +- Fix multiply blend mode, see https://esotericsoftware.com/forum/d/25369-spine-flutter-slot%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E5%90%8Ealpha%E4%B8%A2%E5%A4%B1/2 # 4.1.12 -* FilterQuality for texture atlas pages is now set to medium. It is configurable via `Atlas.filterQuality`. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 -* Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349 + +- FilterQuality for texture atlas pages is now set to medium. It is configurable via `Atlas.filterQuality`. See https://github.com/EsotericSoftware/spine-runtimes/issues/2362 +- Track Entry listeners are now invoked properly, see https://github.com/EsotericSoftware/spine-runtimes/issues/2349 # 4.1.11 -* Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431 + +- Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431 # 4.1.10 -* Update WASM binaries + +- Update WASM binaries # 4.1.9 -*Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account. + +\*Fixes #2412, single bone, translation only IK constraints did not take skeleton scale into account. # 4.1.8 -* Fixes compilation errors due to API change in Flutter 3.16.0, see [this issue](https://github.com/EsotericSoftware/spine-runtimes/issues/2420). **Note**: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well. + +- Fixes compilation errors due to API change in Flutter 3.16.0, see [this issue](https://github.com/EsotericSoftware/spine-runtimes/issues/2420). **Note**: Depending on this version requires your project to depend on Flutter >= 3.16.0 as well. # 4.2.17 -* Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side. + +- Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side. # 4.1.7 -* Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side. + +- Fix allocation patter for temporary structs on Windows, which resulted in a hard crash without a stack trace on the native side. # 4.2.16 -* Fixed bug in path handling on Windows. + +- Fixed bug in path handling on Windows. # 4.1.6 -* Fixed bug in path handling on Windows. + +- Fixed bug in path handling on Windows. # 4.2.15 -* Updated http dependency to 1.1.0 + +- Updated http dependency to 1.1.0 # 4.1.5 -* Updated http dependency to 1.1.0 + +- Updated http dependency to 1.1.0 # 4.2.14 -* Merge changes from 4.1.4. + +- Merge changes from 4.1.4. # 4.1.4 -* Fixes for WASM/web builds. + +- Fixes for WASM/web builds. # 4.2.13 -* Fixes for Impeller. + +- Fixes for Impeller. # 4.1.3 -* Fixes for Impeller. + +- Fixes for Impeller. # 4.2.12 -* Merge changes from 4.1.1 and 4.1.2. + +- Merge changes from 4.1.1 and 4.1.2. # 4.1.2 -* API documentation and minor cosmetics. + +- API documentation and minor cosmetics. # 4.1.1 -* Backport to 4.1 spine-runtimes branch. -* Blend mode support. -* Hot-reload support. The underlying `SkeletonDrawable` will be retained if the asset file names and type provided to the `SpineWidget` constructor has not changed. + +- Backport to 4.1 spine-runtimes branch. +- Blend mode support. +- Hot-reload support. The underlying `SkeletonDrawable` will be retained if the asset file names and type provided to the `SpineWidget` constructor has not changed. # 4.2.11 -* Update README.md with setup and development instructions. + +- Update README.md with setup and development instructions. # 4.2.10 -* Update README.md to point to Junji's Dart-only Spine runtime. + +- Update README.md to point to Junji's Dart-only Spine runtime. # 4.2.9 -* Fix atlas parsing. + +- Fix atlas parsing. # 4.2.8 -* Change reversed positional argument order in `SpineWidget` constructors. + +- Change reversed positional argument order in `SpineWidget` constructors. # 4.2.7 -* Change package name from `esotericsoftware_spine_flutter` to `spine_flutter`. + +- Change package name from `esotericsoftware_spine_flutter` to `spine_flutter`. # 4.2.6 -* Fix analyzer errors, fix code style to adhere to Dart standards. + +- Fix analyzer errors, fix code style to adhere to Dart standards. # 4.2.5 -* Implemented batching of render commands, reducing the number of draw calls. 60/120fps for 100 Spineboys on all platforms. + +- Implemented batching of render commands, reducing the number of draw calls. 60/120fps for 100 Spineboys on all platforms. # 0.0.4 -* Clean-up `fromAsset()` factory methods so the atlas comes before skeleton data file name. -* Rename `Vector2` to `Vec2`. -* Make the bundle configurable in `SpineWidget.asset()`. + +- Clean-up `fromAsset()` factory methods so the atlas comes before skeleton data file name. +- Rename `Vector2` to `Vec2`. +- Make the bundle configurable in `SpineWidget.asset()`. # 0.0.3 -* Lower macOS deployment target to 10.11. + +- Lower macOS deployment target to 10.11. # 0.0.2 -* Fix package name in build system `spine_flutter` > `esotericsoftware_spine_flutter`. + +- Fix package name in build system `spine_flutter` > `esotericsoftware_spine_flutter`. # 0.0.1 -Initial test release. \ No newline at end of file + +Initial test release. diff --git a/spine-flutter/example/pubspec.lock b/spine-flutter/example/pubspec.lock index a1fa98974..46a0bcbfe 100644 --- a/spine-flutter/example/pubspec.lock +++ b/spine-flutter/example/pubspec.lock @@ -53,10 +53,10 @@ packages: dependency: "direct main" description: name: flame - sha256: b6bb76224fc29fd5eea25d66cda6e322e3678bdedc1f65956c6151326a6a798b + sha256: "2a2352741500ce47823dcf212f06b23e9bdb622454eab90244ee6da58e23b488" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.15.0" flutter: dependency: "direct main" description: flutter diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index af096f744..34ae82d07 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -101,7 +101,7 @@ class Vec2 { /// Use the static methods [fromAsset], [fromFile], and [fromHttp] to load an atlas. Call [dispose] /// when the atlas is no longer in use to release its resources. class Atlas { - static FilterQuality filterQuality = FilterQuality.medium; + static FilterQuality filterQuality = FilterQuality.none; final spine_atlas _atlas; final List atlasPages; final List> atlasPagePaints; @@ -183,11 +183,7 @@ class Atlas { for (final image in atlasPages) { image.dispose(); } - for (final map in atlasPagePaints) { - map.values.forEach((element) { - element.shader?.dispose(); - }); - } + atlasPagePaints.clear(); } } diff --git a/spine-flutter/pubspec.yaml b/spine-flutter/pubspec.yaml index bc537bf32..53eebea2e 100644 --- a/spine-flutter/pubspec.yaml +++ b/spine-flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: spine_flutter description: The official Spine Flutter Runtime to load, display and interact with Spine animations. -version: 4.2.22 +version: 4.1.14 homepage: https://esotericsoftware.com repository: https://github.com/esotericsoftware/spine-runtimes issue_tracker: https://github.com/esotericsoftware/spine-runtimes/issues diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index 49d1beaa9..6470ac16c 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -121,7 +121,6 @@ namespace Spine.Unity { public bool updateSeparatorPartScale = false; private bool wasUpdatedAfterInit = true; - private bool requiresInstructionUpate = true; private Texture baseTexture = null; #if UNITY_EDITOR @@ -315,7 +314,7 @@ namespace Spine.Unity { if (!this.IsValid) return; if (canvasRenderer.cull) return; if (update == CanvasUpdate.PreRender) { - if (requiresInstructionUpate) PrepareInstructionsAndRenderers(isInRebuild: true); + PrepareInstructionsAndRenderers(isInRebuild: true); UpdateMeshToInstructions(); } if (allowMultipleCanvasRenderers) canvasRenderer.Clear(); @@ -478,9 +477,7 @@ namespace Spine.Unity { if (updateTiming == UpdateTiming.InLateUpdate) Update(unscaledTime ? Time.unscaledDeltaTime : Time.deltaTime); - PrepareInstructionsAndRenderers(); - - SetVerticesDirty(); // triggers Rebuild and avoids potential double-update in a single frame + UpdateMesh(); } protected void OnCullStateChanged (bool culled) { @@ -527,11 +524,9 @@ namespace Spine.Unity { public Skeleton Skeleton { get { Initialize(false); - requiresInstructionUpate = true; return skeleton; } set { - requiresInstructionUpate = true; skeleton = value; } } @@ -850,7 +845,6 @@ namespace Spine.Unity { } public void PrepareInstructionsAndRenderers (bool isInRebuild = false) { - requiresInstructionUpate = false; if (!this.allowMultipleCanvasRenderers) { MeshGenerator.GenerateSingleSubmeshInstruction(currentInstructions, skeleton, null); if (canvasRenderers.Count > 0)