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 #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