spine_flutter 4.3.3 copy "spine_flutter: ^4.3.3" to clipboard
spine_flutter: ^4.3.3 copied to clipboard

The official Spine Flutter Runtime to load, display and interact with Spine animations.

4.3.3 #

Flutter #

  • Additions
    • Added GitHub Actions release automation for spine-flutter.

4.3.2 #

Flutter #

  • Bug fixes
    • Updated bundled spine-c/spine-cpp sources and WebAssembly assets for the 4.3 release.

4.3.1 #

Flutter #

  • Additions
    • Added fromMemory methods to AtlasFlutter, SkeletonDataFlutter, SkeletonDrawableFlutter, and SpineWidget for loading Spine data from custom sources (memory, encrypted storage, databases, custom caching, etc.)
    • Added example load_from_memory.dart demonstrating how to load all assets into memory and use the fromMemory API

4.3.0 #

Dart #

  • Additions

    • Added Slider and SliderData classes for slider constraints
    • Added SliderTimeline and SliderMixTimeline for animating sliders
    • Added new pose system with BoneLocal, BonePose, and related classes
    • Added Pose, Posed, and PosedActive base classes for unified pose management
  • 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 additional appliedPose parameter

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 #

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 #

4.2.32 #

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 #

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 #

4.2.23 #

  • Physics support

4.2.22 #

4.2.21 #

4.2.20 #

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 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 #

4.1.12 #

4.1.11 #

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 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.

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 SpineWidget constructors.

4.2.7 #

  • Change package name from esotericsoftware_spine_flutter to spine_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 Vector2 to Vec2.
  • 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.

39
likes
0
points
8.6k
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

The official Spine Flutter Runtime to load, display and interact with Spine animations.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

crypto, flutter, http, inject_js, js, meta, path, universal_ffi

More

Packages that depend on spine_flutter

Packages that implement spine_flutter