Add GrResource base class for ibs, texs, vbs, etc.
Add lostContext() to GrContext.
Review URL: http://codereview.appspot.com/4328044/
git-svn-id: http://skia.googlecode.com/svn/trunk@1026 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/include/GrGLIndexBuffer.h b/gpu/include/GrGLIndexBuffer.h
index 0ecbe6d..92aadcf 100644
--- a/gpu/include/GrGLIndexBuffer.h
+++ b/gpu/include/GrGLIndexBuffer.h
@@ -24,33 +24,38 @@
class GrGpuGL;
class GrGLIndexBuffer : public GrIndexBuffer {
-protected:
- GrGLIndexBuffer(GrGLuint id,
- GrGpuGL* gl,
- size_t sizeInBytes,
- bool dynamic);
+
public:
- virtual ~GrGLIndexBuffer();
+
+ virtual ~GrGLIndexBuffer() { this->release(); }
GrGLuint bufferID() const;
// overrides of GrIndexBuffer
- virtual void abandon();
virtual void* lock();
virtual void* lockPtr() const;
virtual void unlock();
virtual bool isLocked() const;
virtual bool updateData(const void* src, size_t srcSizeInBytes);
- virtual bool updateSubData(const void* src,
- size_t srcSizeInBytes,
+ virtual bool updateSubData(const void* src,
+ size_t srcSizeInBytes,
size_t offset);
+protected:
+ GrGLIndexBuffer(GrGpuGL* gpu,
+ GrGLuint id,
+ size_t sizeInBytes,
+ bool dynamic);
+
+ // overrides of GrResource
+ virtual void onAbandon();
+ virtual void onRelease();
+
private:
void bind() const;
-
- GrGpuGL* fGL;
+
GrGLuint fBufferID;
void* fLockPtr;
-
+
friend class GrGpuGL;
typedef GrIndexBuffer INHERITED;