Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: src/gpu/GrOvalRenderer.cpp

Issue 1099873002: Undo the bounds mapping of bounds for GrOvalRenderer for certain draws (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Missed mapRect Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrOvalRenderer.cpp
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index 90e5ab0be106b5d459c83e6ec475cbbcd48cfc65..4d333503ca058f40d2c585d3f793caadc1d06c48 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);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698