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 #include "GrGLVertexBuffer.h"
9 #include "GrGpuGL.h"
10
GrGLVertexBuffer(GrGpuGL * gpu,const Desc & desc)11 GrGLVertexBuffer::GrGLVertexBuffer(GrGpuGL* gpu, const Desc& desc)
12 : INHERITED(gpu, desc.fIsWrapped, desc.fSizeInBytes, desc.fDynamic, 0 == desc.fID)
13 , fImpl(gpu, desc, GR_GL_ARRAY_BUFFER) {
14 }
15
onRelease()16 void GrGLVertexBuffer::onRelease() {
17 if (this->isValid()) {
18 fImpl.release(this->getGpuGL());
19 }
20
21 INHERITED::onRelease();
22 }
23
24
onAbandon()25 void GrGLVertexBuffer::onAbandon() {
26 fImpl.abandon();
27 INHERITED::onAbandon();
28 }
29
lock()30 void* GrGLVertexBuffer::lock() {
31 if (this->isValid()) {
32 return fImpl.lock(this->getGpuGL());
33 } else {
34 return NULL;
35 }
36 }
37
lockPtr() const38 void* GrGLVertexBuffer::lockPtr() const {
39 return fImpl.lockPtr();
40 }
41
unlock()42 void GrGLVertexBuffer::unlock() {
43 if (this->isValid()) {
44 fImpl.unlock(this->getGpuGL());
45 }
46 }
47
isLocked() const48 bool GrGLVertexBuffer::isLocked() const {
49 return fImpl.isLocked();
50 }
51
updateData(const void * src,size_t srcSizeInBytes)52 bool GrGLVertexBuffer::updateData(const void* src, size_t srcSizeInBytes) {
53 if (this->isValid()) {
54 return fImpl.updateData(this->getGpuGL(), src, srcSizeInBytes);
55 } else {
56 return false;
57 }
58 }
59