Home | History | Annotate | Download | only in canvas
      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 
     29 #if ENABLE(3D_CANVAS)
     30 
     31 #include "WebGLGetInfo.h"
     32 #include "WebGLBuffer.h"
     33 #include "WebGLFloatArray.h"
     34 #include "WebGLFramebuffer.h"
     35 #include "WebGLIntArray.h"
     36 #include "WebGLProgram.h"
     37 #include "WebGLRenderbuffer.h"
     38 #include "WebGLTexture.h"
     39 #include "WebGLUnsignedByteArray.h"
     40 
     41 namespace WebCore {
     42 
     43 WebGLGetInfo::WebGLGetInfo(bool value)
     44     : m_type(kTypeBool)
     45     , m_bool(value)
     46 {
     47 }
     48 
     49 WebGLGetInfo::WebGLGetInfo(float value)
     50     : m_type(kTypeFloat)
     51     , m_float(value)
     52 {
     53 }
     54 
     55 WebGLGetInfo::WebGLGetInfo(long value)
     56     : m_type(kTypeLong)
     57     , m_long(value)
     58 {
     59 }
     60 
     61 WebGLGetInfo::WebGLGetInfo()
     62     : m_type(kTypeNull)
     63 {
     64 }
     65 
     66 WebGLGetInfo::WebGLGetInfo(const String& value)
     67     : m_type(kTypeString)
     68     , m_string(value)
     69 {
     70 }
     71 
     72 WebGLGetInfo::WebGLGetInfo(unsigned long value)
     73     : m_type(kTypeUnsignedLong)
     74     , m_unsignedLong(value)
     75 {
     76 }
     77 
     78 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLBuffer> value)
     79     : m_type(kTypeWebGLBuffer)
     80     , m_webglBuffer(value)
     81 {
     82 }
     83 
     84 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLFloatArray> value)
     85     : m_type(kTypeWebGLFloatArray)
     86     , m_webglFloatArray(value)
     87 {
     88 }
     89 
     90 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLFramebuffer> value)
     91     : m_type(kTypeWebGLFramebuffer)
     92     , m_webglFramebuffer(value)
     93 {
     94 }
     95 
     96 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLIntArray> value)
     97     : m_type(kTypeWebGLIntArray)
     98     , m_webglIntArray(value)
     99 {
    100 }
    101 
    102 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLProgram> value)
    103     : m_type(kTypeWebGLProgram)
    104     , m_webglProgram(value)
    105 {
    106 }
    107 
    108 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLRenderbuffer> value)
    109     : m_type(kTypeWebGLRenderbuffer)
    110     , m_webglRenderbuffer(value)
    111 {
    112 }
    113 
    114 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLTexture> value)
    115     : m_type(kTypeWebGLTexture)
    116     , m_webglTexture(value)
    117 {
    118 }
    119 
    120 WebGLGetInfo::WebGLGetInfo(PassRefPtr<WebGLUnsignedByteArray> value)
    121     : m_type(kTypeWebGLUnsignedByteArray)
    122     , m_webglUnsignedByteArray(value)
    123 {
    124 }
    125 
    126 WebGLGetInfo::~WebGLGetInfo()
    127 {
    128 }
    129 
    130 WebGLGetInfo::Type WebGLGetInfo::getType() const
    131 {
    132     return m_type;
    133 }
    134 
    135 bool WebGLGetInfo::getBool() const
    136 {
    137     ASSERT(getType() == kTypeBool);
    138     return m_bool;
    139 }
    140 
    141 float WebGLGetInfo::getFloat() const
    142 {
    143     ASSERT(getType() == kTypeFloat);
    144     return m_float;
    145 }
    146 
    147 long WebGLGetInfo::getLong() const
    148 {
    149     ASSERT(getType() == kTypeLong);
    150     return m_long;
    151 }
    152 
    153 const String& WebGLGetInfo::getString() const
    154 {
    155     ASSERT(getType() == kTypeString);
    156     return m_string;
    157 }
    158 
    159 unsigned long WebGLGetInfo::getUnsignedLong() const
    160 {
    161     ASSERT(getType() == kTypeUnsignedLong);
    162     return m_unsignedLong;
    163 }
    164 
    165 PassRefPtr<WebGLBuffer> WebGLGetInfo::getWebGLBuffer() const
    166 {
    167     ASSERT(getType() == kTypeWebGLBuffer);
    168     return m_webglBuffer;
    169 }
    170 
    171 PassRefPtr<WebGLFloatArray> WebGLGetInfo::getWebGLFloatArray() const
    172 {
    173     ASSERT(getType() == kTypeWebGLFloatArray);
    174     return m_webglFloatArray;
    175 }
    176 
    177 PassRefPtr<WebGLFramebuffer> WebGLGetInfo::getWebGLFramebuffer() const
    178 {
    179     ASSERT(getType() == kTypeWebGLFramebuffer);
    180     return m_webglFramebuffer;
    181 }
    182 
    183 PassRefPtr<WebGLIntArray> WebGLGetInfo::getWebGLIntArray() const
    184 {
    185     ASSERT(getType() == kTypeWebGLIntArray);
    186     return m_webglIntArray;
    187 }
    188 
    189 PassRefPtr<WebGLProgram> WebGLGetInfo::getWebGLProgram() const
    190 {
    191     ASSERT(getType() == kTypeWebGLProgram);
    192     return m_webglProgram;
    193 }
    194 
    195 PassRefPtr<WebGLRenderbuffer> WebGLGetInfo::getWebGLRenderbuffer() const
    196 {
    197     ASSERT(getType() == kTypeWebGLRenderbuffer);
    198     return m_webglRenderbuffer;
    199 }
    200 
    201 PassRefPtr<WebGLTexture> WebGLGetInfo::getWebGLTexture() const
    202 {
    203     ASSERT(getType() == kTypeWebGLTexture);
    204     return m_webglTexture;
    205 }
    206 
    207 PassRefPtr<WebGLUnsignedByteArray> WebGLGetInfo::getWebGLUnsignedByteArray() const
    208 {
    209     ASSERT(getType() == kTypeWebGLUnsignedByteArray);
    210     return m_webglUnsignedByteArray;
    211 }
    212 
    213 } // namespace WebCore
    214 
    215 #endif // ENABLE(3D_CANVAS)
    216