diff options
Diffstat (limited to 'src/gpu/text/GrAtlasTextBlob.cpp')
-rw-r--r-- | src/gpu/text/GrAtlasTextBlob.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gpu/text/GrAtlasTextBlob.cpp b/src/gpu/text/GrAtlasTextBlob.cpp index dee6d133e3..f79f82598f 100644 --- a/src/gpu/text/GrAtlasTextBlob.cpp +++ b/src/gpu/text/GrAtlasTextBlob.cpp @@ -13,9 +13,25 @@ #include "GrTextUtils.h" #include "SkColorFilter.h" #include "SkDrawFilter.h" +#include "SkGlyphCache.h" #include "SkTextBlobRunIterator.h" #include "batches/GrAtlasTextBatch.h" +SkGlyphCache* GrAtlasTextBlob::setupCache(int runIndex, + const SkSurfaceProps& props, + const SkPaint& skPaint, + const SkMatrix* viewMatrix, + bool noGamma) { + GrAtlasTextBlob::Run* run = &fRuns[runIndex]; + + // if we have an override descriptor for the run, then we should use that + SkAutoDescriptor* desc = run->fOverrideDescriptor.get() ? run->fOverrideDescriptor.get() : + &run->fDescriptor; + skPaint.getScalerContextDescriptor(desc, props, viewMatrix, noGamma); + run->fTypeface.reset(SkSafeRef(skPaint.getTypeface())); + return SkGlyphCache::DetachCache(run->fTypeface, desc->getDesc()); +} + void GrAtlasTextBlob::appendGlyph(int runIndex, const SkRect& positions, GrColor color, |