Refactor how Gr handles vertex and index data. GrGpu and GrInOrderDrawBuffer both GrBufferAllocPool to manage reserved and set-to-array vertex and index data.
rietveld issue 4188049
git-svn-id: http://skia.googlecode.com/svn/trunk@786 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/include/GrVertexBuffer.h b/gpu/include/GrVertexBuffer.h
index 5e83de9..3792c15 100644
--- a/gpu/include/GrVertexBuffer.h
+++ b/gpu/include/GrVertexBuffer.h
@@ -18,75 +18,14 @@
#ifndef GrVertexBuffer_DEFINED
#define GrVertexBuffer_DEFINED
-#include "GrRefCnt.h"
+#include "GrGeometryBuffer.h"
-class GrVertexBuffer : public GrRefCnt {
+class GrVertexBuffer : public GrGeometryBuffer {
protected:
- GrVertexBuffer(uint32_t sizeInBytes, bool dynamic) :
- fSizeInBytes(sizeInBytes),
- fDynamic(dynamic) {}
-public:
- virtual ~GrVertexBuffer() {}
-
- /**
- Retrieves the size of the vertex buffer
-
- @return the size of the vertex buffer in bytes
- */
- uint32_t size() { return fSizeInBytes; }
-
- /**
- Retrieves whether the vertex buffer was created with the dynamic flag
-
- @return true if the vertex buffer was created with the dynamic flag
- */
- bool dynamic() const { return fDynamic; }
-
- /**
- Indicates that GPU context in which this veretx buffer was created is
- destroyed and that Ganesh should not attempt to free the texture with the
- underlying API.
- */
- virtual void abandon() = 0;
-
- /**
- Locks the vertex buffer to be written by the CPU.
-
- The previous content of the vertex buffer is invalidated. It is an error to
- draw whil the buffer is locked. It is an error to call lock on an already
- locked vertex buffer.
-
- @return a pointer to the vertex data or NULL if the lock fails.
- */
- virtual void* lock() = 0;
-
- /**
- Unlocks the vertex buffer.
-
- The pointer returned by the previous lock call will no longer be valid.
- */
- virtual void unlock() = 0;
-
- /**
- Queries whether the vertex buffer has been locked.
-
- @return true if the vertex buffer is locked, false otherwise.
- */
- virtual bool isLocked() const = 0;
-
- /**
- Updates the vertex buffer data.
-
- The size of the vertex buffer will be preserved. However, only the updated
- region will have defined contents.
-
- @return returns true if the update succeeds, false otherwise.
- */
- virtual bool updateData(const void* src, uint32_t srcSizeInBytes) = 0;
-
+ GrVertexBuffer(size_t sizeInBytes, bool dynamic) :
+ INHERITED(sizeInBytes, dynamic) {}
private:
- uint32_t fSizeInBytes;
- bool fDynamic;
+ typedef GrGeometryBuffer INHERITED;
};
#endif