WebGLGetInfo.cpp revision 2fc2651226baac27029e38c9d6ef883fa32084db
1643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/*
2643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Copyright (C) 2009 Apple Inc. All Rights Reserved.
3643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Copyright (C) 2009 Google Inc. All Rights Reserved.
4643ca7872b450ea4efacab6188849e5aac2ba161Steve Block *
5643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Redistribution and use in source and binary forms, with or without
6643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * modification, are permitted provided that the following conditions
7643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * are met:
8643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 1. Redistributions of source code must retain the above copyright
9643ca7872b450ea4efacab6188849e5aac2ba161Steve Block *    notice, this list of conditions and the following disclaimer.
10643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 2. Redistributions in binary form must reproduce the above copyright
11643ca7872b450ea4efacab6188849e5aac2ba161Steve Block *    notice, this list of conditions and the following disclaimer in the
12643ca7872b450ea4efacab6188849e5aac2ba161Steve Block *    documentation and/or other materials provided with the distribution.
13643ca7872b450ea4efacab6188849e5aac2ba161Steve Block *
14643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
15643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
18643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25643ca7872b450ea4efacab6188849e5aac2ba161Steve Block */
26643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
27643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "config.h"
28643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if ENABLE(WEBGL)
30643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
31643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebGLGetInfo.h"
32dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
33545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch#include "Float32Array.h"
346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "Int32Array.h"
35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "Uint8Array.h"
36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebGLBuffer.h"
37dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "WebGLFramebuffer.h"
38643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebGLProgram.h"
39643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebGLRenderbuffer.h"
40643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebGLTexture.h"
41643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
42643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocknamespace WebCore {
43643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
44643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(bool value)
45643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeBool)
46643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_bool(value)
47643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
48643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
49643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
50ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockWebGLGetInfo::WebGLGetInfo(const bool* value, int size)
51ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    : m_type(kTypeBoolArray)
52ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{
53ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    if (!value || size <=0)
54ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        return;
55ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    m_boolArray.resize(size);
56ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    for (int ii = 0; ii < size; ++ii)
57ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        m_boolArray[ii] = value[ii];
58ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block}
59ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block
60643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(float value)
61643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeFloat)
62643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_float(value)
63643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
64643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
65643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
662fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWebGLGetInfo::WebGLGetInfo(int value)
672fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    : m_type(kTypeInt)
682fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    , m_int(value)
69643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
70643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
71643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
72643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo()
73643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeNull)
74643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
75643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
76643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
77643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(const String& value)
78643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeString)
79643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_string(value)
80643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
81643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
82643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
832fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWebGLGetInfo::WebGLGetInfo(unsigned int value)
842fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    : m_type(kTypeUnsignedInt)
852fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    , m_unsignedInt(value)
86643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
87643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
88643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
89643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLBuffer> value)
90643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLBuffer)
91643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglBuffer(value)
92643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
93643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
94643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
95545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochWebGLGetInfo::WebGLGetInfo(PassRefPtr<Float32Array> value)
96643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLFloatArray)
97643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglFloatArray(value)
98643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
101643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLFramebuffer> value)
102643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLFramebuffer)
103643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglFramebuffer(value)
104643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
105643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
106643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1076c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenWebGLGetInfo::WebGLGetInfo(PassRefPtr<Int32Array> value)
108643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLIntArray)
109643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglIntArray(value)
110643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
111643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
112643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
113643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLProgram> value)
114643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLProgram)
115643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglProgram(value)
116643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
117643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
118643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
119643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLRenderbuffer> value)
120643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLRenderbuffer)
121643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglRenderbuffer(value)
122643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
123643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
124643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
125643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLTexture> value)
126643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLTexture)
127643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglTexture(value)
128643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
129643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
130643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenWebGLGetInfo::WebGLGetInfo(PassRefPtr<Uint8Array> value)
132643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    : m_type(kTypeWebGLUnsignedByteArray)
133643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    , m_webglUnsignedByteArray(value)
134643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
135643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
136643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
137643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::~WebGLGetInfo()
138643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
139643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
140643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
141643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockWebGLGetInfo::Type WebGLGetInfo::getType() const
142643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
143643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_type;
144643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
145643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
146643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockbool WebGLGetInfo::getBool() const
147643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
148643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeBool);
149643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_bool;
150643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
151643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
152ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockconst Vector<bool>& WebGLGetInfo::getBoolArray() const
153ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{
154ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    ASSERT(getType() == kTypeBoolArray);
155ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    return m_boolArray;
156ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block}
157ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block
158643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockfloat WebGLGetInfo::getFloat() const
159643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
160643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeFloat);
161643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_float;
162643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
163643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1642fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockint WebGLGetInfo::getInt() const
165643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
1662fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    ASSERT(getType() == kTypeInt);
1672fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return m_int;
168643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
169643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
170643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockconst String& WebGLGetInfo::getString() const
171643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
172643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeString);
173643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_string;
174643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
175643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1762fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockunsigned int WebGLGetInfo::getUnsignedInt() const
177643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
1782fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    ASSERT(getType() == kTypeUnsignedInt);
1792fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return m_unsignedInt;
180643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
181643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
182643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockPassRefPtr<WebGLBuffer> WebGLGetInfo::getWebGLBuffer() const
183643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
184643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLBuffer);
185643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglBuffer;
186643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
187643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
188545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochPassRefPtr<Float32Array> WebGLGetInfo::getWebGLFloatArray() const
189643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
190643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLFloatArray);
191643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglFloatArray;
192643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
193643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
194643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockPassRefPtr<WebGLFramebuffer> WebGLGetInfo::getWebGLFramebuffer() const
195643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
196643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLFramebuffer);
197643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglFramebuffer;
198643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
199643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
2006c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenPassRefPtr<Int32Array> WebGLGetInfo::getWebGLIntArray() const
201643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
202643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLIntArray);
203643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglIntArray;
204643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
205643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
206643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockPassRefPtr<WebGLProgram> WebGLGetInfo::getWebGLProgram() const
207643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
208643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLProgram);
209643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglProgram;
210643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
211643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
212643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockPassRefPtr<WebGLRenderbuffer> WebGLGetInfo::getWebGLRenderbuffer() const
213643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
214643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLRenderbuffer);
215643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglRenderbuffer;
216643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
217643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
218643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockPassRefPtr<WebGLTexture> WebGLGetInfo::getWebGLTexture() const
219643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
220643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLTexture);
221643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglTexture;
222643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
223643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
2246c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenPassRefPtr<Uint8Array> WebGLGetInfo::getWebGLUnsignedByteArray() const
225643ca7872b450ea4efacab6188849e5aac2ba161Steve Block{
226643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ASSERT(getType() == kTypeWebGLUnsignedByteArray);
227643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    return m_webglUnsignedByteArray;
228643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}
229643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
230643ca7872b450ea4efacab6188849e5aac2ba161Steve Block} // namespace WebCore
231643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
2322fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif // ENABLE(WEBGL)
233