فهرست منبع

clipping mask vertices fix

in the case of weighted vertices on clipping attachments, we were previously using the length of the vertices array, which is not the same as the worldVerticesLength

example clipping attachment data:
"vertexCount": 4,
"vertices": [ 1, 15, -47.71, 34.91, 1, 1, 18, -47.86, -35.06, 1, 1, 17, 47.8, -34.9, 1, 1, 16, 47.81, 34.87, 1 ],

resulting vertices length would be 12
we actually needed 8
the result is an array with 8 correct numbers and 4 trailing numbers from the vertices array
Gordon Cummings 1 سال پیش
والد
کامیت
dfa6098aa6
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      spine-ts/spine-pixi/src/Spine.ts

+ 1 - 1
spine-ts/spine-pixi/src/Spine.ts

@@ -341,7 +341,7 @@ export class Spine extends Container {
 			if (!pixiMaskSource.computed) {
 				pixiMaskSource.computed = true;
 				const clippingAttachment = pixiMaskSource.slot.attachment as ClippingAttachment;
-				const world = Array.from(clippingAttachment.vertices);
+                const world = new Array(clippingAttachment.worldVerticesLength);
 				clippingAttachment.computeWorldVertices(pixiMaskSource.slot, 0, clippingAttachment.worldVerticesLength, world, 0, 2);
 				mask.clear().lineStyle(0).beginFill(0x000000).drawPolygon(world);
 			}