11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "GrGLStencilBuffer.h" 111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "GrGpuGL.h" 121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 131cab2921ab279367f8206cdadc9259d12e603548Derek SollenbergerGrGLStencilBuffer::~GrGLStencilBuffer() { 141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger this->release(); 151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger} 161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergersize_t GrGLStencilBuffer::sizeInBytes() const { 181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger uint64_t size = this->width(); 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger size *= this->height(); 201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger size *= fFormat.fTotalBits; 211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger size *= GrMax(1,this->numSamples()); 221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger return static_cast<size_t>(size / 8); 231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger} 241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergervoid GrGLStencilBuffer::onRelease() { 261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger if (0 != fRenderbufferID) { 271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger GrGpuGL* gpuGL = (GrGpuGL*) this->getGpu(); 281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger const GrGLInterface* gl = gpuGL->glInterface(); 291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger GR_GL_CALL(gl, DeleteRenderbuffers(1, &fRenderbufferID)); 301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger fRenderbufferID = 0; 311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger INHERITED::onRelease(); 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger} 341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergervoid GrGLStencilBuffer::onAbandon() { 361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger fRenderbufferID = 0; 371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger INHERITED::onAbandon(); 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger} 391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 41