Use SkStrikeSpec to consolidate SkDescriptor, Effects and Typeface.
Introduce SkStrikeSpec. Allow an SkStrikeInterface to return on
that represents the strike. Have GrTextBlob::Run::setFont() use
SkStrikeSpecs.
Misc Cleanups
* In SkStrikeCache::Node - rename fCache -> fStrike
* Parameter reformatting
Change-Id: I1b289e2cb4e5252d5c3cb776f3b2a31c6e1948b3
Reviewed-on: https://skia-review.googlesource.com/c/192029
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
diff --git a/src/gpu/text/GrTextBlob.cpp b/src/gpu/text/GrTextBlob.cpp
index 0f5b7ea..8feaa1a 100644
--- a/src/gpu/text/GrTextBlob.cpp
+++ b/src/gpu/text/GrTextBlob.cpp
@@ -56,18 +56,15 @@
return blob;
}
-void GrTextBlob::Run::setupFont(const SkPaint& skPaint,
- const SkFont& skFont,
- const SkDescriptor& cacheDescriptor) {
- fTypeface = skFont.refTypefaceOrDefault();
- SkScalerContextEffects effects{skPaint};
- fPathEffect = sk_ref_sp(effects.fPathEffect);
- fMaskFilter = sk_ref_sp(effects.fMaskFilter);
+void GrTextBlob::Run::setupFont(const SkStrikeSpec& strikeSpec) {
+ fTypeface = sk_ref_sp(&strikeSpec.typeface());
+ fPathEffect = sk_ref_sp(strikeSpec.effects().fPathEffect);
+ fMaskFilter = sk_ref_sp(strikeSpec.effects().fMaskFilter);
// if we have an override descriptor for the run, then we should use that
SkAutoDescriptor* desc =
fARGBFallbackDescriptor.get() ? fARGBFallbackDescriptor.get() : &fDescriptor;
// Set up the descriptor for possible cache lookups during regen.
- desc->reset(cacheDescriptor);
+ desc->reset(strikeSpec.desc());
}
void GrTextBlob::Run::appendPathGlyph(const SkPath& path, SkPoint position,