1 /* 2 * Copyright 2011 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "GrGLIndexBuffer.h" 9 #include "GrGpuGL.h" 10 11 GrGLIndexBuffer::GrGLIndexBuffer(GrGpuGL* gpu, const Desc& desc) 12 : INHERITED(gpu, desc.fIsWrapped, desc.fSizeInBytes, desc.fDynamic, 0 == desc.fID) 13 , fImpl(gpu, desc, GR_GL_ELEMENT_ARRAY_BUFFER) { 14 } 15 16 void GrGLIndexBuffer::onRelease() { 17 if (this->isValid()) { 18 fImpl.release(this->getGpuGL()); 19 } 20 21 INHERITED::onRelease(); 22 } 23 24 void GrGLIndexBuffer::onAbandon() { 25 fImpl.abandon(); 26 INHERITED::onAbandon(); 27 } 28 29 void* GrGLIndexBuffer::lock() { 30 if (this->isValid()) { 31 return fImpl.lock(this->getGpuGL()); 32 } else { 33 return NULL; 34 } 35 } 36 37 void* GrGLIndexBuffer::lockPtr() const { 38 return fImpl.lockPtr(); 39 } 40 41 void GrGLIndexBuffer::unlock() { 42 if (this->isValid()) { 43 fImpl.unlock(this->getGpuGL()); 44 } 45 } 46 47 bool GrGLIndexBuffer::isLocked() const { 48 return fImpl.isLocked(); 49 } 50 51 bool GrGLIndexBuffer::updateData(const void* src, size_t srcSizeInBytes) { 52 if (this->isValid()) { 53 return fImpl.updateData(this->getGpuGL(), src, srcSizeInBytes); 54 } else { 55 return false; 56 } 57 } 58