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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 202 WebGLGetInfo::Type WebGLGetInfo::getType() const 203 { 204 return m_type; 205 } 206 207 bool WebGLGetInfo::getBool() const 208 { 209 ASSERT(getType() == kTypeBool); 210 return m_bool; 211 } 212 213 const Vector<bool>& WebGLGetInfo::getBoolArray() const 214 { 215 ASSERT(getType() == kTypeBoolArray); 216 return m_boolArray; 217 } 218 219 float WebGLGetInfo::getFloat() const 220 { 221 ASSERT(getType() == kTypeFloat); 222 return m_float; 223 } 224 225 int WebGLGetInfo::getInt() const 226 { 227 ASSERT(getType() == kTypeInt); 228 return m_int; 229 } 230 231 const String& WebGLGetInfo::getString() const 232 { 233 ASSERT(getType() == kTypeString); 234 return m_string; 235 } 236 237 unsigned WebGLGetInfo::getUnsignedInt() const 238 { 239 ASSERT(getType() == kTypeUnsignedInt); 240 return m_unsignedInt; 241 } 242 243 PassRefPtrWillBeRawPtr<WebGLBuffer> WebGLGetInfo::getWebGLBuffer() const 244 { 245 ASSERT(getType() == kTypeWebGLBuffer); 246 return m_webglBuffer; 247 } 248 249 PassRefPtr<Float32Array> WebGLGetInfo::getWebGLFloatArray() const 250 { 251 ASSERT(getType() == kTypeWebGLFloatArray); 252 return m_webglFloatArray; 253 } 254 255 PassRefPtrWillBeRawPtr<WebGLFramebuffer> WebGLGetInfo::getWebGLFramebuffer() const 256 { 257 ASSERT(getType() == kTypeWebGLFramebuffer); 258 return m_webglFramebuffer; 259 } 260 261 PassRefPtr<Int32Array> WebGLGetInfo::getWebGLIntArray() const 262 { 263 ASSERT(getType() == kTypeWebGLIntArray); 264 return m_webglIntArray; 265 } 266 267 PassRefPtrWillBeRawPtr<WebGLProgram> WebGLGetInfo::getWebGLProgram() const 268 { 269 ASSERT(getType() == kTypeWebGLProgram); 270 return m_webglProgram; 271 } 272 273 PassRefPtrWillBeRawPtr<WebGLRenderbuffer> WebGLGetInfo::getWebGLRenderbuffer() const 274 { 275 ASSERT(getType() == kTypeWebGLRenderbuffer); 276 return m_webglRenderbuffer; 277 } 278 279 PassRefPtrWillBeRawPtr<WebGLTexture> WebGLGetInfo::getWebGLTexture() const 280 { 281 ASSERT(getType() == kTypeWebGLTexture); 282 return m_webglTexture; 283 } 284 285 PassRefPtr<Uint8Array> WebGLGetInfo::getWebGLUnsignedByteArray() const 286 { 287 ASSERT(getType() == kTypeWebGLUnsignedByteArray); 288 return m_webglUnsignedByteArray; 289 } 290 291 PassRefPtr<Uint32Array> WebGLGetInfo::getWebGLUnsignedIntArray() const 292 { 293 ASSERT(getType() == kTypeWebGLUnsignedIntArray); 294 return m_webglUnsignedIntArray; 295 } 296 297 PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> WebGLGetInfo::getWebGLVertexArrayObjectOES() const 298 { 299 ASSERT(getType() == kTypeWebGLVertexArrayObjectOES); 300 return m_webglVertexArrayObject; 301 } 302 303 } // namespace blink 304