1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #include "WebGLExtensions.h"
7 
8 #include "GLContext.h"
9 #include "mozilla/dom/WebGLRenderingContextBinding.h"
10 #include "WebGLBuffer.h"
11 #include "WebGLContext.h"
12 #include "WebGLVertexArray.h"
13 
14 namespace mozilla {
15 
WebGLExtensionVertexArray(WebGLContext * webgl)16 WebGLExtensionVertexArray::WebGLExtensionVertexArray(WebGLContext* webgl)
17   : WebGLExtensionBase(webgl)
18 {
19 }
20 
~WebGLExtensionVertexArray()21 WebGLExtensionVertexArray::~WebGLExtensionVertexArray()
22 {
23 }
24 
25 already_AddRefed<WebGLVertexArray>
CreateVertexArrayOES()26 WebGLExtensionVertexArray::CreateVertexArrayOES()
27 {
28     if (mIsLost)
29         return nullptr;
30 
31     return mContext->CreateVertexArray();
32 }
33 
34 void
DeleteVertexArrayOES(WebGLVertexArray * array)35 WebGLExtensionVertexArray::DeleteVertexArrayOES(WebGLVertexArray* array)
36 {
37     if (mIsLost)
38         return;
39 
40     mContext->DeleteVertexArray(array);
41 }
42 
43 bool
IsVertexArrayOES(const WebGLVertexArray * array)44 WebGLExtensionVertexArray::IsVertexArrayOES(const WebGLVertexArray* array)
45 {
46     if (mIsLost)
47         return false;
48 
49     return mContext->IsVertexArray(array);
50 }
51 
52 void
BindVertexArrayOES(WebGLVertexArray * array)53 WebGLExtensionVertexArray::BindVertexArrayOES(WebGLVertexArray* array)
54 {
55     if (mIsLost)
56         return;
57 
58     mContext->BindVertexArray(array);
59 }
60 
61 IMPL_WEBGL_EXTENSION_GOOP(WebGLExtensionVertexArray, OES_vertex_array_object)
62 
63 } // namespace mozilla
64