OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2009 Apple Inc. All Rights Reserved. |
3 * Copyright (C) 2009 Google Inc. All Rights Reserved. | 3 * Copyright (C) 2009 Google Inc. All Rights Reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
11 * notice, this list of conditions and the following disclaimer in the | 11 * notice, this list of conditions and the following disclaimer in the |
12 * documentation and/or other materials provided with the distribution. | 12 * documentation and/or other materials provided with the distribution. |
13 * | 13 * |
14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY | 14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR | 17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 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. | 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
25 */ | 25 */ |
26 | 26 |
27 #ifndef WebGLGetInfo_h | 27 #ifndef WebGLGetInfo_h |
28 #define WebGLGetInfo_h | 28 #define WebGLGetInfo_h |
29 | 29 |
| 30 #include "core/dom/DOMTypedArray.h" |
30 #include "core/html/canvas/WebGLBuffer.h" | 31 #include "core/html/canvas/WebGLBuffer.h" |
31 #include "core/html/canvas/WebGLFramebuffer.h" | 32 #include "core/html/canvas/WebGLFramebuffer.h" |
32 #include "core/html/canvas/WebGLProgram.h" | 33 #include "core/html/canvas/WebGLProgram.h" |
33 #include "core/html/canvas/WebGLRenderbuffer.h" | 34 #include "core/html/canvas/WebGLRenderbuffer.h" |
34 #include "core/html/canvas/WebGLTexture.h" | 35 #include "core/html/canvas/WebGLTexture.h" |
35 #include "core/html/canvas/WebGLVertexArrayObjectOES.h" | 36 #include "core/html/canvas/WebGLVertexArrayObjectOES.h" |
36 #include "wtf/Float32Array.h" | |
37 #include "wtf/Int32Array.h" | |
38 #include "wtf/PassRefPtr.h" | 37 #include "wtf/PassRefPtr.h" |
39 #include "wtf/RefPtr.h" | 38 #include "wtf/RefPtr.h" |
40 #include "wtf/Uint32Array.h" | |
41 #include "wtf/Uint8Array.h" | |
42 #include "wtf/text/WTFString.h" | 39 #include "wtf/text/WTFString.h" |
43 | 40 |
44 namespace blink { | 41 namespace blink { |
45 | 42 |
46 // A tagged union representing the result of get queries like | 43 // A tagged union representing the result of get queries like |
47 // getParameter (encompassing getBooleanv, getIntegerv, getFloatv) and | 44 // getParameter (encompassing getBooleanv, getIntegerv, getFloatv) and |
48 // similar variants. For reference counted types, increments and | 45 // similar variants. For reference counted types, increments and |
49 // decrements the reference count of the target object. | 46 // decrements the reference count of the target object. |
50 | 47 |
51 class WebGLGetInfo final { | 48 class WebGLGetInfo final { |
(...skipping 22 matching lines...) Expand all Loading... |
74 | 71 |
75 explicit WebGLGetInfo(bool value); | 72 explicit WebGLGetInfo(bool value); |
76 WebGLGetInfo(const bool* value, int size); | 73 WebGLGetInfo(const bool* value, int size); |
77 explicit WebGLGetInfo(float value); | 74 explicit WebGLGetInfo(float value); |
78 explicit WebGLGetInfo(int value); | 75 explicit WebGLGetInfo(int value); |
79 // Represents the null value and type. | 76 // Represents the null value and type. |
80 WebGLGetInfo(); | 77 WebGLGetInfo(); |
81 explicit WebGLGetInfo(const String& value); | 78 explicit WebGLGetInfo(const String& value); |
82 explicit WebGLGetInfo(unsigned value); | 79 explicit WebGLGetInfo(unsigned value); |
83 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLBuffer> value); | 80 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLBuffer> value); |
84 explicit WebGLGetInfo(PassRefPtr<Float32Array> value); | 81 explicit WebGLGetInfo(PassRefPtr<DOMFloat32Array> value); |
85 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLFramebuffer> value); | 82 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLFramebuffer> value); |
86 explicit WebGLGetInfo(PassRefPtr<Int32Array> value); | 83 explicit WebGLGetInfo(PassRefPtr<DOMInt32Array> value); |
87 // FIXME: implement WebGLObjectArray | 84 // FIXME: implement WebGLObjectArray |
88 // WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLObjectArray> value); | 85 // WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLObjectArray> value); |
89 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLProgram> value); | 86 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLProgram> value); |
90 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLRenderbuffer> value); | 87 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLRenderbuffer> value); |
91 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLTexture> value); | 88 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLTexture> value); |
92 explicit WebGLGetInfo(PassRefPtr<Uint8Array> value); | 89 explicit WebGLGetInfo(PassRefPtr<DOMUint8Array> value); |
93 explicit WebGLGetInfo(PassRefPtr<Uint32Array> value); | 90 explicit WebGLGetInfo(PassRefPtr<DOMUint32Array> value); |
94 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> valu
e); | 91 explicit WebGLGetInfo(PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> valu
e); |
95 | 92 |
96 Type getType() const; | 93 Type getType() const; |
97 | 94 |
98 bool getBool() const; | 95 bool getBool() const; |
99 const Vector<bool>& getBoolArray() const; | 96 const Vector<bool>& getBoolArray() const; |
100 float getFloat() const; | 97 float getFloat() const; |
101 int getInt() const; | 98 int getInt() const; |
102 const String& getString() const; | 99 const String& getString() const; |
103 unsigned getUnsignedInt() const; | 100 unsigned getUnsignedInt() const; |
104 PassRefPtrWillBeRawPtr<WebGLBuffer> getWebGLBuffer() const; | 101 PassRefPtrWillBeRawPtr<WebGLBuffer> getWebGLBuffer() const; |
105 PassRefPtr<Float32Array> getWebGLFloatArray() const; | 102 PassRefPtr<DOMFloat32Array> getWebGLFloatArray() const; |
106 PassRefPtrWillBeRawPtr<WebGLFramebuffer> getWebGLFramebuffer() const; | 103 PassRefPtrWillBeRawPtr<WebGLFramebuffer> getWebGLFramebuffer() const; |
107 PassRefPtr<Int32Array> getWebGLIntArray() const; | 104 PassRefPtr<DOMInt32Array> getWebGLIntArray() const; |
108 // FIXME: implement WebGLObjectArray | 105 // FIXME: implement WebGLObjectArray |
109 // PassRefPtr<WebGLObjectArray> getWebGLObjectArray() const; | 106 // PassRefPtr<WebGLObjectArray> getWebGLObjectArray() const; |
110 PassRefPtrWillBeRawPtr<WebGLProgram> getWebGLProgram() const; | 107 PassRefPtrWillBeRawPtr<WebGLProgram> getWebGLProgram() const; |
111 PassRefPtrWillBeRawPtr<WebGLRenderbuffer> getWebGLRenderbuffer() const; | 108 PassRefPtrWillBeRawPtr<WebGLRenderbuffer> getWebGLRenderbuffer() const; |
112 PassRefPtrWillBeRawPtr<WebGLTexture> getWebGLTexture() const; | 109 PassRefPtrWillBeRawPtr<WebGLTexture> getWebGLTexture() const; |
113 PassRefPtr<Uint8Array> getWebGLUnsignedByteArray() const; | 110 PassRefPtr<DOMUint8Array> getWebGLUnsignedByteArray() const; |
114 PassRefPtr<Uint32Array> getWebGLUnsignedIntArray() const; | 111 PassRefPtr<DOMUint32Array> getWebGLUnsignedIntArray() const; |
115 PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> getWebGLVertexArrayObjectO
ES() const; | 112 PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> getWebGLVertexArrayObjectO
ES() const; |
116 | 113 |
117 private: | 114 private: |
118 Type m_type; | 115 Type m_type; |
119 bool m_bool; | 116 bool m_bool; |
120 Vector<bool> m_boolArray; | 117 Vector<bool> m_boolArray; |
121 float m_float; | 118 float m_float; |
122 int m_int; | 119 int m_int; |
123 String m_string; | 120 String m_string; |
124 unsigned m_unsignedInt; | 121 unsigned m_unsignedInt; |
125 RefPtrWillBeMember<WebGLBuffer> m_webglBuffer; | 122 RefPtrWillBeMember<WebGLBuffer> m_webglBuffer; |
126 RefPtr<Float32Array> m_webglFloatArray; | 123 RefPtr<DOMFloat32Array> m_webglFloatArray; |
127 RefPtrWillBeMember<WebGLFramebuffer> m_webglFramebuffer; | 124 RefPtrWillBeMember<WebGLFramebuffer> m_webglFramebuffer; |
128 RefPtr<Int32Array> m_webglIntArray; | 125 RefPtr<DOMInt32Array> m_webglIntArray; |
129 // FIXME: implement WebGLObjectArray | 126 // FIXME: implement WebGLObjectArray |
130 // RefPtr<WebGLObjectArray> m_webglObjectArray; | 127 // RefPtr<WebGLObjectArray> m_webglObjectArray; |
131 RefPtrWillBeMember<WebGLProgram> m_webglProgram; | 128 RefPtrWillBeMember<WebGLProgram> m_webglProgram; |
132 RefPtrWillBeMember<WebGLRenderbuffer> m_webglRenderbuffer; | 129 RefPtrWillBeMember<WebGLRenderbuffer> m_webglRenderbuffer; |
133 RefPtrWillBeMember<WebGLTexture> m_webglTexture; | 130 RefPtrWillBeMember<WebGLTexture> m_webglTexture; |
134 RefPtr<Uint8Array> m_webglUnsignedByteArray; | 131 RefPtr<DOMUint8Array> m_webglUnsignedByteArray; |
135 RefPtr<Uint32Array> m_webglUnsignedIntArray; | 132 RefPtr<DOMUint32Array> m_webglUnsignedIntArray; |
136 RefPtrWillBeMember<WebGLVertexArrayObjectOES> m_webglVertexArrayObject; | 133 RefPtrWillBeMember<WebGLVertexArrayObjectOES> m_webglVertexArrayObject; |
137 }; | 134 }; |
138 | 135 |
139 } // namespace blink | 136 } // namespace blink |
140 | 137 |
141 #endif // WebGLGetInfo_h | 138 #endif // WebGLGetInfo_h |
OLD | NEW |