OLD | NEW |
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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 | 307 |
308 namespace { | 308 namespace { |
309 // Should the coverage be multiplied into the color attrib or use a separate att
rib. | 309 // Should the coverage be multiplied into the color attrib or use a separate att
rib. |
310 enum CoverageAttribType { | 310 enum CoverageAttribType { |
311 kUseColor_CoverageAttribType, | 311 kUseColor_CoverageAttribType, |
312 kUseCoverage_CoverageAttribType, | 312 kUseCoverage_CoverageAttribType, |
313 }; | 313 }; |
314 } | 314 } |
315 | 315 |
316 void GrAARectRenderer::GeometryFillAARect(GrDrawTarget* target, | 316 void GrAARectRenderer::GeometryFillAARect(GrDrawTarget* target, |
317 GrPipelineBuilder* pipelineBuilder, | 317 const GrPipelineBuilder& pipelineBuild
er, |
318 GrColor color, | 318 GrColor color, |
319 const SkMatrix& viewMatrix, | 319 const SkMatrix& viewMatrix, |
320 const SkRect& rect, | 320 const SkRect& rect, |
321 const SkRect& devRect) { | 321 const SkRect& devRect) { |
322 AAFillRectBatch::Geometry geometry; | 322 AAFillRectBatch::Geometry geometry; |
323 geometry.fRect = rect; | 323 geometry.fRect = rect; |
324 geometry.fViewMatrix = viewMatrix; | 324 geometry.fViewMatrix = viewMatrix; |
325 geometry.fDevRect = devRect; | 325 geometry.fDevRect = devRect; |
326 geometry.fColor = color; | 326 geometry.fColor = color; |
327 | 327 |
328 | 328 |
329 SkAutoTUnref<GrBatch> batch(AAFillRectBatch::Create(geometry)); | 329 SkAutoTUnref<GrBatch> batch(AAFillRectBatch::Create(geometry)); |
330 target->drawBatch(pipelineBuilder, batch); | 330 target->drawBatch(pipelineBuilder, batch); |
331 } | 331 } |
332 | 332 |
333 void GrAARectRenderer::StrokeAARect(GrDrawTarget* target, | 333 void GrAARectRenderer::StrokeAARect(GrDrawTarget* target, |
334 GrPipelineBuilder* pipelineBuilder, | 334 const GrPipelineBuilder& pipelineBuilder, |
335 GrColor color, | 335 GrColor color, |
336 const SkMatrix& viewMatrix, | 336 const SkMatrix& viewMatrix, |
337 const SkRect& rect, | 337 const SkRect& rect, |
338 const SkRect& devRect, | 338 const SkRect& devRect, |
339 const SkStrokeRec& stroke) { | 339 const SkStrokeRec& stroke) { |
340 SkVector devStrokeSize; | 340 SkVector devStrokeSize; |
341 SkScalar width = stroke.getWidth(); | 341 SkScalar width = stroke.getWidth(); |
342 if (width > 0) { | 342 if (width > 0) { |
343 devStrokeSize.set(width, width); | 343 devStrokeSize.set(width, width); |
344 viewMatrix.mapVectors(&devStrokeSize, 1); | 344 viewMatrix.mapVectors(&devStrokeSize, 1); |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
766 bool fCoverageIgnored; | 766 bool fCoverageIgnored; |
767 bool fMiterStroke; | 767 bool fMiterStroke; |
768 bool fCanTweakAlphaForCoverage; | 768 bool fCanTweakAlphaForCoverage; |
769 }; | 769 }; |
770 | 770 |
771 BatchTracker fBatch; | 771 BatchTracker fBatch; |
772 SkSTArray<1, Geometry, true> fGeoData; | 772 SkSTArray<1, Geometry, true> fGeoData; |
773 }; | 773 }; |
774 | 774 |
775 void GrAARectRenderer::GeometryStrokeAARect(GrDrawTarget* target, | 775 void GrAARectRenderer::GeometryStrokeAARect(GrDrawTarget* target, |
776 GrPipelineBuilder* pipelineBuilder, | 776 const GrPipelineBuilder& pipelineBui
lder, |
777 GrColor color, | 777 GrColor color, |
778 const SkMatrix& viewMatrix, | 778 const SkMatrix& viewMatrix, |
779 const SkRect& devOutside, | 779 const SkRect& devOutside, |
780 const SkRect& devOutsideAssist, | 780 const SkRect& devOutsideAssist, |
781 const SkRect& devInside, | 781 const SkRect& devInside, |
782 bool miterStroke) { | 782 bool miterStroke) { |
783 AAStrokeRectBatch::Geometry geometry; | 783 AAStrokeRectBatch::Geometry geometry; |
784 geometry.fColor = color; | 784 geometry.fColor = color; |
785 geometry.fDevOutside = devOutside; | 785 geometry.fDevOutside = devOutside; |
786 geometry.fDevOutsideAssist = devOutsideAssist; | 786 geometry.fDevOutsideAssist = devOutsideAssist; |
787 geometry.fDevInside = devInside; | 787 geometry.fDevInside = devInside; |
788 geometry.fMiterStroke = miterStroke; | 788 geometry.fMiterStroke = miterStroke; |
789 | 789 |
790 SkAutoTUnref<GrBatch> batch(AAStrokeRectBatch::Create(geometry, viewMatrix))
; | 790 SkAutoTUnref<GrBatch> batch(AAStrokeRectBatch::Create(geometry, viewMatrix))
; |
791 target->drawBatch(pipelineBuilder, batch); | 791 target->drawBatch(pipelineBuilder, batch); |
792 } | 792 } |
793 | 793 |
794 void GrAARectRenderer::FillAANestedRects(GrDrawTarget* target, | 794 void GrAARectRenderer::FillAANestedRects(GrDrawTarget* target, |
795 GrPipelineBuilder* pipelineBuilder, | 795 const GrPipelineBuilder& pipelineBuilde
r, |
796 GrColor color, | 796 GrColor color, |
797 const SkMatrix& viewMatrix, | 797 const SkMatrix& viewMatrix, |
798 const SkRect rects[2]) { | 798 const SkRect rects[2]) { |
799 SkASSERT(viewMatrix.rectStaysRect()); | 799 SkASSERT(viewMatrix.rectStaysRect()); |
800 SkASSERT(!rects[0].isEmpty() && !rects[1].isEmpty()); | 800 SkASSERT(!rects[0].isEmpty() && !rects[1].isEmpty()); |
801 | 801 |
802 SkRect devOutside, devInside; | 802 SkRect devOutside, devInside; |
803 viewMatrix.mapRect(&devOutside, rects[0]); | 803 viewMatrix.mapRect(&devOutside, rects[0]); |
804 viewMatrix.mapRect(&devInside, rects[1]); | 804 viewMatrix.mapRect(&devInside, rects[1]); |
805 | 805 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 geo.fColor = GrRandomColor(random); | 841 geo.fColor = GrRandomColor(random); |
842 geo.fDevOutside = outside; | 842 geo.fDevOutside = outside; |
843 geo.fDevOutsideAssist = outsideAssist; | 843 geo.fDevOutsideAssist = outsideAssist; |
844 geo.fDevInside = inside; | 844 geo.fDevInside = inside; |
845 geo.fMiterStroke = miterStroke; | 845 geo.fMiterStroke = miterStroke; |
846 | 846 |
847 return AAStrokeRectBatch::Create(geo, GrTest::TestMatrix(random)); | 847 return AAStrokeRectBatch::Create(geo, GrTest::TestMatrix(random)); |
848 } | 848 } |
849 | 849 |
850 #endif | 850 #endif |
OLD | NEW |