Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: src/gpu/GrAtlasTextContext.h

Issue 1092973004: Pack BitmapTextBlob a bit tighter (Closed) Base URL: https://skia.googlesource.com/skia.git@atdfopt1
Patch Set: rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/gpu/GrBatchAtlas.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrAtlasTextContext.h
diff --git a/src/gpu/GrAtlasTextContext.h b/src/gpu/GrAtlasTextContext.h
index ec39ef5023edc94712f311219466f709c30f460d..d5fa0d7849268a1bc1859d7842cc9d946d3613f7 100644
--- a/src/gpu/GrAtlasTextContext.h
+++ b/src/gpu/GrAtlasTextContext.h
@@ -98,22 +98,11 @@ private:
struct SubRunInfo {
SubRunInfo()
: fAtlasGeneration(GrBatchAtlas::kInvalidAtlasGeneration)
- , fGlyphStartIndex(0)
- , fGlyphEndIndex(0)
, fVertexStartIndex(0)
, fVertexEndIndex(0)
+ , fGlyphStartIndex(0)
+ , fGlyphEndIndex(0)
, fDrawAsDistanceFields(false) {}
- GrMaskFormat fMaskFormat;
- uint64_t fAtlasGeneration;
- uint32_t fGlyphStartIndex;
- uint32_t fGlyphEndIndex;
- size_t fVertexStartIndex;
- size_t fVertexEndIndex;
- GrBatchAtlas::BulkUseTokenUpdater fBulkUseToken;
-
- // distance field properties
- bool fDrawAsDistanceFields;
- bool fUseLCDText;
// Distance field text cannot draw coloremoji, and so has to fall back. However,
// though the distance field text and the coloremoji may share the same run, they
// will have different descriptors. If fOverrideDescriptor is non-NULL, then it
@@ -121,7 +110,17 @@ private:
// TODO we could have a descriptor cache, it would reduce the size of these blobs
// significantly, and then the subrun could just have a refed pointer to the
// correct descriptor.
- SkAutoTDelete<SkAutoDescriptor> fOverrideDescriptor;
+ SkAutoTDelete<SkAutoDescriptor> fOverrideDescriptor; // df properties
+ GrBatchAtlas::BulkUseTokenUpdater fBulkUseToken;
+ uint64_t fAtlasGeneration;
+ size_t fVertexStartIndex;
+ size_t fVertexEndIndex;
+ uint32_t fGlyphStartIndex;
+ uint32_t fGlyphEndIndex;
+ SkScalar fTextRatio; // df property
+ GrMaskFormat fMaskFormat;
+ bool fDrawAsDistanceFields; // df property
+ bool fUseLCDText; // df property
};
class SubRunInfoArray {
@@ -171,15 +170,15 @@ private:
private:
static const int kMinSubRuns = 1;
static const int kMinSubRunStorage = kMinSubRuns * sizeof(SubRunInfo);
+ SubRunInfo* fPtr;
SkAutoSTMalloc<kMinSubRunStorage, unsigned char> fSubRunStorage;
int fSubRunCount;
int fSubRunAllocation;
- SubRunInfo* fPtr;
};
- SubRunInfoArray fSubRunInfo;
- SkAutoDescriptor fDescriptor;
SkAutoTUnref<SkTypeface> fTypeface;
SkRect fVertexBounds;
+ SubRunInfoArray fSubRunInfo;
+ SkAutoDescriptor fDescriptor;
GrColor fColor;
bool fInitialized;
bool fDrawAsPaths;
@@ -191,37 +190,6 @@ private:
int fVx;
int fVy;
};
-#ifdef SK_DEBUG
- mutable SkScalar fTotalXError;
- mutable SkScalar fTotalYError;
-#endif
- SkColor fPaintColor;
- SkTArray<BigGlyph> fBigGlyphs;
- SkMatrix fViewMatrix;
- SkScalar fX;
- SkScalar fY;
- int fRunCount;
- SkMaskFilter::BlurRec fBlurRec;
- struct StrokeInfo {
- SkScalar fFrameWidth;
- SkScalar fMiterLimit;
- SkPaint::Join fJoin;
- };
- StrokeInfo fStrokeInfo;
- GrMemoryPool* fPool;
-
- enum TextType {
- kHasDistanceField_TextType = 0x1,
- kHasBitmap_TextType = 0x2,
- };
- uint8_t fTextType;
-
- BitmapTextBlob() : fTextType(0) {}
-
- // all glyph / vertex offsets are into these pools.
- unsigned char* fVertices;
- GrGlyph::PackedID* fGlyphIDs;
- Run* fRuns;
struct Key {
Key() {
@@ -240,7 +208,39 @@ private:
return 0 == memcmp(this, &other, sizeof(Key));
}
};
+
+ struct StrokeInfo {
+ SkScalar fFrameWidth;
+ SkScalar fMiterLimit;
+ SkPaint::Join fJoin;
+ };
+
+ enum TextType {
+ kHasDistanceField_TextType = 0x1,
+ kHasBitmap_TextType = 0x2,
+ };
+
+ // all glyph / vertex offsets are into these pools.
+ unsigned char* fVertices;
+ GrGlyph::PackedID* fGlyphIDs;
+ Run* fRuns;
+ GrMemoryPool* fPool;
+ SkMaskFilter::BlurRec fBlurRec;
+ StrokeInfo fStrokeInfo;
+ SkTArray<BigGlyph> fBigGlyphs;
Key fKey;
+ SkMatrix fViewMatrix;
+#ifdef SK_DEBUG
+ mutable SkScalar fTotalXError;
+ mutable SkScalar fTotalYError;
+#endif
+ SkScalar fX;
+ SkScalar fY;
+ SkColor fPaintColor;
+ int fRunCount;
+ uint8_t fTextType;
+
+ BitmapTextBlob() : fTextType(0) {}
static const Key& GetKey(const BitmapTextBlob& blob) {
return blob.fKey;
« no previous file with comments | « no previous file | src/gpu/GrBatchAtlas.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698