87 {
90
91
93 bool canCache = glyphRunList.canCache() &&
94 !(
paint.getPathEffect() ||
96
98 if (canCache) {
99 bool hasLCD = glyphRunList.anyRunsLCD();
100
101
104
105 SkColor canonicalColor = compute_canonical_color(
paint, hasLCD);
106
114 }
118 }
121
122
124 SkPoint glyphRunListLocation = glyphRunList.sourceBoundsWithOrigin().center();
125 for (
auto&
run : glyphRunList) {
126 SkScalar approximateDeviceTextSize =
128 glyphRunListLocation);
131 drawMatrix);
132 }
133
135
136
143 } else {
144
146 }
147 }
148
149 return {canCache,
key};
150}
SkMaskFilterBase * as_MFB(SkMaskFilter *mf)
#define SkScalarFloorToScalar(x)
@ kUnknown_SkPixelGeometry
static SkScalar ApproximateTransformedTextSize(const SkFont &font, const SkMatrix &matrix, const SkPoint &textLocation)
virtual bool asABlur(BlurRec *) const
SkMatrix & setTranslateY(SkScalar v)
SkMatrix & setTranslateX(SkScalar v)
static const SkMatrix & I()
SkPoint mapOrigin() const
@ kFill_Style
set to fill geometry
SkPixelGeometry pixelGeometry() const
bool isDirect(SkScalar approximateDeviceTextSize, const SkPaint &paint, const SkMatrix &matrix) const
constexpr float y() const
constexpr float x() const
const SkSurfaceProps fSurfaceProps
const SkScalerContextFlags fScalerContextFlags
const sktext::gpu::SDFTControl *const fSDFTControl
SkPixelGeometry fPixelGeometry
uint32_t fScalerContextFlags
bool fHasSomeDirectSubRuns
SkMaskFilterBase::BlurRec fBlurRec