| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef GrAtlasTextBlob_DEFINED | 8 #ifndef GrAtlasTextBlob_DEFINED |
| 9 #define GrAtlasTextBlob_DEFINED | 9 #define GrAtlasTextBlob_DEFINED |
| 10 | 10 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 const SkPaint& skPaint, | 153 const SkPaint& skPaint, |
| 154 const SkMatrix* viewMatrix); | 154 const SkMatrix* viewMatrix); |
| 155 | 155 |
| 156 // Appends a glyph to the blob. If the glyph is too large, the glyph will b
e appended | 156 // Appends a glyph to the blob. If the glyph is too large, the glyph will b
e appended |
| 157 // as a path. | 157 // as a path. |
| 158 void appendGlyph(int runIndex, | 158 void appendGlyph(int runIndex, |
| 159 const SkRect& positions, | 159 const SkRect& positions, |
| 160 GrColor color, | 160 GrColor color, |
| 161 GrBatchTextStrike* strike, | 161 GrBatchTextStrike* strike, |
| 162 GrGlyph* glyph, | 162 GrGlyph* glyph, |
| 163 GrFontScaler* scaler, const SkGlyph& skGlyph, | 163 SkGlyphCache*, const SkGlyph& skGlyph, |
| 164 SkScalar x, SkScalar y, SkScalar scale, bool applyVM); | 164 SkScalar x, SkScalar y, SkScalar scale, bool applyVM); |
| 165 | 165 |
| 166 static size_t GetVertexStride(GrMaskFormat maskFormat) { | 166 static size_t GetVertexStride(GrMaskFormat maskFormat) { |
| 167 switch (maskFormat) { | 167 switch (maskFormat) { |
| 168 case kA8_GrMaskFormat: | 168 case kA8_GrMaskFormat: |
| 169 return kGrayTextVASize; | 169 return kGrayTextVASize; |
| 170 case kARGB_GrMaskFormat: | 170 case kARGB_GrMaskFormat: |
| 171 return kColorTextVASize; | 171 return kColorTextVASize; |
| 172 default: | 172 default: |
| 173 return kLCDTextVASize; | 173 return kLCDTextVASize; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 fPaintColor = color; | 251 fPaintColor = color; |
| 252 this->setupViewMatrix(viewMatrix, x, y); | 252 this->setupViewMatrix(viewMatrix, x, y); |
| 253 } | 253 } |
| 254 | 254 |
| 255 void initThrowawayBlob(const SkMatrix& viewMatrix, SkScalar x, SkScalar y) { | 255 void initThrowawayBlob(const SkMatrix& viewMatrix, SkScalar x, SkScalar y) { |
| 256 this->setupViewMatrix(viewMatrix, x, y); | 256 this->setupViewMatrix(viewMatrix, x, y); |
| 257 } | 257 } |
| 258 | 258 |
| 259 void regenInBatch(GrDrawBatch::Target* target, GrBatchFontCache* fontCache, | 259 void regenInBatch(GrDrawBatch::Target* target, GrBatchFontCache* fontCache, |
| 260 GrBlobRegenHelper *helper, int run, int subRun, SkGlyphCac
he** cache, | 260 GrBlobRegenHelper *helper, int run, int subRun, SkGlyphCac
he** cache, |
| 261 SkTypeface** typeface, GrFontScaler** scaler, | 261 SkTypeface** typeface, const SkDescriptor** desc, size_t v
ertexStride, |
| 262 const SkDescriptor** desc, size_t vertexStride, | |
| 263 const SkMatrix& viewMatrix, SkScalar x, SkScalar y, | 262 const SkMatrix& viewMatrix, SkScalar x, SkScalar y, |
| 264 GrColor color, | 263 GrColor color, |
| 265 void** vertices, size_t* byteCount, int* glyphCount); | 264 void** vertices, size_t* byteCount, int* glyphCount); |
| 266 | 265 |
| 267 const Key& key() const { return fKey; } | 266 const Key& key() const { return fKey; } |
| 268 | 267 |
| 269 ~GrAtlasTextBlob() { | 268 ~GrAtlasTextBlob() { |
| 270 for (int i = 0; i < fRunCount; i++) { | 269 for (int i = 0; i < fRunCount; i++) { |
| 271 fRuns[i].~Run(); | 270 fRuns[i].~Run(); |
| 272 } | 271 } |
| 273 } | 272 } |
| 274 | 273 |
| 275 ////////////////////////////////////////////////////////////////////////////
//////////////////// | 274 ////////////////////////////////////////////////////////////////////////////
//////////////////// |
| 276 // Internal test methods | 275 // Internal test methods |
| 277 GrDrawBatch* test_createBatch(int glyphCount, int run, int subRun, | 276 GrDrawBatch* test_createBatch(int glyphCount, int run, int subRun, |
| 278 const SkMatrix& viewMatrix, SkScalar x, SkScal
ar y, GrColor color, | 277 const SkMatrix& viewMatrix, SkScalar x, SkScal
ar y, GrColor color, |
| 279 const SkPaint& skPaint, const SkSurfaceProps&
props, | 278 const SkPaint& skPaint, const SkSurfaceProps&
props, |
| 280 const GrDistanceFieldAdjustTable* distanceAdju
stTable, | 279 const GrDistanceFieldAdjustTable* distanceAdju
stTable, |
| 281 GrBatchFontCache* cache); | 280 GrBatchFontCache* cache); |
| 282 | 281 |
| 283 private: | 282 private: |
| 284 GrAtlasTextBlob() | 283 GrAtlasTextBlob() |
| 285 : fMaxMinScale(-SK_ScalarMax) | 284 : fMaxMinScale(-SK_ScalarMax) |
| 286 , fMinMaxScale(SK_ScalarMax) | 285 , fMinMaxScale(SK_ScalarMax) |
| 287 , fTextType(0) {} | 286 , fTextType(0) {} |
| 288 | 287 |
| 289 void appendLargeGlyph(GrGlyph* glyph, GrFontScaler* scaler, const SkGlyph& s
kGlyph, | 288 void appendLargeGlyph(GrGlyph* glyph, SkGlyphCache* cache, const SkGlyph& sk
Glyph, |
| 290 SkScalar x, SkScalar y, SkScalar scale, bool applyVM); | 289 SkScalar x, SkScalar y, SkScalar scale, bool applyVM); |
| 291 | 290 |
| 292 inline void flushRun(GrDrawContext* dc, GrPipelineBuilder* pipelineBuilder,
const GrClip&, | 291 inline void flushRun(GrDrawContext* dc, GrPipelineBuilder* pipelineBuilder,
const GrClip&, |
| 293 int run, const SkMatrix& viewMatrix, SkScalar x, SkScal
ar y, GrColor color, | 292 int run, const SkMatrix& viewMatrix, SkScalar x, SkScal
ar y, GrColor color, |
| 294 const SkPaint& skPaint, const SkSurfaceProps& props, | 293 const SkPaint& skPaint, const SkSurfaceProps& props, |
| 295 const GrDistanceFieldAdjustTable* distanceAdjustTable, | 294 const GrDistanceFieldAdjustTable* distanceAdjustTable, |
| 296 GrBatchFontCache* cache); | 295 GrBatchFontCache* cache); |
| 297 | 296 |
| 298 void flushBigGlyphs(GrContext* context, GrDrawContext* dc, | 297 void flushBigGlyphs(GrContext* context, GrDrawContext* dc, |
| 299 const GrClip& clip, const SkPaint& skPaint, | 298 const GrClip& clip, const SkPaint& skPaint, |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 SkAutoTDelete<SkAutoDescriptor> fOverrideDescriptor; // df properties | 483 SkAutoTDelete<SkAutoDescriptor> fOverrideDescriptor; // df properties |
| 485 bool fInitialized; | 484 bool fInitialized; |
| 486 bool fDrawAsPaths; | 485 bool fDrawAsPaths; |
| 487 }; | 486 }; |
| 488 | 487 |
| 489 template <bool regenPos, bool regenCol, bool regenTexCoords, bool regenGlyph
s> | 488 template <bool regenPos, bool regenCol, bool regenTexCoords, bool regenGlyph
s> |
| 490 void regenInBatch(GrDrawBatch::Target* target, | 489 void regenInBatch(GrDrawBatch::Target* target, |
| 491 GrBatchFontCache* fontCache, | 490 GrBatchFontCache* fontCache, |
| 492 GrBlobRegenHelper* helper, | 491 GrBlobRegenHelper* helper, |
| 493 Run* run, Run::SubRunInfo* info, SkGlyphCache** cache, | 492 Run* run, Run::SubRunInfo* info, SkGlyphCache** cache, |
| 494 SkTypeface** typeface, GrFontScaler** scaler, | 493 SkTypeface** typeface, const SkDescriptor** desc, |
| 495 const SkDescriptor** desc, | |
| 496 int glyphCount, size_t vertexStride, | 494 int glyphCount, size_t vertexStride, |
| 497 GrColor color, SkScalar transX, | 495 GrColor color, SkScalar transX, |
| 498 SkScalar transY) const; | 496 SkScalar transY) const; |
| 499 | 497 |
| 500 inline GrDrawBatch* createBatch(const Run::SubRunInfo& info, | 498 inline GrDrawBatch* createBatch(const Run::SubRunInfo& info, |
| 501 int glyphCount, int run, int subRun, | 499 int glyphCount, int run, int subRun, |
| 502 const SkMatrix& viewMatrix, SkScalar x, SkSc
alar y, | 500 const SkMatrix& viewMatrix, SkScalar x, SkSc
alar y, |
| 503 GrColor color, | 501 GrColor color, |
| 504 const SkPaint& skPaint, const SkSurfaceProps
& props, | 502 const SkPaint& skPaint, const SkSurfaceProps
& props, |
| 505 const GrDistanceFieldAdjustTable* distanceAd
justTable, | 503 const GrDistanceFieldAdjustTable* distanceAd
justTable, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 // We can reuse distance field text, but only if the new viewmatrix would no
t result in | 548 // We can reuse distance field text, but only if the new viewmatrix would no
t result in |
| 551 // a mip change. Because there can be multiple runs in a blob, we track the
overall | 549 // a mip change. Because there can be multiple runs in a blob, we track the
overall |
| 552 // maximum minimum scale, and minimum maximum scale, we can support before w
e need to regen | 550 // maximum minimum scale, and minimum maximum scale, we can support before w
e need to regen |
| 553 SkScalar fMaxMinScale; | 551 SkScalar fMaxMinScale; |
| 554 SkScalar fMinMaxScale; | 552 SkScalar fMinMaxScale; |
| 555 int fRunCount; | 553 int fRunCount; |
| 556 uint8_t fTextType; | 554 uint8_t fTextType; |
| 557 }; | 555 }; |
| 558 | 556 |
| 559 #endif | 557 #endif |
| OLD | NEW |