Summary: | [WinCairo] Use Cairo DirectWrite font backend | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> | ||||||||||||||||||||||||||||||
Component: | Platform | Assignee: | Fujii Hironori <Hironori.Fujii> | ||||||||||||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||||||||||||
Severity: | Normal | CC: | webkit-bug-importer | ||||||||||||||||||||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||||||||||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||||||||||||
Bug Depends on: | 262768 | ||||||||||||||||||||||||||||||||
Bug Blocks: | 258365 | ||||||||||||||||||||||||||||||||
Attachments: |
|
Description
Fujii Hironori
2020-08-07 00:21:17 PDT
Created attachment 406156 [details]
WIP patch
Created attachment 406157 [details]
Patch for Cairo 1.16
No color glyphs are rendered with this patch. According to the following document, I should use IDWriteFactory4::TranslateColorGlyphRun. Color Fonts - Win32 apps | Microsoft Docs https://docs.microsoft.com/en-us/windows/win32/directwrite/color-fonts IDWriteFactory4::TranslateColorGlyphRun (dwrite_3.h) - Win32 apps | Microsoft Docs https://docs.microsoft.com/en-us/windows/win32/api/dwrite_3/nf-dwrite_3-idwritefactory4-translatecolorglyphrun Created attachment 406764 [details]
Patch for Cairo 1.16
Created attachment 406765 [details]
WIP patch
Graphic bits » Blog Archive » DirectWrite Text Rendering in Firefox 6 https://web.archive.org/web/20160909065035/https://blog.mozilla.org/nattokirai/2011/08/11/directwrite-text-rendering-in-firefox-6/ Created attachment 407628 [details]
WIP patch
I found some minor issues. Because WinCairo is using Uniscribe for shaping, I need to use DirectWrite GDI compatible mode at the moment. Unfortunately, DirectWrite GDI compatible mode looks jaggier than GDI. Even though GDI is rendering text with subpixel antialiasing both vertically and horizontally, DirectWrite GDI compatible mode seems to do it only horizontally. Uniscribe doesn't combine some emoji sequences. https://getemoji.com/ Both issues are related to Uniscribe. WinCairo should use DirectWrite or HarfBuzz DirectWrite backend for shaping. Screenshots: https://ibb.co/album/dsHY4 Oh, wrong URL! Screenshots: https://ibb.co/album/dsHY4y Cairo 1.17.6 added DWrite support. https://lists.cairographics.org/archives/cairo/2022-March/029398.html Created attachment 457016 [details]
WIP patch
Some ref tests failures. css2.1/20110323/text-indent-intrinsic-001.htm [ ImageOnlyFailure ] css2.1/20110323/text-indent-intrinsic-002.htm [ ImageOnlyFailure ] css2.1/20110323/text-indent-intrinsic-003.htm [ ImageOnlyFailure ] css2.1/20110323/text-indent-intrinsic-004.htm [ ImageOnlyFailure ] css3/bdi-element.html [ ImageOnlyFailure ] css3/flexbox/csswg/ttwf-reftest-flex-wrap-reverse.html [ ImageOnlyFailure ] css3/flexbox/csswg/ttwf-reftest-flex-wrap.html [ ImageOnlyFailure ] fast/css/absolute-inline-alignment-2.html [ ImageOnlyFailure ] fast/css/absolute-inline-alignment.html [ ImageOnlyFailure ] fast/css/negative-text-indent-in-inline-block.html [ ImageOnlyFailure ] fast/text/arabic-zwj-and-zwnj.html [ ImageOnlyFailure ] fast/text/complex-initial-advance.html [ ImageOnlyFailure ] fast/text/default-ignorable.html [ ImageOnlyFailure ] fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html [ ImageOnlyFailure ] fast/text/fitzpatrick-combination.html [ ImageOnlyFailure ] fast/text/isolate-ignore.html [ ImageOnlyFailure ] fast/text/ja-sans-serif.html [ ImageOnlyFailure ] fast/text/otsvg-spacing.html [ ImageOnlyFailure ] fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html [ ImageOnlyFailure ] fast/text/soft-hyphen-min-preferred-width.html [ ImageOnlyFailure ] fast/text/softHyphen.html [ ImageOnlyFailure ] fast/text/text-combine-rendering.html [ ImageOnlyFailure ] fast/text/text-underline-first-line-decoration.html [ ImageOnlyFailure ] fast/text/text-underline-position-under.html [ ImageOnlyFailure ] fast/text/undefined-glyph-with-ligature.html [ ImageOnlyFailure ] Created attachment 459487 [details]
WIP patch
Created attachment 459562 [details]
small-font-test.html
DWrite: Outermost edges of embedded bitmap font glyphs aren't drawn (#569) · Issues · cairo / cairo · GitLab https://gitlab.freedesktop.org/cairo/cairo/-/issues/569 DWrite: It looks jaggy (#567) · Issues · cairo / cairo · GitLab https://gitlab.freedesktop.org/cairo/cairo/-/issues/567 Created attachment 464549 [details]
WIP patch
Created attachment 464937 [details]
WIP patch
Created attachment 465156 [details]
WIP patch
Created attachment 465605 [details]
WIP patch
Created attachment 465690 [details]
WIP patch
Created attachment 466056 [details]
WIP patch
Pull request: https://github.com/WebKit/WebKit/pull/18985 Committed 269270@main (0f066948ca64): <https://commits.webkit.org/269270@main> Reviewed commits have been landed. Closing PR #18985 and removing active labels. Re-opening for pull request https://github.com/WebKit/WebKit/pull/19018 Committed 269275@main (6d7089f0d592): <https://commits.webkit.org/269275@main> Reviewed commits have been landed. Closing PR #19018 and removing active labels. |