From 0f7253882aa73b7c5a25ab74013e013628891b2d Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 24 Jun 2025 15:11:34 +0200 Subject: [PATCH] [cpp] 4.3 porting WIP --- spine-cpp/spine-cpp/include/spine/ConstraintData.h | 4 ++-- spine-cpp/spine-cpp/include/spine/PosedData.h | 5 +++-- spine-cpp/spine-cpp/src/spine/Skeleton.cpp | 5 +---- spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/spine-cpp/spine-cpp/include/spine/ConstraintData.h b/spine-cpp/spine-cpp/include/spine/ConstraintData.h index 3ddfbadbc..ae9ee3cc7 100644 --- a/spine-cpp/spine-cpp/include/spine/ConstraintData.h +++ b/spine-cpp/spine-cpp/include/spine/ConstraintData.h @@ -52,7 +52,7 @@ namespace spine { virtual const String &getName() const = 0; - virtual const bool &isSkinRequired() const = 0; + virtual bool isSkinRequired() const = 0; }; /// Base class for all constraint data types. @@ -66,7 +66,7 @@ namespace spine { // Resolve ambiguity by forwarding to PosedData's implementation virtual const String &getName() const override { return PosedDataGeneric

::getName(); } - virtual const bool &isSkinRequired() const override { return PosedDataGeneric

::isSkinRequired(); } + virtual bool isSkinRequired() const override { return PosedDataGeneric

::isSkinRequired(); } }; } diff --git a/spine-cpp/spine-cpp/include/spine/PosedData.h b/spine-cpp/spine-cpp/include/spine/PosedData.h index 172a1e5a6..1a1fea52f 100644 --- a/spine-cpp/spine-cpp/include/spine/PosedData.h +++ b/spine-cpp/spine-cpp/include/spine/PosedData.h @@ -66,13 +66,13 @@ namespace spine { virtual ~PosedData(); /// The constraint's name, which is unique across all constraints in the skeleton of the same type. - const spine::String& getName() { return _name; }; + const spine::String& getName() const { return _name; }; /// When true, Skeleton::updateWorldTransform(Physics) only updates this constraint if the Skeleton::getSkin() /// contains this constraint. /// /// See Skin::getConstraints(). - bool isSkinRequired() { return _skinRequired; }; + bool isSkinRequired() const { return _skinRequired; }; void setSkinRequired(bool skinRequired) { _skinRequired = skinRequired; }; protected: @@ -120,6 +120,7 @@ namespace spine { virtual ~PosedDataGeneric() {}; P& getSetupPose() { return _setup; }; + const P& getSetupPose() const { return _setup; }; }; } diff --git a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp index 2e86e53aa..77931511e 100644 --- a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp +++ b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp @@ -81,10 +81,7 @@ Skeleton::Skeleton(SkeletonData &skeletonData) : _data(skeletonData), _skin(NULL _drawOrder.ensureCapacity(_data.getSlots().size()); for (size_t i = 0; i < _data.getSlots().size(); ++i) { SlotData *data = _data.getSlots()[i]; - - Bone *bone = _bones[data->getBoneData().getIndex()]; Slot *slot = new (__FILE__, __LINE__) Slot(*data, *this); - _slots.add(slot); _drawOrder.add(slot); } @@ -147,7 +144,7 @@ void Skeleton::updateCache() { for (size_t i = 0; i < n; i++) { Constraint *constraint = constraints[i]; constraint->_active = constraint->isSourceActive() && - (!constraint->getData().isSkinRequired()) || (_skin && _skin->_constraints.contains(&constraint->getData())); + ((!constraint->getData().isSkinRequired()) || (_skin && _skin->_constraints.contains(&constraint->getData()))); if (constraint->_active) constraint->sort(*this); } diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp index 98b25ea5b..0ffaf4c70 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp @@ -101,7 +101,7 @@ bool SkeletonClipping::clipTriangles(float *vertices, unsigned short *triangles, int stride = 2; - for (int i = 0; i < trianglesLength; i += 3) { + for (size_t i = 0; i < trianglesLength; i += 3) { int vertexOffset = triangles[i] * stride; float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; @@ -178,7 +178,7 @@ bool SkeletonClipping::clipTriangles(float *vertices, unsigned short *triangles, clippedTriangles.clear(); bool clipped = false; - for (int i = 0; i < trianglesLength; i += 3) { + for (size_t i = 0; i < trianglesLength; i += 3) { int vertexOffset = triangles[i] * (int) stride; float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; float u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1];