/* * Copyright (C) 2009 Apple Inc. All Rights Reserved. * Copyright (C) 2009 Google Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #if ENABLE(3D_CANVAS) #include "WebGLGetInfo.h" #include "Float32Array.h" #include "Int32Array.h" #include "Uint8Array.h" #include "WebGLBuffer.h" #include "WebGLFramebuffer.h" #include "WebGLProgram.h" #include "WebGLRenderbuffer.h" #include "WebGLTexture.h" namespace WebCore { WebGLGetInfo::WebGLGetInfo(bool value) : m_type(kTypeBool) , m_bool(value) { } WebGLGetInfo::WebGLGetInfo(const bool* value, int size) : m_type(kTypeBoolArray) { if (!value || size <=0) return; m_boolArray.resize(size); for (int ii = 0; ii < size; ++ii) m_boolArray[ii] = value[ii]; } WebGLGetInfo::WebGLGetInfo(float value) : m_type(kTypeFloat) , m_float(value) { } WebGLGetInfo::WebGLGetInfo(long value) : m_type(kTypeLong) , m_long(value) { } WebGLGetInfo::WebGLGetInfo() : m_type(kTypeNull) { } WebGLGetInfo::WebGLGetInfo(const String& value) : m_type(kTypeString) , m_string(value) { } WebGLGetInfo::WebGLGetInfo(unsigned long value) : m_type(kTypeUnsignedLong) , m_unsignedLong(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLBuffer) , m_webglBuffer(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLFloatArray) , m_webglFloatArray(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLFramebuffer) , m_webglFramebuffer(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLIntArray) , m_webglIntArray(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLProgram) , m_webglProgram(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLRenderbuffer) , m_webglRenderbuffer(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLTexture) , m_webglTexture(value) { } WebGLGetInfo::WebGLGetInfo(PassRefPtr value) : m_type(kTypeWebGLUnsignedByteArray) , m_webglUnsignedByteArray(value) { } WebGLGetInfo::~WebGLGetInfo() { } WebGLGetInfo::Type WebGLGetInfo::getType() const { return m_type; } bool WebGLGetInfo::getBool() const { ASSERT(getType() == kTypeBool); return m_bool; } const Vector& WebGLGetInfo::getBoolArray() const { ASSERT(getType() == kTypeBoolArray); return m_boolArray; } float WebGLGetInfo::getFloat() const { ASSERT(getType() == kTypeFloat); return m_float; } long WebGLGetInfo::getLong() const { ASSERT(getType() == kTypeLong); return m_long; } const String& WebGLGetInfo::getString() const { ASSERT(getType() == kTypeString); return m_string; } unsigned long WebGLGetInfo::getUnsignedLong() const { ASSERT(getType() == kTypeUnsignedLong); return m_unsignedLong; } PassRefPtr WebGLGetInfo::getWebGLBuffer() const { ASSERT(getType() == kTypeWebGLBuffer); return m_webglBuffer; } PassRefPtr WebGLGetInfo::getWebGLFloatArray() const { ASSERT(getType() == kTypeWebGLFloatArray); return m_webglFloatArray; } PassRefPtr WebGLGetInfo::getWebGLFramebuffer() const { ASSERT(getType() == kTypeWebGLFramebuffer); return m_webglFramebuffer; } PassRefPtr WebGLGetInfo::getWebGLIntArray() const { ASSERT(getType() == kTypeWebGLIntArray); return m_webglIntArray; } PassRefPtr WebGLGetInfo::getWebGLProgram() const { ASSERT(getType() == kTypeWebGLProgram); return m_webglProgram; } PassRefPtr WebGLGetInfo::getWebGLRenderbuffer() const { ASSERT(getType() == kTypeWebGLRenderbuffer); return m_webglRenderbuffer; } PassRefPtr WebGLGetInfo::getWebGLTexture() const { ASSERT(getType() == kTypeWebGLTexture); return m_webglTexture; } PassRefPtr WebGLGetInfo::getWebGLUnsignedByteArray() const { ASSERT(getType() == kTypeWebGLUnsignedByteArray); return m_webglUnsignedByteArray; } } // namespace WebCore #endif // ENABLE(3D_CANVAS)