aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/text/GrAtlasTextBlob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/text/GrAtlasTextBlob.cpp')
-rw-r--r--src/gpu/text/GrAtlasTextBlob.cpp16
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,