OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 #include "GrStencilAndCoverTextContext.h" | 8 #include "GrStencilAndCoverTextContext.h" |
9 #include "GrAtlasTextContext.h" | 9 #include "GrAtlasTextContext.h" |
10 #include "GrContext.h" | 10 #include "GrContext.h" |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 | 462 |
463 GrStencilAndCoverTextContext::TextRun::~TextRun() { | 463 GrStencilAndCoverTextContext::TextRun::~TextRun() { |
464 this->releaseGlyphCache(); | 464 this->releaseGlyphCache(); |
465 } | 465 } |
466 | 466 |
467 void GrStencilAndCoverTextContext::TextRun::setText(const char text[], size_t by
teLength, | 467 void GrStencilAndCoverTextContext::TextRun::setText(const char text[], size_t by
teLength, |
468 SkScalar x, SkScalar y) { | 468 SkScalar x, SkScalar y) { |
469 SkASSERT(byteLength == 0 || text != nullptr); | 469 SkASSERT(byteLength == 0 || text != nullptr); |
470 | 470 |
471 SkGlyphCache* glyphCache = this->getGlyphCache(); | 471 SkGlyphCache* glyphCache = this->getGlyphCache(); |
472 SkPaint::GlyphCacheProc glyphCacheProc = fFont.getGlyphCacheProc(true); | 472 SkPaint::GlyphCacheProc glyphCacheProc = SkPaint::GetGlyphCacheProc(fFont.ge
tTextEncoding(), |
| 473 fFont.is
DevKernText(), |
| 474 true); |
473 | 475 |
474 fTotalGlyphCount = fFont.countText(text, byteLength); | 476 fTotalGlyphCount = fFont.countText(text, byteLength); |
475 fInstanceData.reset(InstanceData::Alloc(GrPathRendering::kTranslate_PathTran
sformType, | 477 fInstanceData.reset(InstanceData::Alloc(GrPathRendering::kTranslate_PathTran
sformType, |
476 fTotalGlyphCount)); | 478 fTotalGlyphCount)); |
477 | 479 |
478 const char* stop = text + byteLength; | 480 const char* stop = text + byteLength; |
479 | 481 |
480 // Measure first if needed. | 482 // Measure first if needed. |
481 if (fFont.getTextAlign() != SkPaint::kLeft_Align) { | 483 if (fFont.getTextAlign() != SkPaint::kLeft_Align) { |
482 SkScalar stopX = 0; | 484 SkScalar stopX = 0; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 fFallbackTextBlob.reset(fallback.buildIfNeeded(&fFallbackGlyphCount)); | 524 fFallbackTextBlob.reset(fallback.buildIfNeeded(&fFallbackGlyphCount)); |
523 } | 525 } |
524 | 526 |
525 void GrStencilAndCoverTextContext::TextRun::setPosText(const char text[], size_t
byteLength, | 527 void GrStencilAndCoverTextContext::TextRun::setPosText(const char text[], size_t
byteLength, |
526 const SkScalar pos[], int
scalarsPerPosition, | 528 const SkScalar pos[], int
scalarsPerPosition, |
527 const SkPoint& offset) { | 529 const SkPoint& offset) { |
528 SkASSERT(byteLength == 0 || text != nullptr); | 530 SkASSERT(byteLength == 0 || text != nullptr); |
529 SkASSERT(1 == scalarsPerPosition || 2 == scalarsPerPosition); | 531 SkASSERT(1 == scalarsPerPosition || 2 == scalarsPerPosition); |
530 | 532 |
531 SkGlyphCache* glyphCache = this->getGlyphCache(); | 533 SkGlyphCache* glyphCache = this->getGlyphCache(); |
532 SkPaint::GlyphCacheProc glyphCacheProc = fFont.getGlyphCacheProc(true); | 534 SkPaint::GlyphCacheProc glyphCacheProc = SkPaint::GetGlyphCacheProc(fFont.ge
tTextEncoding(), |
| 535 fFont.is
DevKernText(), |
| 536 true); |
533 | 537 |
534 fTotalGlyphCount = fFont.countText(text, byteLength); | 538 fTotalGlyphCount = fFont.countText(text, byteLength); |
535 fInstanceData.reset(InstanceData::Alloc(GrPathRendering::kTranslate_PathTran
sformType, | 539 fInstanceData.reset(InstanceData::Alloc(GrPathRendering::kTranslate_PathTran
sformType, |
536 fTotalGlyphCount)); | 540 fTotalGlyphCount)); |
537 | 541 |
538 const char* stop = text + byteLength; | 542 const char* stop = text + byteLength; |
539 | 543 |
540 SkTextMapStateProc tmsProc(SkMatrix::I(), offset, scalarsPerPosition); | 544 SkTextMapStateProc tmsProc(SkMatrix::I(), offset, scalarsPerPosition); |
541 SkTextAlignProc alignProc(fFont.getTextAlign()); | 545 SkTextAlignProc alignProc(fFont.getTextAlign()); |
542 FallbackBlobBuilder fallback; | 546 FallbackBlobBuilder fallback; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 } | 730 } |
727 | 731 |
728 const SkTextBlob* GrStencilAndCoverTextContext::FallbackBlobBuilder::buildIfNeed
ed(int *count) { | 732 const SkTextBlob* GrStencilAndCoverTextContext::FallbackBlobBuilder::buildIfNeed
ed(int *count) { |
729 *count = fCount; | 733 *count = fCount; |
730 if (fCount) { | 734 if (fCount) { |
731 this->flush(); | 735 this->flush(); |
732 return fBuilder->build(); | 736 return fBuilder->build(); |
733 } | 737 } |
734 return nullptr; | 738 return nullptr; |
735 } | 739 } |
OLD | NEW |