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