Browse Source

Merge branch '4.1' into 4.2-beta

# Conflicts:
#	spine-flutter/CHANGELOG.md
#	spine-flutter/example/pubspec.lock
#	spine-flutter/pubspec.yaml
#	spine-unity/Assets/Spine/package.json
Mario Zechner 1 năm trước cách đây
mục cha
commit
f1052e2906

+ 80 - 41
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.
+
+Initial test release.

+ 2 - 2
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

+ 2 - 6
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<Image> atlasPages;
   final List<Map<BlendMode, Paint>> 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();
   }
 }
 

+ 1 - 1
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

+ 2 - 8
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)