| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "GrBitmapTextContext.h" | 8 #include "GrBitmapTextContext.h" |
| 9 #include "GrAtlas.h" | 9 #include "GrAtlas.h" |
| 10 #include "GrDrawTarget.h" | 10 #include "GrDrawTarget.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 fCurrTexture = NULL; | 59 fCurrTexture = NULL; |
| 60 fCurrVertex = 0; | 60 fCurrVertex = 0; |
| 61 fEffectTextureUniqueID = SK_InvalidUniqueID; | 61 fEffectTextureUniqueID = SK_InvalidUniqueID; |
| 62 | 62 |
| 63 fVertices = NULL; | 63 fVertices = NULL; |
| 64 fMaxVertices = 0; | 64 fMaxVertices = 0; |
| 65 | 65 |
| 66 fVertexBounds.setLargestInverted(); | 66 fVertexBounds.setLargestInverted(); |
| 67 } | 67 } |
| 68 | 68 |
| 69 GrBitmapTextContext* GrBitmapTextContext::Create(GrContext* context, |
| 70 const SkDeviceProperties& props
) { |
| 71 return SkNEW_ARGS(GrBitmapTextContext, (context, props)); |
| 72 } |
| 73 |
| 69 GrBitmapTextContext::~GrBitmapTextContext() { | 74 GrBitmapTextContext::~GrBitmapTextContext() { |
| 70 this->flush(); | 75 this->flush(); |
| 71 } | 76 } |
| 72 | 77 |
| 73 bool GrBitmapTextContext::canDraw(const SkPaint& paint) { | 78 bool GrBitmapTextContext::canDraw(const SkPaint& paint) { |
| 74 return !SkDraw::ShouldDrawTextAsPaths(paint, fContext->getMatrix()); | 79 return !SkDraw::ShouldDrawTextAsPaths(paint, fContext->getMatrix()); |
| 75 } | 80 } |
| 76 | 81 |
| 77 inline void GrBitmapTextContext::init(const GrPaint& paint, const SkPaint& skPai
nt) { | 82 inline void GrBitmapTextContext::init(const GrPaint& paint, const SkPaint& skPai
nt) { |
| 78 GrTextContext::init(paint, skPaint); | 83 GrTextContext::init(paint, skPaint); |
| 79 | 84 |
| 80 fStrike = NULL; | 85 fStrike = NULL; |
| 81 | 86 |
| 82 fCurrTexture = NULL; | 87 fCurrTexture = NULL; |
| 83 fCurrVertex = 0; | 88 fCurrVertex = 0; |
| 84 | 89 |
| 85 fVertices = NULL; | 90 fVertices = NULL; |
| 86 fMaxVertices = 0; | 91 fMaxVertices = 0; |
| 87 } | 92 } |
| 88 | 93 |
| 89 void GrBitmapTextContext::drawText(const GrPaint& paint, const SkPaint& skPaint, | 94 void GrBitmapTextContext::onDrawText(const GrPaint& paint, const SkPaint& skPain
t, |
| 90 const char text[], size_t byteLength, | 95 const char text[], size_t byteLength, |
| 91 SkScalar x, SkScalar y) { | 96 SkScalar x, SkScalar y) { |
| 92 SkASSERT(byteLength == 0 || text != NULL); | 97 SkASSERT(byteLength == 0 || text != NULL); |
| 93 | 98 |
| 94 // nothing to draw | 99 // nothing to draw |
| 95 if (text == NULL || byteLength == 0 /*|| fRC->isEmpty()*/) { | 100 if (text == NULL || byteLength == 0 /*|| fRC->isEmpty()*/) { |
| 96 return; | 101 return; |
| 97 } | 102 } |
| 98 | 103 |
| 99 this->init(paint, skPaint); | 104 this->init(paint, skPaint); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 fontScaler); | 175 fontScaler); |
| 171 } | 176 } |
| 172 | 177 |
| 173 fx += glyph.fAdvanceX; | 178 fx += glyph.fAdvanceX; |
| 174 fy += glyph.fAdvanceY; | 179 fy += glyph.fAdvanceY; |
| 175 } | 180 } |
| 176 | 181 |
| 177 this->finish(); | 182 this->finish(); |
| 178 } | 183 } |
| 179 | 184 |
| 180 void GrBitmapTextContext::drawPosText(const GrPaint& paint, const SkPaint& skPai
nt, | 185 void GrBitmapTextContext::onDrawPosText(const GrPaint& paint, const SkPaint& skP
aint, |
| 181 const char text[], size_t byteLength, | 186 const char text[], size_t byteLength, |
| 182 const SkScalar pos[], int scalarsPerPositi
on, | 187 const SkScalar pos[], int scalarsPerPositi
on, |
| 183 const SkPoint& offset) { | 188 const SkPoint& offset) { |
| 184 SkASSERT(byteLength == 0 || text != NULL); | 189 SkASSERT(byteLength == 0 || text != NULL); |
| 185 SkASSERT(1 == scalarsPerPosition || 2 == scalarsPerPosition); | 190 SkASSERT(1 == scalarsPerPosition || 2 == scalarsPerPosition); |
| 186 | 191 |
| 187 // nothing to draw | 192 // nothing to draw |
| 188 if (text == NULL || byteLength == 0/* || fRC->isEmpty()*/) { | 193 if (text == NULL || byteLength == 0/* || fRC->isEmpty()*/) { |
| 189 return; | 194 return; |
| 190 } | 195 } |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 SkSafeSetNull(fCurrTexture); | 608 SkSafeSetNull(fCurrTexture); |
| 604 } | 609 } |
| 605 } | 610 } |
| 606 | 611 |
| 607 inline void GrBitmapTextContext::finish() { | 612 inline void GrBitmapTextContext::finish() { |
| 608 this->flush(); | 613 this->flush(); |
| 609 | 614 |
| 610 GrTextContext::finish(); | 615 GrTextContext::finish(); |
| 611 } | 616 } |
| 612 | 617 |
| OLD | NEW |