aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-17 18:01:38 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-17 18:01:38 +0000
commitd7c37425805d5909ed5601bf2fbf14d5c8b4c86b (patch)
treebff3b5d2b96c00ce549cdfe48b01b2701393f209 /src
parent7d01ec478ff95967c2f318c928a8e00ac37fd7ab (diff)
Revert "Revert "Revert "Pass bounds into draw calls in path renderers."""
git-svn-id: http://skia.googlecode.com/svn/trunk@9181 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r--src/gpu/GrAAConvexPathRenderer.cpp6
-rw-r--r--src/gpu/GrAAHairLinePathRenderer.cpp10
-rw-r--r--src/gpu/GrDefaultPathRenderer.cpp15
-rw-r--r--src/gpu/GrPathRenderer.cpp12
-rw-r--r--src/gpu/GrPathRenderer.h18
5 files changed, 12 insertions, 49 deletions
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index 93404b44a3..fc6cae68c6 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -660,9 +660,6 @@ bool GrAAConvexPathRenderer::onDrawPath(const SkPath& origPath,
SkSTArray<kPreallocDrawCnt, Draw, true> draws;
create_vertices(segments, fanPt, &draws, verts, idxs);
- SkRect devBounds;
- GetPathDevBounds(origPath, drawState->getRenderTarget(), adcd.getOriginalMatrix(), &devBounds);
-
int vOffset = 0;
for (int i = 0; i < draws.count(); ++i) {
const Draw& draw = draws[i];
@@ -670,8 +667,7 @@ bool GrAAConvexPathRenderer::onDrawPath(const SkPath& origPath,
vOffset, // start vertex
0, // start index
draw.fVertexCnt,
- draw.fIndexCnt,
- &devBounds);
+ draw.fIndexCnt);
vOffset += draw.fVertexCnt;
}
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 498283dfad..da54ed643c 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -791,7 +791,6 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path,
GrDrawTarget::AutoStateRestore asr(target, GrDrawTarget::kPreserve_ASRInit);
GrDrawState* drawState = target->drawState();
- const SkMatrix originalVM = drawState->getViewMatrix();
GrDrawState::AutoDeviceCoordDraw adcd;
// createGeom transforms the geometry to device space when the matrix does not have
@@ -817,9 +816,6 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path,
GrEffectRef* hairLineEffect = HairLineEdgeEffect::Create();
GrEffectRef* hairQuadEffect = HairQuadEdgeEffect::Create();
- SkRect devBounds;
- GetPathDevBounds(path, drawState->getRenderTarget(), originalVM, &devBounds);
-
target->setIndexSourceToBuffer(fLinesIndexBuffer);
int lines = 0;
int nBufLines = fLinesIndexBuffer->maxQuads();
@@ -830,8 +826,7 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path,
kVertsPerLineSeg*lines, // startV
0, // startI
kVertsPerLineSeg*n, // vCount
- kIdxsPerLineSeg*n,
- &devBounds); // iCount
+ kIdxsPerLineSeg*n); // iCount
lines += n;
}
@@ -844,8 +839,7 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path,
4 * lineCnt + kVertsPerQuad*quads, // startV
0, // startI
kVertsPerQuad*n, // vCount
- kIdxsPerQuad*n, // iCount
- &devBounds);
+ kIdxsPerQuad*n); // iCount
quads += n;
}
target->resetIndexSource();
diff --git a/src/gpu/GrDefaultPathRenderer.cpp b/src/gpu/GrDefaultPathRenderer.cpp
index 87deb9c406..43809ed6a3 100644
--- a/src/gpu/GrDefaultPathRenderer.cpp
+++ b/src/gpu/GrDefaultPathRenderer.cpp
@@ -445,9 +445,7 @@ bool GrDefaultPathRenderer::internalDrawPath(const SkPath& path,
}
}
- SkRect devBounds;
- GetPathDevBounds(path, drawState->getRenderTarget(), viewM, &devBounds);
-
+ {
for (int p = 0; p < passCount; ++p) {
drawState->setDrawFace(drawFace[p]);
if (NULL != passes[p]) {
@@ -462,8 +460,10 @@ bool GrDefaultPathRenderer::internalDrawPath(const SkPath& path,
GrDrawState::AutoDeviceCoordDraw adcd;
if (reverse) {
GrAssert(NULL != drawState->getRenderTarget());
- // draw over the dev bounds (which will be the whole dst surface for inv fill).
- bounds = devBounds;
+ // draw over the whole world.
+ bounds.setLTRB(0, 0,
+ SkIntToScalar(drawState->getRenderTarget()->width()),
+ SkIntToScalar(drawState->getRenderTarget()->height()));
SkMatrix vmi;
// mapRect through persp matrix may not be correct
if (!drawState->getViewMatrix().hasPerspective() &&
@@ -483,12 +483,13 @@ bool GrDefaultPathRenderer::internalDrawPath(const SkPath& path,
}
if (indexCnt) {
target->drawIndexed(primType, 0, 0,
- vertexCnt, indexCnt, &devBounds);
+ vertexCnt, indexCnt);
} else {
- target->drawNonIndexed(primType, 0, vertexCnt, &devBounds);
+ target->drawNonIndexed(primType, 0, vertexCnt);
}
}
}
+ }
return true;
}
diff --git a/src/gpu/GrPathRenderer.cpp b/src/gpu/GrPathRenderer.cpp
index e88db22b30..e0d2682bcd 100644
--- a/src/gpu/GrPathRenderer.cpp
+++ b/src/gpu/GrPathRenderer.cpp
@@ -12,15 +12,3 @@ SK_DEFINE_INST_COUNT(GrPathRenderer)
GrPathRenderer::GrPathRenderer() {
}
-
-void GrPathRenderer::GetPathDevBounds(const SkPath& path,
- int devW, int devH,
- const SkMatrix& matrix,
- SkRect* bounds) {
- if (path.isInverseFillType()) {
- *bounds = SkRect::MakeWH(SkIntToScalar(devW), SkIntToScalar(devH));
- return;
- }
- *bounds = path.getBounds();
- matrix.mapRect(bounds);
-}
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h
index 3d4c993c52..ebd464ffb3 100644
--- a/src/gpu/GrPathRenderer.h
+++ b/src/gpu/GrPathRenderer.h
@@ -1,4 +1,4 @@
-
+
/*
* Copyright 2011 Google Inc.
*
@@ -173,22 +173,6 @@ protected:
this->drawPath(path, stroke, target, false);
}
- // Helper for getting the device bounds of a path. Inverse filled paths will have bounds set
- // by devSize. Non-inverse path bounds will not necessarily be clipped to devSize.
- static void GetPathDevBounds(const SkPath& path,
- int devW,
- int devH,
- const SkMatrix& matrix,
- SkRect* bounds);
-
- // Helper version that gets the dev width and height from a GrSurface.
- static void GetPathDevBounds(const SkPath& path,
- const GrSurface* device,
- const SkMatrix& matrix,
- SkRect* bounds) {
- GetPathDevBounds(path, device->width(), device->height(), matrix, bounds);
- }
-
private:
typedef GrRefCnt INHERITED;