Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 18ad7252511a13c7560f140806684ae789e60c7f
https://github.com/WebKit/WebKit/commit/18ad7252511a13c7560f140806684ae789e60c7f
Author: Vitor Roriz <[email protected]>
Date: 2024-08-27 (Tue, 27 Aug 2024)
Changed paths:
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/GlyphBuffer.h
M Source/WebCore/platform/graphics/WidthIterator.cpp
Log Message:
-----------
text-spacing: text-autospace: integrate ideogram-alpha for Simple path
(WidthIterator)
https://bugs.webkit.org/show_bug.cgi?id=278541
rdar://133319627
Reviewed by Brent Fulgham.
We have two paths for producing GlyphBuffer's required for layout and painting.
WidthIterator is taken for CodePath::Simple. ComplexTextController is taken for
CodePath::Complex. Up to now, we would switch to the complex path in the
presence
of "text-autospace", since its processing is currently only covered by
ComplexTextController.
After this patch we no longer need to switch to the CodePath::Complex path in
the presence of
text-autospace. This change is analogous to the changes to
ComplexTextController from [1].
The text-autospace specification [2] requires certain classes of characters to
have an extra
spacing added in between them. Our approach is to add a leading spacing to the
current
glyph's advance (which affects layout). We also move the current glyph's origin
by the same
spacing amount such that the spacing is always added as a leading spacing.
For example, if two characters "水" and "e" are adjacent and the spec requuires
an
extra spacing between them, we adjust the correspondent glyph's advance and
origin
while processing "e" in relation to the previous character "水".
[1] https://commits.webkit.org/282511@main
[2] https://www.w3.org/TR/css-text-4/#text-autospace-property
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::codePath const):
* Source/WebCore/platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::expandAdvanceToLogicalRight):
* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::hasExtraSpacing const):
(WebCore::WidthIterator::applyExtraSpacingAfterShaping):
Canonical link: https://commits.webkit.org/282821@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes