diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index 3360082d2..a22371732 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -574,6 +574,14 @@ class Bone { Bone._(this._bone); + static void setIsYDown(bool isYDown) { + _bindings.spine_bone_set_is_y_down(isYDown ? -1 : 0); + } + + static bool getIsYDown() { + return _bindings.spine_bone_get_is_y_down() == 1; + } + void update() { _bindings.spine_bone_update(_bone); } @@ -955,20 +963,177 @@ class Slot { String toString() { return getData().getName(); } + + int getSequenceIndex() { + return _bindings.spine_slot_get_sequence_index(_slot); + } + + void setSequenceIndex(int sequenceIndex) { + _bindings.spine_slot_set_sequence_index(_slot, sequenceIndex); + } } -// FIXME class TextureRegion { final spine_texture_region _region; TextureRegion._(this._region); + + Pointer getTexture() { + return _bindings.spine_texture_region_get_texture(_region); + } + + void setTexture(Pointer texture) { + _bindings.spine_texture_region_set_texture(_region, texture); + } + + double getU() { + return _bindings.spine_texture_region_get_u(_region); + } + + void setU(double u) { + _bindings.spine_texture_region_set_u(_region, u); + } + + double getV() { + return _bindings.spine_texture_region_get_v(_region); + } + + void setV(double v) { + _bindings.spine_texture_region_set_v(_region, v); + } + + double getU2() { + return _bindings.spine_texture_region_get_u2(_region); + } + + void setU2(double u2) { + _bindings.spine_texture_region_set_u2(_region, u2); + } + + double getV2() { + return _bindings.spine_texture_region_get_v2(_region); + } + + void setV2(double v2) { + _bindings.spine_texture_region_set_v2(_region, v2); + } + + int getDegrees() { + return _bindings.spine_texture_region_get_degrees(_region); + } + + void setDegrees(int degrees) { + _bindings.spine_texture_region_set_degrees(_region, degrees); + } + + double getOffsetX() { + return _bindings.spine_texture_region_get_offset_x(_region); + } + + void setOffsetX(double offsetX) { + _bindings.spine_texture_region_set_offset_x(_region, offsetX); + } + + double getOffsetY() { + return _bindings.spine_texture_region_get_offset_x(_region); + } + + void setOffsetY(double offsetX) { + _bindings.spine_texture_region_set_offset_x(_region, offsetX); + } + + int getWidth() { + return _bindings.spine_texture_region_get_width(_region); + } + + void setWidth(int width) { + _bindings.spine_texture_region_set_width(_region, width); + } + + int getHeight() { + return _bindings.spine_texture_region_get_height(_region); + } + + void setHeight(int height) { + _bindings.spine_texture_region_set_height(_region, height); + } + + int getOriginalWidth() { + return _bindings.spine_texture_region_get_original_width(_region); + } + + void setOriginalWidth(int originalWidth) { + _bindings.spine_texture_region_set_original_width(_region, originalWidth); + } + + int getOriginalHeight() { + return _bindings.spine_texture_region_get_original_height(_region); + } + + void setOriginalHeight(int originalHeight) { + _bindings.spine_texture_region_set_original_height(_region, originalHeight); + } } -// FIXME class Sequence { final spine_sequence _sequence; Sequence._(this._sequence); + + void apply(Slot slot, Attachment attachment) { + _bindings.spine_sequence_apply(_sequence, slot._slot, attachment._attachment.cast()); + } + + String getPath(String basePath, int index) { + final nativeBasePath = basePath.toNativeUtf8(); + final Pointer path = _bindings.spine_sequence_get_path(_sequence, nativeBasePath.cast(), index).cast(); + final result = path.toDartString(); + malloc.free(nativeBasePath); + malloc.free(path); + return result; + } + + int getId() { + return _bindings.spine_sequence_get_id(_sequence); + } + + void setId(int id) { + _bindings.spine_sequence_set_id(_sequence, id); + } + + int getStart() { + return _bindings.spine_sequence_get_start(_sequence); + } + + void setStart(int start) { + _bindings.spine_sequence_set_start(_sequence, start); + } + + int getDigits() { + return _bindings.spine_sequence_get_digits(_sequence); + } + + void setDigits(int digits) { + _bindings.spine_sequence_set_digits(_sequence, digits); + } + + int getSetupIndex() { + return _bindings.spine_sequence_get_setup_index(_sequence); + } + + void setSetupIndex(int setupIndex) { + _bindings.spine_sequence_set_setup_index(_sequence, setupIndex); + } + + List getRegions() { + List result = []; + final num = _bindings.spine_sequence_get_num_regions(_sequence); + final nativeRegions = _bindings.spine_sequence_get_regions(_sequence); + for (int i = 0; i < num; i++) { + result.add(TextureRegion._(nativeRegions[i])); + } + return result; + } } enum AttachmentType { @@ -1462,12 +1627,37 @@ class Skin { } return constraints; } + + void copy(Skin other) { + _bindings.spine_skin_copy_skin(_skin, other._skin); + } } class ConstraintData { final T _data; ConstraintData._(this._data); + + String getName() { + final Pointer name = _bindings.spine_constraint_data_get_name(_data.cast()).cast(); + return name.toDartString(); + } + + int getOrder() { + return _bindings.spine_constraint_data_get_order(_data.cast()); + } + + void setOrder(int order) { + _bindings.spine_constraint_data_set_order(_data.cast(), order); + } + + bool isSkinRequired() { + return _bindings.spine_constraint_data_get_is_skin_required(_data.cast()) == 1; + } + + void setIsSkinRequired(bool isSkinRequired) { + _bindings.spine_constraint_data_set_is_skin_required(_data.cast(), isSkinRequired ? -1 : 0); + } } class IkConstraintData extends ConstraintData { @@ -2593,15 +2783,29 @@ class EventData { return _bindings.spine_event_data_get_int_value(_data); } + void setIntValue(int value) { + _bindings.spine_event_data_set_int_value(_data, value); + } + double getFloatValue() { return _bindings.spine_event_data_get_float_value(_data); } + void setFloatValue(double value) { + _bindings.spine_event_data_set_float_value(_data, value); + } + String getStringValue() { final Pointer value = _bindings.spine_event_data_get_string_value(_data).cast(); return value.toDartString(); } + void setStringValue(String value) { + final nativeString = value.toNativeUtf8(); + _bindings.spine_event_data_set_string_value(_data, nativeString.cast()); + malloc.free(nativeString); + } + String getAudioPath() { final Pointer value = _bindings.spine_event_data_get_audio_path(_data).cast(); return value.toDartString(); @@ -2611,9 +2815,17 @@ class EventData { return _bindings.spine_event_data_get_volume(_data); } + void setVolume(double volume) { + _bindings.spine_event_data_set_volume(_data, volume); + } + double getBalance() { return _bindings.spine_event_data_get_balance(_data); } + + void setBalance(double value) { + _bindings.spine_event_data_set_balance(_data, value); + } } class Event { @@ -2633,22 +2845,44 @@ class Event { return _bindings.spine_event_get_int_value(_event); } + void setIntValue(int value) { + _bindings.spine_event_set_int_value(_event, value); + } + double getFloatValue() { return _bindings.spine_event_get_float_value(_event); } + void setFloatValue(double value) { + _bindings.spine_event_set_float_value(_event, value); + } + String getStringValue() { final Pointer value = _bindings.spine_event_get_string_value(_event).cast(); return value.toDartString(); } + void setStringValue(String value) { + final nativeString = value.toNativeUtf8(); + _bindings.spine_event_set_string_value(_event, nativeString.cast()); + malloc.free(nativeString); + } + double getVolume() { return _bindings.spine_event_get_volume(_event); } + void setVolume(double volume) { + _bindings.spine_event_set_volume(_event, volume); + } + double getBalance() { return _bindings.spine_event_get_balance(_event); } + + void setBalance(double balance) { + _bindings.spine_event_set_balance(_event, balance); + } } typedef AnimationStateListener = void Function(EventType type, TrackEntry entry, Event? event); @@ -2865,6 +3099,10 @@ class AnimationState { _bindings.spine_animation_state_set_time_scale(_state, timeScale); } + AnimationStateData getData() { + return AnimationStateData._(_bindings.spine_animation_state_get_data(_state)); + } + void setListener(AnimationStateListener? listener) { _stateListener = listener; }