From 9af308b2df07489bee69a54e29fea701df236af0 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Wed, 29 Oct 2025 10:04:42 +0100 Subject: [PATCH] Add support for multiply and screen blend mode. --- spine-ts/spine-construct3-lib/src/C3Texture.ts | 4 ++-- spine-ts/spine-construct3/src/instance.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spine-ts/spine-construct3-lib/src/C3Texture.ts b/spine-ts/spine-construct3-lib/src/C3Texture.ts index 7a6d5e4dc..cba1f2838 100644 --- a/spine-ts/spine-construct3-lib/src/C3Texture.ts +++ b/spine-ts/spine-construct3-lib/src/C3Texture.ts @@ -137,7 +137,7 @@ function toC3Filter (filter: TextureFilter): TextureSamplingMode { export const BlendingModeSpineToC3: Record = { [BlendMode.Normal]: "normal", [BlendMode.Additive]: "additive", - [BlendMode.Multiply]: "normal", - [BlendMode.Screen]: "normal", + [BlendMode.Multiply]: "multiply", + [BlendMode.Screen]: "screen", } diff --git a/spine-ts/spine-construct3/src/instance.ts b/spine-ts/spine-construct3/src/instance.ts index 583486271..56c25b7b5 100644 --- a/spine-ts/spine-construct3/src/instance.ts +++ b/spine-ts/spine-construct3/src/instance.ts @@ -120,7 +120,7 @@ class MyDrawingInstance extends SDK.IWorldInstanceBase { this.update(0); let command = this.skeletonRenderer.render(this.skeleton); while (command) { - const { numVertices, positions, uvs, colors, indices, numIndices } = command; + const { numVertices, positions, uvs, colors, indices, numIndices, blendMode } = command; const vertices = this.tempVertices; const c3colors = this.tempColors; @@ -142,7 +142,7 @@ class MyDrawingInstance extends SDK.IWorldInstanceBase { } iRenderer.ResetColor(); - iRenderer.SetAlphaBlend(); + iRenderer.SetBlendMode(spine.BlendingModeSpineToC3[blendMode]); iRenderer.SetTextureFillMode(); iRenderer.SetTexture(command.texture.texture);