| Index: src/gpu/text/GrAtlasTextBlob.h
|
| diff --git a/src/gpu/text/GrAtlasTextBlob.h b/src/gpu/text/GrAtlasTextBlob.h
|
| index 4351aae748cc294bfc9debb21f23290fc03d8f6c..68cba3d50684de1fb02cdd4a839df0db7f5e6b1b 100644
|
| --- a/src/gpu/text/GrAtlasTextBlob.h
|
| +++ b/src/gpu/text/GrAtlasTextBlob.h
|
| @@ -18,6 +18,7 @@
|
| #include "SkTInternalLList.h"
|
|
|
| struct GrDistanceFieldAdjustTable;
|
| +class GrMemoryPool;
|
| class GrTextContext;
|
| class SkDrawFilter;
|
| class SkTextBlob;
|
| @@ -45,16 +46,7 @@ class GrAtlasTextBlob : public SkNVRefCnt<GrAtlasTextBlob> {
|
| public:
|
| SK_DECLARE_INTERNAL_LLIST_INTERFACE(GrAtlasTextBlob);
|
|
|
| - GrAtlasTextBlob()
|
| - : fMaxMinScale(-SK_ScalarMax)
|
| - , fMinMaxScale(SK_ScalarMax)
|
| - , fTextType(0) {}
|
| -
|
| - ~GrAtlasTextBlob() {
|
| - for (int i = 0; i < fRunCount; i++) {
|
| - fRuns[i].~Run();
|
| - }
|
| - }
|
| + static GrAtlasTextBlob* Create(GrMemoryPool* pool, int glyphCount, int runCount);
|
|
|
| struct Key {
|
| Key() {
|
| @@ -75,6 +67,20 @@ public:
|
| }
|
| };
|
|
|
| + void setupKey(const GrAtlasTextBlob::Key& key,
|
| + const SkMaskFilter::BlurRec& blurRec,
|
| + const SkPaint& paint) {
|
| + fKey = key;
|
| + if (key.fHasBlur) {
|
| + fBlurRec = blurRec;
|
| + }
|
| + if (key.fStyle != SkPaint::kFill_Style) {
|
| + fStrokeInfo.fFrameWidth = paint.getStrokeWidth();
|
| + fStrokeInfo.fMiterLimit = paint.getStrokeMiter();
|
| + fStrokeInfo.fJoin = paint.getStrokeJoin();
|
| + }
|
| + }
|
| +
|
| static const Key& GetKey(const GrAtlasTextBlob& blob) {
|
| return blob.fKey;
|
| }
|
| @@ -198,6 +204,7 @@ public:
|
| static const size_t kColorTextVASize = sizeof(SkPoint) + sizeof(SkIPoint16);
|
| static const size_t kGrayTextVASize = sizeof(SkPoint) + sizeof(GrColor) + sizeof(SkIPoint16);
|
| static const size_t kLCDTextVASize = kGrayTextVASize;
|
| + static const size_t kMaxVASize = kGrayTextVASize;
|
| static const int kVerticesPerGlyph = 4;
|
|
|
| static void AssertEqual(const GrAtlasTextBlob&, const GrAtlasTextBlob&);
|
| @@ -220,7 +227,20 @@ public:
|
| const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
| GrBatchFontCache* cache);
|
|
|
| + const Key& key() const { return fKey; }
|
| +
|
| + ~GrAtlasTextBlob() {
|
| + for (int i = 0; i < fRunCount; i++) {
|
| + fRuns[i].~Run();
|
| + }
|
| + }
|
| +
|
| private:
|
| + GrAtlasTextBlob()
|
| + : fMaxMinScale(-SK_ScalarMax)
|
| + , fMinMaxScale(SK_ScalarMax)
|
| + , fTextType(0) {}
|
| +
|
| void appendLargeGlyph(GrGlyph* glyph, GrFontScaler* scaler, const SkGlyph& skGlyph,
|
| SkScalar x, SkScalar y, SkScalar scale, bool applyVM);
|
|
|
| @@ -456,7 +476,6 @@ private:
|
| uint8_t fTextType;
|
|
|
| friend class GrAtlasTextBatch; // We might be able to get rid of this friending
|
| - friend class GrTextBlobCache; // Needs to access the key
|
| };
|
|
|
| #endif
|
|
|