mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[cpp] 4.3 porting WIP
This commit is contained in:
parent
0c8ad6e0a7
commit
0f7253882a
@ -52,7 +52,7 @@ namespace spine {
|
|||||||
|
|
||||||
virtual const String &getName() const = 0;
|
virtual const String &getName() const = 0;
|
||||||
|
|
||||||
virtual const bool &isSkinRequired() const = 0;
|
virtual bool isSkinRequired() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Base class for all constraint data types.
|
/// Base class for all constraint data types.
|
||||||
@ -66,7 +66,7 @@ namespace spine {
|
|||||||
|
|
||||||
// Resolve ambiguity by forwarding to PosedData's implementation
|
// Resolve ambiguity by forwarding to PosedData's implementation
|
||||||
virtual const String &getName() const override { return PosedDataGeneric<P>::getName(); }
|
virtual const String &getName() const override { return PosedDataGeneric<P>::getName(); }
|
||||||
virtual const bool &isSkinRequired() const override { return PosedDataGeneric<P>::isSkinRequired(); }
|
virtual bool isSkinRequired() const override { return PosedDataGeneric<P>::isSkinRequired(); }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,13 +66,13 @@ namespace spine {
|
|||||||
virtual ~PosedData();
|
virtual ~PosedData();
|
||||||
|
|
||||||
/// The constraint's name, which is unique across all constraints in the skeleton of the same type.
|
/// 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()
|
/// When true, Skeleton::updateWorldTransform(Physics) only updates this constraint if the Skeleton::getSkin()
|
||||||
/// contains this constraint.
|
/// contains this constraint.
|
||||||
///
|
///
|
||||||
/// See Skin::getConstraints().
|
/// See Skin::getConstraints().
|
||||||
bool isSkinRequired() { return _skinRequired; };
|
bool isSkinRequired() const { return _skinRequired; };
|
||||||
void setSkinRequired(bool skinRequired) { _skinRequired = skinRequired; };
|
void setSkinRequired(bool skinRequired) { _skinRequired = skinRequired; };
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -120,6 +120,7 @@ namespace spine {
|
|||||||
virtual ~PosedDataGeneric() {};
|
virtual ~PosedDataGeneric() {};
|
||||||
|
|
||||||
P& getSetupPose() { return _setup; };
|
P& getSetupPose() { return _setup; };
|
||||||
|
const P& getSetupPose() const { return _setup; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -81,10 +81,7 @@ Skeleton::Skeleton(SkeletonData &skeletonData) : _data(skeletonData), _skin(NULL
|
|||||||
_drawOrder.ensureCapacity(_data.getSlots().size());
|
_drawOrder.ensureCapacity(_data.getSlots().size());
|
||||||
for (size_t i = 0; i < _data.getSlots().size(); ++i) {
|
for (size_t i = 0; i < _data.getSlots().size(); ++i) {
|
||||||
SlotData *data = _data.getSlots()[i];
|
SlotData *data = _data.getSlots()[i];
|
||||||
|
|
||||||
Bone *bone = _bones[data->getBoneData().getIndex()];
|
|
||||||
Slot *slot = new (__FILE__, __LINE__) Slot(*data, *this);
|
Slot *slot = new (__FILE__, __LINE__) Slot(*data, *this);
|
||||||
|
|
||||||
_slots.add(slot);
|
_slots.add(slot);
|
||||||
_drawOrder.add(slot);
|
_drawOrder.add(slot);
|
||||||
}
|
}
|
||||||
@ -147,7 +144,7 @@ void Skeleton::updateCache() {
|
|||||||
for (size_t i = 0; i < n; i++) {
|
for (size_t i = 0; i < n; i++) {
|
||||||
Constraint *constraint = constraints[i];
|
Constraint *constraint = constraints[i];
|
||||||
constraint->_active = constraint->isSourceActive() &&
|
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);
|
if (constraint->_active) constraint->sort(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,7 @@ bool SkeletonClipping::clipTriangles(float *vertices, unsigned short *triangles,
|
|||||||
|
|
||||||
int stride = 2;
|
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;
|
int vertexOffset = triangles[i] * stride;
|
||||||
float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];
|
float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];
|
||||||
|
|
||||||
@ -178,7 +178,7 @@ bool SkeletonClipping::clipTriangles(float *vertices, unsigned short *triangles,
|
|||||||
clippedTriangles.clear();
|
clippedTriangles.clear();
|
||||||
bool clipped = false;
|
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;
|
int vertexOffset = triangles[i] * (int) stride;
|
||||||
float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];
|
float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];
|
||||||
float u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1];
|
float u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user