Index: src/gpu/text/GrAtlasTextBlob.cpp |
diff --git a/src/gpu/text/GrAtlasTextBlob.cpp b/src/gpu/text/GrAtlasTextBlob.cpp |
index dee6d133e3806f107272af58751fd7ed1cd05410..f79f82598f6570b4d1a78184180ac8bd78288bbc 100644 |
--- a/src/gpu/text/GrAtlasTextBlob.cpp |
+++ b/src/gpu/text/GrAtlasTextBlob.cpp |
@@ -13,8 +13,24 @@ |
#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, |