diff options
author | bsalomon <bsalomon@google.com> | 2015-05-04 10:36:42 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-04 10:36:43 -0700 |
commit | ed0bcad9c8147fd37c23bdda00ec27ec9ef8d66b (patch) | |
tree | 5eba6a70d867c2e7124f06a9670088afe9cd0d99 /gm | |
parent | d8ed1b64a6c85a8364c23e825164b7bebb43a3a0 (diff) |
Move instanced index buffer creation to flush time
Committed: https://skia.googlesource.com/skia/+/ab622c7b8cc8c39f0a594e4392b9e31b7e1ddb26
Review URL: https://codereview.chromium.org/1116943004
Diffstat (limited to 'gm')
-rw-r--r-- | gm/beziereffects.cpp | 18 | ||||
-rw-r--r-- | gm/convexpolyeffect.cpp | 9 |
2 files changed, 17 insertions, 10 deletions
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index 182d71aaf6..6568422898 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -16,6 +16,7 @@ #include "GrBufferAllocPool.h" #include "GrContext.h" #include "GrPathUtils.h" +#include "GrResourceProvider.h" #include "GrTest.h" #include "GrTestBatch.h" #include "SkColorPriv.h" @@ -66,17 +67,18 @@ private: } void onGenerateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { - size_t vertexStride = this->geometryProcessor()->getVertexStride(); + 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 || !batchTarget->quadIndexBuffer()) { + if (!vertices || !indexBuffer) { SkDebugf("Could not allocate buffers\n"); return; } @@ -100,7 +102,7 @@ private: drawInfo.setVertexCount(kVertsPerCubic); drawInfo.setStartIndex(0); drawInfo.setIndexCount(kIndicesPerCubic); - drawInfo.setIndexBuffer(batchTarget->quadIndexBuffer()); + drawInfo.setIndexBuffer(indexBuffer); batchTarget->draw(drawInfo); } @@ -473,8 +475,10 @@ private: } void onGenerateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { - size_t vertexStride = this->geometryProcessor()->getVertexStride(); + SkAutoTUnref<const GrIndexBuffer> indexBuffer( + batchTarget->resourceProvider()->refQuadIndexBuffer()); + size_t vertexStride = this->geometryProcessor()->getVertexStride(); const GrVertexBuffer* vertexBuffer; int firstVertex; @@ -483,7 +487,7 @@ private: &vertexBuffer, &firstVertex); - if (!vertices || !batchTarget->quadIndexBuffer()) { + if (!vertices || !indexBuffer) { SkDebugf("Could not allocate buffers\n"); return; } @@ -505,7 +509,7 @@ private: drawInfo.setVertexCount(kVertsPerCubic); drawInfo.setStartIndex(0); drawInfo.setIndexCount(kIndicesPerCubic); - drawInfo.setIndexBuffer(batchTarget->quadIndexBuffer()); + drawInfo.setIndexBuffer(indexBuffer); batchTarget->draw(drawInfo); } diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 07d5fc2112..60b73c571d 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -17,6 +17,7 @@ #include "GrContext.h" #include "GrDefaultGeoProcFactory.h" #include "GrPathUtils.h" +#include "GrResourceProvider.h" #include "GrTest.h" #include "GrTestBatch.h" #include "SkColorPriv.h" @@ -52,8 +53,10 @@ private: } void onGenerateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { - size_t vertexStride = this->geometryProcessor()->getVertexStride(); + SkAutoTUnref<const GrIndexBuffer> indexBuffer( + batchTarget->resourceProvider()->refQuadIndexBuffer()); + size_t vertexStride = this->geometryProcessor()->getVertexStride(); const GrVertexBuffer* vertexBuffer; int firstVertex; @@ -62,7 +65,7 @@ private: &vertexBuffer, &firstVertex); - if (!vertices || !batchTarget->quadIndexBuffer()) { + if (!vertices || !indexBuffer) { SkDebugf("Could not allocate buffers\n"); return; } @@ -82,7 +85,7 @@ private: drawInfo.setVertexCount(kVertsPerCubic); drawInfo.setStartIndex(0); drawInfo.setIndexCount(kIndicesPerCubic); - drawInfo.setIndexBuffer(batchTarget->quadIndexBuffer()); + drawInfo.setIndexBuffer(indexBuffer); batchTarget->draw(drawInfo); } |