aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOvalRenderer.cpp
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2015-04-21 06:28:08 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-21 06:28:08 -0700
commitbc227140ffea6eb15e2e8b147eb6d8ec6228d95a (patch)
tree2a8c6f5e62338ab27074cb955c2ecfec5c474ad9 /src/gpu/GrOvalRenderer.cpp
parentdf386c54bd4b6643af42281631de42e84b07cea7 (diff)
Undo the bounds mapping of bounds for GrOvalRenderer for certain draws
Diffstat (limited to 'src/gpu/GrOvalRenderer.cpp')
-rw-r--r--src/gpu/GrOvalRenderer.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index 90e5ab0be1..4d333503ca 100644
--- a/src/gpu/GrOvalRenderer.cpp
+++ b/src/gpu/GrOvalRenderer.cpp
@@ -692,7 +692,7 @@ public:
SkScalar fInnerRadius;
SkScalar fOuterRadius;
bool fStroke;
- SkRect fBounds;
+ SkRect fDevBounds;
};
static GrBatch* Create(const Geometry& geometry) {
@@ -775,7 +775,7 @@ public:
SkScalar innerRadius = args.fInnerRadius;
SkScalar outerRadius = args.fOuterRadius;
- const SkRect& bounds = args.fBounds;
+ const SkRect& bounds = args.fDevBounds;
// The inner radius in the vertex data must be specified in normalized space.
innerRadius = innerRadius / outerRadius;
@@ -930,9 +930,7 @@ void GrOvalRenderer::drawCircle(GrDrawTarget* target,
geometry.fInnerRadius = innerRadius;
geometry.fOuterRadius = outerRadius;
geometry.fStroke = isStrokeOnly && innerRadius > 0;
- geometry.fBounds = bounds;
-
- viewMatrix.mapRect(&bounds);
+ geometry.fDevBounds = bounds;
SkAutoTUnref<GrBatch> batch(CircleBatch::Create(geometry));
target->drawBatch(pipelineBuilder, batch, &bounds);
@@ -950,7 +948,7 @@ public:
SkScalar fInnerXRadius;
SkScalar fInnerYRadius;
bool fStroke;
- SkRect fBounds;
+ SkRect fDevBounds;
};
static GrBatch* Create(const Geometry& geometry) {
@@ -1038,7 +1036,7 @@ public:
SkScalar xInnerRadRecip = SkScalarInvert(args.fInnerXRadius);
SkScalar yInnerRadRecip = SkScalarInvert(args.fInnerYRadius);
- const SkRect& bounds = args.fBounds;
+ const SkRect& bounds = args.fDevBounds;
// The inner radius in the vertex data must be specified in normalized space.
verts[0].fPos = SkPoint::Make(bounds.fLeft, bounds.fTop);
@@ -1229,9 +1227,7 @@ bool GrOvalRenderer::drawEllipse(GrDrawTarget* target,
geometry.fInnerXRadius = innerXRadius;
geometry.fInnerYRadius = innerYRadius;
geometry.fStroke = isStrokeOnly && innerXRadius > 0 && innerYRadius > 0;
- geometry.fBounds = bounds;
-
- viewMatrix.mapRect(&bounds);
+ geometry.fDevBounds = bounds;
SkAutoTUnref<GrBatch> batch(EllipseBatch::Create(geometry));
target->drawBatch(pipelineBuilder, batch, &bounds);
@@ -1642,7 +1638,7 @@ public:
SkScalar fInnerRadius;
SkScalar fOuterRadius;
bool fStroke;
- SkRect fBounds;
+ SkRect fDevBounds;
};
static GrBatch* Create(const Geometry& geometry, const GrIndexBuffer* indexBuffer) {
@@ -1725,7 +1721,7 @@ public:
SkScalar outerRadius = args.fOuterRadius;
- const SkRect& bounds = args.fBounds;
+ const SkRect& bounds = args.fDevBounds;
SkScalar yCoords[4] = {
bounds.fTop,
@@ -1851,7 +1847,7 @@ public:
SkScalar fInnerXRadius;
SkScalar fInnerYRadius;
bool fStroke;
- SkRect fBounds;
+ SkRect fDevBounds;
};
static GrBatch* Create(const Geometry& geometry, const GrIndexBuffer* indexBuffer) {
@@ -1942,7 +1938,7 @@ public:
SkScalar xOuterRadius = args.fXRadius + SK_ScalarHalf;
SkScalar yOuterRadius = args.fYRadius + SK_ScalarHalf;
- const SkRect& bounds = args.fBounds;
+ const SkRect& bounds = args.fDevBounds;
SkScalar yCoords[4] = {
bounds.fTop,
@@ -2174,9 +2170,7 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
geometry.fInnerRadius = innerRadius;
geometry.fOuterRadius = outerRadius;
geometry.fStroke = isStrokeOnly;
- geometry.fBounds = bounds;
-
- viewMatrix.mapRect(&bounds);
+ geometry.fDevBounds = bounds;
SkAutoTUnref<GrBatch> batch(RRectCircleRendererBatch::Create(geometry, indexBuffer));
target->drawBatch(pipelineBuilder, batch, &bounds);
@@ -2228,9 +2222,7 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
geometry.fInnerXRadius = innerXRadius;
geometry.fInnerYRadius = innerYRadius;
geometry.fStroke = isStrokeOnly;
- geometry.fBounds = bounds;
-
- viewMatrix.mapRect(&bounds);
+ geometry.fDevBounds = bounds;
SkAutoTUnref<GrBatch> batch(RRectEllipseRendererBatch::Create(geometry, indexBuffer));
target->drawBatch(pipelineBuilder, batch, &bounds);