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