| /* | |
| * Copyright 2011 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "GrGLStencilAttachment.h" | |
| #include "GrGLGpu.h" | |
| #include "SkTraceMemoryDump.h" | |
| size_t GrGLStencilAttachment::onGpuMemorySize() const { | |
| uint64_t size = this->width(); | |
| size *= this->height(); | |
| size *= fFormat.fTotalBits; | |
| size *= SkTMax(1,this->numSamples()); | |
| return static_cast<size_t>(size / 8); | |
| } | |
| void GrGLStencilAttachment::onRelease() { | |
| if (0 != fRenderbufferID) { | |
| GrGLGpu* gpuGL = (GrGLGpu*) this->getGpu(); | |
| const GrGLInterface* gl = gpuGL->glInterface(); | |
| GR_GL_CALL(gl, DeleteRenderbuffers(1, &fRenderbufferID)); | |
| fRenderbufferID = 0; | |
| } | |
| INHERITED::onRelease(); | |
| } | |
| void GrGLStencilAttachment::onAbandon() { | |
| fRenderbufferID = 0; | |
| INHERITED::onAbandon(); | |
| } | |
| void GrGLStencilAttachment::setMemoryBacking(SkTraceMemoryDump* traceMemoryDump, | |
| const SkString& dumpName) const { | |
| SkString renderbuffer_id; | |
| renderbuffer_id.appendU32(this->renderbufferID()); | |
| traceMemoryDump->setMemoryBacking(dumpName.c_str(), "gl_renderbuffer", | |
| renderbuffer_id.c_str()); | |
| } |