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); |