aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-11-17 14:22:48 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-17 14:22:49 -0800
commit9853ccef19c200be93a6211f32589fa82a53067c (patch)
treefd07ff890581f7df7b99021e5bc42f75539c6050 /gm
parentb079ec682d6f049e5f0df83efa41a1eaa50215c6 (diff)
Drawstate on stack
Diffstat (limited to 'gm')
-rw-r--r--gm/beziereffects.cpp42
-rw-r--r--gm/convexpolyeffect.cpp34
-rw-r--r--gm/rrects.cpp12
-rw-r--r--gm/texturedomaineffect.cpp12
-rw-r--r--gm/yuvtorgbeffect.cpp12
5 files changed, 54 insertions, 58 deletions
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index 0e811d9c05..3de47d3be2 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -158,10 +158,10 @@ protected:
context->getTestTarget(&tt);
SkASSERT(tt.target());
- GrDrawState* drawState = tt.target()->drawState();
- drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+ GrDrawState ds;
+ ds.setVertexAttribs<kAttribs>(2, sizeof(Vertex));
- GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+ GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, ds.getVertexStride(), 0);
Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
@@ -173,12 +173,12 @@ protected:
verts[v].fKLM[2] = eval_line(verts[v].fPosition, klmEqs + 6, 1.f);
}
- drawState->setGeometryProcessor(gp);
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
+ ds.setGeometryProcessor(gp);
+ ds.setRenderTarget(rt);
+ ds.setColor(0xff000000);
tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
- tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
+ tt.target()->drawIndexed(&ds, kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
}
++col;
if (numCols == col) {
@@ -315,10 +315,10 @@ protected:
context->getTestTarget(&tt);
SkASSERT(tt.target());
- GrDrawState* drawState = tt.target()->drawState();
- drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+ GrDrawState ds;
+ ds.setVertexAttribs<kAttribs>(2, sizeof(Vertex));
- GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+ GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, ds.getVertexStride(), 0);
Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
@@ -330,12 +330,12 @@ protected:
verts[v].fKLM[2] = eval_line(verts[v].fPosition, klmEqs + 6, 1.f);
}
- drawState->setGeometryProcessor(gp);
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
+ ds.setGeometryProcessor(gp);
+ ds.setRenderTarget(rt);
+ ds.setColor(0xff000000);
tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
- tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
+ tt.target()->drawIndexed(&ds, kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
}
++col;
if (numCols == col) {
@@ -503,10 +503,10 @@ protected:
context->getTestTarget(&tt);
SkASSERT(tt.target());
- GrDrawState* drawState = tt.target()->drawState();
- drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+ GrDrawState ds;
+ ds.setVertexAttribs<kAttribs>(2, sizeof(Vertex));
- GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+ GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, ds.getVertexStride(), 0);
Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
@@ -516,12 +516,12 @@ protected:
GrPathUtils::QuadUVMatrix DevToUV(pts);
DevToUV.apply<4, sizeof(Vertex), sizeof(SkPoint)>(verts);
- drawState->setGeometryProcessor(gp);
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
+ ds.setGeometryProcessor(gp);
+ ds.setRenderTarget(rt);
+ ds.setColor(0xff000000);
tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
- tt.target()->drawIndexed(kTriangles_GrPrimitiveType, 0, 0, 4, 6);
+ tt.target()->drawIndexed(&ds, kTriangles_GrPrimitiveType, 0, 0, 4, 6);
}
++col;
if (numCols == col) {
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 9f4c48b4eb..8ee4a5db6f 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -121,8 +121,6 @@ protected:
SkDEBUGFAIL("Couldn't get Gr test target.");
return;
}
- GrDrawState* drawState = tt.target()->drawState();
-
SkMatrix m;
SkPath p;
m.setTranslate(x, y);
@@ -133,13 +131,15 @@ protected:
if (!fp) {
continue;
}
- drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(false))->unref();
- drawState->addCoverageProcessor(fp);
- drawState->setIdentityViewMatrix();
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
- GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+ GrDrawState ds;
+ ds.setGeometryProcessor(GrDefaultGeoProcFactory::Create(false))->unref();
+ ds.addCoverageProcessor(fp);
+ ds.setIdentityViewMatrix();
+ ds.setRenderTarget(rt);
+ ds.setColor(0xff000000);
+
+ GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, ds.getVertexStride(), 0);
SkPoint* verts = reinterpret_cast<SkPoint*>(geo.vertices());
SkRect bounds = p.getBounds();
@@ -149,7 +149,7 @@ protected:
bounds.toQuad(verts);
tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
- tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
+ tt.target()->drawIndexed(&ds, kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
x += SkScalarCeilToScalar(path->getBounds().width() + 10.f);
}
@@ -188,14 +188,14 @@ protected:
continue;
}
- GrDrawState* drawState = tt.target()->drawState();
- drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(false))->unref();
- drawState->addCoverageProcessor(fp);
- drawState->setIdentityViewMatrix();
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
+ GrDrawState ds;
+ ds.setGeometryProcessor(GrDefaultGeoProcFactory::Create(false))->unref();
+ ds.addCoverageProcessor(fp);
+ ds.setIdentityViewMatrix();
+ ds.setRenderTarget(rt);
+ ds.setColor(0xff000000);
- GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+ GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, ds.getVertexStride(), 0);
SkPoint* verts = reinterpret_cast<SkPoint*>(geo.vertices());
SkRect bounds = rect;
@@ -203,7 +203,7 @@ protected:
bounds.toQuad(verts);
tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
- tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
+ tt.target()->drawIndexed(&ds, kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
x += SkScalarCeilToScalar(rect.width() + 10.f);
}
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index b0496e3d77..34e6bdb582 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -112,7 +112,7 @@ protected:
SkDEBUGFAIL("Couldn't get Gr test target.");
return;
}
- GrDrawState* drawState = tt.target()->drawState();
+ GrDrawState drawState;
SkRRect rrect = fRRects[curRRect];
rrect.offset(SkIntToScalar(x), SkIntToScalar(y));
@@ -120,15 +120,15 @@ protected:
SkAutoTUnref<GrFragmentProcessor> fp(GrRRectEffect::Create(edgeType,
rrect));
if (fp) {
- drawState->addCoverageProcessor(fp);
- drawState->setIdentityViewMatrix();
- drawState->setRenderTarget(rt);
- drawState->setColor(0xff000000);
+ drawState.addCoverageProcessor(fp);
+ drawState.setIdentityViewMatrix();
+ drawState.setRenderTarget(rt);
+ drawState.setColor(0xff000000);
SkRect bounds = rrect.getBounds();
bounds.outset(2.f, 2.f);
- tt.target()->drawSimpleRect(bounds);
+ tt.target()->drawSimpleRect(&drawState, bounds);
} else {
drew = false;
}
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index d235f7f86b..efa753183a 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -90,8 +90,6 @@ protected:
return;
}
- GrDrawState* drawState = tt.target()->drawState();
-
SkAutoTUnref<GrTexture> texture(GrRefCachedBitmapTexture(context, fBmp, NULL));
if (!texture) {
return;
@@ -132,12 +130,12 @@ protected:
}
SkMatrix viewMatrix;
viewMatrix.setTranslate(x, y);
- drawState->reset(viewMatrix);
- drawState->setRenderTarget(rt);
- drawState->setColor(0xffffffff);
- drawState->addColorProcessor(fp);
+ GrDrawState drawState(viewMatrix);
+ drawState.setRenderTarget(rt);
+ drawState.setColor(0xffffffff);
+ drawState.addColorProcessor(fp);
- tt.target()->drawSimpleRect(renderRect);
+ tt.target()->drawSimpleRect(&drawState, renderRect);
x += renderRect.width() + kTestPad;
}
y += renderRect.height() + kTestPad;
diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index b5c6b95314..5e7a940e0b 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -81,8 +81,6 @@ protected:
return;
}
- GrDrawState* drawState = tt.target()->drawState();
-
SkAutoTUnref<GrTexture> texture[3];
texture[0].reset(GrRefCachedBitmapTexture(context, fBmp[0], NULL));
texture[1].reset(GrRefCachedBitmapTexture(context, fBmp[1], NULL));
@@ -117,11 +115,11 @@ protected:
if (fp) {
SkMatrix viewMatrix;
viewMatrix.setTranslate(x, y);
- drawState->reset(viewMatrix);
- drawState->setRenderTarget(rt);
- drawState->setColor(0xffffffff);
- drawState->addColorProcessor(fp);
- tt.target()->drawSimpleRect(renderRect);
+ GrDrawState drawState(viewMatrix);
+ drawState.setRenderTarget(rt);
+ drawState.setColor(0xffffffff);
+ drawState.addColorProcessor(fp);
+ tt.target()->drawSimpleRect(&drawState, renderRect);
}
x += renderRect.width() + kTestPad;
}