[Webkit-unassigned] [Bug 197689] Text with a gradient and drop shadow does not display properly if the canvas context is scaled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 16 16:47:47 PDT 2021


Said Abou-Hallawa <sabouhallawa at apple.com> changed:

           What    |Removed                     |Added
                 CC|                            |sabouhallawa at apple.com

--- Comment #4 from Said Abou-Hallawa <sabouhallawa at apple.com> ---
The drop-shadow is drawn separate from drawing the text. But we have two different code paths for drawing the drop-shadow: simple and system. In the "simple" case, we draw the drop-shadow ourselves and in the "system" case we let the system draw the drop-shadow for dummy clipped-out text.

In FontCascade::drawGlyphs() we make a distinction between these two cases by the boolean hasSimpleShadow. When it is true we draw normal text and we clear the shadow setting temporarily by calling context.clearShadow()/context.setShadow().

It is important to note that,

1. In CanvasRenderingContext2DBase::drawTextUnchecked() and if (shouldDrawShadows()) is true, we call fontProxy.drawBidiText() but we clip the drawing such that text is clipped but the drop-shadow appears. I think the calculation under this if-statement is the cause of this bug.

2. In FontCascade::drawGlyphs(), hasSimpleShadow is set to true if the drop-shadow is not blurred and the GraphicsContext is not scaled, rotated or sheared.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20210716/78c0a41d/attachment-0001.htm>

More information about the webkit-unassigned mailing list