GrGLVertexBuffer.h revision dd182cbca60a7f0003330c01dfc64f69f56aea90
1 2/* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 11#ifndef GrGLVertexBuffer_DEFINED 12#define GrGLVertexBuffer_DEFINED 13 14#include "../GrVertexBuffer.h" 15#include "GrGLInterface.h" 16 17class GrGpuGL; 18 19class GrGLVertexBuffer : public GrVertexBuffer { 20 21public: 22 virtual ~GrGLVertexBuffer() { this->release(); } 23 // overrides of GrVertexBuffer 24 virtual void* lock(); 25 virtual void* lockPtr() const; 26 virtual void unlock(); 27 virtual bool isLocked() const; 28 virtual bool updateData(const void* src, size_t srcSizeInBytes); 29 GrGLuint bufferID() const; 30 31protected: 32 GrGLVertexBuffer(GrGpuGL* gpu, 33 GrGLuint id, 34 size_t sizeInBytes, 35 bool dynamic); 36 37 // overrides of GrResource 38 virtual void onAbandon(); 39 virtual void onRelease(); 40 41private: 42 void bind() const; 43 44 GrGLuint fBufferID; 45 void* fLockPtr; 46 47 friend class GrGpuGL; 48 49 typedef GrVertexBuffer INHERITED; 50}; 51 52#endif 53