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 
      9 #include "GrGLStencilBuffer.h"
     10 #include "GrGpuGL.h"
     11 
     12 GrGLStencilBuffer::~GrGLStencilBuffer() {
     13     this->release();
     14 }
     15 
     16 size_t GrGLStencilBuffer::sizeInBytes() const {
     17     uint64_t size = this->width();
     18     size *= this->height();
     19     size *= fFormat.fTotalBits;
     20     size *= GrMax(1,this->numSamples());
     21     return static_cast<size_t>(size / 8);
     22 }
     23 
     24 void GrGLStencilBuffer::onRelease() {
     25     if (0 != fRenderbufferID && !this->isWrapped()) {
     26         GrGpuGL* gpuGL = (GrGpuGL*) this->getGpu();
     27         const GrGLInterface* gl = gpuGL->glInterface();
     28         GR_GL_CALL(gl, DeleteRenderbuffers(1, &fRenderbufferID));
     29         fRenderbufferID = 0;
     30     }
     31 
     32     INHERITED::onRelease();
     33 }
     34 
     35 void GrGLStencilBuffer::onAbandon() {
     36     fRenderbufferID = 0;
     37 
     38     INHERITED::onAbandon();
     39 }
     40