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

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

Issue 817853002: Remove localcoordchange functions off paint (Closed) Base URL: https://skia.googlesource.com/skia.git@local-matrix-on-gp
Patch Set: changing ignores Created 5 years, 12 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/GrInOrderDrawBuffer.cpp ('k') | src/gpu/effects/GrBezierEffect.cpp » ('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 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 "GrOvalRenderer.h" 8 #include "GrOvalRenderer.h"
9 9
10 #include "GrProcessor.h" 10 #include "GrProcessor.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage ); 117 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage );
118 } 118 }
119 119
120 static void GenKey(const GrGeometryProcessor& processor, 120 static void GenKey(const GrGeometryProcessor& processor,
121 const GrBatchTracker& bt, 121 const GrBatchTracker& bt,
122 const GrGLCaps&, 122 const GrGLCaps&,
123 GrProcessorKeyBuilder* b) { 123 GrProcessorKeyBuilder* b) {
124 const BatchTracker& local = bt.cast<BatchTracker>(); 124 const BatchTracker& local = bt.cast<BatchTracker>();
125 const CircleEdgeEffect& circleEffect = processor.cast<CircleEdgeEffe ct>(); 125 const CircleEdgeEffect& circleEffect = processor.cast<CircleEdgeEffe ct>();
126 b->add32(circleEffect.isStroked() << 16 | local.fInputColorType); 126 uint16_t key = circleEffect.isStroked() ? 0x1 : 0x0;
127 key |= local.fUsesLocalCoords && processor.localMatrix().hasPerspect ive() ? 0x2 : 0x0;
128 b->add32(key << 16 | local.fInputColorType);
127 } 129 }
128 130
129 virtual void setData(const GrGLProgramDataManager& pdman, 131 virtual void setData(const GrGLProgramDataManager& pdman,
130 const GrPrimitiveProcessor& gp, 132 const GrPrimitiveProcessor& gp,
131 const GrBatchTracker& bt) SK_OVERRIDE { 133 const GrBatchTracker& bt) SK_OVERRIDE {
132 const BatchTracker& local = bt.cast<BatchTracker>(); 134 const BatchTracker& local = bt.cast<BatchTracker>();
133 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) { 135 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) {
134 GrGLfloat c[4]; 136 GrGLfloat c[4];
135 GrColorToRGBAFloat(local.fColor, c); 137 GrColorToRGBAFloat(local.fColor, c);
136 pdman.set4fv(fColorUniform, 1, c); 138 pdman.set4fv(fColorUniform, 1, c);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 301
300 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage ); 302 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage );
301 } 303 }
302 304
303 static void GenKey(const GrGeometryProcessor& processor, 305 static void GenKey(const GrGeometryProcessor& processor,
304 const GrBatchTracker& bt, 306 const GrBatchTracker& bt,
305 const GrGLCaps&, 307 const GrGLCaps&,
306 GrProcessorKeyBuilder* b) { 308 GrProcessorKeyBuilder* b) {
307 const BatchTracker& local = bt.cast<BatchTracker>(); 309 const BatchTracker& local = bt.cast<BatchTracker>();
308 const EllipseEdgeEffect& ellipseEffect = processor.cast<EllipseEdgeE ffect>(); 310 const EllipseEdgeEffect& ellipseEffect = processor.cast<EllipseEdgeE ffect>();
309 b->add32(ellipseEffect.isStroked() << 16 | local.fInputColorType); 311 uint16_t key = ellipseEffect.isStroked() ? 0x1 : 0x0;
312 key |= local.fUsesLocalCoords && processor.localMatrix().hasPerspect ive() ? 0x2 : 0x0;
313 b->add32(key << 16 | local.fInputColorType);
310 } 314 }
311 315
312 virtual void setData(const GrGLProgramDataManager& pdman, 316 virtual void setData(const GrGLProgramDataManager& pdman,
313 const GrPrimitiveProcessor& gp, 317 const GrPrimitiveProcessor& gp,
314 const GrBatchTracker& bt) SK_OVERRIDE { 318 const GrBatchTracker& bt) SK_OVERRIDE {
315 const BatchTracker& local = bt.cast<BatchTracker>(); 319 const BatchTracker& local = bt.cast<BatchTracker>();
316 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) { 320 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) {
317 GrGLfloat c[4]; 321 GrGLfloat c[4];
318 GrColorToRGBAFloat(local.fColor, c); 322 GrColorToRGBAFloat(local.fColor, c);
319 pdman.set4fv(fColorUniform, 1, c); 323 pdman.set4fv(fColorUniform, 1, c);
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 507
504 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage ); 508 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage );
505 } 509 }
506 510
507 static void GenKey(const GrGeometryProcessor& processor, 511 static void GenKey(const GrGeometryProcessor& processor,
508 const GrBatchTracker& bt, 512 const GrBatchTracker& bt,
509 const GrGLCaps&, 513 const GrGLCaps&,
510 GrProcessorKeyBuilder* b) { 514 GrProcessorKeyBuilder* b) {
511 const BatchTracker& local = bt.cast<BatchTracker>(); 515 const BatchTracker& local = bt.cast<BatchTracker>();
512 const DIEllipseEdgeEffect& ellipseEffect = processor.cast<DIEllipseE dgeEffect>(); 516 const DIEllipseEdgeEffect& ellipseEffect = processor.cast<DIEllipseE dgeEffect>();
513 b->add32(ellipseEffect.getMode() << 16 | local.fInputColorType); 517 uint16_t key = ellipseEffect.getMode();
518 key |= local.fUsesLocalCoords && processor.localMatrix().hasPerspect ive() ? 0x1 << 8 :
519 0x0;
520 b->add32(key << 16 | local.fInputColorType);
514 } 521 }
515 522
516 virtual void setData(const GrGLProgramDataManager& pdman, 523 virtual void setData(const GrGLProgramDataManager& pdman,
517 const GrPrimitiveProcessor& gp, 524 const GrPrimitiveProcessor& gp,
518 const GrBatchTracker& bt) SK_OVERRIDE { 525 const GrBatchTracker& bt) SK_OVERRIDE {
519 const BatchTracker& local = bt.cast<BatchTracker>(); 526 const BatchTracker& local = bt.cast<BatchTracker>();
520 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) { 527 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) {
521 GrGLfloat c[4]; 528 GrGLfloat c[4];
522 GrColorToRGBAFloat(local.fColor, c); 529 GrColorToRGBAFloat(local.fColor, c);
523 pdman.set4fv(fColorUniform, 1, c); 530 pdman.set4fv(fColorUniform, 1, c);
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 } 1086 }
1080 GrDrawState::AutoViewMatrixRestore avmr; 1087 GrDrawState::AutoViewMatrixRestore avmr;
1081 if (!avmr.setIdentity(drawState)) { 1088 if (!avmr.setIdentity(drawState)) {
1082 return false; 1089 return false;
1083 } 1090 }
1084 drawState->addCoverageProcessor(effect)->unref(); 1091 drawState->addCoverageProcessor(effect)->unref();
1085 SkRect bounds = outer->getBounds(); 1092 SkRect bounds = outer->getBounds();
1086 if (applyAA) { 1093 if (applyAA) {
1087 bounds.outset(SK_ScalarHalf, SK_ScalarHalf); 1094 bounds.outset(SK_ScalarHalf, SK_ScalarHalf);
1088 } 1095 }
1089 target->drawRect(drawState, color, bounds, NULL, NULL); 1096 target->drawSimpleRect(drawState, color, bounds);
1090 return true; 1097 return true;
1091 } 1098 }
1092 1099
1093 bool GrOvalRenderer::drawRRect(GrDrawTarget* target, 1100 bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
1094 GrDrawState* drawState, 1101 GrDrawState* drawState,
1095 GrColor color, 1102 GrColor color,
1096 bool useAA, 1103 bool useAA,
1097 const SkRRect& rrect, 1104 const SkRRect& rrect,
1098 const SkStrokeRec& stroke) { 1105 const SkStrokeRec& stroke) {
1099 if (rrect.isOval()) { 1106 if (rrect.isOval()) {
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 int indexCnt = isStrokeOnly ? SK_ARRAY_COUNT(gRRectIndices) - 6 : 1367 int indexCnt = isStrokeOnly ? SK_ARRAY_COUNT(gRRectIndices) - 6 :
1361 SK_ARRAY_COUNT(gRRectIndices); 1368 SK_ARRAY_COUNT(gRRectIndices);
1362 target->setIndexSourceToBuffer(indexBuffer); 1369 target->setIndexSourceToBuffer(indexBuffer);
1363 target->drawIndexedInstances(drawState, effect, kTriangles_GrPrimitiveTy pe, 1, 16, indexCnt, 1370 target->drawIndexedInstances(drawState, effect, kTriangles_GrPrimitiveTy pe, 1, 16, indexCnt,
1364 &bounds); 1371 &bounds);
1365 } 1372 }
1366 1373
1367 target->resetIndexSource(); 1374 target->resetIndexSource();
1368 return true; 1375 return true;
1369 } 1376 }
OLDNEW
« no previous file with comments | « src/gpu/GrInOrderDrawBuffer.cpp ('k') | src/gpu/effects/GrBezierEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698