Index: src/gpu/GrAtlasTextBlob.h |
diff --git a/src/gpu/GrAtlasTextBlob.h b/src/gpu/GrAtlasTextBlob.h |
index 502177d0d23247f4cc7fe18810d8fe210e7b0506..63f9185d97392e6e0fe0c879ce24fdf0e22066ed 100644 |
--- a/src/gpu/GrAtlasTextBlob.h |
+++ b/src/gpu/GrAtlasTextBlob.h |
@@ -78,6 +78,19 @@ struct GrAtlasTextBlob : public SkRefCnt { |
, fGlyphStartIndex(0) |
, fGlyphEndIndex(0) |
, fDrawAsDistanceFields(false) {} |
+ SubRunInfo(const SubRunInfo& that) |
+ : fBulkUseToken(that.fBulkUseToken) |
+ , fStrike(SkSafeRef(that.fStrike.get())) |
+ , fAtlasGeneration(that.fAtlasGeneration) |
+ , fVertexStartIndex(that.fVertexStartIndex) |
+ , fVertexEndIndex(that.fVertexEndIndex) |
+ , fGlyphStartIndex(that.fGlyphStartIndex) |
+ , fGlyphEndIndex(that.fGlyphEndIndex) |
+ , fTextRatio(that.fTextRatio) |
+ , fMaskFormat(that.fMaskFormat) |
+ , fDrawAsDistanceFields(that.fDrawAsDistanceFields) |
+ , fUseLCDText(that.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 |
@@ -86,6 +99,7 @@ struct GrAtlasTextBlob : public SkRefCnt { |
// significantly, and then the subrun could just have a refed pointer to the |
// correct descriptor. |
GrBatchAtlas::BulkUseTokenUpdater fBulkUseToken; |
+ SkAutoTUnref<GrBatchTextStrike> fStrike; |
uint64_t fAtlasGeneration; |
size_t fVertexStartIndex; |
size_t fVertexEndIndex; |
@@ -110,7 +124,6 @@ struct GrAtlasTextBlob : public SkRefCnt { |
return newSubRun; |
} |
static const int kMinSubRuns = 1; |
- SkAutoTUnref<GrBatchTextStrike> fStrike; |
SkAutoTUnref<SkTypeface> fTypeface; |
SkRect fVertexBounds; |
SkSTArray<kMinSubRuns, SubRunInfo> fSubRunInfo; |