• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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 
GrGLTransferBuffer(GrGLGpu * gpu,const Desc & desc,GrGLenum type)12 GrGLTransferBuffer::GrGLTransferBuffer(GrGLGpu* gpu, const Desc& desc, GrGLenum type)
13     : INHERITED(gpu, desc.fSizeInBytes)
14     , fImpl(gpu, desc, type) {
15     this->registerWithCache();
16 }
17 
onRelease()18 void GrGLTransferBuffer::onRelease() {
19     if (!this->wasDestroyed()) {
20         fImpl.release(this->getGpuGL());
21     }
22 
23     INHERITED::onRelease();
24 }
25 
onAbandon()26 void GrGLTransferBuffer::onAbandon() {
27     fImpl.abandon();
28     INHERITED::onAbandon();
29 }
30 
onMap()31 void* GrGLTransferBuffer::onMap() {
32     if (!this->wasDestroyed()) {
33         return fImpl.map(this->getGpuGL());
34     } else {
35         return nullptr;
36     }
37 }
38 
onUnmap()39 void GrGLTransferBuffer::onUnmap() {
40     if (!this->wasDestroyed()) {
41         fImpl.unmap(this->getGpuGL());
42     }
43 }
44 
setMemoryBacking(SkTraceMemoryDump * traceMemoryDump,const SkString & dumpName) const45 void 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 }
52