| Index: src/gpu/GrGpu.h
|
| diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
|
| index a49b2c28fd9802c41749912c7bf84792f0ef0be5..4e9b247ca3dd9596e58f117c284ab0d694eb4c42 100644
|
| --- a/src/gpu/GrGpu.h
|
| +++ b/src/gpu/GrGpu.h
|
| @@ -20,9 +20,9 @@
|
| #include "SkTArray.h"
|
|
|
| class GrBatchTracker;
|
| -class GrBuffer;
|
| class GrContext;
|
| class GrGLContext;
|
| +class GrIndexBuffer;
|
| class GrMesh;
|
| class GrNonInstancedVertices;
|
| class GrPath;
|
| @@ -36,6 +36,8 @@
|
| class GrStencilAttachment;
|
| class GrSurface;
|
| class GrTexture;
|
| +class GrTransferBuffer;
|
| +class GrVertexBuffer;
|
|
|
| class GrGpu : public SkRefCnt {
|
| public:
|
| @@ -127,11 +129,39 @@
|
| GrRenderTarget* wrapBackendTextureAsRenderTarget(const GrBackendTextureDesc&, GrWrapOwnership);
|
|
|
| /**
|
| - * Creates a buffer.
|
| - *
|
| - * @return the buffer if successful, otherwise nullptr.
|
| - */
|
| - GrBuffer* createBuffer(GrBufferType, size_t size, GrAccessPattern);
|
| + * Creates a vertex buffer.
|
| + *
|
| + * @param size size in bytes of the vertex buffer
|
| + * @param dynamic hints whether the data will be frequently changed
|
| + * by either GrVertexBuffer::map() or
|
| + * GrVertexBuffer::updateData().
|
| + *
|
| + * @return The vertex buffer if successful, otherwise nullptr.
|
| + */
|
| + GrVertexBuffer* createVertexBuffer(size_t size, bool dynamic);
|
| +
|
| + /**
|
| + * Creates an index buffer.
|
| + *
|
| + * @param size size in bytes of the index buffer
|
| + * @param dynamic hints whether the data will be frequently changed
|
| + * by either GrIndexBuffer::map() or
|
| + * GrIndexBuffer::updateData().
|
| + *
|
| + * @return The index buffer if successful, otherwise nullptr.
|
| + */
|
| + GrIndexBuffer* createIndexBuffer(size_t size, bool dynamic);
|
| +
|
| + /**
|
| + * 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.
|
| @@ -268,22 +298,22 @@
|
| size_t rowBytes);
|
|
|
| /**
|
| - * Updates the pixels in a rectangle of a surface using a buffer
|
| - *
|
| - * @param surface The surface to write to.
|
| - * @param left left edge of the rectangle to write (inclusive)
|
| - * @param top top edge of the rectangle to write (inclusive)
|
| - * @param width width of rectangle to write in pixels.
|
| - * @param height height of rectangle to write in pixels.
|
| - * @param config the pixel config of the source buffer
|
| - * @param transferBuffer GrBuffer to read pixels from (type must be "kCpuToGpu")
|
| - * @param offset offset from the start of the buffer
|
| - * @param rowBytes number of bytes between consecutive rows. Zero
|
| - * means rows are tightly packed.
|
| + * Updates the pixels in a rectangle of a surface using a GrTransferBuffer
|
| + *
|
| + * @param surface The surface to write to.
|
| + * @param left left edge of the rectangle to write (inclusive)
|
| + * @param top top edge of the rectangle to write (inclusive)
|
| + * @param width width of rectangle to write in pixels.
|
| + * @param height height of rectangle to write in pixels.
|
| + * @param config the pixel config of the source buffer
|
| + * @param buffer GrTransferBuffer to read pixels from
|
| + * @param offset offset from the start of the buffer
|
| + * @param rowBytes number of bytes between consecutive rows. Zero
|
| + * means rows are tightly packed.
|
| */
|
| bool transferPixels(GrSurface* surface,
|
| int left, int top, int width, int height,
|
| - GrPixelConfig config, GrBuffer* transferBuffer,
|
| + GrPixelConfig config, GrTransferBuffer* buffer,
|
| size_t offset, size_t rowBytes);
|
|
|
| /**
|
| @@ -528,7 +558,9 @@
|
| GrWrapOwnership) = 0;
|
| virtual GrRenderTarget* onWrapBackendTextureAsRenderTarget(const GrBackendTextureDesc&,
|
| GrWrapOwnership) = 0;
|
| - virtual GrBuffer* onCreateBuffer(GrBufferType, size_t size, GrAccessPattern) = 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;
|
| @@ -570,7 +602,7 @@
|
| // overridden by backend-specific derived class to perform the surface write
|
| virtual bool onTransferPixels(GrSurface*,
|
| int left, int top, int width, int height,
|
| - GrPixelConfig config, GrBuffer* transferBuffer,
|
| + GrPixelConfig config, GrTransferBuffer* buffer,
|
| size_t offset, size_t rowBytes) = 0;
|
|
|
| // overridden by backend-specific derived class to perform the resolve
|
|
|