Home | History | Annotate | Download | only in gl
      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