aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrAARectRenderer.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-12-03 06:24:10 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-03 06:24:10 -0800
commit2dd1ae016d7f297b433c3ea3a771ef8e01657c1f (patch)
tree96aa03d4b4b1802490cb5b769627b75f3de4a470 /src/gpu/GrAARectRenderer.cpp
parent960fb50a1a7ac76fd51e22983812f26bfffa6d1e (diff)
First step to moving vertex attributes to the geometryProcessor
Diffstat (limited to 'src/gpu/GrAARectRenderer.cpp')
-rw-r--r--src/gpu/GrAARectRenderer.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/gpu/GrAARectRenderer.cpp b/src/gpu/GrAARectRenderer.cpp
index edb59d04d8..95fe8c9b7f 100644
--- a/src/gpu/GrAARectRenderer.cpp
+++ b/src/gpu/GrAARectRenderer.cpp
@@ -27,18 +27,17 @@ enum CoverageAttribType {
}
static CoverageAttribType set_rect_attribs(GrDrawState* drawState) {
+ uint32_t flags = GrDefaultGeoProcFactory::kColor_GPType;
if (drawState->canTweakAlphaForCoverage()) {
- drawState->setGeometryProcessor(
- GrDefaultGeoProcFactory::CreateAndSetAttribs(
- drawState,
- GrDefaultGeoProcFactory::kColor_GPType))->unref();
+ drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(flags))->unref();
+ SkASSERT(drawState->getGeometryProcessor()->getVertexStride() ==
+ sizeof(GrDefaultGeoProcFactory::PositionColorAttr));
return kUseColor_CoverageAttribType;
} else {
- drawState->setGeometryProcessor(
- GrDefaultGeoProcFactory::CreateAndSetAttribs(
- drawState,
- GrDefaultGeoProcFactory::kColor_GPType |
- GrDefaultGeoProcFactory::kCoverage_GPType))->unref();
+ flags |= GrDefaultGeoProcFactory::kCoverage_GPType;
+ drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(flags))->unref();
+ SkASSERT(drawState->getGeometryProcessor()->getVertexStride() ==
+ sizeof(GrDefaultGeoProcFactory::PositionColorCoverageAttr));
return kUseCoverage_CoverageAttribType;
}
}
@@ -190,7 +189,8 @@ void GrAARectRenderer::geometryFillAARect(GrDrawTarget* target,
drawState->setHint(GrDrawState::kVertexColorsAreOpaque_Hint, true);
}
- GrDrawTarget::AutoReleaseGeometry geo(target, 8, drawState->getVertexStride(), 0);
+ size_t vstride = drawState->getGeometryProcessor()->getVertexStride();
+ GrDrawTarget::AutoReleaseGeometry geo(target, 8, vstride, 0);
if (!geo.succeeded()) {
SkDebugf("Failed to get space for vertices!\n");
return;
@@ -209,7 +209,6 @@ void GrAARectRenderer::geometryFillAARect(GrDrawTarget* target,
}
intptr_t verts = reinterpret_cast<intptr_t>(geo.vertices());
- size_t vstride = drawState->getVertexStride();
SkPoint* fan0Pos = reinterpret_cast<SkPoint*>(verts);
SkPoint* fan1Pos = reinterpret_cast<SkPoint*>(verts + 4 * vstride);
@@ -395,7 +394,8 @@ void GrAARectRenderer::geometryStrokeAARect(GrDrawTarget* target,
int outerVertexNum = miterStroke ? 4 : 8;
int totalVertexNum = (outerVertexNum + innerVertexNum) * 2;
- GrDrawTarget::AutoReleaseGeometry geo(target, totalVertexNum, drawState->getVertexStride(), 0);
+ size_t vstride = drawState->getGeometryProcessor()->getVertexStride();
+ GrDrawTarget::AutoReleaseGeometry geo(target, totalVertexNum, vstride, 0);
if (!geo.succeeded()) {
SkDebugf("Failed to get space for vertices!\n");
return;
@@ -407,7 +407,6 @@ void GrAARectRenderer::geometryStrokeAARect(GrDrawTarget* target,
}
intptr_t verts = reinterpret_cast<intptr_t>(geo.vertices());
- size_t vstride = drawState->getVertexStride();
// We create vertices for four nested rectangles. There are two ramps from 0 to full
// coverage, one on the exterior of the stroke and the other on the interior.