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

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

Issue 1121463002: Move bounds to GrBatch (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: tweaks 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 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 "GrAARectRenderer.h" 8 #include "GrAARectRenderer.h"
9 #include "GrBatch.h" 9 #include "GrBatch.h"
10 #include "GrBatchTarget.h" 10 #include "GrBatchTarget.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 } 179 }
180 } 180 }
181 181
182 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } 182 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; }
183 183
184 private: 184 private:
185 AAFillRectBatch(const Geometry& geometry, const GrIndexBuffer* indexBuffer) 185 AAFillRectBatch(const Geometry& geometry, const GrIndexBuffer* indexBuffer)
186 : fIndexBuffer(indexBuffer) { 186 : fIndexBuffer(indexBuffer) {
187 this->initClassID<AAFillRectBatch>(); 187 this->initClassID<AAFillRectBatch>();
188 fGeoData.push_back(geometry); 188 fGeoData.push_back(geometry);
189
190 this->setBounds(geometry.fDevRect);
189 } 191 }
190 192
191 GrColor color() const { return fBatch.fColor; } 193 GrColor color() const { return fBatch.fColor; }
192 bool usesLocalCoords() const { return fBatch.fUsesLocalCoords; } 194 bool usesLocalCoords() const { return fBatch.fUsesLocalCoords; }
193 bool canTweakAlphaForCoverage() const { return fBatch.fCanTweakAlphaForCover age; } 195 bool canTweakAlphaForCoverage() const { return fBatch.fCanTweakAlphaForCover age; }
194 bool colorIgnored() const { return fBatch.fColorIgnored; } 196 bool colorIgnored() const { return fBatch.fColorIgnored; }
195 const SkMatrix& viewMatrix() const { return fGeoData[0].fViewMatrix; } 197 const SkMatrix& viewMatrix() const { return fGeoData[0].fViewMatrix; }
196 198
197 bool onCombineIfPossible(GrBatch* t) override { 199 bool onCombineIfPossible(GrBatch* t) override {
198 AAFillRectBatch* that = t->cast<AAFillRectBatch>(); 200 AAFillRectBatch* that = t->cast<AAFillRectBatch>();
(...skipping 10 matching lines...) Expand all
209 fBatch.fColor = GrColor_ILLEGAL; 211 fBatch.fColor = GrColor_ILLEGAL;
210 } 212 }
211 213
212 // In the event of two batches, one who can tweak, one who cannot, we ju st fall back to 214 // In the event of two batches, one who can tweak, one who cannot, we ju st fall back to
213 // not tweaking 215 // not tweaking
214 if (this->canTweakAlphaForCoverage() != that->canTweakAlphaForCoverage() ) { 216 if (this->canTweakAlphaForCoverage() != that->canTweakAlphaForCoverage() ) {
215 fBatch.fCanTweakAlphaForCoverage = false; 217 fBatch.fCanTweakAlphaForCoverage = false;
216 } 218 }
217 219
218 fGeoData.push_back_n(that->geoData()->count(), that->geoData()->begin()) ; 220 fGeoData.push_back_n(that->geoData()->count(), that->geoData()->begin()) ;
221 this->joinBounds(that->bounds());
219 return true; 222 return true;
220 } 223 }
221 224
222 void generateAAFillRectGeometry(void* vertices, 225 void generateAAFillRectGeometry(void* vertices,
223 size_t offset, 226 size_t offset,
224 size_t vertexStride, 227 size_t vertexStride,
225 GrColor color, 228 GrColor color,
226 const SkMatrix& viewMatrix, 229 const SkMatrix& viewMatrix,
227 const SkRect& rect, 230 const SkRect& rect,
228 const SkRect& devRect, 231 const SkRect& devRect,
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 return; 472 return;
470 } 473 }
471 474
472 AAFillRectBatch::Geometry geometry; 475 AAFillRectBatch::Geometry geometry;
473 geometry.fRect = rect; 476 geometry.fRect = rect;
474 geometry.fViewMatrix = viewMatrix; 477 geometry.fViewMatrix = viewMatrix;
475 geometry.fDevRect = devRect; 478 geometry.fDevRect = devRect;
476 geometry.fColor = color; 479 geometry.fColor = color;
477 480
478 SkAutoTUnref<GrBatch> batch(AAFillRectBatch::Create(geometry, fAAFillRectInd exBuffer)); 481 SkAutoTUnref<GrBatch> batch(AAFillRectBatch::Create(geometry, fAAFillRectInd exBuffer));
479 target->drawBatch(pipelineBuilder, batch, &devRect); 482 target->drawBatch(pipelineBuilder, batch);
480 } 483 }
481 484
482 void GrAARectRenderer::strokeAARect(GrDrawTarget* target, 485 void GrAARectRenderer::strokeAARect(GrDrawTarget* target,
483 GrPipelineBuilder* pipelineBuilder, 486 GrPipelineBuilder* pipelineBuilder,
484 GrColor color, 487 GrColor color,
485 const SkMatrix& viewMatrix, 488 const SkMatrix& viewMatrix,
486 const SkRect& rect, 489 const SkRect& rect,
487 const SkRect& devRect, 490 const SkRect& devRect,
488 const SkStrokeRec& stroke) { 491 const SkStrokeRec& stroke) {
489 SkVector devStrokeSize; 492 SkVector devStrokeSize;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 689
687 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } 690 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; }
688 691
689 private: 692 private:
690 AAStrokeRectBatch(const Geometry& geometry, const SkMatrix& viewMatrix, 693 AAStrokeRectBatch(const Geometry& geometry, const SkMatrix& viewMatrix,
691 const GrIndexBuffer* indexBuffer) 694 const GrIndexBuffer* indexBuffer)
692 : fIndexBuffer(indexBuffer) { 695 : fIndexBuffer(indexBuffer) {
693 this->initClassID<AAStrokeRectBatch>(); 696 this->initClassID<AAStrokeRectBatch>();
694 fBatch.fViewMatrix = viewMatrix; 697 fBatch.fViewMatrix = viewMatrix;
695 fGeoData.push_back(geometry); 698 fGeoData.push_back(geometry);
699
robertphillips 2015/05/01 13:02:59 fDevOutsideAssist joined with fDevOutside ?
700 // TODO tighter bounds
701 this->setBoundsLargest();
696 } 702 }
697 703
698 GrColor color() const { return fBatch.fColor; } 704 GrColor color() const { return fBatch.fColor; }
699 bool usesLocalCoords() const { return fBatch.fUsesLocalCoords; } 705 bool usesLocalCoords() const { return fBatch.fUsesLocalCoords; }
700 bool canTweakAlphaForCoverage() const { return fBatch.fCanTweakAlphaForCover age; } 706 bool canTweakAlphaForCoverage() const { return fBatch.fCanTweakAlphaForCover age; }
701 bool colorIgnored() const { return fBatch.fColorIgnored; } 707 bool colorIgnored() const { return fBatch.fColorIgnored; }
702 const SkMatrix& viewMatrix() const { return fBatch.fViewMatrix; } 708 const SkMatrix& viewMatrix() const { return fBatch.fViewMatrix; }
703 bool miterStroke() const { return fBatch.fMiterStroke; } 709 bool miterStroke() const { return fBatch.fMiterStroke; }
704 710
705 bool onCombineIfPossible(GrBatch* t) override { 711 bool onCombineIfPossible(GrBatch* t) override {
(...skipping 14 matching lines...) Expand all
720 // In the event of two batches, one who can tweak, one who cannot, we ju st fall back to 726 // In the event of two batches, one who can tweak, one who cannot, we ju st fall back to
721 // not tweaking 727 // not tweaking
722 if (this->canTweakAlphaForCoverage() != that->canTweakAlphaForCoverage() ) { 728 if (this->canTweakAlphaForCoverage() != that->canTweakAlphaForCoverage() ) {
723 fBatch.fCanTweakAlphaForCoverage = false; 729 fBatch.fCanTweakAlphaForCoverage = false;
724 } 730 }
725 731
726 if (this->color() != that->color()) { 732 if (this->color() != that->color()) {
727 fBatch.fColor = GrColor_ILLEGAL; 733 fBatch.fColor = GrColor_ILLEGAL;
728 } 734 }
729 fGeoData.push_back_n(that->geoData()->count(), that->geoData()->begin()) ; 735 fGeoData.push_back_n(that->geoData()->count(), that->geoData()->begin()) ;
736 this->joinBounds(that->bounds());
730 return true; 737 return true;
731 } 738 }
732 739
733 void generateAAStrokeRectGeometry(void* vertices, 740 void generateAAStrokeRectGeometry(void* vertices,
734 size_t offset, 741 size_t offset,
735 size_t vertexStride, 742 size_t vertexStride,
736 int outerVertexNum, 743 int outerVertexNum,
737 int innerVertexNum, 744 int innerVertexNum,
738 GrColor color, 745 GrColor color,
739 const SkRect& devOutside, 746 const SkRect& devOutside,
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 geo.fColor = GrRandomColor(random); 962 geo.fColor = GrRandomColor(random);
956 geo.fDevOutside = outside; 963 geo.fDevOutside = outside;
957 geo.fDevOutsideAssist = outsideAssist; 964 geo.fDevOutsideAssist = outsideAssist;
958 geo.fDevInside = inside; 965 geo.fDevInside = inside;
959 geo.fMiterStroke = miterStroke; 966 geo.fMiterStroke = miterStroke;
960 967
961 return AAStrokeRectBatch::Create(geo, GrTest::TestMatrix(random), indexBuffe r); 968 return AAStrokeRectBatch::Create(geo, GrTest::TestMatrix(random), indexBuffe r);
962 } 969 }
963 970
964 #endif 971 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698