diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/gpu/gl/GrGLIndexBuffer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/gpu/gl/GrGLIndexBuffer.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,57 @@ +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrGLIndexBuffer_DEFINED +#define GrGLIndexBuffer_DEFINED + +#include "GrIndexBuffer.h" +#include "GrGLBufferImpl.h" +#include "gl/GrGLInterface.h" + +class GrGpuGL; + +class GrGLIndexBuffer : public GrIndexBuffer { + +public: + typedef GrGLBufferImpl::Desc Desc; + + GrGLIndexBuffer(GrGpuGL* gpu, const Desc& desc); + virtual ~GrGLIndexBuffer() { this->release(); } + + GrGLuint bufferID() const { return fImpl.bufferID(); } + size_t baseOffset() const { return fImpl.baseOffset(); } + + void bind() const { + if (this->isValid()) { + fImpl.bind(this->getGpuGL()); + } + } + + // overrides of GrIndexBuffer + virtual void* lock(); + virtual void* lockPtr() const; + virtual void unlock(); + virtual bool isLocked() const; + virtual bool updateData(const void* src, size_t srcSizeInBytes); + +protected: + // overrides of GrResource + virtual void onAbandon() SK_OVERRIDE; + virtual void onRelease() SK_OVERRIDE; + +private: + GrGpuGL* getGpuGL() const { + SkASSERT(this->isValid()); + return (GrGpuGL*)(this->getGpu()); + } + + GrGLBufferImpl fImpl; + + typedef GrIndexBuffer INHERITED; +}; + +#endif