| 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 "GrOvalRenderer.h" | 8 #include "GrOvalRenderer.h" |
| 9 | 9 |
| 10 #include "GrBatchFlushState.h" | 10 #include "GrBatchFlushState.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 | 88 |
| 89 inline bool isStroked() const { return fStroke; } | 89 inline bool isStroked() const { return fStroke; } |
| 90 | 90 |
| 91 class GLProcessor : public GrGLGeometryProcessor { | 91 class GLProcessor : public GrGLGeometryProcessor { |
| 92 public: | 92 public: |
| 93 GLProcessor() | 93 GLProcessor() |
| 94 : fColor(GrColor_ILLEGAL) {} | 94 : fColor(GrColor_ILLEGAL) {} |
| 95 | 95 |
| 96 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ | 96 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ |
| 97 const CircleEdgeEffect& ce = args.fGP.cast<CircleEdgeEffect>(); | 97 const CircleEdgeEffect& ce = args.fGP.cast<CircleEdgeEffect>(); |
| 98 GrGLGPBuilder* pb = args.fPB; | 98 GrGLSLGPBuilder* pb = args.fPB; |
| 99 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); | 99 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
| 100 | 100 |
| 101 // emit attributes | 101 // emit attributes |
| 102 vsBuilder->emitAttributes(ce); | 102 vsBuilder->emitAttributes(ce); |
| 103 | 103 |
| 104 GrGLVertToFrag v(kVec4f_GrSLType); | 104 GrGLSLVertToFrag v(kVec4f_GrSLType); |
| 105 args.fPB->addVarying("CircleEdge", &v); | 105 args.fPB->addVarying("CircleEdge", &v); |
| 106 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), ce.inCircleEdge()->fNa
me); | 106 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), ce.inCircleEdge()->fNa
me); |
| 107 | 107 |
| 108 // setup pass through color | 108 // setup pass through color |
| 109 if (!ce.colorIgnored()) { | 109 if (!ce.colorIgnored()) { |
| 110 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); | 110 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); |
| 111 } | 111 } |
| 112 | 112 |
| 113 // Setup position | 113 // Setup position |
| 114 this->setupPosition(pb, gpArgs, ce.inPosition()->fName); | 114 this->setupPosition(pb, gpArgs, ce.inPosition()->fName); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 | 236 |
| 237 inline bool isStroked() const { return fStroke; } | 237 inline bool isStroked() const { return fStroke; } |
| 238 | 238 |
| 239 class GLProcessor : public GrGLGeometryProcessor { | 239 class GLProcessor : public GrGLGeometryProcessor { |
| 240 public: | 240 public: |
| 241 GLProcessor() | 241 GLProcessor() |
| 242 : fColor(GrColor_ILLEGAL) {} | 242 : fColor(GrColor_ILLEGAL) {} |
| 243 | 243 |
| 244 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ | 244 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ |
| 245 const EllipseEdgeEffect& ee = args.fGP.cast<EllipseEdgeEffect>(); | 245 const EllipseEdgeEffect& ee = args.fGP.cast<EllipseEdgeEffect>(); |
| 246 GrGLGPBuilder* pb = args.fPB; | 246 GrGLSLGPBuilder* pb = args.fPB; |
| 247 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); | 247 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
| 248 | 248 |
| 249 // emit attributes | 249 // emit attributes |
| 250 vsBuilder->emitAttributes(ee); | 250 vsBuilder->emitAttributes(ee); |
| 251 | 251 |
| 252 GrGLVertToFrag ellipseOffsets(kVec2f_GrSLType); | 252 GrGLSLVertToFrag ellipseOffsets(kVec2f_GrSLType); |
| 253 args.fPB->addVarying("EllipseOffsets", &ellipseOffsets); | 253 args.fPB->addVarying("EllipseOffsets", &ellipseOffsets); |
| 254 vsBuilder->codeAppendf("%s = %s;", ellipseOffsets.vsOut(), | 254 vsBuilder->codeAppendf("%s = %s;", ellipseOffsets.vsOut(), |
| 255 ee.inEllipseOffset()->fName); | 255 ee.inEllipseOffset()->fName); |
| 256 | 256 |
| 257 GrGLVertToFrag ellipseRadii(kVec4f_GrSLType); | 257 GrGLSLVertToFrag ellipseRadii(kVec4f_GrSLType); |
| 258 args.fPB->addVarying("EllipseRadii", &ellipseRadii); | 258 args.fPB->addVarying("EllipseRadii", &ellipseRadii); |
| 259 vsBuilder->codeAppendf("%s = %s;", ellipseRadii.vsOut(), | 259 vsBuilder->codeAppendf("%s = %s;", ellipseRadii.vsOut(), |
| 260 ee.inEllipseRadii()->fName); | 260 ee.inEllipseRadii()->fName); |
| 261 | 261 |
| 262 // setup pass through color | 262 // setup pass through color |
| 263 if (!ee.colorIgnored()) { | 263 if (!ee.colorIgnored()) { |
| 264 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); | 264 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); |
| 265 } | 265 } |
| 266 | 266 |
| 267 // Setup position | 267 // Setup position |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 | 411 |
| 412 inline Mode getMode() const { return fMode; } | 412 inline Mode getMode() const { return fMode; } |
| 413 | 413 |
| 414 class GLProcessor : public GrGLGeometryProcessor { | 414 class GLProcessor : public GrGLGeometryProcessor { |
| 415 public: | 415 public: |
| 416 GLProcessor() | 416 GLProcessor() |
| 417 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {} | 417 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {} |
| 418 | 418 |
| 419 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { | 419 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override { |
| 420 const DIEllipseEdgeEffect& ee = args.fGP.cast<DIEllipseEdgeEffect>()
; | 420 const DIEllipseEdgeEffect& ee = args.fGP.cast<DIEllipseEdgeEffect>()
; |
| 421 GrGLGPBuilder* pb = args.fPB; | 421 GrGLSLGPBuilder* pb = args.fPB; |
| 422 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); | 422 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
| 423 | 423 |
| 424 // emit attributes | 424 // emit attributes |
| 425 vsBuilder->emitAttributes(ee); | 425 vsBuilder->emitAttributes(ee); |
| 426 | 426 |
| 427 GrGLVertToFrag offsets0(kVec2f_GrSLType); | 427 GrGLSLVertToFrag offsets0(kVec2f_GrSLType); |
| 428 args.fPB->addVarying("EllipseOffsets0", &offsets0); | 428 args.fPB->addVarying("EllipseOffsets0", &offsets0); |
| 429 vsBuilder->codeAppendf("%s = %s;", offsets0.vsOut(), | 429 vsBuilder->codeAppendf("%s = %s;", offsets0.vsOut(), |
| 430 ee.inEllipseOffsets0()->fName); | 430 ee.inEllipseOffsets0()->fName); |
| 431 | 431 |
| 432 GrGLVertToFrag offsets1(kVec2f_GrSLType); | 432 GrGLSLVertToFrag offsets1(kVec2f_GrSLType); |
| 433 args.fPB->addVarying("EllipseOffsets1", &offsets1); | 433 args.fPB->addVarying("EllipseOffsets1", &offsets1); |
| 434 vsBuilder->codeAppendf("%s = %s;", offsets1.vsOut(), | 434 vsBuilder->codeAppendf("%s = %s;", offsets1.vsOut(), |
| 435 ee.inEllipseOffsets1()->fName); | 435 ee.inEllipseOffsets1()->fName); |
| 436 | 436 |
| 437 // setup pass through color | 437 // setup pass through color |
| 438 if (!ee.colorIgnored()) { | 438 if (!ee.colorIgnored()) { |
| 439 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); | 439 this->setupUniformColor(pb, args.fOutputColor, &fColorUniform); |
| 440 } | 440 } |
| 441 | 441 |
| 442 // Setup position | 442 // Setup position |
| (...skipping 1587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2030 } | 2030 } |
| 2031 | 2031 |
| 2032 DRAW_BATCH_TEST_DEFINE(RRectBatch) { | 2032 DRAW_BATCH_TEST_DEFINE(RRectBatch) { |
| 2033 SkMatrix viewMatrix = GrTest::TestMatrixRectStaysRect(random); | 2033 SkMatrix viewMatrix = GrTest::TestMatrixRectStaysRect(random); |
| 2034 GrColor color = GrRandomColor(random); | 2034 GrColor color = GrRandomColor(random); |
| 2035 const SkRRect& rrect = GrTest::TestRRectSimple(random); | 2035 const SkRRect& rrect = GrTest::TestRRectSimple(random); |
| 2036 return create_rrect_batch(color, viewMatrix, rrect, GrTest::TestStrokeRec(ra
ndom)); | 2036 return create_rrect_batch(color, viewMatrix, rrect, GrTest::TestStrokeRec(ra
ndom)); |
| 2037 } | 2037 } |
| 2038 | 2038 |
| 2039 #endif | 2039 #endif |
| OLD | NEW |