mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[cpp] Constructor nullability.
This commit is contained in:
parent
364d3ff5c7
commit
854b6f9a2a
@ -2852,6 +2852,173 @@ For each unchecked checkbox (now with implementations inlined):
|
|||||||
84: public void setAttachment (@Null Attachment attachment) {
|
84: public void setAttachment (@Null Attachment attachment) {
|
||||||
85- if (this.attachment == attachment) return;
|
85- if (this.attachment == attachment) return;
|
||||||
86- if (!(attachment instanceof VertexAttachment newAttachment) || !(this.attachment instanceof VertexAttachment oldAttachment)
|
86- if (!(attachment instanceof VertexAttachment newAttachment) || !(this.attachment instanceof VertexAttachment oldAttachment)
|
||||||
|
87- || newAttachment.getTimelineAttachment() != oldAttachment.getTimelineAttachment()) deform.clear();
|
||||||
|
88- this.attachment = attachment;
|
||||||
|
89- sequenceIndex = -1;
|
||||||
|
90- }
|
||||||
|
91-
|
||||||
|
92- public IntArray getDeform () {
|
||||||
|
93- return deform;
|
||||||
|
94- }
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/RTTI.h:43](../../spine-cpp/include/spine/RTTI.h#L43) RTTI::RTTI(const char * className, const RTTI & baseRTTI, const RTTI * interface1, const RTTI * interface2, const RTTI * interface3) // takes nullable parameter 'interface1': const RTTI *; takes nullable parameter 'interface2': const RTTI *; takes nullable parameter 'interface3': const RTTI *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/RTTI.cpp:35
|
||||||
|
35:RTTI::RTTI(const char *className) : _className(className), _pBaseRTTI(NULL), _interfaceCount(0) {
|
||||||
|
36- _interfaces[0] = NULL;
|
||||||
|
37- _interfaces[1] = NULL;
|
||||||
|
38- _interfaces[2] = NULL;
|
||||||
|
39-}
|
||||||
|
40-
|
||||||
|
41:RTTI::RTTI(const char *className, const RTTI &baseRTTI) : _className(className), _pBaseRTTI(&baseRTTI), _interfaceCount(0) {
|
||||||
|
42- _interfaces[0] = NULL;
|
||||||
|
43- _interfaces[1] = NULL;
|
||||||
|
44- _interfaces[2] = NULL;
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
NOT FOUND - searched for class "RTTI" (from C++ "RTTI") and method "RTTI" across all Java files
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/SequenceTimeline.h:50](../../spine-cpp/include/spine/SequenceTimeline.h#L50) SequenceTimeline::SequenceTimeline(size_t frameCount, int slotIndex, Attachment * attachment) // takes nullable parameter 'attachment': Attachment *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/SequenceTimeline.cpp:46
|
||||||
|
46:SequenceTimeline::SequenceTimeline(size_t frameCount, int slotIndex, Attachment *attachment)
|
||||||
|
47- : Timeline(frameCount, ENTRIES), SlotTimeline(), _slotIndex(slotIndex), _attachment((HasTextureRegion *) attachment) {
|
||||||
|
48- int sequenceId = 0;
|
||||||
|
49- if (attachment->getRTTI().instanceOf(RegionAttachment::rtti)) sequenceId = ((RegionAttachment *) attachment)->getSequence()->getId();
|
||||||
|
50- if (attachment->getRTTI().instanceOf(MeshAttachment::rtti)) sequenceId = ((MeshAttachment *) attachment)->getSequence()->getId();
|
||||||
|
51- PropertyId ids[] = {((PropertyId) Property_Sequence << 32) | ((slotIndex << 16 | sequenceId) & 0xffffffff)};
|
||||||
|
52- setPropertyIds(ids, 1);
|
||||||
|
53-}
|
||||||
|
54-
|
||||||
|
55-SequenceTimeline::~SequenceTimeline() {
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java:1705
|
||||||
|
1705: public SequenceTimeline (int frameCount, int slotIndex, Attachment attachment) {
|
||||||
|
1706- super(frameCount,
|
||||||
|
1707- Property.sequence.ordinal() + "|" + slotIndex + "|" + ((HasTextureRegion)attachment).getSequence().getId());
|
||||||
|
1708- this.slotIndex = slotIndex;
|
||||||
|
1709- this.attachment = (HasTextureRegion)attachment;
|
||||||
|
1710- }
|
||||||
|
1711-
|
||||||
|
1712- public int getFrameEntries () {
|
||||||
|
1713- return ENTRIES;
|
||||||
|
1714- }
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/SkeletonBinary.h:118](../../spine-cpp/include/spine/SkeletonBinary.h#L118) SkeletonBinary::SkeletonBinary(Atlas * atlas) // takes nullable parameter 'atlas': Atlas *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/SkeletonBinary.cpp:82
|
||||||
|
82:SkeletonBinary::SkeletonBinary(Atlas *atlas)
|
||||||
|
83- : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _error(), _scale(1), _ownsLoader(true) {
|
||||||
|
84-}
|
||||||
|
85-
|
||||||
|
86:SkeletonBinary::SkeletonBinary(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
||||||
|
87- : _attachmentLoader(attachmentLoader), _error(), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
|
88- assert(_attachmentLoader != NULL);
|
||||||
|
89-}
|
||||||
|
90-
|
||||||
|
91-SkeletonBinary::~SkeletonBinary() {
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java:173
|
||||||
|
173: public SkeletonBinary (AttachmentLoader attachmentLoader) {
|
||||||
|
174- super(attachmentLoader);
|
||||||
|
175- }
|
||||||
|
176-
|
||||||
|
177: public SkeletonBinary (TextureAtlas atlas) {
|
||||||
|
178- super(atlas);
|
||||||
|
179- }
|
||||||
|
180-
|
||||||
|
181- public SkeletonData readSkeletonData (FileHandle file) {
|
||||||
|
182- if (file == null) throw new IllegalArgumentException("file cannot be null.");
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/SkeletonBinary.h:120](../../spine-cpp/include/spine/SkeletonBinary.h#L120) SkeletonBinary::SkeletonBinary(AttachmentLoader * attachmentLoader, bool ownsLoader) // takes nullable parameter 'attachmentLoader': AttachmentLoader *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/SkeletonBinary.cpp:82
|
||||||
|
82:SkeletonBinary::SkeletonBinary(Atlas *atlas)
|
||||||
|
83- : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _error(), _scale(1), _ownsLoader(true) {
|
||||||
|
84-}
|
||||||
|
85-
|
||||||
|
86:SkeletonBinary::SkeletonBinary(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
||||||
|
87- : _attachmentLoader(attachmentLoader), _error(), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
|
88- assert(_attachmentLoader != NULL);
|
||||||
|
89-}
|
||||||
|
90-
|
||||||
|
91-SkeletonBinary::~SkeletonBinary() {
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java:173
|
||||||
|
173: public SkeletonBinary (AttachmentLoader attachmentLoader) {
|
||||||
|
174- super(attachmentLoader);
|
||||||
|
175- }
|
||||||
|
176-
|
||||||
|
177: public SkeletonBinary (TextureAtlas atlas) {
|
||||||
|
178- super(atlas);
|
||||||
|
179- }
|
||||||
|
180-
|
||||||
|
181- public SkeletonData readSkeletonData (FileHandle file) {
|
||||||
|
182- if (file == null) throw new IllegalArgumentException("file cannot be null.");
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/SkeletonJson.h:70](../../spine-cpp/include/spine/SkeletonJson.h#L70) SkeletonJson::SkeletonJson(Atlas * atlas) // takes nullable parameter 'atlas': Atlas *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/SkeletonJson.cpp:124
|
||||||
|
124:SkeletonJson::SkeletonJson(Atlas *atlas) : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _scale(1), _ownsLoader(true) {
|
||||||
|
125-}
|
||||||
|
126-
|
||||||
|
127:SkeletonJson::SkeletonJson(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
||||||
|
128- : _attachmentLoader(attachmentLoader), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
|
129- assert(_attachmentLoader != NULL);
|
||||||
|
130-}
|
||||||
|
131-
|
||||||
|
132-SkeletonJson::~SkeletonJson() {
|
||||||
|
133- ArrayUtils::deleteElements(_linkedMeshes);
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java:128
|
||||||
|
128: public SkeletonJson (AttachmentLoader attachmentLoader) {
|
||||||
|
129- super(attachmentLoader);
|
||||||
|
130- }
|
||||||
|
131-
|
||||||
|
132: public SkeletonJson (TextureAtlas atlas) {
|
||||||
|
133- super(atlas);
|
||||||
|
134- }
|
||||||
|
135-
|
||||||
|
136- public SkeletonData readSkeletonData (FileHandle file) {
|
||||||
|
137- if (file == null) throw new IllegalArgumentException("file cannot be null.");
|
||||||
|
```
|
||||||
|
- [x] [../../spine-cpp/include/spine/SkeletonJson.h:72](../../spine-cpp/include/spine/SkeletonJson.h#L72) SkeletonJson::SkeletonJson(AttachmentLoader * attachmentLoader, bool ownsLoader) // takes nullable parameter 'attachmentLoader': AttachmentLoader *
|
||||||
|
```cpp
|
||||||
|
../../spine-cpp/src/spine/SkeletonJson.cpp:124
|
||||||
|
124:SkeletonJson::SkeletonJson(Atlas *atlas) : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _scale(1), _ownsLoader(true) {
|
||||||
|
125-}
|
||||||
|
126-
|
||||||
|
127:SkeletonJson::SkeletonJson(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
||||||
|
128- : _attachmentLoader(attachmentLoader), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
|
129- assert(_attachmentLoader != NULL);
|
||||||
|
130-}
|
||||||
|
131-
|
||||||
|
132-SkeletonJson::~SkeletonJson() {
|
||||||
|
133- ArrayUtils::deleteElements(_linkedMeshes);
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java:128
|
||||||
|
128: public SkeletonJson (AttachmentLoader attachmentLoader) {
|
||||||
|
129- super(attachmentLoader);
|
||||||
|
130- }
|
||||||
|
131-
|
||||||
|
132: public SkeletonJson (TextureAtlas atlas) {
|
||||||
|
133- super(atlas);
|
||||||
|
134- }
|
||||||
|
135-
|
||||||
|
136- public SkeletonData readSkeletonData (FileHandle file) {
|
||||||
|
137- if (file == null) throw new IllegalArgumentException("file cannot be null.");
|
||||||
|
```
|
||||||
|
```
|
||||||
|
```java
|
||||||
|
../../spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotPose.java:84
|
||||||
|
84: public void setAttachment (@Null Attachment attachment) {
|
||||||
|
85- if (this.attachment == attachment) return;
|
||||||
|
86- if (!(attachment instanceof VertexAttachment newAttachment) || !(this.attachment instanceof VertexAttachment oldAttachment)
|
||||||
87- || newAttachment.getTimelineAttachment() != oldAttachment.getTimelineAttachment()) {
|
87- || newAttachment.getTimelineAttachment() != oldAttachment.getTimelineAttachment()) {
|
||||||
88- deform.clear();
|
88- deform.clear();
|
||||||
89- }
|
89- }
|
||||||
|
|||||||
@ -398,7 +398,7 @@ namespace spine {
|
|||||||
friend class EventQueue;
|
friend class EventQueue;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AnimationState(AnimationStateData *data);
|
explicit AnimationState(AnimationStateData &data);
|
||||||
|
|
||||||
~AnimationState();
|
~AnimationState();
|
||||||
|
|
||||||
@ -437,7 +437,7 @@ namespace spine {
|
|||||||
/// @return
|
/// @return
|
||||||
/// A track entry to allow further customization of animation playback. References to the track entry must not be kept
|
/// A track entry to allow further customization of animation playback. References to the track entry must not be kept
|
||||||
/// after AnimationState.Dispose.
|
/// after AnimationState.Dispose.
|
||||||
TrackEntry &setAnimation(size_t trackIndex, Animation *animation, bool loop);
|
TrackEntry &setAnimation(size_t trackIndex, Animation &animation, bool loop);
|
||||||
|
|
||||||
/// Queues an animation by name.
|
/// Queues an animation by name.
|
||||||
///
|
///
|
||||||
@ -452,7 +452,7 @@ namespace spine {
|
|||||||
///
|
///
|
||||||
/// @return A track entry to allow further customization of animation playback. References to the track entry must not be kept
|
/// @return A track entry to allow further customization of animation playback. References to the track entry must not be kept
|
||||||
/// after AnimationState.Dispose
|
/// after AnimationState.Dispose
|
||||||
TrackEntry &addAnimation(size_t trackIndex, Animation *animation, bool loop, float delay);
|
TrackEntry &addAnimation(size_t trackIndex, Animation &animation, bool loop, float delay);
|
||||||
|
|
||||||
/// Sets an empty animation for a track, discarding any queued animations, and sets the track entry's
|
/// Sets an empty animation for a track, discarding any queued animations, and sets the track entry's
|
||||||
/// TrackEntry::getMixDuration(). An empty animation has no timelines and serves as a placeholder for mixing in or out.
|
/// TrackEntry::getMixDuration(). An empty animation has no timelines and serves as a placeholder for mixing in or out.
|
||||||
|
|||||||
@ -46,7 +46,7 @@ namespace spine {
|
|||||||
friend class AnimationState;
|
friend class AnimationState;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AnimationStateData(SkeletonData *skeletonData);
|
explicit AnimationStateData(SkeletonData &skeletonData);
|
||||||
|
|
||||||
/// The SkeletonData to look up animations when they are specified by name.
|
/// The SkeletonData to look up animations when they are specified by name.
|
||||||
SkeletonData &getSkeletonData();
|
SkeletonData &getSkeletonData();
|
||||||
|
|||||||
@ -46,7 +46,7 @@ namespace spine {
|
|||||||
/// Spine Runtimes Guide.
|
/// Spine Runtimes Guide.
|
||||||
class SP_API AtlasAttachmentLoader : public AttachmentLoader {
|
class SP_API AtlasAttachmentLoader : public AttachmentLoader {
|
||||||
public:
|
public:
|
||||||
explicit AtlasAttachmentLoader(Atlas *atlas);
|
explicit AtlasAttachmentLoader(Atlas &atlas);
|
||||||
|
|
||||||
virtual RegionAttachment *newRegionAttachment(Skin &skin, const String &name, const String &path, Sequence *sequence);
|
virtual RegionAttachment *newRegionAttachment(Skin &skin, const String &name, const String &path, Sequence *sequence);
|
||||||
|
|
||||||
|
|||||||
@ -44,7 +44,7 @@ namespace spine {
|
|||||||
RTTI_DECL
|
RTTI_DECL
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DeformTimeline(size_t frameCount, size_t bezierCount, int slotIndex, VertexAttachment *attachment);
|
explicit DeformTimeline(size_t frameCount, size_t bezierCount, int slotIndex, VertexAttachment &attachment);
|
||||||
|
|
||||||
/// Sets the time and vertices for the specified frame.
|
/// Sets the time and vertices for the specified frame.
|
||||||
void setFrame(int frameIndex, float time, Array<float> &vertices);
|
void setFrame(int frameIndex, float time, Array<float> &vertices);
|
||||||
|
|||||||
@ -42,9 +42,9 @@ namespace spine {
|
|||||||
friend class SkeletonJson;
|
friend class SkeletonJson;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LinkedMesh(MeshAttachment *mesh, const int skinIndex, size_t slotIndex, const String &parent, bool inheritTimelines);
|
LinkedMesh(MeshAttachment &mesh, const int skinIndex, size_t slotIndex, const String &parent, bool inheritTimelines);
|
||||||
|
|
||||||
LinkedMesh(MeshAttachment *mesh, const String &skin, size_t slotIndex, const String &parent, bool inheritTimelines);
|
LinkedMesh(MeshAttachment &mesh, const String &skin, size_t slotIndex, const String &parent, bool inheritTimelines);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MeshAttachment *_mesh;
|
MeshAttachment *_mesh;
|
||||||
|
|||||||
@ -47,7 +47,7 @@ namespace spine {
|
|||||||
RTTI_DECL
|
RTTI_DECL
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SequenceTimeline(size_t frameCount, int slotIndex, Attachment *attachment);
|
explicit SequenceTimeline(size_t frameCount, int slotIndex, Attachment &attachment);
|
||||||
|
|
||||||
virtual ~SequenceTimeline();
|
virtual ~SequenceTimeline();
|
||||||
|
|
||||||
|
|||||||
@ -115,9 +115,9 @@ namespace spine {
|
|||||||
static const int CURVE_STEPPED = 1;
|
static const int CURVE_STEPPED = 1;
|
||||||
static const int CURVE_BEZIER = 2;
|
static const int CURVE_BEZIER = 2;
|
||||||
|
|
||||||
explicit SkeletonBinary(Atlas *atlas);
|
explicit SkeletonBinary(Atlas &atlas);
|
||||||
|
|
||||||
explicit SkeletonBinary(AttachmentLoader *attachmentLoader, bool ownsLoader = false);
|
explicit SkeletonBinary(AttachmentLoader &attachmentLoader, bool ownsLoader = false);
|
||||||
|
|
||||||
~SkeletonBinary();
|
~SkeletonBinary();
|
||||||
|
|
||||||
|
|||||||
@ -67,9 +67,9 @@ namespace spine {
|
|||||||
|
|
||||||
class SP_API SkeletonJson : public SpineObject {
|
class SP_API SkeletonJson : public SpineObject {
|
||||||
public:
|
public:
|
||||||
explicit SkeletonJson(Atlas *atlas);
|
explicit SkeletonJson(Atlas &atlas);
|
||||||
|
|
||||||
explicit SkeletonJson(AttachmentLoader *attachmentLoader, bool ownsLoader = false);
|
explicit SkeletonJson(AttachmentLoader &attachmentLoader, bool ownsLoader = false);
|
||||||
|
|
||||||
~SkeletonJson();
|
~SkeletonJson();
|
||||||
|
|
||||||
|
|||||||
@ -610,7 +610,7 @@ spine_skeleton_drawable spine_skeleton_drawable_create(spine_skeleton_data skele
|
|||||||
drawable->skeleton = (spine_skeleton) new (__FILE__, __LINE__) Skeleton((SkeletonData *) skeletonData);
|
drawable->skeleton = (spine_skeleton) new (__FILE__, __LINE__) Skeleton((SkeletonData *) skeletonData);
|
||||||
AnimationStateData *stateData = new (__FILE__, __LINE__) AnimationStateData((SkeletonData *) skeletonData);
|
AnimationStateData *stateData = new (__FILE__, __LINE__) AnimationStateData((SkeletonData *) skeletonData);
|
||||||
drawable->animationStateData = (spine_animation_state_data) stateData;
|
drawable->animationStateData = (spine_animation_state_data) stateData;
|
||||||
AnimationState *state = new (__FILE__, __LINE__) AnimationState(stateData);
|
AnimationState *state = new (__FILE__, __LINE__) AnimationState(*stateData);
|
||||||
drawable->animationState = (spine_animation_state) state;
|
drawable->animationState = (spine_animation_state) state;
|
||||||
state->setManualTrackEntryDisposal(true);
|
state->setManualTrackEntryDisposal(true);
|
||||||
EventListener *listener = new EventListener();
|
EventListener *listener = new EventListener();
|
||||||
|
|||||||
@ -431,8 +431,8 @@ void EventQueue::drain() {
|
|||||||
_drainDisabled = false;
|
_drainDisabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimationState::AnimationState(AnimationStateData *data)
|
AnimationState::AnimationState(AnimationStateData &data)
|
||||||
: _data(data), _queue(EventQueue::newEventQueue(*this)), _animationsChanged(false), _listener(dummyOnAnimationEventFunc), _listenerObject(NULL),
|
: _data(&data), _queue(EventQueue::newEventQueue(*this)), _animationsChanged(false), _listener(dummyOnAnimationEventFunc), _listenerObject(NULL),
|
||||||
_unkeyedState(0), _timeScale(1), _manualTrackEntryDisposal(false) {
|
_unkeyedState(0), _timeScale(1), _manualTrackEntryDisposal(false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -652,16 +652,14 @@ void AnimationState::clearTrack(size_t trackIndex) {
|
|||||||
TrackEntry &AnimationState::setAnimation(size_t trackIndex, const String &animationName, bool loop) {
|
TrackEntry &AnimationState::setAnimation(size_t trackIndex, const String &animationName, bool loop) {
|
||||||
Animation *animation = _data->_skeletonData->findAnimation(animationName);
|
Animation *animation = _data->_skeletonData->findAnimation(animationName);
|
||||||
assert(animation != NULL);
|
assert(animation != NULL);
|
||||||
return setAnimation(trackIndex, animation, loop);
|
return setAnimation(trackIndex, *animation, loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry &AnimationState::setAnimation(size_t trackIndex, Animation *animation, bool loop) {
|
TrackEntry &AnimationState::setAnimation(size_t trackIndex, Animation &animation, bool loop) {
|
||||||
assert(animation != NULL);
|
|
||||||
|
|
||||||
bool interrupt = true;
|
bool interrupt = true;
|
||||||
TrackEntry *current = expandToIndex(trackIndex);
|
TrackEntry *current = expandToIndex(trackIndex);
|
||||||
if (current != NULL) {
|
if (current != NULL) {
|
||||||
if (current->_nextTrackLast == -1 && current->_animation == animation) {
|
if (current->_nextTrackLast == -1 && current->_animation == &animation) {
|
||||||
// Don't mix from an entry that was never applied.
|
// Don't mix from an entry that was never applied.
|
||||||
_tracks[trackIndex] = current->_mixingFrom;
|
_tracks[trackIndex] = current->_mixingFrom;
|
||||||
_queue->interrupt(current);
|
_queue->interrupt(current);
|
||||||
@ -674,7 +672,7 @@ TrackEntry &AnimationState::setAnimation(size_t trackIndex, Animation *animation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry *entry = newTrackEntry(trackIndex, animation, loop, current);
|
TrackEntry *entry = newTrackEntry(trackIndex, &animation, loop, current);
|
||||||
setCurrent(trackIndex, entry, interrupt);
|
setCurrent(trackIndex, entry, interrupt);
|
||||||
_queue->drain();
|
_queue->drain();
|
||||||
|
|
||||||
@ -684,18 +682,16 @@ TrackEntry &AnimationState::setAnimation(size_t trackIndex, Animation *animation
|
|||||||
TrackEntry &AnimationState::addAnimation(size_t trackIndex, const String &animationName, bool loop, float delay) {
|
TrackEntry &AnimationState::addAnimation(size_t trackIndex, const String &animationName, bool loop, float delay) {
|
||||||
Animation *animation = _data->_skeletonData->findAnimation(animationName);
|
Animation *animation = _data->_skeletonData->findAnimation(animationName);
|
||||||
assert(animation != NULL);
|
assert(animation != NULL);
|
||||||
return addAnimation(trackIndex, animation, loop, delay);
|
return addAnimation(trackIndex, *animation, loop, delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry &AnimationState::addAnimation(size_t trackIndex, Animation *animation, bool loop, float delay) {
|
TrackEntry &AnimationState::addAnimation(size_t trackIndex, Animation &animation, bool loop, float delay) {
|
||||||
assert(animation != NULL);
|
|
||||||
|
|
||||||
TrackEntry *last = expandToIndex(trackIndex);
|
TrackEntry *last = expandToIndex(trackIndex);
|
||||||
if (last != NULL) {
|
if (last != NULL) {
|
||||||
while (last->_next != NULL) last = last->_next;
|
while (last->_next != NULL) last = last->_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry *entry = newTrackEntry(trackIndex, animation, loop, last);
|
TrackEntry *entry = newTrackEntry(trackIndex, &animation, loop, last);
|
||||||
|
|
||||||
if (last == NULL) {
|
if (last == NULL) {
|
||||||
setCurrent(trackIndex, entry, true);
|
setCurrent(trackIndex, entry, true);
|
||||||
@ -712,14 +708,14 @@ TrackEntry &AnimationState::addAnimation(size_t trackIndex, Animation *animation
|
|||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry &AnimationState::setEmptyAnimation(size_t trackIndex, float mixDuration) {
|
TrackEntry &AnimationState::setEmptyAnimation(size_t trackIndex, float mixDuration) {
|
||||||
TrackEntry &entry = setAnimation(trackIndex, AnimationState::getEmptyAnimation(), false);
|
TrackEntry &entry = setAnimation(trackIndex, *AnimationState::getEmptyAnimation(), false);
|
||||||
entry._mixDuration = mixDuration;
|
entry._mixDuration = mixDuration;
|
||||||
entry._trackEnd = mixDuration;
|
entry._trackEnd = mixDuration;
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry &AnimationState::addEmptyAnimation(size_t trackIndex, float mixDuration, float delay) {
|
TrackEntry &AnimationState::addEmptyAnimation(size_t trackIndex, float mixDuration, float delay) {
|
||||||
TrackEntry &entry = addAnimation(trackIndex, AnimationState::getEmptyAnimation(), false, delay);
|
TrackEntry &entry = addAnimation(trackIndex, *AnimationState::getEmptyAnimation(), false, delay);
|
||||||
if (delay <= 0) entry._delay = MathUtil::max(entry._delay + entry._mixDuration - mixDuration, 0.0f);
|
if (delay <= 0) entry._delay = MathUtil::max(entry._delay + entry._mixDuration - mixDuration, 0.0f);
|
||||||
entry._mixDuration = mixDuration;
|
entry._mixDuration = mixDuration;
|
||||||
entry._trackEnd = mixDuration;
|
entry._trackEnd = mixDuration;
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
using namespace spine;
|
using namespace spine;
|
||||||
|
|
||||||
AnimationStateData::AnimationStateData(SkeletonData *skeletonData) : _skeletonData(skeletonData), _defaultMix(0) {
|
AnimationStateData::AnimationStateData(SkeletonData &skeletonData) : _skeletonData(&skeletonData), _defaultMix(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationStateData::setMix(const String &fromName, const String &toName, float duration) {
|
void AnimationStateData::setMix(const String &fromName, const String &toName, float duration) {
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
using namespace spine;
|
using namespace spine;
|
||||||
|
|
||||||
AtlasAttachmentLoader::AtlasAttachmentLoader(Atlas *atlas) : AttachmentLoader(), _atlas(atlas) {
|
AtlasAttachmentLoader::AtlasAttachmentLoader(Atlas &atlas) : AttachmentLoader(), _atlas(&atlas) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool loadSequence(Atlas *atlas, const String &basePath, Sequence *sequence) {
|
bool loadSequence(Atlas *atlas, const String &basePath, Sequence *sequence) {
|
||||||
|
|||||||
@ -43,9 +43,9 @@ using namespace spine;
|
|||||||
|
|
||||||
RTTI_IMPL(DeformTimeline, CurveTimeline)
|
RTTI_IMPL(DeformTimeline, CurveTimeline)
|
||||||
|
|
||||||
DeformTimeline::DeformTimeline(size_t frameCount, size_t bezierCount, int slotIndex, VertexAttachment *attachment)
|
DeformTimeline::DeformTimeline(size_t frameCount, size_t bezierCount, int slotIndex, VertexAttachment &attachment)
|
||||||
: SlotCurveTimeline(frameCount, 1, bezierCount, slotIndex), _attachment(attachment) {
|
: SlotCurveTimeline(frameCount, 1, bezierCount, slotIndex), _attachment(&attachment) {
|
||||||
PropertyId ids[] = {((PropertyId) Property_Deform << 32) | ((slotIndex << 16 | attachment->_id) & 0xffffffff)};
|
PropertyId ids[] = {((PropertyId) Property_Deform << 32) | ((slotIndex << 16 | attachment._id) & 0xffffffff)};
|
||||||
setPropertyIds(ids, 1);
|
setPropertyIds(ids, 1);
|
||||||
|
|
||||||
_vertices.ensureCapacity(frameCount);
|
_vertices.ensureCapacity(frameCount);
|
||||||
|
|||||||
@ -33,10 +33,10 @@
|
|||||||
|
|
||||||
using namespace spine;
|
using namespace spine;
|
||||||
|
|
||||||
LinkedMesh::LinkedMesh(MeshAttachment *mesh, const int skinIndex, size_t slotIndex, const String &parent, bool inheritTimelines)
|
LinkedMesh::LinkedMesh(MeshAttachment &mesh, const int skinIndex, size_t slotIndex, const String &parent, bool inheritTimelines)
|
||||||
: _mesh(mesh), _skinIndex(skinIndex), _skin(""), _slotIndex(slotIndex), _parent(parent), _inheritTimelines(inheritTimelines) {
|
: _mesh(&mesh), _skinIndex(skinIndex), _skin(""), _slotIndex(slotIndex), _parent(parent), _inheritTimelines(inheritTimelines) {
|
||||||
}
|
}
|
||||||
|
|
||||||
LinkedMesh::LinkedMesh(MeshAttachment *mesh, const String &skin, size_t slotIndex, const String &parent, bool inheritTimelines)
|
LinkedMesh::LinkedMesh(MeshAttachment &mesh, const String &skin, size_t slotIndex, const String &parent, bool inheritTimelines)
|
||||||
: _mesh(mesh), _skinIndex(-1), _skin(skin), _slotIndex(slotIndex), _parent(parent), _inheritTimelines(inheritTimelines) {
|
: _mesh(&mesh), _skinIndex(-1), _skin(skin), _slotIndex(slotIndex), _parent(parent), _inheritTimelines(inheritTimelines) {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,11 +43,11 @@ using namespace spine;
|
|||||||
|
|
||||||
RTTI_IMPL_MULTI(SequenceTimeline, Timeline, SlotTimeline)
|
RTTI_IMPL_MULTI(SequenceTimeline, Timeline, SlotTimeline)
|
||||||
|
|
||||||
SequenceTimeline::SequenceTimeline(size_t frameCount, int slotIndex, Attachment *attachment)
|
SequenceTimeline::SequenceTimeline(size_t frameCount, int slotIndex, Attachment &attachment)
|
||||||
: Timeline(frameCount, ENTRIES), SlotTimeline(), _slotIndex(slotIndex), _attachment((HasTextureRegion *) attachment) {
|
: Timeline(frameCount, ENTRIES), SlotTimeline(), _slotIndex(slotIndex), _attachment((HasTextureRegion *) &attachment) {
|
||||||
int sequenceId = 0;
|
int sequenceId = 0;
|
||||||
if (attachment->getRTTI().instanceOf(RegionAttachment::rtti)) sequenceId = ((RegionAttachment *) attachment)->getSequence()->getId();
|
if (attachment.getRTTI().instanceOf(RegionAttachment::rtti)) sequenceId = ((RegionAttachment *) &attachment)->getSequence()->getId();
|
||||||
if (attachment->getRTTI().instanceOf(MeshAttachment::rtti)) sequenceId = ((MeshAttachment *) attachment)->getSequence()->getId();
|
if (attachment.getRTTI().instanceOf(MeshAttachment::rtti)) sequenceId = ((MeshAttachment *) &attachment)->getSequence()->getId();
|
||||||
PropertyId ids[] = {((PropertyId) Property_Sequence << 32) | ((slotIndex << 16 | sequenceId) & 0xffffffff)};
|
PropertyId ids[] = {((PropertyId) Property_Sequence << 32) | ((slotIndex << 16 | sequenceId) & 0xffffffff)};
|
||||||
setPropertyIds(ids, 1);
|
setPropertyIds(ids, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,13 +79,12 @@
|
|||||||
|
|
||||||
using namespace spine;
|
using namespace spine;
|
||||||
|
|
||||||
SkeletonBinary::SkeletonBinary(Atlas *atlas)
|
SkeletonBinary::SkeletonBinary(Atlas &atlas)
|
||||||
: _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _error(), _scale(1), _ownsLoader(true) {
|
: _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _error(), _scale(1), _ownsLoader(true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonBinary::SkeletonBinary(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
SkeletonBinary::SkeletonBinary(AttachmentLoader &attachmentLoader, bool ownsLoader)
|
||||||
: _attachmentLoader(attachmentLoader), _error(), _scale(1), _ownsLoader(ownsLoader) {
|
: _attachmentLoader(&attachmentLoader), _error(), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
assert(_attachmentLoader != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonBinary::~SkeletonBinary() {
|
SkeletonBinary::~SkeletonBinary() {
|
||||||
@ -682,7 +681,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput &input, Skin &skin, int slo
|
|||||||
mesh->setWidth(width * scale);
|
mesh->setWidth(width * scale);
|
||||||
mesh->setHeight(height * scale);
|
mesh->setHeight(height * scale);
|
||||||
}
|
}
|
||||||
_linkedMeshes.add(new (__FILE__, __LINE__) LinkedMesh(mesh, skinIndex, slotIndex, parent, inheritTimelines));
|
_linkedMeshes.add(new (__FILE__, __LINE__) LinkedMesh(*mesh, skinIndex, slotIndex, parent, inheritTimelines));
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
case AttachmentType_Path: {
|
case AttachmentType_Path: {
|
||||||
@ -1236,7 +1235,7 @@ Animation *SkeletonBinary::readAnimation(DataInput &input, const String &name, S
|
|||||||
int deformLength = weighted ? (int) vertices.size() / 3 * 2 : (int) vertices.size();
|
int deformLength = weighted ? (int) vertices.size() / 3 * 2 : (int) vertices.size();
|
||||||
|
|
||||||
DeformTimeline *timeline = new (__FILE__, __LINE__)
|
DeformTimeline *timeline = new (__FILE__, __LINE__)
|
||||||
DeformTimeline(frameCount, input.readInt(true), slotIndex, vertexAttachment);
|
DeformTimeline(frameCount, input.readInt(true), slotIndex, *vertexAttachment);
|
||||||
|
|
||||||
float time = input.readFloat();
|
float time = input.readFloat();
|
||||||
for (int frame = 0, bezier = 0;; ++frame) {
|
for (int frame = 0, bezier = 0;; ++frame) {
|
||||||
@ -1280,7 +1279,7 @@ Animation *SkeletonBinary::readAnimation(DataInput &input, const String &name, S
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTACHMENT_SEQUENCE: {
|
case ATTACHMENT_SEQUENCE: {
|
||||||
SequenceTimeline *timeline = new (__FILE__, __LINE__) SequenceTimeline(frameCount, slotIndex, attachment);
|
SequenceTimeline *timeline = new (__FILE__, __LINE__) SequenceTimeline(frameCount, slotIndex, *attachment);
|
||||||
for (int frame = 0; frame < frameCount; frame++) {
|
for (int frame = 0; frame < frameCount; frame++) {
|
||||||
float time = input.readFloat();
|
float time = input.readFloat();
|
||||||
int modeAndIndex = input.readInt();
|
int modeAndIndex = input.readInt();
|
||||||
|
|||||||
@ -121,12 +121,11 @@ static float propertyScale(const char *type, float scale) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonJson::SkeletonJson(Atlas *atlas) : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _scale(1), _ownsLoader(true) {
|
SkeletonJson::SkeletonJson(Atlas &atlas) : _attachmentLoader(new(__FILE__, __LINE__) AtlasAttachmentLoader(atlas)), _scale(1), _ownsLoader(true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonJson::SkeletonJson(AttachmentLoader *attachmentLoader, bool ownsLoader)
|
SkeletonJson::SkeletonJson(AttachmentLoader &attachmentLoader, bool ownsLoader)
|
||||||
: _attachmentLoader(attachmentLoader), _scale(1), _ownsLoader(ownsLoader) {
|
: _attachmentLoader(&attachmentLoader), _scale(1), _ownsLoader(ownsLoader) {
|
||||||
assert(_attachmentLoader != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SkeletonJson::~SkeletonJson() {
|
SkeletonJson::~SkeletonJson() {
|
||||||
@ -675,7 +674,7 @@ Attachment *SkeletonJson::readAttachment(Json *map, Skin *skin, int slotIndex, c
|
|||||||
const char *parent = Json::getString(map, "parent", NULL);
|
const char *parent = Json::getString(map, "parent", NULL);
|
||||||
if (parent) {
|
if (parent) {
|
||||||
LinkedMesh *linkedMesh = new (__FILE__, __LINE__)
|
LinkedMesh *linkedMesh = new (__FILE__, __LINE__)
|
||||||
LinkedMesh(mesh, Json::getString(map, "skin", NULL), slotIndex, parent, Json::getBoolean(map, "timelines", true));
|
LinkedMesh(*mesh, Json::getString(map, "skin", NULL), slotIndex, parent, Json::getBoolean(map, "timelines", true));
|
||||||
_linkedMeshes.add(linkedMesh);
|
_linkedMeshes.add(linkedMesh);
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
@ -1262,7 +1261,7 @@ Animation *SkeletonJson::readAnimation(Json *map, SkeletonData *skeletonData) {
|
|||||||
Array<float> &vertices = vertexAttachment->_vertices;
|
Array<float> &vertices = vertexAttachment->_vertices;
|
||||||
int deformLength = weighted ? (int) vertices.size() / 3 * 2 : (int) vertices.size();
|
int deformLength = weighted ? (int) vertices.size() / 3 * 2 : (int) vertices.size();
|
||||||
|
|
||||||
DeformTimeline *timeline = new (__FILE__, __LINE__) DeformTimeline(frames, frames, slotIndex, vertexAttachment);
|
DeformTimeline *timeline = new (__FILE__, __LINE__) DeformTimeline(frames, frames, slotIndex, *vertexAttachment);
|
||||||
float time = Json::getFloat(keyMap, "time", 0);
|
float time = Json::getFloat(keyMap, "time", 0);
|
||||||
for (int frame = 0, bezier = 0;; frame++) {
|
for (int frame = 0, bezier = 0;; frame++) {
|
||||||
Array<float> deform;
|
Array<float> deform;
|
||||||
@ -1305,7 +1304,7 @@ Animation *SkeletonJson::readAnimation(Json *map, SkeletonData *skeletonData) {
|
|||||||
}
|
}
|
||||||
timelines.add(timeline);
|
timelines.add(timeline);
|
||||||
} else if (timelineName == "sequence") {
|
} else if (timelineName == "sequence") {
|
||||||
SequenceTimeline *timeline = new (__FILE__, __LINE__) SequenceTimeline(frames, slotIndex, attachment);
|
SequenceTimeline *timeline = new (__FILE__, __LINE__) SequenceTimeline(frames, slotIndex, *attachment);
|
||||||
float lastDelay = 0;
|
float lastDelay = 0;
|
||||||
for (int frame = 0; keyMap != NULL; keyMap = keyMap->_next, frame++) {
|
for (int frame = 0; keyMap != NULL; keyMap = keyMap->_next, frame++) {
|
||||||
float delay = Json::getFloat(keyMap, "delay", lastDelay);
|
float delay = Json::getFloat(keyMap, "delay", lastDelay);
|
||||||
|
|||||||
@ -90,10 +90,10 @@ int main(int argc, char *argv[]) {
|
|||||||
SkeletonData *skeletonData = nullptr;
|
SkeletonData *skeletonData = nullptr;
|
||||||
|
|
||||||
if (strstr(skeletonPath, ".json") != nullptr) {
|
if (strstr(skeletonPath, ".json") != nullptr) {
|
||||||
SkeletonJson json(atlas);
|
SkeletonJson json(*atlas);
|
||||||
skeletonData = json.readSkeletonDataFile(skeletonPath);
|
skeletonData = json.readSkeletonDataFile(skeletonPath);
|
||||||
} else {
|
} else {
|
||||||
SkeletonBinary binary(atlas);
|
SkeletonBinary binary(*atlas);
|
||||||
skeletonData = binary.readSkeletonDataFile(skeletonPath);
|
skeletonData = binary.readSkeletonDataFile(skeletonPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,8 +111,8 @@ int main(int argc, char *argv[]) {
|
|||||||
AnimationStateData *stateData = nullptr;
|
AnimationStateData *stateData = nullptr;
|
||||||
if (animationName != nullptr) {
|
if (animationName != nullptr) {
|
||||||
// Create animation state only when needed
|
// Create animation state only when needed
|
||||||
stateData = new AnimationStateData(skeletonData);
|
stateData = new AnimationStateData(*skeletonData);
|
||||||
state = new AnimationState(stateData);
|
state = new AnimationState(*stateData);
|
||||||
|
|
||||||
// Find and set animation
|
// Find and set animation
|
||||||
Animation *animation = skeletonData->findAnimation(animationName);
|
Animation *animation = skeletonData->findAnimation(animationName);
|
||||||
@ -122,7 +122,7 @@ int main(int argc, char *argv[]) {
|
|||||||
delete atlas;
|
delete atlas;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
state->setAnimation(0, animation, true);
|
state->setAnimation(0, *animation, true);
|
||||||
// Update and apply
|
// Update and apply
|
||||||
state->update(0.016f);
|
state->update(0.016f);
|
||||||
state->apply(skeleton);
|
state->apply(skeleton);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user