1 /*
2 * Copyright (C) 2009 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2009 Google Inc. All Rights Reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27 #include "config.h"
28 #include "core/html/canvas/WebGLGetInfo.h"
29
30
31 namespace blink {
32
WebGLGetInfo(bool value)33 WebGLGetInfo::WebGLGetInfo(bool value)
34 : m_type(kTypeBool)
35 , m_bool(value)
36 , m_float(0)
37 , m_int(0)
38 , m_unsignedInt(0)
39 {
40 }
41
WebGLGetInfo(const bool * value,int size)42 WebGLGetInfo::WebGLGetInfo(const bool* value, int size)
43 : m_type(kTypeBoolArray)
44 , m_bool(false)
45 , m_float(0)
46 , m_int(0)
47 , m_unsignedInt(0)
48 {
49 if (!value || size <=0)
50 return;
51 m_boolArray.resize(size);
52 for (int ii = 0; ii < size; ++ii)
53 m_boolArray[ii] = value[ii];
54 }
55
WebGLGetInfo(float value)56 WebGLGetInfo::WebGLGetInfo(float value)
57 : m_type(kTypeFloat)
58 , m_bool(false)
59 , m_float(value)
60 , m_int(0)
61 , m_unsignedInt(0)
62 {
63 }
64
WebGLGetInfo(int value)65 WebGLGetInfo::WebGLGetInfo(int value)
66 : m_type(kTypeInt)
67 , m_bool(false)
68 , m_float(0)
69 , m_int(value)
70 , m_unsignedInt(0)
71 {
72 }
73
WebGLGetInfo()74 WebGLGetInfo::WebGLGetInfo()
75 : m_type(kTypeNull)
76 , m_bool(false)
77 , m_float(0)
78 , m_int(0)
79 , m_unsignedInt(0)
80 {
81 }
82
WebGLGetInfo(const String & value)83 WebGLGetInfo::WebGLGetInfo(const String& value)
84 : m_type(kTypeString)
85 , m_bool(false)
86 , m_float(0)
87 , m_int(0)
88 , m_string(value)
89 , m_unsignedInt(0)
90 {
91 }
92
WebGLGetInfo(unsigned value)93 WebGLGetInfo::WebGLGetInfo(unsigned value)
94 : m_type(kTypeUnsignedInt)
95 , m_bool(false)
96 , m_float(0)
97 , m_int(0)
98 , m_unsignedInt(value)
99 {
100 }
101
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLBuffer> value)102 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLBuffer> value)
103 : m_type(kTypeWebGLBuffer)
104 , m_bool(false)
105 , m_float(0)
106 , m_int(0)
107 , m_unsignedInt(0)
108 , m_webglBuffer(value)
109 {
110 }
111
WebGLGetInfo(PassRefPtr<Float32Array> value)112 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Float32Array> value)
113 : m_type(kTypeWebGLFloatArray)
114 , m_bool(false)
115 , m_float(0)
116 , m_int(0)
117 , m_unsignedInt(0)
118 , m_webglFloatArray(value)
119 {
120 }
121
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLFramebuffer> value)122 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLFramebuffer> value)
123 : m_type(kTypeWebGLFramebuffer)
124 , m_bool(false)
125 , m_float(0)
126 , m_int(0)
127 , m_unsignedInt(0)
128 , m_webglFramebuffer(value)
129 {
130 }
131
WebGLGetInfo(PassRefPtr<Int32Array> value)132 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Int32Array> value)
133 : m_type(kTypeWebGLIntArray)
134 , m_bool(false)
135 , m_float(0)
136 , m_int(0)
137 , m_unsignedInt(0)
138 , m_webglIntArray(value)
139 {
140 }
141
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLProgram> value)142 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLProgram> value)
143 : m_type(kTypeWebGLProgram)
144 , m_bool(false)
145 , m_float(0)
146 , m_int(0)
147 , m_unsignedInt(0)
148 , m_webglProgram(value)
149 {
150 }
151
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLRenderbuffer> value)152 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLRenderbuffer> value)
153 : m_type(kTypeWebGLRenderbuffer)
154 , m_bool(false)
155 , m_float(0)
156 , m_int(0)
157 , m_unsignedInt(0)
158 , m_webglRenderbuffer(value)
159 {
160 }
161
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLTexture> value)162 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLTexture> value)
163 : m_type(kTypeWebGLTexture)
164 , m_bool(false)
165 , m_float(0)
166 , m_int(0)
167 , m_unsignedInt(0)
168 , m_webglTexture(value)
169 {
170 }
171
WebGLGetInfo(PassRefPtr<Uint8Array> value)172 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Uint8Array> value)
173 : m_type(kTypeWebGLUnsignedByteArray)
174 , m_bool(false)
175 , m_float(0)
176 , m_int(0)
177 , m_unsignedInt(0)
178 , m_webglUnsignedByteArray(value)
179 {
180 }
181
WebGLGetInfo(PassRefPtr<Uint32Array> value)182 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Uint32Array> value)
183 : m_type(kTypeWebGLUnsignedIntArray)
184 , m_bool(false)
185 , m_float(0)
186 , m_int(0)
187 , m_unsignedInt(0)
188 , m_webglUnsignedIntArray(value)
189 {
190 }
191
WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> value)192 WebGLGetInfo::WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> value)
193 : m_type(kTypeWebGLVertexArrayObjectOES)
194 , m_bool(false)
195 , m_float(0)
196 , m_int(0)
197 , m_unsignedInt(0)
198 , m_webglVertexArrayObject(value)
199 {
200 }
201
getType() const202 WebGLGetInfo::Type WebGLGetInfo::getType() const
203 {
204 return m_type;
205 }
206
getBool() const207 bool WebGLGetInfo::getBool() const
208 {
209 ASSERT(getType() == kTypeBool);
210 return m_bool;
211 }
212
getBoolArray() const213 const Vector<bool>& WebGLGetInfo::getBoolArray() const
214 {
215 ASSERT(getType() == kTypeBoolArray);
216 return m_boolArray;
217 }
218
getFloat() const219 float WebGLGetInfo::getFloat() const
220 {
221 ASSERT(getType() == kTypeFloat);
222 return m_float;
223 }
224
getInt() const225 int WebGLGetInfo::getInt() const
226 {
227 ASSERT(getType() == kTypeInt);
228 return m_int;
229 }
230
getString() const231 const String& WebGLGetInfo::getString() const
232 {
233 ASSERT(getType() == kTypeString);
234 return m_string;
235 }
236
getUnsignedInt() const237 unsigned WebGLGetInfo::getUnsignedInt() const
238 {
239 ASSERT(getType() == kTypeUnsignedInt);
240 return m_unsignedInt;
241 }
242
getWebGLBuffer() const243 PassRefPtrWillBeRawPtr<WebGLBuffer> WebGLGetInfo::getWebGLBuffer() const
244 {
245 ASSERT(getType() == kTypeWebGLBuffer);
246 return m_webglBuffer;
247 }
248
getWebGLFloatArray() const249 PassRefPtr<Float32Array> WebGLGetInfo::getWebGLFloatArray() const
250 {
251 ASSERT(getType() == kTypeWebGLFloatArray);
252 return m_webglFloatArray;
253 }
254
getWebGLFramebuffer() const255 PassRefPtrWillBeRawPtr<WebGLFramebuffer> WebGLGetInfo::getWebGLFramebuffer() const
256 {
257 ASSERT(getType() == kTypeWebGLFramebuffer);
258 return m_webglFramebuffer;
259 }
260
getWebGLIntArray() const261 PassRefPtr<Int32Array> WebGLGetInfo::getWebGLIntArray() const
262 {
263 ASSERT(getType() == kTypeWebGLIntArray);
264 return m_webglIntArray;
265 }
266
getWebGLProgram() const267 PassRefPtrWillBeRawPtr<WebGLProgram> WebGLGetInfo::getWebGLProgram() const
268 {
269 ASSERT(getType() == kTypeWebGLProgram);
270 return m_webglProgram;
271 }
272
getWebGLRenderbuffer() const273 PassRefPtrWillBeRawPtr<WebGLRenderbuffer> WebGLGetInfo::getWebGLRenderbuffer() const
274 {
275 ASSERT(getType() == kTypeWebGLRenderbuffer);
276 return m_webglRenderbuffer;
277 }
278
getWebGLTexture() const279 PassRefPtrWillBeRawPtr<WebGLTexture> WebGLGetInfo::getWebGLTexture() const
280 {
281 ASSERT(getType() == kTypeWebGLTexture);
282 return m_webglTexture;
283 }
284
getWebGLUnsignedByteArray() const285 PassRefPtr<Uint8Array> WebGLGetInfo::getWebGLUnsignedByteArray() const
286 {
287 ASSERT(getType() == kTypeWebGLUnsignedByteArray);
288 return m_webglUnsignedByteArray;
289 }
290
getWebGLUnsignedIntArray() const291 PassRefPtr<Uint32Array> WebGLGetInfo::getWebGLUnsignedIntArray() const
292 {
293 ASSERT(getType() == kTypeWebGLUnsignedIntArray);
294 return m_webglUnsignedIntArray;
295 }
296
getWebGLVertexArrayObjectOES() const297 PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> WebGLGetInfo::getWebGLVertexArrayObjectOES() const
298 {
299 ASSERT(getType() == kTypeWebGLVertexArrayObjectOES);
300 return m_webglVertexArrayObject;
301 }
302
303 } // namespace blink
304