diff options
author | 2014-11-17 14:22:48 -0800 | |
---|---|---|
committer | 2014-11-17 14:22:49 -0800 | |
commit | 9853ccef19c200be93a6211f32589fa82a53067c (patch) | |
tree | fd07ff890581f7df7b99021e5bc42f75539c6050 /gm | |
parent | b079ec682d6f049e5f0df83efa41a1eaa50215c6 (diff) |
Drawstate on stack
BUG=skia:
Review URL: https://codereview.chromium.org/732693002
Diffstat (limited to 'gm')
-rw-r--r-- | gm/beziereffects.cpp | 42 | ||||
-rw-r--r-- | gm/convexpolyeffect.cpp | 34 | ||||
-rw-r--r-- | gm/rrects.cpp | 12 | ||||
-rw-r--r-- | gm/texturedomaineffect.cpp | 12 | ||||
-rw-r--r-- | gm/yuvtorgbeffect.cpp | 12 |
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; } |