diff --git a/spine-ts/spine-pixi-v8/src/Spine.ts b/spine-ts/spine-pixi-v8/src/Spine.ts index ced562b756..e73b3d07cb 100644 --- a/spine-ts/spine-pixi-v8/src/Spine.ts +++ b/spine-ts/spine-pixi-v8/src/Spine.ts @@ -377,6 +377,7 @@ export class Spine extends ViewContainer { } private validateAttachments () { + const currentDrawOrder = this.skeleton.drawOrder; const lastAttachments = this._lastAttachments; @@ -404,7 +405,7 @@ export class Spine extends ViewContainer { lastAttachments.length = index; } - this.spineAttachmentsDirty = spineAttachmentsDirty; + this.spineAttachmentsDirty ||= spineAttachmentsDirty; } private updateAndSetPixiMask (slot: Slot, last: boolean) { diff --git a/spine-ts/spine-pixi-v8/src/SpinePipe.ts b/spine-ts/spine-pixi-v8/src/SpinePipe.ts index 732c448d4c..1201a8688b 100644 --- a/spine-ts/spine-pixi-v8/src/SpinePipe.ts +++ b/spine-ts/spine-pixi-v8/src/SpinePipe.ts @@ -117,6 +117,9 @@ export class SpinePipe implements RenderPipe { spine._validateAndTransformAttachments(); + spine.spineAttachmentsDirty = false; + spine.spineTexturesDirty = false; + for (let i = 0, n = drawOrder.length; i < n; i++) { const slot = drawOrder[i]; const attachment = slot.getAttachment(); @@ -154,6 +157,9 @@ export class SpinePipe implements RenderPipe { const gpuSpine = this.gpuSpineData[spine.uid]; spine._validateAndTransformAttachments(); + + spine.spineAttachmentsDirty = false; + spine.spineTexturesDirty = false; const drawOrder = spine.skeleton.drawOrder;