Chromium Code Reviews| Index: src/gpu/batches/GrNonAAStrokeRectBatch.cpp |
| diff --git a/src/gpu/batches/GrNonAAStrokeRectBatch.cpp b/src/gpu/batches/GrNonAAStrokeRectBatch.cpp |
| index 299d995fc70251347b605f49fc2928018d6c3829..048f5615c9c031609b0742d8bbd87829aac22bb2 100644 |
| --- a/src/gpu/batches/GrNonAAStrokeRectBatch.cpp |
| +++ b/src/gpu/batches/GrNonAAStrokeRectBatch.cpp |
| @@ -72,24 +72,25 @@ public: |
| batch->fRect.sort(); |
| batch->fStrokeWidth = stroke.getWidth(); |
| - batch->fBounds = batch->fRect; |
| SkScalar rad = SkScalarHalf(batch->fStrokeWidth); |
| - batch->fBounds.outset(rad, rad); |
| - batch->fViewMatrix.mapRect(&batch->fBounds); |
| + SkRect bounds = rect; |
| + bounds.outset(rad, rad); |
| // If our caller snaps to pixel centers then we have to round out the bounds |
| if (snapToPixelCenters) { |
| + viewMatrix.mapRect(&bounds); |
| // We want to be consistent with how we snap non-aa lines. To match what we do in |
| // GrGLSLVertexShaderBuilder, we first floor all the vertex values and then add half a |
| // pixel to force us to pixel centers. |
| - batch->fBounds.set(SkScalarFloorToScalar(batch->fBounds.fLeft), |
| - SkScalarFloorToScalar(batch->fBounds.fTop), |
| - SkScalarFloorToScalar(batch->fBounds.fRight), |
| - SkScalarFloorToScalar(batch->fBounds.fBottom)); |
| - batch->fBounds.offset(0.5f, 0.5f); |
| - |
| - // Round out the bounds to integer values |
| - batch->fBounds.roundOut(); |
| + bounds.set(SkScalarFloorToScalar(bounds.fLeft), |
| + SkScalarFloorToScalar(bounds.fTop), |
| + SkScalarFloorToScalar(bounds.fRight), |
| + SkScalarFloorToScalar(bounds.fBottom)); |
| + bounds.offset(0.5f, 0.5f); |
|
robertphillips
2016/07/07 20:26:42
xtra space here ?
bsalomon
2016/07/07 23:40:57
Done.
|
| + batch->setBounds(bounds, HasAABloat ::kNo, IsZeroArea::kNo); |
| + } else { |
| + batch->setTransformedBounds(bounds, batch->fViewMatrix, HasAABloat ::kNo, |
| + IsZeroArea::kNo); |
| } |
| return batch; |
| } |