| Index: src/gpu/gl/GrGLVertexBuffer.cpp
|
| diff --git a/src/gpu/gl/GrGLVertexBuffer.cpp b/src/gpu/gl/GrGLVertexBuffer.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2294844fc420c359117caaa870ba723bd07faa18
|
| --- /dev/null
|
| +++ b/src/gpu/gl/GrGLVertexBuffer.cpp
|
| @@ -0,0 +1,60 @@
|
| +/*
|
| + * 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 "GrGLVertexBuffer.h"
|
| +#include "GrGLGpu.h"
|
| +#include "SkTraceMemoryDump.h"
|
| +
|
| +GrGLVertexBuffer::GrGLVertexBuffer(GrGLGpu* gpu, const Desc& desc)
|
| + : INHERITED(gpu, desc.fSizeInBytes, GrGLBufferImpl::kDynamicDraw_Usage == desc.fUsage,
|
| + 0 == desc.fID)
|
| + , fImpl(gpu, desc, GR_GL_ARRAY_BUFFER) {
|
| + this->registerWithCache();
|
| +}
|
| +
|
| +void GrGLVertexBuffer::onRelease() {
|
| + if (!this->wasDestroyed()) {
|
| + fImpl.release(this->getGpuGL());
|
| + }
|
| +
|
| + INHERITED::onRelease();
|
| +}
|
| +
|
| +void GrGLVertexBuffer::onAbandon() {
|
| + fImpl.abandon();
|
| + INHERITED::onAbandon();
|
| +}
|
| +
|
| +void* GrGLVertexBuffer::onMap() {
|
| + if (!this->wasDestroyed()) {
|
| + return fImpl.map(this->getGpuGL());
|
| + } else {
|
| + return nullptr;
|
| + }
|
| +}
|
| +
|
| +void GrGLVertexBuffer::onUnmap() {
|
| + if (!this->wasDestroyed()) {
|
| + fImpl.unmap(this->getGpuGL());
|
| + }
|
| +}
|
| +
|
| +bool GrGLVertexBuffer::onUpdateData(const void* src, size_t srcSizeInBytes) {
|
| + if (!this->wasDestroyed()) {
|
| + return fImpl.updateData(this->getGpuGL(), src, srcSizeInBytes);
|
| + } else {
|
| + return false;
|
| + }
|
| +}
|
| +
|
| +void GrGLVertexBuffer::setMemoryBacking(SkTraceMemoryDump* traceMemoryDump,
|
| + const SkString& dumpName) const {
|
| + SkString buffer_id;
|
| + buffer_id.appendU32(this->bufferID());
|
| + traceMemoryDump->setMemoryBacking(dumpName.c_str(), "gl_buffer",
|
| + buffer_id.c_str());
|
| +}
|
|
|