|
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 |
|
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 |
|
16 void GrGLVertexBuffer::onRelease() { |
|
17 if (this->isValid()) { |
|
18 fImpl.release(this->getGpuGL()); |
|
19 } |
|
20 |
|
21 INHERITED::onRelease(); |
|
22 } |
|
23 |
|
24 |
|
25 void GrGLVertexBuffer::onAbandon() { |
|
26 fImpl.abandon(); |
|
27 INHERITED::onAbandon(); |
|
28 } |
|
29 |
|
30 void* GrGLVertexBuffer::lock() { |
|
31 if (this->isValid()) { |
|
32 return fImpl.lock(this->getGpuGL()); |
|
33 } else { |
|
34 return NULL; |
|
35 } |
|
36 } |
|
37 |
|
38 void* GrGLVertexBuffer::lockPtr() const { |
|
39 return fImpl.lockPtr(); |
|
40 } |
|
41 |
|
42 void GrGLVertexBuffer::unlock() { |
|
43 if (this->isValid()) { |
|
44 fImpl.unlock(this->getGpuGL()); |
|
45 } |
|
46 } |
|
47 |
|
48 bool GrGLVertexBuffer::isLocked() const { |
|
49 return fImpl.isLocked(); |
|
50 } |
|
51 |
|
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 } |