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;