aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkRemoteGlyphCache.cpp3
-rw-r--r--src/core/SkScalerContext.cpp7
-rw-r--r--src/core/SkScalerContext.h3
-rw-r--r--tests/SkRemoteGlyphCacheTest.cpp3
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>();