diff options
-rw-r--r-- | src/core/SkRemoteGlyphCache.cpp | 3 | ||||
-rw-r--r-- | src/core/SkScalerContext.cpp | 7 | ||||
-rw-r--r-- | src/core/SkScalerContext.h | 3 | ||||
-rw-r--r-- | tests/SkRemoteGlyphCacheTest.cpp | 3 |
4 files changed, 9 insertions, 7 deletions
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp index 06db562a9f..439c06975d 100644 --- a/src/core/SkRemoteGlyphCache.cpp +++ b/src/core/SkRemoteGlyphCache.cpp @@ -354,9 +354,10 @@ void SkTextBlobCacheDiffCanvas::processGlyphRun( // TODO(crbug.com/831354): The typeface proxy on the client does not replicate the // filtering done by the typeface on the server. + const bool enableTypefaceFiltering = false; SkScalerContext::MakeRecAndEffects(runPaint, &fSurfaceProps, &runMatrix, SkScalerContextFlags::kFakeGammaAndBoostContrast, &rec, - &effects); + &effects, enableTypefaceFiltering); TRACE_EVENT1("skia", "RecForDesc", "rec", TRACE_STR_COPY(rec.dump().c_str())); auto desc = SkScalerContext::DescriptorGivenRecAndEffects(rec, effects); diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp index 57d8bc1ddf..7ad3a030bb 100644 --- a/src/core/SkScalerContext.cpp +++ b/src/core/SkScalerContext.cpp @@ -817,7 +817,8 @@ void SkScalerContext::MakeRecAndEffects(const SkPaint& paint, const SkMatrix* deviceMatrix, SkScalerContextFlags scalerContextFlags, SkScalerContextRec* rec, - SkScalerContextEffects* effects) { + SkScalerContextEffects* effects, + bool enableTypefaceFiltering) { SkASSERT(deviceMatrix == nullptr || !deviceMatrix->hasPerspective()); SkTypeface* typeface = SkPaintPriv::GetTypefaceOrDefault(paint); @@ -963,7 +964,9 @@ void SkScalerContext::MakeRecAndEffects(const SkPaint& paint, // cache. This way if we're asking for something that they will ignore, // they can modify our rec up front, so we don't create duplicate cache // entries. - typeface->onFilterRec(rec); + if (enableTypefaceFiltering) { + typeface->onFilterRec(rec); + } if (!SkToBool(scalerContextFlags & SkScalerContextFlags::kFakeGamma)) { rec->ignoreGamma(); diff --git a/src/core/SkScalerContext.h b/src/core/SkScalerContext.h index 9995fd9292..556ec18c67 100644 --- a/src/core/SkScalerContext.h +++ b/src/core/SkScalerContext.h @@ -310,7 +310,8 @@ public: const SkMatrix* deviceMatrix, SkScalerContextFlags scalerContextFlags, SkScalerContextRec* rec, - SkScalerContextEffects* effects); + SkScalerContextEffects* effects, + bool enableTypefaceFiltering = true); static SkDescriptor* MakeDescriptorForPaths(SkFontID fontID, SkAutoDescriptor* ad); diff --git a/tests/SkRemoteGlyphCacheTest.cpp b/tests/SkRemoteGlyphCacheTest.cpp index 7369acec15..5193a39f29 100644 --- a/tests/SkRemoteGlyphCacheTest.cpp +++ b/tests/SkRemoteGlyphCacheTest.cpp @@ -89,8 +89,6 @@ DEF_TEST(SkRemoteGlyphCache_TypefaceSerialization, reporter) { server_tf->uniqueID()); } -#if 0 -TODO(khushalsagar): Re-enable once crbug.com/831354 is fixed. DEF_TEST(SkRemoteGlyphCache_StrikeSerialization, reporter) { sk_sp<DiscardableManager> discardableManager = sk_make_sp<DiscardableManager>(); SkStrikeServer server(discardableManager.get()); @@ -124,7 +122,6 @@ DEF_TEST(SkRemoteGlyphCache_StrikeSerialization, reporter) { } } } -#endif DEF_TEST(SkRemoteGlyphCache_StrikeLockingServer, reporter) { sk_sp<DiscardableManager> discardableManager = sk_make_sp<DiscardableManager>(); |