• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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