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
12GrGLStencilBuffer::~GrGLStencilBuffer() {
13    this->release();
14}
15
16size_t GrGLStencilBuffer::gpuMemorySize() const {
17    uint64_t size = this->width();
18    size *= this->height();
19    size *= fFormat.fTotalBits;
20    size *= SkTMax(1,this->numSamples());
21    return static_cast<size_t>(size / 8);
22}
23
24void 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
35void GrGLStencilBuffer::onAbandon() {
36    fRenderbufferID = 0;
37
38    INHERITED::onAbandon();
39}
40