mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 22:34:53 +08:00
8.5 KiB
8.5 KiB
4.3.1
Flutter
- Additions
- Added
fromMemorymethods toAtlasFlutter,SkeletonDataFlutter,SkeletonDrawableFlutter, andSpineWidgetfor loading Spine data from custom sources (memory, encrypted storage, databases, custom caching, etc.) - Added example
load_from_memory.dartdemonstrating how to load all assets into memory and use thefromMemoryAPI
- Added
4.3.0
Dart
-
Additions
- Added
SliderandSliderDataclasses for slider constraints - Added
SliderTimelineandSliderMixTimelinefor animating sliders - Added new pose system with
BoneLocal,BonePose, and related classes - Added
Pose,Posed, andPosedActivebase classes for unified pose management
- Added
-
Breaking changes
- The Dart runtime is now fully auto-generated from the C runtime, maintaining the full C++ type hierarchy with proper nullability annotations. The code generator creates 150+ Dart files in
lib/generated/providing complete API coverage of all Spine runtime types. - All properties are now exposed as getters and setters instead of methods
- API changes to match C++ naming conventions (see examples below)
- Timeline
apply()methods now take an additionalappliedPoseparameter
- The Dart runtime is now fully auto-generated from the C runtime, maintaining the full C++ type hierarchy with proper nullability annotations. The code generator creates 150+ Dart files in
Flutter
- Breaking changes
- Updated to use the new auto-generated Dart runtime with all the Dart API changes above
Migration Examples
The examples and documentation have been updated to demonstrate the minimal changes needed to migrate from 4.2 to 4.3.
Property Access Changes
Before (4.2):
controller.skeleton.setScaleX(0.5);
controller.skeleton.setScaleY(0.5);
controller.skeleton.findSlot("gun")?.setColor(Color(1, 0, 0, 1));
After (4.3):
controller.skeleton.scaleX = 0.5;
controller.skeleton.scaleY = 0.5;
controller.skeleton.findSlot("gun")?.pose.color.set(1, 0, 0, 1);
Animation State API Changes
Before (4.2):
controller.animationState.getData().setDefaultMix(0.2);
controller.animationState.setAnimationByName(0, "portal", true);
controller.animationState.addAnimationByName(0, "run", true, 0);
After (4.3):
controller.animationState.data.defaultMix = 0.2;
controller.animationState.setAnimation(0, "portal", true);
controller.animationState.addAnimation(0, "run", true, 0);
Event Access Changes
Before (4.2):
print("Event: ${event?.getData().getName()}");
print("Int value: ${event?.getIntValue()}");
print("Animation: ${entry?.getAnimation().getName()}");
After (4.3):
print("Event: ${event?.data.name}");
print("Int value: ${event?.intValue}");
print("Animation: ${entry?.animation.name}");
Bone Transform Changes (Pose System)
Before (4.2):
final bone = controller.skeleton.findBone("crosshair")!;
final parent = bone.getParent()!;
final position = parent.worldToLocal(worldPosition.dx, worldPosition.dy);
bone.setX(position.x);
bone.setY(position.y);
After (4.3):
final bone = controller.skeleton.findBone("crosshair")!;
final parent = bone.parent;
if (parent != null) {
final position = parent.appliedPose.worldToLocal(worldPosition.dx, worldPosition.dy);
bone.appliedPose.x = position.x;
bone.appliedPose.y = position.y;
}
4.2.36
- Support for 16KB page alignement on Android. You must specify the NDK version in the build.gradle file of your app's Android project. See https://github.com/EsotericSoftware/spine-runtimes/issues/2849
4.2.35
- Port of commit
f1e0f0f: Fixed animation not being mixed out in some cases.
4.2.34
- Support latest emscripten SDK (4.0.6+) via update of web_ffi
4.2.33
- Merge fixes in spine-cpp(-lite)
- Prepare for upcoming Dart/Flutter releases, see https://github.com/EsotericSoftware/spine-runtimes/pull/2690
4.2.32
- Fix spine-flutter spec checksum in
Podfile.lock, keeping version control cleaner. See https://github.com/EsotericSoftware/spine-runtimes/pull/2609
4.2.31
- Fix bug in IKConstraint leading to NaNs.
4.2.30
- Switch to spine-cpp SkeletonRenderer
4.2.29
- Fix issue in pubspec.yaml related to C++ include paths.
4.2.28
- Fix incompatibility with Gradle 8.x. See https://github.com/EsotericSoftware/spine-runtimes/issues/2553
4.2.27
- Fixes clipping in case of colinear clipping edges.
4.2.26
Skeleton.getBounds()takes clipping into consideration.
4.2.25
- Switch to spine-cpp-lite
4.2.24
- Support static linking of native library, see https://github.com/EsotericSoftware/spine-runtimes/issues/2438
4.2.23
- Physics support
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
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
4.2.20
- 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.
4.2.18
- Fixes compilation errors due to API change in Flutter 3.16.0, see this issue. 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
FilterQualityanymore. The Flutter rendering backend is supposed to pick a good one depending the platform. Users can still setFilterQualityglobally viaAtlas.filterQualityas 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
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
4.1.11
- Fixed clipping bug, see https://github.com/EsotericSoftware/spine-runtimes/issues/2431
4.1.10
- Update WASM binaries
4.1.9
*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. 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.
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.
4.2.16
- Fixed bug in path handling on Windows.
4.1.6
- Fixed bug in path handling on Windows.
4.2.15
- Updated http dependency to 1.1.0
4.1.5
- Updated http dependency to 1.1.0
4.2.14
- Merge changes from 4.1.4.
4.1.4
- Fixes for WASM/web builds.
4.2.13
- Fixes for Impeller.
4.1.3
- Fixes for Impeller.
4.2.12
- Merge changes from 4.1.1 and 4.1.2.
4.1.2
- API documentation and minor cosmetics.
4.1.1
- Backport to 4.1 spine-runtimes branch.
- Blend mode support.
- Hot-reload support. The underlying
SkeletonDrawablewill be retained if the asset file names and type provided to theSpineWidgetconstructor has not changed.
4.2.11
- Update README.md with setup and development instructions.
4.2.10
- Update README.md to point to Junji's Dart-only Spine runtime.
4.2.9
- Fix atlas parsing.
4.2.8
- Change reversed positional argument order in
SpineWidgetconstructors.
4.2.7
- Change package name from
esotericsoftware_spine_fluttertospine_flutter.
4.2.6
- 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.
0.0.4
- Clean-up
fromAsset()factory methods so the atlas comes before skeleton data file name. - Rename
Vector2toVec2. - Make the bundle configurable in
SpineWidget.asset().
0.0.3
- Lower macOS deployment target to 10.11.
0.0.2
- Fix package name in build system
spine_flutter>esotericsoftware_spine_flutter.
0.0.1
Initial test release.