| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2015 Google Inc. | 3 * Copyright 2015 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 "GrAARectRenderer.h" | 9 #include "GrAARectRenderer.h" |
| 10 #include "GrAtlasTextContext.h" | 10 #include "GrAtlasTextContext.h" |
| 11 #include "GrBatchTest.h" | 11 #include "GrBatchTest.h" |
| 12 #include "GrColor.h" | 12 #include "GrColor.h" |
| 13 #include "GrDrawContext.h" | 13 #include "GrDrawContext.h" |
| 14 #include "GrOvalRenderer.h" | 14 #include "GrOvalRenderer.h" |
| 15 #include "GrPathRenderer.h" | 15 #include "GrPathRenderer.h" |
| 16 #include "GrRenderTarget.h" | 16 #include "GrRenderTarget.h" |
| 17 #include "GrRenderTargetPriv.h" | 17 #include "GrRenderTargetPriv.h" |
| 18 #include "GrStencilAndCoverTextContext.h" | 18 #include "GrStencilAndCoverTextContext.h" |
| 19 | 19 |
| 20 #include "batches/GrBatch.h" | 20 #include "batches/GrBatch.h" |
| 21 #include "batches/GrDrawAtlasBatch.h" | 21 #include "batches/GrDrawAtlasBatch.h" |
| 22 #include "batches/GrDrawVerticesBatch.h" | 22 #include "batches/GrDrawVerticesBatch.h" |
| 23 #include "batches/GrStrokeRectBatch.h" | 23 #include "batches/GrRectBatchFactory.h" |
| 24 | 24 |
| 25 #include "SkGr.h" | 25 #include "SkGr.h" |
| 26 #include "SkRSXform.h" | 26 #include "SkRSXform.h" |
| 27 | 27 |
| 28 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == fContext) | 28 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == fContext) |
| 29 #define RETURN_IF_ABANDONED if (!fDrawTarget) { return; } | 29 #define RETURN_IF_ABANDONED if (!fDrawTarget) { return; } |
| 30 #define RETURN_FALSE_IF_ABANDONED if (!fDrawTarget) { return false; } | 30 #define RETURN_FALSE_IF_ABANDONED if (!fDrawTarget) { return false; } |
| 31 #define RETURN_NULL_IF_ABANDONED if (!fDrawTarget) { return NULL; } | 31 #define RETURN_NULL_IF_ABANDONED if (!fDrawTarget) { return NULL; } |
| 32 | 32 |
| 33 class AutoCheckFlush { | 33 class AutoCheckFlush { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 pipelineBuilder, | 322 pipelineBuilder, |
| 323 color, | 323 color, |
| 324 viewMatrix, | 324 viewMatrix, |
| 325 rect, | 325 rect, |
| 326 devBoundRect); | 326 devBoundRect); |
| 327 } | 327 } |
| 328 return; | 328 return; |
| 329 } | 329 } |
| 330 | 330 |
| 331 if (width >= 0) { | 331 if (width >= 0) { |
| 332 GrStrokeRectBatch::Geometry geometry; | |
| 333 geometry.fViewMatrix = viewMatrix; | |
| 334 geometry.fColor = color; | |
| 335 geometry.fRect = rect; | |
| 336 geometry.fStrokeWidth = width; | |
| 337 | |
| 338 // Non-AA hairlines are snapped to pixel centers to make which pixels ar
e hit deterministic | 332 // Non-AA hairlines are snapped to pixel centers to make which pixels ar
e hit deterministic |
| 339 bool snapToPixelCenters = (0 == width && !rt->isUnifiedMultisampled()); | 333 bool snapToPixelCenters = (0 == width && !rt->isUnifiedMultisampled()); |
| 340 SkAutoTUnref<GrBatch> batch(GrStrokeRectBatch::Create(geometry, snapToPi
xelCenters)); | 334 SkAutoTUnref<GrBatch> batch(GrRectBatchFactory::CreateStrokeBW(color, vi
ewMatrix, rect, |
| 335 width, sn
apToPixelCenters)); |
| 341 | 336 |
| 342 // Depending on sub-pixel coordinates and the particular GPU, we may los
e a corner of | 337 // Depending on sub-pixel coordinates and the particular GPU, we may los
e a corner of |
| 343 // hairline rects. We jam all the vertices to pixel centers to avoid thi
s, but not when MSAA | 338 // hairline rects. We jam all the vertices to pixel centers to avoid thi
s, but not when MSAA |
| 344 // is enabled because it can cause ugly artifacts. | 339 // is enabled because it can cause ugly artifacts. |
| 345 pipelineBuilder.setState(GrPipelineBuilder::kSnapVerticesToPixelCenters_
Flag, | 340 pipelineBuilder.setState(GrPipelineBuilder::kSnapVerticesToPixelCenters_
Flag, |
| 346 snapToPixelCenters); | 341 snapToPixelCenters); |
| 347 fDrawTarget->drawBatch(pipelineBuilder, batch); | 342 fDrawTarget->drawBatch(pipelineBuilder, batch); |
| 348 } else { | 343 } else { |
| 349 // filled BW rect | 344 // filled BW rect |
| 350 fDrawTarget->drawSimpleRect(pipelineBuilder, color, viewMatrix, rect); | 345 fDrawTarget->drawSimpleRect(pipelineBuilder, color, viewMatrix, rect); |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 824 RETURN_FALSE_IF_ABANDONED | 819 RETURN_FALSE_IF_ABANDONED |
| 825 | 820 |
| 826 ASSERT_OWNED_RESOURCE(rt); | 821 ASSERT_OWNED_RESOURCE(rt); |
| 827 SkASSERT(rt); | 822 SkASSERT(rt); |
| 828 return true; | 823 return true; |
| 829 } | 824 } |
| 830 | 825 |
| 831 void GrDrawContext::drawBatch(GrPipelineBuilder* pipelineBuilder, GrBatch* batch
) { | 826 void GrDrawContext::drawBatch(GrPipelineBuilder* pipelineBuilder, GrBatch* batch
) { |
| 832 fDrawTarget->drawBatch(*pipelineBuilder, batch); | 827 fDrawTarget->drawBatch(*pipelineBuilder, batch); |
| 833 } | 828 } |
| OLD | NEW |