| Index: src/gpu/GrOvalRenderer.cpp
|
| diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
|
| index f33944fa7b11558c90cf8350cd8e45132c1b8d43..90e5ab0be106b5d459c83e6ec475cbbcd48cfc65 100644
|
| --- a/src/gpu/GrOvalRenderer.cpp
|
| +++ b/src/gpu/GrOvalRenderer.cpp
|
| @@ -692,7 +692,7 @@ public:
|
| SkScalar fInnerRadius;
|
| SkScalar fOuterRadius;
|
| bool fStroke;
|
| - SkRect fDevBounds;
|
| + SkRect fBounds;
|
| };
|
|
|
| static GrBatch* Create(const Geometry& geometry) {
|
| @@ -775,7 +775,7 @@ public:
|
| SkScalar innerRadius = args.fInnerRadius;
|
| SkScalar outerRadius = args.fOuterRadius;
|
|
|
| - const SkRect& bounds = args.fDevBounds;
|
| + const SkRect& bounds = args.fBounds;
|
|
|
| // The inner radius in the vertex data must be specified in normalized space.
|
| innerRadius = innerRadius / outerRadius;
|
| @@ -930,7 +930,9 @@ void GrOvalRenderer::drawCircle(GrDrawTarget* target,
|
| geometry.fInnerRadius = innerRadius;
|
| geometry.fOuterRadius = outerRadius;
|
| geometry.fStroke = isStrokeOnly && innerRadius > 0;
|
| - geometry.fDevBounds = bounds;
|
| + geometry.fBounds = bounds;
|
| +
|
| + viewMatrix.mapRect(&bounds);
|
|
|
| SkAutoTUnref<GrBatch> batch(CircleBatch::Create(geometry));
|
| target->drawBatch(pipelineBuilder, batch, &bounds);
|
| @@ -948,7 +950,7 @@ public:
|
| SkScalar fInnerXRadius;
|
| SkScalar fInnerYRadius;
|
| bool fStroke;
|
| - SkRect fDevBounds;
|
| + SkRect fBounds;
|
| };
|
|
|
| static GrBatch* Create(const Geometry& geometry) {
|
| @@ -1036,7 +1038,7 @@ public:
|
| SkScalar xInnerRadRecip = SkScalarInvert(args.fInnerXRadius);
|
| SkScalar yInnerRadRecip = SkScalarInvert(args.fInnerYRadius);
|
|
|
| - const SkRect& bounds = args.fDevBounds;
|
| + const SkRect& bounds = args.fBounds;
|
|
|
| // The inner radius in the vertex data must be specified in normalized space.
|
| verts[0].fPos = SkPoint::Make(bounds.fLeft, bounds.fTop);
|
| @@ -1227,7 +1229,9 @@ bool GrOvalRenderer::drawEllipse(GrDrawTarget* target,
|
| geometry.fInnerXRadius = innerXRadius;
|
| geometry.fInnerYRadius = innerYRadius;
|
| geometry.fStroke = isStrokeOnly && innerXRadius > 0 && innerYRadius > 0;
|
| - geometry.fDevBounds = bounds;
|
| + geometry.fBounds = bounds;
|
| +
|
| + viewMatrix.mapRect(&bounds);
|
|
|
| SkAutoTUnref<GrBatch> batch(EllipseBatch::Create(geometry));
|
| target->drawBatch(pipelineBuilder, batch, &bounds);
|
| @@ -1249,7 +1253,7 @@ public:
|
| SkScalar fGeoDx;
|
| SkScalar fGeoDy;
|
| DIEllipseEdgeEffect::Mode fMode;
|
| - SkRect fDevBounds;
|
| + SkRect fBounds;
|
| };
|
|
|
| static GrBatch* Create(const Geometry& geometry) {
|
| @@ -1326,7 +1330,7 @@ public:
|
| SkScalar xRadius = args.fXRadius;
|
| SkScalar yRadius = args.fYRadius;
|
|
|
| - const SkRect& bounds = args.fDevBounds;
|
| + const SkRect& bounds = args.fBounds;
|
|
|
| // This adjusts the "radius" to include the half-pixel border
|
| SkScalar offsetDx = SkScalarDiv(args.fGeoDx, xRadius);
|
| @@ -1508,7 +1512,9 @@ bool GrOvalRenderer::drawDIEllipse(GrDrawTarget* target,
|
| geometry.fGeoDx = geoDx;
|
| geometry.fGeoDy = geoDy;
|
| geometry.fMode = mode;
|
| - geometry.fDevBounds = bounds;
|
| + geometry.fBounds = bounds;
|
| +
|
| + viewMatrix.mapRect(&bounds);
|
|
|
| SkAutoTUnref<GrBatch> batch(DIEllipseBatch::Create(geometry));
|
| target->drawBatch(pipelineBuilder, batch, &bounds);
|
| @@ -1636,7 +1642,7 @@ public:
|
| SkScalar fInnerRadius;
|
| SkScalar fOuterRadius;
|
| bool fStroke;
|
| - SkRect fDevBounds;
|
| + SkRect fBounds;
|
| };
|
|
|
| static GrBatch* Create(const Geometry& geometry, const GrIndexBuffer* indexBuffer) {
|
| @@ -1719,7 +1725,7 @@ public:
|
|
|
| SkScalar outerRadius = args.fOuterRadius;
|
|
|
| - const SkRect& bounds = args.fDevBounds;
|
| + const SkRect& bounds = args.fBounds;
|
|
|
| SkScalar yCoords[4] = {
|
| bounds.fTop,
|
| @@ -1845,7 +1851,7 @@ public:
|
| SkScalar fInnerXRadius;
|
| SkScalar fInnerYRadius;
|
| bool fStroke;
|
| - SkRect fDevBounds;
|
| + SkRect fBounds;
|
| };
|
|
|
| static GrBatch* Create(const Geometry& geometry, const GrIndexBuffer* indexBuffer) {
|
| @@ -1936,7 +1942,7 @@ public:
|
| SkScalar xOuterRadius = args.fXRadius + SK_ScalarHalf;
|
| SkScalar yOuterRadius = args.fYRadius + SK_ScalarHalf;
|
|
|
| - const SkRect& bounds = args.fDevBounds;
|
| + const SkRect& bounds = args.fBounds;
|
|
|
| SkScalar yCoords[4] = {
|
| bounds.fTop,
|
| @@ -2168,7 +2174,9 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
|
| geometry.fInnerRadius = innerRadius;
|
| geometry.fOuterRadius = outerRadius;
|
| geometry.fStroke = isStrokeOnly;
|
| - geometry.fDevBounds = bounds;
|
| + geometry.fBounds = bounds;
|
| +
|
| + viewMatrix.mapRect(&bounds);
|
|
|
| SkAutoTUnref<GrBatch> batch(RRectCircleRendererBatch::Create(geometry, indexBuffer));
|
| target->drawBatch(pipelineBuilder, batch, &bounds);
|
| @@ -2220,7 +2228,9 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
|
| geometry.fInnerXRadius = innerXRadius;
|
| geometry.fInnerYRadius = innerYRadius;
|
| geometry.fStroke = isStrokeOnly;
|
| - geometry.fDevBounds = bounds;
|
| + geometry.fBounds = bounds;
|
| +
|
| + viewMatrix.mapRect(&bounds);
|
|
|
| SkAutoTUnref<GrBatch> batch(RRectEllipseRendererBatch::Create(geometry, indexBuffer));
|
| target->drawBatch(pipelineBuilder, batch, &bounds);
|
|
|