11diff --git a/src/ports/SkTypeface_win_dw.cpp b/src/ports/SkTypeface_win_dw.cpp
2- index b9d69ab303204b68f97a1cae3bafbb1f77f0ac67..e434abba3b0c75dff4a48600e34c91ac6e9d766a 100644
2+ index b9d69ab303..36e8422f4f 100644
33--- a/src/ports/SkTypeface_win_dw.cpp
44+++ b/src/ports/SkTypeface_win_dw.cpp
5- @@ -543,6 +543,12 @@ std::unique_ptr<SkScalerContext> DWriteFontTypeface::onCreateScalerContext(
5+ @@ -543,6 +543,18 @@ std::unique_ptr<SkScalerContext> DWriteFontTypeface::onCreateScalerContext(
66 sk_ref_sp(const_cast<DWriteFontTypeface*>(this)), effects, desc);
77 }
88
9- + static std::atomic<int> gUseSystemRenderingParams{-1};
9+ + static std::atomic<int> gUseSystemRenderingParams{
10+ + #if defined(SK_FONT_HOST_USE_SYSTEM_SETTINGS)
11+ + 1
12+ + #else
13+ + 0
14+ + #endif
15+ + };
1016+
1117+ extern "C" void DWriteTypeface_UseSystemRenderingParams(int value) {
1218+ gUseSystemRenderingParams.store(value);
@@ -15,14 +21,11 @@ index b9d69ab303204b68f97a1cae3bafbb1f77f0ac67..e434abba3b0c75dff4a48600e34c91ac
1521 void DWriteFontTypeface::onFilterRec(SkScalerContextRec* rec) const {
1622 if (rec->fFlags & SkScalerContext::kLCD_Vertical_Flag) {
1723 rec->fMaskFormat = SkMask::kA8_Format;
18- @@ -561,19 +567,31 @@ void DWriteFontTypeface::onFilterRec(SkScalerContextRec* rec) const {
24+ @@ -561,19 +573,19 @@ void DWriteFontTypeface::onFilterRec(SkScalerContextRec* rec) const {
1925 }
2026 rec->setHinting(h);
2127
22- + int setting = gUseSystemRenderingParams.load();
23- + bool useSystem;
24- + if (setting == -1) {
25- #if defined(SK_FONT_HOST_USE_SYSTEM_SETTINGS)
28+ - #if defined(SK_FONT_HOST_USE_SYSTEM_SETTINGS)
2629- IDWriteFactory* factory = sk_get_dwrite_factory();
2730- if (factory != nullptr) {
2831- SkTScopedComPtr<IDWriteRenderingParams> defaultRenderingParams;
@@ -32,15 +35,7 @@ index b9d69ab303204b68f97a1cae3bafbb1f77f0ac67..e434abba3b0c75dff4a48600e34c91ac
3235- rec->setPaintGamma(gamma);
3336-
3437- rec->setContrast(defaultRenderingParams->GetEnhancedContrast());
35- + useSystem = true;
36- + #else
37- + useSystem = false;
38- + #endif
39- + } else {
40- + useSystem = (setting == 1);
41- + }
42- +
43- + if (useSystem) {
38+ + if (gUseSystemRenderingParams.load() == 1) {
4439+ IDWriteFactory* factory = sk_get_dwrite_factory();
4540+ if (factory != nullptr) {
4641+ SkTScopedComPtr<IDWriteRenderingParams> defaultRenderingParams;
0 commit comments