diff --git a/spine-ts/spine-canvas/src/SkeletonRenderer.ts b/spine-ts/spine-canvas/src/SkeletonRenderer.ts index 67340c5bd..4b4a7fd31 100644 --- a/spine-ts/spine-canvas/src/SkeletonRenderer.ts +++ b/spine-ts/spine-canvas/src/SkeletonRenderer.ts @@ -30,6 +30,8 @@ import { Utils, Color, Skeleton, RegionAttachment, TextureAtlasRegion, BlendMode, MeshAttachment, Slot } from "@esotericsoftware/spine-core"; import { CanvasTexture } from "./CanvasTexture"; +const worldVertices = Utils.newFloatArray(8); + export class SkeletonRenderer { static QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; static VERTEX_SIZE = 2 + 2 + 4; @@ -64,7 +66,8 @@ export class SkeletonRenderer { if (!bone.active) continue; let attachment = slot.getAttachment(); - if (!(attachment instanceof RegionAttachment)) continue; + if (!(attachment instanceof RegionAttachment)) continue; + attachment.computeWorldVertices(slot, worldVertices, 0, 2); let region: TextureAtlasRegion = attachment.region; let image: HTMLImageElement = (region.page.texture).getImage() as HTMLImageElement; diff --git a/spine-ts/spine-core/src/attachments/RegionAttachment.ts b/spine-ts/spine-core/src/attachments/RegionAttachment.ts index 6df55fa4b..7aafebbc5 100644 --- a/spine-ts/spine-core/src/attachments/RegionAttachment.ts +++ b/spine-ts/spine-core/src/attachments/RegionAttachment.ts @@ -93,7 +93,7 @@ export class RegionAttachment extends Attachment implements HasTextureRegion { if (region == null) { uvs[0] = 0; uvs[1] = 0; - uvs[2] = 1; + uvs[2] = 0; uvs[3] = 1; uvs[4] = 1; uvs[5] = 1; @@ -131,23 +131,23 @@ export class RegionAttachment extends Attachment implements HasTextureRegion { offset[7] = localYCos + localX2Sin; if (region.degrees == 90) { - uvs[0] = region.u2; - uvs[1] = region.v; - uvs[2] = region.u2; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v2; - uvs[6] = region.u; - uvs[7] = region.v; - } else { - uvs[0] = region.u2; - uvs[1] = region.v2; uvs[2] = region.u; uvs[3] = region.v2; uvs[4] = region.u; uvs[5] = region.v; uvs[6] = region.u2; uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; } }