diff options
author | bsalomon <bsalomon@google.com> | 2015-05-05 07:49:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-05 07:49:49 -0700 |
commit | b5238a7571c243ba4a154a62575570c3078b3741 (patch) | |
tree | d9c8ca8982b2b17c4e5d0ed5025f5efb81e7c2c5 /gm/convexpolyeffect.cpp | |
parent | 119468b71f8f4f45657ab30ead331be665de5a57 (diff) |
Start on simplifying generateGeometry() overrides
Committed: https://skia.googlesource.com/skia/+/f28381c6866cad92af8ebe5b9d2db074613b1963
Review URL: https://codereview.chromium.org/1122673002
Diffstat (limited to 'gm/convexpolyeffect.cpp')
-rw-r--r-- | gm/convexpolyeffect.cpp | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 60b73c571d..cd9b3d10e5 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -17,7 +17,6 @@ #include "GrContext.h" #include "GrDefaultGeoProcFactory.h" #include "GrPathUtils.h" -#include "GrResourceProvider.h" #include "GrTest.h" #include "GrTestBatch.h" #include "SkColorPriv.h" @@ -53,47 +52,24 @@ private: } void onGenerateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { - SkAutoTUnref<const GrIndexBuffer> indexBuffer( - batchTarget->resourceProvider()->refQuadIndexBuffer()); - size_t vertexStride = this->geometryProcessor()->getVertexStride(); - const GrVertexBuffer* vertexBuffer; - int firstVertex; - - void* vertices = batchTarget->vertexPool()->makeSpace(vertexStride, - kVertsPerCubic, - &vertexBuffer, - &firstVertex); - - if (!vertices || !indexBuffer) { - SkDebugf("Could not allocate buffers\n"); + SkASSERT(vertexStride == sizeof(SkPoint)); + QuadHelper helper; + SkPoint* verts = reinterpret_cast<SkPoint*>(helper.init(batchTarget, vertexStride, 1)); + if (!verts) { return; } - SkASSERT(vertexStride == sizeof(SkPoint)); - SkPoint* verts = reinterpret_cast<SkPoint*>(vertices); - // Make sure any artifacts around the exterior of path are visible by using overly // conservative bounding geometry. fGeometry.fBounds.outset(5.f, 5.f); fGeometry.fBounds.toQuad(verts); - GrDrawTarget::DrawInfo drawInfo; - drawInfo.setPrimitiveType(kTriangleFan_GrPrimitiveType); - drawInfo.setVertexBuffer(vertexBuffer); - drawInfo.setStartVertex(firstVertex); - drawInfo.setVertexCount(kVertsPerCubic); - drawInfo.setStartIndex(0); - drawInfo.setIndexCount(kIndicesPerCubic); - drawInfo.setIndexBuffer(indexBuffer); - batchTarget->draw(drawInfo); + helper.issueDraws(batchTarget); } Geometry fGeometry; - static const int kVertsPerCubic = 4; - static const int kIndicesPerCubic = 6; - typedef GrTestBatch INHERITED; }; |