Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Issue 1984943002: Implement support for rendering color emoji on Windows (Closed)

Created:
4 years, 7 months ago by Ilya Kulshin
Modified:
4 years, 6 months ago
Reviewers:
bungeman-skia, reed1
CC:
reviews_skia.org
Base URL:
https://chromium.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

Implement support for rendering color emoji on Windows This change adds support to the DirectWrite scaler context for detection of color fonts. If it detects a color font and the glyph is a color glyph, it will use DirectWrite's TranslateColorGlyphRun API and generate an image of the glyph that can then be rendered. Chromium tests: https://codereview.chromium.org/2003853002 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1984943002 Committed: https://skia.googlesource.com/skia/+/c4b091543b4082fd1a2f356ef3b478073c5f9418

Patch Set 1 : #

Total comments: 25

Patch Set 2 : Temp patchset for changetracking #

Patch Set 3 : Switch to using paths to render color glyphs #

Patch Set 4 : Add check to respect aliased rendering mode #

Total comments: 4

Patch Set 5 : Switched to using SkDraw to save an alloc #

Total comments: 10

Patch Set 6 : Add skia tests and other review feedback #

Total comments: 2

Patch Set 7 : Support font fallback in test app #

Total comments: 6

Patch Set 8 : Fix linebreaks and don't pass locale to matchFamilyStyleCharacter #

Total comments: 2

Patch Set 9 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+176 lines, -1 line) Patch
M src/ports/SkScalerContext_win_dw.h View 3 chunks +15 lines, -0 lines 0 comments Download
M src/ports/SkScalerContext_win_dw.cpp View 1 2 3 4 5 7 chunks +136 lines, -0 lines 0 comments Download
M tools/sk_tool_utils.cpp View 1 2 3 4 5 6 7 8 4 chunks +25 lines, -1 line 0 comments Download

Messages

