diff --git a/src/rendering/actors/layer-renderer.ts b/src/rendering/actors/layer-renderer.ts index 4b086f5..7f84957 100644 --- a/src/rendering/actors/layer-renderer.ts +++ b/src/rendering/actors/layer-renderer.ts @@ -728,7 +728,7 @@ export default class LayerRenderer extends ZoomableSprite { if ( clipContext ) { // when the layer if offset/transformed and there is no active selection, clip the out of bounds content documentContext.save(); - clipLayer( documentContext, this.layer, this._bounds, viewport, this._invertSelection ); + clipLayer( documentContext, this.layer, this._bounds, viewport, false ); } renderDrawableCanvas( isDrawingOnMask ? drawContext : documentContext, this.getPaintSize(), this.canvas, this._brush.options.opacity, diff --git a/src/rendering/operations/clipping.ts b/src/rendering/operations/clipping.ts index 3bc91b5..1d73e8a 100644 --- a/src/rendering/operations/clipping.ts +++ b/src/rendering/operations/clipping.ts @@ -80,8 +80,9 @@ export const createInverseClipping = ( ctx: CanvasRenderingContext2D, shape: Sha /** * Clip the output of a LayerRenderer to not exceed the Layers bounds (in case it is offset or transformed). - * This is not necessary as zCanvas will automatically crop the bitmaps, however during live preview while - * drawing on the Layer, it helps to clip the contents of the overlaid drawable Canvas. + * This is not necessary as zCanvas will automatically crop the bitmaps on render, however during live preview while + * drawing on the Layer, we should clip the contents of the overlaid drawable Canvas to hide content that will + * be clipped after committing the drawing. */ export const clipLayer = ( ctx: CanvasRenderingContext2D, layer: Layer, rendererBounds: Rectangle, viewport: Viewport, invert = false ): void => { const { scale, rotation, mirrorY } = layer.effects; diff --git a/tests/unit/rendering/actors/layer-renderer.spec.ts b/tests/unit/rendering/actors/layer-renderer.spec.ts index 6d0aba6..c2c4799 100644 --- a/tests/unit/rendering/actors/layer-renderer.spec.ts +++ b/tests/unit/rendering/actors/layer-renderer.spec.ts @@ -366,7 +366,7 @@ describe( "LayerRenderer", () => { renderer.draw( ctx, viewport ); expect( mockRenderOperation ).toHaveBeenCalledWith( - "clipLayer", ctx, renderer.layer, renderer.getBounds(), viewport, undefined + "clipLayer", ctx, renderer.layer, renderer.getBounds(), viewport, false ); }); @@ -376,7 +376,7 @@ describe( "LayerRenderer", () => { renderer.draw( ctx, viewport ); expect( mockRenderOperation ).toHaveBeenCalledWith( - "clipLayer", ctx, renderer.layer, renderer.getBounds(), viewport, undefined + "clipLayer", ctx, renderer.layer, renderer.getBounds(), viewport, false ); }); });