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/GrIndexBuffer.h b/gpu/include/GrIndexBuffer.h
index 0f4c4d6..85ff749 100644
--- a/gpu/include/GrIndexBuffer.h
+++ b/gpu/include/GrIndexBuffer.h
@@ -18,75 +18,14 @@
#ifndef GrIndexBuffer_DEFINED
#define GrIndexBuffer_DEFINED
-#include "GrRefCnt.h"
+#include "GrGeometryBuffer.h"
-class GrIndexBuffer : public GrRefCnt {
+class GrIndexBuffer : public GrGeometryBuffer {
protected:
- GrIndexBuffer(uint32_t sizeInBytes, bool dynamic) :
- fSizeInBytes(sizeInBytes),
- fDynamic(dynamic) {}
-public:
- virtual ~GrIndexBuffer() {}
-
- /**
- Retrieves the size of the index buffer
-
- @return the size of the index buffer in bytes
- */
- uint32_t size() const { return fSizeInBytes; }
-
- /**
- Retrieves whether the index buffer was created with the dynamic flag
-
- @return true if the index 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 index buffer to be written by the CPU.
-
- The previous content of the index 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 index buffer.
-
- @return a pointer to the index data or NULL if the lock fails.
- */
- virtual void* lock() = 0;
-
- /**
- Unlocks the index buffer.
-
- The pointer returned by the previous lock call will no longer be valid.
- */
- virtual void unlock() = 0;
-
- /**
- Queries whether the index buffer has been locked.
-
- @return true if the index buffer is locked, false otherwise.
- */
- virtual bool isLocked() const = 0;
-
- /**
- Updates the index buffer data.
-
- The size of the index 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;
-
+ GrIndexBuffer(size_t sizeInBytes, bool dynamic) :
+ INHERITED(sizeInBytes, dynamic) {}
private:
- uint32_t fSizeInBytes;
- bool fDynamic;
+ typedef GrGeometryBuffer INHERITED;
};
#endif