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 "GrGLStencilAttachment.h" 10#include "GrGLGpu.h" 11#include "SkTraceMemoryDump.h" 12 13size_t GrGLStencilAttachment::onGpuMemorySize() const { 14 uint64_t size = this->width(); 15 size *= this->height(); 16 size *= fFormat.fTotalBits; 17 size *= SkTMax(1,this->numSamples()); 18 return static_cast<size_t>(size / 8); 19} 20 21void GrGLStencilAttachment::onRelease() { 22 if (0 != fRenderbufferID && this->shouldFreeResources()) { 23 GrGLGpu* gpuGL = (GrGLGpu*) this->getGpu(); 24 const GrGLInterface* gl = gpuGL->glInterface(); 25 GR_GL_CALL(gl, DeleteRenderbuffers(1, &fRenderbufferID)); 26 fRenderbufferID = 0; 27 } 28 29 INHERITED::onRelease(); 30} 31 32void GrGLStencilAttachment::onAbandon() { 33 fRenderbufferID = 0; 34 35 INHERITED::onAbandon(); 36} 37 38void GrGLStencilAttachment::setMemoryBacking(SkTraceMemoryDump* traceMemoryDump, 39 const SkString& dumpName) const { 40 SkString renderbuffer_id; 41 renderbuffer_id.appendU32(this->renderbufferID()); 42 traceMemoryDump->setMemoryBacking(dumpName.c_str(), "gl_renderbuffer", 43 renderbuffer_id.c_str()); 44} 45