diff --git a/src/core/renderers/canvas/CanvasCoreRenderer.ts b/src/core/renderers/canvas/CanvasCoreRenderer.ts index 0fb82473..f9d5bd80 100644 --- a/src/core/renderers/canvas/CanvasCoreRenderer.ts +++ b/src/core/renderers/canvas/CanvasCoreRenderer.ts @@ -169,7 +169,7 @@ export class CanvasCoreRenderer extends CoreRenderer { if (ctxTexture) { const image = ctxTexture.getImage(color); - ctx.globalAlpha = alpha; + ctx.globalAlpha = color.a ?? alpha; if (frame) { ctx.drawImage( image, diff --git a/src/core/text-rendering/renderers/CanvasTextRenderer.ts b/src/core/text-rendering/renderers/CanvasTextRenderer.ts index 58d9a113..6b0a14fa 100644 --- a/src/core/text-rendering/renderers/CanvasTextRenderer.ts +++ b/src/core/text-rendering/renderers/CanvasTextRenderer.ts @@ -364,6 +364,8 @@ export class CanvasTextRenderer extends TextRenderer { if (state.textureNode) { // Use the existing texture node state.textureNode.texture = texture; + // Update the alpha + state.textureNode.alpha = getNormalizedAlphaComponent(state.props.color); } else { // Create a new texture node const textureNode = this.stage.createNode({