Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index dd33cff39f166cef5a137208b0783f3ac9c87896..beeb01aced79d1caf4c7e66e72005b03998ca4f2 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -31,6 +31,7 @@ class GrRenderTarget; |
class GrStencilAttachment; |
class GrSurface; |
class GrTexture; |
+class GrTransferBuffer; |
class GrVertexBuffer; |
class GrVertices; |
@@ -128,6 +129,22 @@ public: |
*/ |
GrIndexBuffer* createIndexBuffer(size_t size, bool dynamic); |
+ enum TransferType { |
+ kCpuToGpu_TransferType, |
+ kGpuToCpu_TransferType |
+ }; |
+ |
+ /** |
+ * Creates a transfer buffer. |
+ * |
+ * @param size size in bytes of the index buffer |
+ * @param toGpu true if used to transfer from the cpu to the gpu |
+ * otherwise to be used to transfer from the gpu to the cpu |
+ * |
+ * @return The transfer buffer if successful, otherwise nullptr. |
+ */ |
+ GrTransferBuffer* createTransferBuffer(size_t size, TransferType type); |
+ |
/** |
* Resolves MSAA. |
*/ |
@@ -452,6 +469,7 @@ private: |
GrWrapOwnership) = 0; |
virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) = 0; |
virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) = 0; |
+ virtual GrTransferBuffer* onCreateTransferBuffer(size_t size, TransferType type) = 0; |
// overridden by backend-specific derived class to perform the clear. |
virtual void onClear(GrRenderTarget*, const SkIRect& rect, GrColor color) = 0; |