diff options
author | 2016-03-25 01:54:54 -0700 | |
---|---|---|
committer | 2016-03-25 01:54:55 -0700 | |
commit | 8b1bff29675afd25843439eade634a57f68fe16f (patch) | |
tree | 07e7676e54f5520b14e2e1896c64e96b4f61f3c3 /src/gpu/batches/GrTessellatingPathRenderer.cpp | |
parent | 6b3eacb0dfaeb3374d410c8c041bd39cd066e1ea (diff) |
Consolidate GPU buffer implementations
Consolidates all the different buffer implementations into a single
GrBuffer class. This will allow us to add new buffer types, use DSA in
OpenGL, track buffer bindings by unique ID, cache buffers without
respect to the type of data they have been used for previously, etc.
This change is strictly a refactor; it introduces no change in
functionality.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002
Review URL: https://codereview.chromium.org/1825393002
Diffstat (limited to 'src/gpu/batches/GrTessellatingPathRenderer.cpp')
-rw-r--r-- | src/gpu/batches/GrTessellatingPathRenderer.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/gpu/batches/GrTessellatingPathRenderer.cpp b/src/gpu/batches/GrTessellatingPathRenderer.cpp index c00e8ecbe6..4ba01884dc 100644 --- a/src/gpu/batches/GrTessellatingPathRenderer.cpp +++ b/src/gpu/batches/GrTessellatingPathRenderer.cpp @@ -45,7 +45,7 @@ private: } }; -bool cache_match(GrVertexBuffer* vertexBuffer, SkScalar tol, int* actualCount) { +bool cache_match(GrBuffer* vertexBuffer, SkScalar tol, int* actualCount) { if (!vertexBuffer) { return false; } @@ -68,8 +68,8 @@ public: } SkPoint* lock(int vertexCount) override { size_t size = vertexCount * sizeof(SkPoint); - fVertexBuffer.reset(fResourceProvider->createVertexBuffer( - size, GrResourceProvider::kStatic_BufferUsage, 0)); + fVertexBuffer.reset(fResourceProvider->createBuffer( + kVertex_GrBufferType, size, kStatic_GrAccessPattern, 0)); if (!fVertexBuffer.get()) { return nullptr; } @@ -89,9 +89,9 @@ public: } fVertices = nullptr; } - GrVertexBuffer* vertexBuffer() { return fVertexBuffer.get(); } + GrBuffer* vertexBuffer() { return fVertexBuffer.get(); } private: - SkAutoTUnref<GrVertexBuffer> fVertexBuffer; + SkAutoTUnref<GrBuffer> fVertexBuffer; GrResourceProvider* fResourceProvider; bool fCanMapVB; SkPoint* fVertices; @@ -158,8 +158,7 @@ private: fStroke.asUniqueKeyFragment(&builder[2 + clipBoundsSize32]); builder.finish(); GrResourceProvider* rp = target->resourceProvider(); - SkAutoTUnref<GrVertexBuffer> cachedVertexBuffer( - rp->findAndRefTByUniqueKey<GrVertexBuffer>(key)); + SkAutoTUnref<GrBuffer> cachedVertexBuffer(rp->findAndRefTByUniqueKey<GrBuffer>(key)); int actualCount; SkScalar screenSpaceTol = GrPathUtils::kDefaultTolerance; SkScalar tol = GrPathUtils::scaleToleranceToSrc( @@ -226,7 +225,7 @@ private: this->draw(target, gp.get()); } - void drawVertices(Target* target, const GrGeometryProcessor* gp, const GrVertexBuffer* vb, + void drawVertices(Target* target, const GrGeometryProcessor* gp, const GrBuffer* vb, int firstVertex, int count) const { SkASSERT(gp->getVertexStride() == sizeof(SkPoint)); |