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

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

Issue 1127953003: Remove viewmatrix from GrGeometryProcessor base class (Closed) Base URL: https://skia.googlesource.com/skia.git@cleanup3
Patch Set: Created 5 years, 7 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 | « no previous file | src/gpu/GrDefaultGeoProcFactory.cpp » ('j') | src/gpu/GrDefaultGeoProcFactory.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "GrAAConvexPathRenderer.h" 9 #include "GrAAConvexPathRenderer.h"
10 10
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 args.fPB->addVarying("QuadEdge", &v); 555 args.fPB->addVarying("QuadEdge", &v);
556 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), qe.inQuadEdge()->fName ); 556 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), qe.inQuadEdge()->fName );
557 557
558 const BatchTracker& local = args.fBT.cast<BatchTracker>(); 558 const BatchTracker& local = args.fBT.cast<BatchTracker>();
559 559
560 // Setup pass through color 560 // Setup pass through color
561 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputC olor, NULL, 561 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputC olor, NULL,
562 &fColorUniform); 562 &fColorUniform);
563 563
564 // Setup position 564 // Setup position
565 this->setupPosition(pb, gpArgs, qe.inPosition()->fName, qe.viewMatri x()); 565 this->setupPosition(pb, gpArgs, qe.inPosition()->fName);
566 566
567 // emit transforms 567 // emit transforms
568 this->emitTransforms(args.fPB, gpArgs->fPositionVar, qe.inPosition() ->fName, 568 this->emitTransforms(args.fPB, gpArgs->fPositionVar, qe.inPosition() ->fName,
569 qe.localMatrix(), args.fTransformsIn, args.fTra nsformsOut); 569 qe.localMatrix(), args.fTransformsIn, args.fTra nsformsOut);
570 570
571 GrGLFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder( ); 571 GrGLFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder( );
572 572
573 SkAssertResult(fsBuilder->enableFeature( 573 SkAssertResult(fsBuilder->enableFeature(
574 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature) ); 574 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature) );
575 fsBuilder->codeAppendf("float edgeAlpha;"); 575 fsBuilder->codeAppendf("float edgeAlpha;");
(...skipping 17 matching lines...) Expand all
593 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage ); 593 fsBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage );
594 } 594 }
595 595
596 static inline void GenKey(const GrGeometryProcessor& gp, 596 static inline void GenKey(const GrGeometryProcessor& gp,
597 const GrBatchTracker& bt, 597 const GrBatchTracker& bt,
598 const GrGLSLCaps&, 598 const GrGLSLCaps&,
599 GrProcessorKeyBuilder* b) { 599 GrProcessorKeyBuilder* b) {
600 const BatchTracker& local = bt.cast<BatchTracker>(); 600 const BatchTracker& local = bt.cast<BatchTracker>();
601 uint32_t key = local.fInputColorType << 16; 601 uint32_t key = local.fInputColorType << 16;
602 key |= local.fUsesLocalCoords && gp.localMatrix().hasPerspective() ? 0x1 : 0x0; 602 key |= local.fUsesLocalCoords && gp.localMatrix().hasPerspective() ? 0x1 : 0x0;
603 key |= ComputePosKey(gp.viewMatrix()) << 1;
604 b->add32(key); 603 b->add32(key);
605 } 604 }
606 605
607 virtual void setData(const GrGLProgramDataManager& pdman, 606 virtual void setData(const GrGLProgramDataManager& pdman,
608 const GrPrimitiveProcessor& gp, 607 const GrPrimitiveProcessor& gp,
609 const GrBatchTracker& bt) override { 608 const GrBatchTracker& bt) override {
610 this->setUniformViewMatrix(pdman, gp.viewMatrix());
611
612 const BatchTracker& local = bt.cast<BatchTracker>(); 609 const BatchTracker& local = bt.cast<BatchTracker>();
613 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) { 610 if (kUniform_GrGPInput == local.fInputColorType && local.fColor != f Color) {
614 GrGLfloat c[4]; 611 GrGLfloat c[4];
615 GrColorToRGBAFloat(local.fColor, c); 612 GrColorToRGBAFloat(local.fColor, c);
616 pdman.set4fv(fColorUniform, 1, c); 613 pdman.set4fv(fColorUniform, 1, c);
617 fColor = local.fColor; 614 fColor = local.fColor;
618 } 615 }
619 } 616 }
620 617
621 private: 618 private:
(...skipping 15 matching lines...) Expand all
637 } 634 }
638 635
639 void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override { 636 void initBatchTracker(GrBatchTracker* bt, const GrPipelineInfo& init) const override {
640 BatchTracker* local = bt->cast<BatchTracker>(); 637 BatchTracker* local = bt->cast<BatchTracker>();
641 local->fInputColorType = GetColorInputType(&local->fColor, this->color() , init, false); 638 local->fInputColorType = GetColorInputType(&local->fColor, this->color() , init, false);
642 local->fUsesLocalCoords = init.fUsesLocalCoords; 639 local->fUsesLocalCoords = init.fUsesLocalCoords;
643 } 640 }
644 641
645 private: 642 private:
646 QuadEdgeEffect(GrColor color, const SkMatrix& localMatrix) 643 QuadEdgeEffect(GrColor color, const SkMatrix& localMatrix)
647 : INHERITED(SkMatrix::I(), localMatrix) 644 : INHERITED(localMatrix)
648 , fColor(color) { 645 , fColor(color) {
649 this->initClassID<QuadEdgeEffect>(); 646 this->initClassID<QuadEdgeEffect>();
650 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVe rtexAttribType)); 647 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVe rtexAttribType));
651 fInQuadEdge = &this->addVertexAttrib(Attribute("inQuadEdge", kVec4f_GrVe rtexAttribType)); 648 fInQuadEdge = &this->addVertexAttrib(Attribute("inQuadEdge", kVec4f_GrVe rtexAttribType));
652 } 649 }
653 650
654 struct BatchTracker { 651 struct BatchTracker {
655 GrGPInput fInputColorType; 652 GrGPInput fInputColorType;
656 GrColor fColor; 653 GrColor fColor;
657 bool fUsesLocalCoords; 654 bool fUsesLocalCoords;
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 BATCH_TEST_DEFINE(AAConvexPath) { 1025 BATCH_TEST_DEFINE(AAConvexPath) {
1029 AAConvexPathBatch::Geometry geometry; 1026 AAConvexPathBatch::Geometry geometry;
1030 geometry.fColor = GrRandomColor(random); 1027 geometry.fColor = GrRandomColor(random);
1031 geometry.fViewMatrix = GrTest::TestMatrix(random); 1028 geometry.fViewMatrix = GrTest::TestMatrix(random);
1032 geometry.fPath = GrTest::TestPathConvex(random); 1029 geometry.fPath = GrTest::TestPathConvex(random);
1033 1030
1034 return AAConvexPathBatch::Create(geometry); 1031 return AAConvexPathBatch::Create(geometry);
1035 } 1032 }
1036 1033
1037 #endif 1034 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrDefaultGeoProcFactory.cpp » ('j') | src/gpu/GrDefaultGeoProcFactory.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698