[cpp] Setting vertex attachment did not clear slot.attachmentVertices. Closes #1188.

This commit is contained in:
badlogic 2018-10-15 16:34:22 +02:00
parent fdb3bd02d4
commit f057a8fd41
4 changed files with 6 additions and 7 deletions

View File

@ -70,7 +70,7 @@ void AttachmentTimeline::apply(Skeleton &skeleton, float lastTime, float time, V
Slot &slot = *slotP; Slot &slot = *slotP;
if (direction == MixDirection_Out && blend == MixBlend_Setup) { if (direction == MixDirection_Out && blend == MixBlend_Setup) {
attachmentName = &slot._data._attachmentName; attachmentName = &slot._data._attachmentName;
slot._attachment = attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName); slot.setAttachment(attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName));
return; return;
} }
@ -78,8 +78,7 @@ void AttachmentTimeline::apply(Skeleton &skeleton, float lastTime, float time, V
// Time is before first frame. // Time is before first frame.
if (blend == MixBlend_Setup || blend == MixBlend_First) { if (blend == MixBlend_Setup || blend == MixBlend_First) {
attachmentName = &slot._data._attachmentName; attachmentName = &slot._data._attachmentName;
slot._attachment = slot.setAttachment(attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName));
attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName);
} }
return; return;
} }
@ -93,7 +92,7 @@ void AttachmentTimeline::apply(Skeleton &skeleton, float lastTime, float time, V
} }
attachmentName = &_attachmentNames[frameIndex]; attachmentName = &_attachmentNames[frameIndex];
slot._attachment = attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName); slot.setAttachment(attachmentName->length() == 0 ? NULL : skeleton.getAttachment(_slotIndex, *attachmentName));
} }
int AttachmentTimeline::getPropertyId() { int AttachmentTimeline::getPropertyId() {

View File

@ -69,7 +69,7 @@ void DeformTimeline::apply(Skeleton &skeleton, float lastTime, float time, Vecto
Slot *slotP = skeleton._slots[_slotIndex]; Slot *slotP = skeleton._slots[_slotIndex];
Slot &slot = *slotP; Slot &slot = *slotP;
Attachment *slotAttachment = slot._attachment; Attachment *slotAttachment = slot.getAttachment();
if (slotAttachment == NULL || !slotAttachment->getRTTI().instanceOf(VertexAttachment::rtti)) { if (slotAttachment == NULL || !slotAttachment->getRTTI().instanceOf(VertexAttachment::rtti)) {
return; return;
} }

View File

@ -564,7 +564,7 @@ void Skeleton::sortPathConstraint(PathConstraint *constraint) {
for (size_t ii = 0, nn = _data->_skins.size(); ii < nn; ii++) for (size_t ii = 0, nn = _data->_skins.size(); ii < nn; ii++)
sortPathConstraintAttachment(_data->_skins[ii], slotIndex, slotBone); sortPathConstraintAttachment(_data->_skins[ii], slotIndex, slotBone);
Attachment *attachment = slot->_attachment; Attachment *attachment = slot->getAttachment();
if (attachment != NULL && attachment->getRTTI().instanceOf(PathAttachment::rtti)) if (attachment != NULL && attachment->getRTTI().instanceOf(PathAttachment::rtti))
sortPathConstraintAttachment(attachment, slotBone); sortPathConstraintAttachment(attachment, slotBone);

View File

@ -57,7 +57,7 @@ void SkeletonBounds::update(Skeleton &skeleton, bool updateAabb) {
for (size_t i = 0; i < slotCount; i++) { for (size_t i = 0; i < slotCount; i++) {
Slot *slot = slots[i]; Slot *slot = slots[i];
Attachment *attachment = slot->_attachment; Attachment *attachment = slot->getAttachment();
if (attachment == NULL || !attachment->getRTTI().instanceOf(BoundingBoxAttachment::rtti)) { if (attachment == NULL || !attachment->getRTTI().instanceOf(BoundingBoxAttachment::rtti)) {
continue; continue;
} }