Index: src/gpu/text/GrTextBlobCache.h |
diff --git a/src/gpu/text/GrTextBlobCache.h b/src/gpu/text/GrTextBlobCache.h |
index 8eee9d13db0360d1fdc0353bf85d1052b1ab1178..e3b2ca73fb622bb0c73bfc1e3b6049c60a8546cc 100644 |
--- a/src/gpu/text/GrTextBlobCache.h |
+++ b/src/gpu/text/GrTextBlobCache.h |
@@ -30,40 +30,26 @@ public: |
~GrTextBlobCache(); |
// creates an uncached blob |
- GrAtlasTextBlob* createBlob(int glyphCount, int runCount, size_t maxVASize); |
- GrAtlasTextBlob* createBlob(const SkTextBlob* blob, size_t maxVAStride) { |
+ GrAtlasTextBlob* createBlob(int glyphCount, int runCount) { |
+ return GrAtlasTextBlob::Create(&fPool, glyphCount, runCount); |
+ } |
+ GrAtlasTextBlob* createBlob(const SkTextBlob* blob) { |
int glyphCount = 0; |
int runCount = 0; |
BlobGlyphCount(&glyphCount, &runCount, blob); |
- GrAtlasTextBlob* cacheBlob = this->createBlob(glyphCount, runCount, maxVAStride); |
+ GrAtlasTextBlob* cacheBlob = GrAtlasTextBlob::Create(&fPool, glyphCount, runCount); |
return cacheBlob; |
} |
- static void SetupCacheBlobKey(GrAtlasTextBlob* cacheBlob, |
- const GrAtlasTextBlob::Key& key, |
- const SkMaskFilter::BlurRec& blurRec, |
- const SkPaint& paint) { |
- cacheBlob->fKey = key; |
- if (key.fHasBlur) { |
- cacheBlob->fBlurRec = blurRec; |
- } |
- if (key.fStyle != SkPaint::kFill_Style) { |
- cacheBlob->fStrokeInfo.fFrameWidth = paint.getStrokeWidth(); |
- cacheBlob->fStrokeInfo.fMiterLimit = paint.getStrokeMiter(); |
- cacheBlob->fStrokeInfo.fJoin = paint.getStrokeJoin(); |
- } |
- } |
- |
GrAtlasTextBlob* createCachedBlob(const SkTextBlob* blob, |
const GrAtlasTextBlob::Key& key, |
const SkMaskFilter::BlurRec& blurRec, |
- const SkPaint& paint, |
- size_t maxVAStride) { |
+ const SkPaint& paint) { |
int glyphCount = 0; |
int runCount = 0; |
BlobGlyphCount(&glyphCount, &runCount, blob); |
- GrAtlasTextBlob* cacheBlob = this->createBlob(glyphCount, runCount, maxVAStride); |
- SetupCacheBlobKey(cacheBlob, key, blurRec, paint); |
+ GrAtlasTextBlob* cacheBlob = GrAtlasTextBlob::Create(&fPool, glyphCount, runCount); |
+ cacheBlob->setupKey(key, blurRec, paint); |
this->add(cacheBlob); |
return cacheBlob; |
} |
@@ -73,7 +59,7 @@ public: |
} |
void remove(GrAtlasTextBlob* blob) { |
- fCache.remove(blob->fKey); |
+ fCache.remove(blob->key()); |
fBlobList.remove(blob); |
blob->unref(); |
} |
@@ -119,7 +105,7 @@ private: |
iter.init(fBlobList, BitmapBlobList::Iter::kTail_IterStart); |
GrAtlasTextBlob* lruBlob = nullptr; |
while (fPool.size() > fBudget && (lruBlob = iter.get()) && lruBlob != blob) { |
- fCache.remove(lruBlob->fKey); |
+ fCache.remove(lruBlob->key()); |
// Backup the iterator before removing and unrefing the blob |
iter.prev(); |