Total messages: 52 (20 generated)
Ilya Kulshin
ptal
4 years, 7 months ago (2016-05-17 23:42:16 UTC) #7
reed1
https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp#newcode823 src/ports/SkScalerContext_win_dw.cpp:823: colorGlyph->runColor.r * 255, is runColor premultiplied?
4 years, 7 months ago (2016-05-18 00:42:54 UTC) #9
Ilya Kulshin
https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp#newcode823 src/ports/SkScalerContext_win_dw.cpp:823: colorGlyph->runColor.r * 255, On 2016/05/18 00:42:53, reed1 wrote: > ...
4 years, 7 months ago (2016-05-18 00:56:46 UTC) #10
reed1
If you have ever seen alpha == 0 but red/green/blue not 0, then it is ...
4 years, 7 months ago (2016-05-18 01:44:25 UTC) #11
bungeman-skia
https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp#newcode214 src/ports/SkScalerContext_win_dw.cpp:214: SkTScopedComPtr<IDWriteFactory> factory(SkSafeRefComPtr(sk_get_dwrite_factory())); You cannot create a factory here, you ...
4 years, 7 months ago (2016-05-18 14:50:55 UTC) #12
Ilya Kulshin
https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/60001/src/ports/SkScalerContext_win_dw.cpp#newcode214 src/ports/SkScalerContext_win_dw.cpp:214: SkTScopedComPtr<IDWriteFactory> factory(SkSafeRefComPtr(sk_get_dwrite_factory())); On 2016/05/18 14:50:55, bungeman-skia wrote: > You ...
4 years, 7 months ago (2016-05-18 22:43:38 UTC) #13
bungeman-skia
Did you mean to upload a new patch set? I only see patch set 1 ...
4 years, 7 months ago (2016-05-19 18:52:37 UTC) #14
Ilya Kulshin
I haven't uploaded a new patchset yet. Still working on getting AA/subpixel blending right.
4 years, 7 months ago (2016-05-19 18:56:14 UTC) #15
Ilya Kulshin
ptal. I changed the code to use paths which are then drawn into a canvas ...
4 years, 7 months ago (2016-05-20 03:41:40 UTC) #16
reed1
seems fine; deferring to bunge https://codereview.chromium.org/1984943002/diff/120001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/120001/src/ports/SkScalerContext_win_dw.cpp#newcode780 src/ports/SkScalerContext_win_dw.cpp:780: SkAutoTUnref<SkCanvas> canvas( If this ...
4 years, 7 months ago (2016-05-20 12:27:32 UTC) #17
Ilya Kulshin
https://codereview.chromium.org/1984943002/diff/120001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/120001/src/ports/SkScalerContext_win_dw.cpp#newcode780 src/ports/SkScalerContext_win_dw.cpp:780: SkAutoTUnref<SkCanvas> canvas( On 2016/05/20 12:27:32, reed1 wrote: > If ...
4 years, 7 months ago (2016-05-20 20:34:56 UTC) #18
reed1
thanks
4 years, 7 months ago (2016-05-20 20:41:19 UTC) #19
bungeman-skia
This should also be tested in Skia. The diff you need looks something like diff ...
4 years, 7 months ago (2016-05-23 22:03:41 UTC) #21
Ilya Kulshin
ptal. https://codereview.chromium.org/1984943002/diff/140001/src/ports/SkScalerContext_win_dw.cpp File src/ports/SkScalerContext_win_dw.cpp (right): https://codereview.chromium.org/1984943002/diff/140001/src/ports/SkScalerContext_win_dw.cpp#newcode505 src/ports/SkScalerContext_win_dw.cpp:505: return false; On 2016/05/23 22:03:41, bungeman-skia wrote: > ...
4 years, 6 months ago (2016-05-25 18:52:07 UTC) #23
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1984943002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1984943002/180001
4 years, 6 months ago (2016-05-26 16:51:37 UTC) #25
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-05-26 17:05:21 UTC) #27
commit-bot: I haz the power
Dry run: None
4 years, 6 months ago (2016-05-26 17:05:29 UTC) #28
bungeman-skia
https://codereview.chromium.org/1984943002/diff/180001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/180001/tools/sk_tool_utils.cpp#newcode89 tools/sk_tool_utils.cpp:89: return SkTypeface::MakeFromName("Segoe UI Emoji", SkTypeface::kNormal); After running the trybots ...
4 years, 6 months ago (2016-05-26 19:49:35 UTC) #30
Ilya Kulshin
https://codereview.chromium.org/1984943002/diff/180001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/180001/tools/sk_tool_utils.cpp#newcode89 tools/sk_tool_utils.cpp:89: return SkTypeface::MakeFromName("Segoe UI Emoji", SkTypeface::kNormal); On 2016/05/26 19:49:35, bungeman-skia ...
4 years, 6 months ago (2016-05-27 04:59:17 UTC) #31
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1984943002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1984943002/200001
4 years, 6 months ago (2016-05-27 12:38:56 UTC) #33
bungeman-skia
https://codereview.chromium.org/1984943002/diff/200001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/200001/tools/sk_tool_utils.cpp#newcode97 tools/sk_tool_utils.cpp:97: const char *bcp47 = "en-us"; en-US Windows may or ...
4 years, 6 months ago (2016-05-27 12:51:39 UTC) #35
Ilya Kulshin
ptal https://codereview.chromium.org/1984943002/diff/200001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/200001/tools/sk_tool_utils.cpp#newcode97 tools/sk_tool_utils.cpp:97: const char *bcp47 = "en-us"; On 2016/05/27 12:51:39, ...
4 years, 6 months ago (2016-05-28 02:59:47 UTC) #36
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1984943002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1984943002/220001
4 years, 6 months ago (2016-05-28 04:08:58 UTC) #38
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-05-28 04:22:29 UTC) #40
bungeman-skia
https://codereview.chromium.org/1984943002/diff/220001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/220001/tools/sk_tool_utils.cpp#newcode105 tools/sk_tool_utils.cpp:105: return SkTypeface::MakeFromName("Segoe UI Symbol", SkTypeface::kNormal); This line conflicts with ...
4 years, 6 months ago (2016-05-31 19:19:59 UTC) #41
Ilya Kulshin
https://codereview.chromium.org/1984943002/diff/220001/tools/sk_tool_utils.cpp File tools/sk_tool_utils.cpp (right): https://codereview.chromium.org/1984943002/diff/220001/tools/sk_tool_utils.cpp#newcode105 tools/sk_tool_utils.cpp:105: return SkTypeface::MakeFromName("Segoe UI Symbol", SkTypeface::kNormal); On 2016/05/31 19:19:58, bungeman-skia ...
4 years, 6 months ago (2016-06-01 05:47:43 UTC) #42
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1984943002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1984943002/240001
4 years, 6 months ago (2016-06-01 15:11:20 UTC) #44
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-01 15:28:34 UTC) #46
bungeman-skia
lgtm Let's try it out. lgtm
4 years, 6 months ago (2016-06-01 15:30:20 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1984943002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1984943002/240001
4 years, 6 months ago (2016-06-01 15:30:30 UTC) #49
commit-bot: I haz the power
Committed patchset #9 (id:240001) as https://skia.googlesource.com/skia/+/c4b091543b4082fd1a2f356ef3b478073c5f9418
4 years, 6 months ago (2016-06-01 15:31:32 UTC) #51
drott
4 years, 6 months ago (2016-06-06 05:52:49 UTC) #52
Message was sent while issue was closed.
Great, well done, kulshin@!

Powered by Google App Engine
This is Rietveld 408576698