blob: b7ee766d92844fee961954cfbda95ccb62be38fe [file] [log] [blame]
jvanverth73063dc2015-12-03 09:15:47 -08001/*
2 * Copyright 2015 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#include "GrGLTransferBuffer.h"
9#include "GrGLGpu.h"
10#include "SkTraceMemoryDump.h"
11
12GrGLTransferBuffer::GrGLTransferBuffer(GrGLGpu* gpu, const Desc& desc, GrGLenum type)
13 : INHERITED(gpu, desc.fSizeInBytes)
14 , fImpl(gpu, desc, type) {
15 this->registerWithCache();
16}
17
18void GrGLTransferBuffer::onRelease() {
19 if (!this->wasDestroyed()) {
20 fImpl.release(this->getGpuGL());
21 }
22
23 INHERITED::onRelease();
24}
25
26void GrGLTransferBuffer::onAbandon() {
27 fImpl.abandon();
28 INHERITED::onAbandon();
29}
30
31void* GrGLTransferBuffer::onMap() {
32 if (!this->wasDestroyed()) {
33 return fImpl.map(this->getGpuGL());
34 } else {
35 return nullptr;
36 }
37}
38
39void GrGLTransferBuffer::onUnmap() {
40 if (!this->wasDestroyed()) {
41 fImpl.unmap(this->getGpuGL());
42 }
43}
44
45void GrGLTransferBuffer::setMemoryBacking(SkTraceMemoryDump* traceMemoryDump,
46 const SkString& dumpName) const {
47 SkString buffer_id;
48 buffer_id.appendU32(this->bufferID());
49 traceMemoryDump->setMemoryBacking(dumpName.c_str(), "gl_buffer",
50 buffer_id.c_str());
51}