RESOLVED FIXED 215259
[WinCairo] Use Cairo DirectWrite font backend
https://bugs.webkit.org/show_bug.cgi?id=215259
Summary [WinCairo] Use Cairo DirectWrite font backend
Fujii Hironori
Reported 2020-08-07 00:21:17 PDT
[WinCairo] Use Cairo DirectWrite font backend Mozilla has Cairo DirectWrite patch. Let's try it.
Attachments
WIP patch (4.80 KB, patch)
2020-08-07 00:21 PDT, Fujii Hironori
no flags
Patch for Cairo 1.16 (74.60 KB, patch)
2020-08-07 00:25 PDT, Fujii Hironori
no flags
Patch for Cairo 1.16 (78.37 KB, patch)
2020-08-17 19:59 PDT, Fujii Hironori
no flags
WIP patch (3.33 KB, patch)
2020-08-17 20:00 PDT, Fujii Hironori
no flags
WIP patch (4.28 KB, patch)
2020-08-31 14:29 PDT, Fujii Hironori
no flags
WIP patch (5.98 KB, patch)
2022-04-07 21:57 PDT, Fujii Hironori
no flags
WIP patch (7.12 KB, patch)
2022-05-17 00:47 PDT, Fujii Hironori
no flags
small-font-test.html (1.62 KB, text/html)
2022-05-18 18:42 PDT, Fujii Hironori
no flags
WIP patch (7.33 KB, patch)
2023-01-18 17:32 PST, Fujii Hironori
no flags
WIP patch (6.43 KB, patch)
2023-02-09 22:50 PST, Fujii Hironori
no flags
WIP patch (6.31 KB, patch)
2023-02-24 12:20 PST, Fujii Hironori
no flags
WIP patch (6.00 KB, patch)
2023-03-27 00:06 PDT, Fujii Hironori
no flags
WIP patch (16.69 KB, patch)
2023-03-30 13:51 PDT, Fujii Hironori
no flags
WIP patch (14.68 KB, patch)
2023-04-23 18:48 PDT, Fujii Hironori
no flags
Fujii Hironori
Comment 1 2020-08-07 00:21:58 PDT
Created attachment 406156 [details] WIP patch
Fujii Hironori
Comment 2 2020-08-07 00:25:49 PDT
Created attachment 406157 [details] Patch for Cairo 1.16
Fujii Hironori
Comment 3 2020-08-10 13:42:01 PDT
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
Fujii Hironori
Comment 4 2020-08-17 19:59:25 PDT
Created attachment 406764 [details] Patch for Cairo 1.16
Fujii Hironori
Comment 5 2020-08-17 20:00:06 PDT
Created attachment 406765 [details] WIP patch
Fujii Hironori
Comment 6 2020-08-27 21:31:06 PDT
Fujii Hironori
Comment 7 2020-08-31 14:29:05 PDT
Created attachment 407628 [details] WIP patch
Fujii Hironori
Comment 8 2020-08-31 14:52:32 PDT
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.
Fujii Hironori
Comment 9 2020-08-31 18:03:08 PDT
Fujii Hironori
Comment 10 2020-08-31 18:04:32 PDT
Oh, wrong URL! Screenshots: https://ibb.co/album/dsHY4y
Fujii Hironori
Comment 11 2022-04-05 18:21:57 PDT
Fujii Hironori
Comment 12 2022-04-07 21:57:44 PDT
Created attachment 457016 [details] WIP patch
Fujii Hironori
Comment 13 2022-04-07 22:01:17 PDT
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 ]
Fujii Hironori
Comment 14 2022-05-17 00:47:55 PDT
Created attachment 459487 [details] WIP patch
Fujii Hironori
Comment 15 2022-05-18 18:42:56 PDT
Created attachment 459562 [details] small-font-test.html
Fujii Hironori
Comment 16 2022-05-19 18:27:25 PDT
DWrite: Outermost edges of embedded bitmap font glyphs aren't drawn (#569) · Issues · cairo / cairo · GitLab https://gitlab.freedesktop.org/cairo/cairo/-/issues/569
Fujii Hironori
Comment 17 2022-05-22 13:45:47 PDT
DWrite: It looks jaggy (#567) · Issues · cairo / cairo · GitLab https://gitlab.freedesktop.org/cairo/cairo/-/issues/567
Fujii Hironori
Comment 18 2023-01-18 17:32:22 PST
Created attachment 464549 [details] WIP patch
Fujii Hironori
Comment 19 2023-02-09 22:50:19 PST
Created attachment 464937 [details] WIP patch
Fujii Hironori
Comment 20 2023-02-24 12:20:19 PST
Created attachment 465156 [details] WIP patch
Fujii Hironori
Comment 21 2023-03-27 00:06:30 PDT
Created attachment 465605 [details] WIP patch
Fujii Hironori
Comment 22 2023-03-30 13:51:10 PDT
Created attachment 465690 [details] WIP patch
Fujii Hironori
Comment 23 2023-04-23 18:48:19 PDT
Created attachment 466056 [details] WIP patch
Fujii Hironori
Comment 24 2023-10-11 23:02:34 PDT
EWS
Comment 25 2023-10-12 13:16:03 PDT
Committed 269270@main (0f066948ca64): <https://commits.webkit.org/269270@main> Reviewed commits have been landed. Closing PR #18985 and removing active labels.
Radar WebKit Bug Importer
Comment 26 2023-10-12 13:17:19 PDT
Fujii Hironori
Comment 27 2023-10-12 13:59:57 PDT
EWS
Comment 28 2023-10-12 14:03:04 PDT
Committed 269275@main (6d7089f0d592): <https://commits.webkit.org/269275@main> Reviewed commits have been landed. Closing PR #19018 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.