2 * Copyright (C) 2009 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2009 Google Inc. All Rights Reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
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.
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.
31 #include "WebGLGetInfo.h"
33 #include "Float32Array.h"
34 #include "Int32Array.h"
35 #include "Uint8Array.h"
36 #include "WebGLBuffer.h"
37 #include "WebGLFramebuffer.h"
38 #include "WebGLProgram.h"
39 #include "WebGLRenderbuffer.h"
40 #include "WebGLTexture.h"
41 #include "WebGLVertexArrayObjectOES.h"
45 WebGLGetInfo::WebGLGetInfo(bool value)
51 WebGLGetInfo::WebGLGetInfo(const bool* value, int size)
52 : m_type(kTypeBoolArray)
54 if (!value || size <=0)
56 m_boolArray.resize(size);
57 for (int ii = 0; ii < size; ++ii)
58 m_boolArray[ii] = value[ii];
61 WebGLGetInfo::WebGLGetInfo(float value)
67 WebGLGetInfo::WebGLGetInfo(int value)
73 WebGLGetInfo::WebGLGetInfo()
78 WebGLGetInfo::WebGLGetInfo(const String& value)
84 WebGLGetInfo::WebGLGetInfo(unsigned int value)
85 : m_type(kTypeUnsignedInt)
86 , m_unsignedInt(value)
90 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLBuffer> value)
91 : m_type(kTypeWebGLBuffer)
92 , m_webglBuffer(value)
96 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Float32Array> value)
97 : m_type(kTypeWebGLFloatArray)
98 , m_webglFloatArray(value)
102 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLFramebuffer> value)
103 : m_type(kTypeWebGLFramebuffer)
104 , m_webglFramebuffer(value)
108 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Int32Array> value)
109 : m_type(kTypeWebGLIntArray)
110 , m_webglIntArray(value)
114 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLProgram> value)
115 : m_type(kTypeWebGLProgram)
116 , m_webglProgram(value)
120 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLRenderbuffer> value)
121 : m_type(kTypeWebGLRenderbuffer)
122 , m_webglRenderbuffer(value)
126 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLTexture> value)
127 : m_type(kTypeWebGLTexture)
128 , m_webglTexture(value)
132 WebGLGetInfo::WebGLGetInfo(PassRefPtr<Uint8Array> value)
133 : m_type(kTypeWebGLUnsignedByteArray)
134 , m_webglUnsignedByteArray(value)
138 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLVertexArrayObjectOES> value)
139 : m_type(kTypeWebGLVertexArrayObjectOES)
140 , m_webglVertexArrayObject(value)
144 WebGLGetInfo::~WebGLGetInfo()
148 WebGLGetInfo::Type WebGLGetInfo::getType() const
153 bool WebGLGetInfo::getBool() const
155 ASSERT(getType() == kTypeBool);
159 const Vector<bool>& WebGLGetInfo::getBoolArray() const
161 ASSERT(getType() == kTypeBoolArray);
165 float WebGLGetInfo::getFloat() const
167 ASSERT(getType() == kTypeFloat);
171 int WebGLGetInfo::getInt() const
173 ASSERT(getType() == kTypeInt);
177 const String& WebGLGetInfo::getString() const
179 ASSERT(getType() == kTypeString);
183 unsigned int WebGLGetInfo::getUnsignedInt() const
185 ASSERT(getType() == kTypeUnsignedInt);
186 return m_unsignedInt;
189 PassRefPtr<WebGLBuffer> WebGLGetInfo::getWebGLBuffer() const
191 ASSERT(getType() == kTypeWebGLBuffer);
192 return m_webglBuffer;
195 PassRefPtr<Float32Array> WebGLGetInfo::getWebGLFloatArray() const
197 ASSERT(getType() == kTypeWebGLFloatArray);
198 return m_webglFloatArray;
201 PassRefPtr<WebGLFramebuffer> WebGLGetInfo::getWebGLFramebuffer() const
203 ASSERT(getType() == kTypeWebGLFramebuffer);
204 return m_webglFramebuffer;
207 PassRefPtr<Int32Array> WebGLGetInfo::getWebGLIntArray() const
209 ASSERT(getType() == kTypeWebGLIntArray);
210 return m_webglIntArray;
213 PassRefPtr<WebGLProgram> WebGLGetInfo::getWebGLProgram() const
215 ASSERT(getType() == kTypeWebGLProgram);
216 return m_webglProgram;
219 PassRefPtr<WebGLRenderbuffer> WebGLGetInfo::getWebGLRenderbuffer() const
221 ASSERT(getType() == kTypeWebGLRenderbuffer);
222 return m_webglRenderbuffer;
225 PassRefPtr<WebGLTexture> WebGLGetInfo::getWebGLTexture() const
227 ASSERT(getType() == kTypeWebGLTexture);
228 return m_webglTexture;
231 PassRefPtr<Uint8Array> WebGLGetInfo::getWebGLUnsignedByteArray() const
233 ASSERT(getType() == kTypeWebGLUnsignedByteArray);
234 return m_webglUnsignedByteArray;
237 PassRefPtr<WebGLVertexArrayObjectOES> WebGLGetInfo::getWebGLVertexArrayObjectOES() const
239 ASSERT(getType() == kTypeWebGLVertexArrayObjectOES);
240 return m_webglVertexArrayObject;
243 } // namespace WebCore
245 #endif // ENABLE(WEBGL)