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

Side by Side Diff: src/gpu/GrStencilAndCoverTextContext.cpp

Issue 641613003: Rearrange code in TextContexts to be more consistent. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Some more indention clean up Created 6 years, 2 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 unified diff | Download patch
« no previous file with comments | « src/gpu/GrStencilAndCoverTextContext.h ('k') | src/gpu/GrTextContext.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "GrDrawTarget.h" 9 #include "GrDrawTarget.h"
10 #include "GrGpu.h" 10 #include "GrGpu.h"
(...skipping 10 matching lines...) Expand all
21 21
22 GrStencilAndCoverTextContext::GrStencilAndCoverTextContext( 22 GrStencilAndCoverTextContext::GrStencilAndCoverTextContext(
23 GrContext* context, const SkDeviceProperties& properties) 23 GrContext* context, const SkDeviceProperties& properties)
24 : GrTextContext(context, properties) 24 : GrTextContext(context, properties)
25 , fPendingGlyphCount(0) { 25 , fPendingGlyphCount(0) {
26 } 26 }
27 27
28 GrStencilAndCoverTextContext::~GrStencilAndCoverTextContext() { 28 GrStencilAndCoverTextContext::~GrStencilAndCoverTextContext() {
29 } 29 }
30 30
31 bool GrStencilAndCoverTextContext::canDraw(const SkPaint& paint) {
32 if (paint.getRasterizer()) {
33 return false;
34 }
35 if (paint.getMaskFilter()) {
36 return false;
37 }
38 if (paint.getPathEffect()) {
39 return false;
40 }
41
42 // No hairlines unless we can map the 1 px width to the object space.
43 if (paint.getStyle() == SkPaint::kStroke_Style
44 && paint.getStrokeWidth() == 0
45 && fContext->getMatrix().hasPerspective()) {
46 return false;
47 }
48
49 // No color bitmap fonts.
50 SkScalerContext::Rec rec;
51 SkScalerContext::MakeRec(paint, &fDeviceProperties, NULL, &rec);
52 return rec.getFormat() != SkMask::kARGB32_Format;
53 }
54
31 void GrStencilAndCoverTextContext::drawText(const GrPaint& paint, 55 void GrStencilAndCoverTextContext::drawText(const GrPaint& paint,
32 const SkPaint& skPaint, 56 const SkPaint& skPaint,
33 const char text[], 57 const char text[],
34 size_t byteLength, 58 size_t byteLength,
35 SkScalar x, SkScalar y) { 59 SkScalar x, SkScalar y) {
36 SkASSERT(byteLength == 0 || text != NULL); 60 SkASSERT(byteLength == 0 || text != NULL);
37 61
38 if (text == NULL || byteLength == 0 /*|| fRC->isEmpty()*/) { 62 if (text == NULL || byteLength == 0 /*|| fRC->isEmpty()*/) {
39 return; 63 return;
40 } 64 }
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 206
183 this->appendGlyph(glyph.getGlyphID(), loc.x(), loc.y()); 207 this->appendGlyph(glyph.getGlyphID(), loc.x(), loc.y());
184 } 208 }
185 pos += scalarsPerPosition; 209 pos += scalarsPerPosition;
186 } 210 }
187 } 211 }
188 212
189 this->finish(); 213 this->finish();
190 } 214 }
191 215
192 bool GrStencilAndCoverTextContext::canDraw(const SkPaint& paint) {
193 if (paint.getRasterizer()) {
194 return false;
195 }
196 if (paint.getMaskFilter()) {
197 return false;
198 }
199 if (paint.getPathEffect()) {
200 return false;
201 }
202
203 // No hairlines unless we can map the 1 px width to the object space.
204 if (paint.getStyle() == SkPaint::kStroke_Style
205 && paint.getStrokeWidth() == 0
206 && fContext->getMatrix().hasPerspective()) {
207 return false;
208 }
209
210 // No color bitmap fonts.
211 SkScalerContext::Rec rec;
212 SkScalerContext::MakeRec(paint, &fDeviceProperties, NULL, &rec);
213 return rec.getFormat() != SkMask::kARGB32_Format;
214 }
215
216 static GrPathRange* get_gr_glyphs(GrContext* ctx, 216 static GrPathRange* get_gr_glyphs(GrContext* ctx,
217 const SkTypeface* typeface, 217 const SkTypeface* typeface,
218 const SkDescriptor* desc, 218 const SkDescriptor* desc,
219 const SkStrokeRec& stroke) { 219 const SkStrokeRec& stroke) {
220 static const GrCacheID::Domain gGlyphsDomain = GrCacheID::GenerateDomain(); 220 static const GrCacheID::Domain gGlyphsDomain = GrCacheID::GenerateDomain();
221 221
222 GrCacheID::Key key; 222 GrCacheID::Key key;
223 uint64_t* keyData = key.fData64; 223 uint64_t* keyData = key.fData64;
224 keyData[0] = desc ? desc->getChecksum() : 0; 224 keyData[0] = desc ? desc->getChecksum() : 0;
225 keyData[0] = (keyData[0] << 32) | (typeface ? typeface->uniqueID() : 0); 225 keyData[0] = (keyData[0] << 32) | (typeface ? typeface->uniqueID() : 0);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 416
417 SkGlyphCache::AttachCache(fGlyphCache); 417 SkGlyphCache::AttachCache(fGlyphCache);
418 fGlyphCache = NULL; 418 fGlyphCache = NULL;
419 419
420 fDrawTarget->drawState()->stencil()->setDisabled(); 420 fDrawTarget->drawState()->stencil()->setDisabled();
421 fStateRestore.set(NULL); 421 fStateRestore.set(NULL);
422 fContext->setMatrix(fContextInitialMatrix); 422 fContext->setMatrix(fContextInitialMatrix);
423 GrTextContext::finish(); 423 GrTextContext::finish();
424 } 424 }
425 425
OLDNEW
« no previous file with comments | « src/gpu/GrStencilAndCoverTextContext.h ('k') | src/gpu/GrTextContext.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698