OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | |
3 * | |
4 * Redistribution and use in source and binary forms, with or without | |
5 * modification, are permitted provided that the following conditions | |
6 * are met: | |
7 * 1. Redistributions of source code must retain the above copyright | |
8 * notice, this list of conditions and the following disclaimer. | |
9 * 2. Redistributions in binary form must reproduce the above copyright | |
10 * notice, this list of conditions and the following disclaimer in the | |
11 * documentation and/or other materials provided with the distribution. | |
12 * | |
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY | |
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR | |
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
24 */ | |
25 | |
26 // http://www.khronos.org/registry/webgl/specs/latest/1.0/#WebGLRenderingContext
Base | |
27 | |
28 typedef unsigned long GLenum; | |
29 typedef boolean GLboolean; | |
30 typedef unsigned long GLbitfield; | |
31 typedef byte GLbyte; // 'byte' should be a signed 8 bit type. | |
32 typedef short GLshort; | |
33 typedef long GLint; | |
34 typedef long GLsizei; | |
35 typedef long long GLintptr; | |
36 typedef long long GLsizeiptr; | |
37 typedef octet GLubyte; // 'octet' should be an unsigned 8 bit type. | |
38 typedef unsigned short GLushort; | |
39 typedef unsigned long GLuint; | |
40 typedef unrestricted float GLfloat; | |
41 typedef unrestricted float GLclampf; | |
42 | |
43 [ | |
44 // FIXME: [DoNotCheckConstants] and [TypeChecking=(Interface,Unrestricted)]
should be applied | |
45 // to members and not need to be put on implementing interface | |
46 // DoNotCheckConstants, // need to put on implementing interface | |
47 NoInterfaceObject, // Always used on target of 'implements' | |
48 // TypeChecking=(Interface,Unrestricted), // need to put on implementing int
erface | |
49 ] interface WebGLRenderingContextBase { | |
50 | |
51 readonly attribute HTMLCanvasElement canvas; | |
52 | |
53 /* ClearBufferMask */ | |
54 const GLenum DEPTH_BUFFER_BIT = 0x00000100; | |
55 const GLenum STENCIL_BUFFER_BIT = 0x00000400; | |
56 const GLenum COLOR_BUFFER_BIT = 0x00004000; | |
57 | |
58 /* BeginMode */ | |
59 const GLenum POINTS = 0x0000; | |
60 const GLenum LINES = 0x0001; | |
61 const GLenum LINE_LOOP = 0x0002; | |
62 const GLenum LINE_STRIP = 0x0003; | |
63 const GLenum TRIANGLES = 0x0004; | |
64 const GLenum TRIANGLE_STRIP = 0x0005; | |
65 const GLenum TRIANGLE_FAN = 0x0006; | |
66 | |
67 /* AlphaFunction (not supported in ES20) */ | |
68 /* NEVER */ | |
69 /* LESS */ | |
70 /* EQUAL */ | |
71 /* LEQUAL */ | |
72 /* GREATER */ | |
73 /* NOTEQUAL */ | |
74 /* GEQUAL */ | |
75 /* ALWAYS */ | |
76 | |
77 /* BlendingFactorDest */ | |
78 const GLenum ZERO = 0; | |
79 const GLenum ONE = 1; | |
80 const GLenum SRC_COLOR = 0x0300; | |
81 const GLenum ONE_MINUS_SRC_COLOR = 0x0301; | |
82 const GLenum SRC_ALPHA = 0x0302; | |
83 const GLenum ONE_MINUS_SRC_ALPHA = 0x0303; | |
84 const GLenum DST_ALPHA = 0x0304; | |
85 const GLenum ONE_MINUS_DST_ALPHA = 0x0305; | |
86 | |
87 /* BlendingFactorSrc */ | |
88 /* ZERO */ | |
89 /* ONE */ | |
90 const GLenum DST_COLOR = 0x0306; | |
91 const GLenum ONE_MINUS_DST_COLOR = 0x0307; | |
92 const GLenum SRC_ALPHA_SATURATE = 0x0308; | |
93 /* SRC_ALPHA */ | |
94 /* ONE_MINUS_SRC_ALPHA */ | |
95 /* DST_ALPHA */ | |
96 /* ONE_MINUS_DST_ALPHA */ | |
97 | |
98 /* BlendEquationSeparate */ | |
99 const GLenum FUNC_ADD = 0x8006; | |
100 const GLenum BLEND_EQUATION = 0x8009; | |
101 const GLenum BLEND_EQUATION_RGB = 0x8009; /* same as BLEND_EQU
ATION */ | |
102 const GLenum BLEND_EQUATION_ALPHA = 0x883D; | |
103 | |
104 /* BlendSubtract */ | |
105 const GLenum FUNC_SUBTRACT = 0x800A; | |
106 const GLenum FUNC_REVERSE_SUBTRACT = 0x800B; | |
107 | |
108 /* Separate Blend Functions */ | |
109 const GLenum BLEND_DST_RGB = 0x80C8; | |
110 const GLenum BLEND_SRC_RGB = 0x80C9; | |
111 const GLenum BLEND_DST_ALPHA = 0x80CA; | |
112 const GLenum BLEND_SRC_ALPHA = 0x80CB; | |
113 const GLenum CONSTANT_COLOR = 0x8001; | |
114 const GLenum ONE_MINUS_CONSTANT_COLOR = 0x8002; | |
115 const GLenum CONSTANT_ALPHA = 0x8003; | |
116 const GLenum ONE_MINUS_CONSTANT_ALPHA = 0x8004; | |
117 const GLenum BLEND_COLOR = 0x8005; | |
118 | |
119 /* Buffer Objects */ | |
120 const GLenum ARRAY_BUFFER = 0x8892; | |
121 const GLenum ELEMENT_ARRAY_BUFFER = 0x8893; | |
122 const GLenum ARRAY_BUFFER_BINDING = 0x8894; | |
123 const GLenum ELEMENT_ARRAY_BUFFER_BINDING = 0x8895; | |
124 | |
125 const GLenum STREAM_DRAW = 0x88E0; | |
126 const GLenum STATIC_DRAW = 0x88E4; | |
127 const GLenum DYNAMIC_DRAW = 0x88E8; | |
128 | |
129 const GLenum BUFFER_SIZE = 0x8764; | |
130 const GLenum BUFFER_USAGE = 0x8765; | |
131 | |
132 const GLenum CURRENT_VERTEX_ATTRIB = 0x8626; | |
133 | |
134 /* CullFaceMode */ | |
135 const GLenum FRONT = 0x0404; | |
136 const GLenum BACK = 0x0405; | |
137 const GLenum FRONT_AND_BACK = 0x0408; | |
138 | |
139 /* DepthFunction */ | |
140 /* NEVER */ | |
141 /* LESS */ | |
142 /* EQUAL */ | |
143 /* LEQUAL */ | |
144 /* GREATER */ | |
145 /* NOTEQUAL */ | |
146 /* GEQUAL */ | |
147 /* ALWAYS */ | |
148 | |
149 /* EnableCap */ | |
150 const GLenum TEXTURE_2D = 0x0DE1; | |
151 const GLenum CULL_FACE = 0x0B44; | |
152 const GLenum BLEND = 0x0BE2; | |
153 const GLenum DITHER = 0x0BD0; | |
154 const GLenum STENCIL_TEST = 0x0B90; | |
155 const GLenum DEPTH_TEST = 0x0B71; | |
156 const GLenum SCISSOR_TEST = 0x0C11; | |
157 const GLenum POLYGON_OFFSET_FILL = 0x8037; | |
158 const GLenum SAMPLE_ALPHA_TO_COVERAGE = 0x809E; | |
159 const GLenum SAMPLE_COVERAGE = 0x80A0; | |
160 | |
161 /* ErrorCode */ | |
162 const GLenum NO_ERROR = 0; | |
163 const GLenum INVALID_ENUM = 0x0500; | |
164 const GLenum INVALID_VALUE = 0x0501; | |
165 const GLenum INVALID_OPERATION = 0x0502; | |
166 const GLenum OUT_OF_MEMORY = 0x0505; | |
167 | |
168 /* FrontFaceDirection */ | |
169 const GLenum CW = 0x0900; | |
170 const GLenum CCW = 0x0901; | |
171 | |
172 /* GetPName */ | |
173 const GLenum LINE_WIDTH = 0x0B21; | |
174 const GLenum ALIASED_POINT_SIZE_RANGE = 0x846D; | |
175 const GLenum ALIASED_LINE_WIDTH_RANGE = 0x846E; | |
176 const GLenum CULL_FACE_MODE = 0x0B45; | |
177 const GLenum FRONT_FACE = 0x0B46; | |
178 const GLenum DEPTH_RANGE = 0x0B70; | |
179 const GLenum DEPTH_WRITEMASK = 0x0B72; | |
180 const GLenum DEPTH_CLEAR_VALUE = 0x0B73; | |
181 const GLenum DEPTH_FUNC = 0x0B74; | |
182 const GLenum STENCIL_CLEAR_VALUE = 0x0B91; | |
183 const GLenum STENCIL_FUNC = 0x0B92; | |
184 const GLenum STENCIL_FAIL = 0x0B94; | |
185 const GLenum STENCIL_PASS_DEPTH_FAIL = 0x0B95; | |
186 const GLenum STENCIL_PASS_DEPTH_PASS = 0x0B96; | |
187 const GLenum STENCIL_REF = 0x0B97; | |
188 const GLenum STENCIL_VALUE_MASK = 0x0B93; | |
189 const GLenum STENCIL_WRITEMASK = 0x0B98; | |
190 const GLenum STENCIL_BACK_FUNC = 0x8800; | |
191 const GLenum STENCIL_BACK_FAIL = 0x8801; | |
192 const GLenum STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802; | |
193 const GLenum STENCIL_BACK_PASS_DEPTH_PASS = 0x8803; | |
194 const GLenum STENCIL_BACK_REF = 0x8CA3; | |
195 const GLenum STENCIL_BACK_VALUE_MASK = 0x8CA4; | |
196 const GLenum STENCIL_BACK_WRITEMASK = 0x8CA5; | |
197 const GLenum VIEWPORT = 0x0BA2; | |
198 const GLenum SCISSOR_BOX = 0x0C10; | |
199 /* SCISSOR_TEST */ | |
200 const GLenum COLOR_CLEAR_VALUE = 0x0C22; | |
201 const GLenum COLOR_WRITEMASK = 0x0C23; | |
202 const GLenum UNPACK_ALIGNMENT = 0x0CF5; | |
203 const GLenum PACK_ALIGNMENT = 0x0D05; | |
204 const GLenum MAX_TEXTURE_SIZE = 0x0D33; | |
205 const GLenum MAX_VIEWPORT_DIMS = 0x0D3A; | |
206 const GLenum SUBPIXEL_BITS = 0x0D50; | |
207 const GLenum RED_BITS = 0x0D52; | |
208 const GLenum GREEN_BITS = 0x0D53; | |
209 const GLenum BLUE_BITS = 0x0D54; | |
210 const GLenum ALPHA_BITS = 0x0D55; | |
211 const GLenum DEPTH_BITS = 0x0D56; | |
212 const GLenum STENCIL_BITS = 0x0D57; | |
213 const GLenum POLYGON_OFFSET_UNITS = 0x2A00; | |
214 /* POLYGON_OFFSET_FILL */ | |
215 const GLenum POLYGON_OFFSET_FACTOR = 0x8038; | |
216 const GLenum TEXTURE_BINDING_2D = 0x8069; | |
217 const GLenum SAMPLE_BUFFERS = 0x80A8; | |
218 const GLenum SAMPLES = 0x80A9; | |
219 const GLenum SAMPLE_COVERAGE_VALUE = 0x80AA; | |
220 const GLenum SAMPLE_COVERAGE_INVERT = 0x80AB; | |
221 | |
222 /* GetTextureParameter */ | |
223 /* TEXTURE_MAG_FILTER */ | |
224 /* TEXTURE_MIN_FILTER */ | |
225 /* TEXTURE_WRAP_S */ | |
226 /* TEXTURE_WRAP_T */ | |
227 | |
228 const GLenum COMPRESSED_TEXTURE_FORMATS = 0x86A3; | |
229 | |
230 /* HintMode */ | |
231 const GLenum DONT_CARE = 0x1100; | |
232 const GLenum FASTEST = 0x1101; | |
233 const GLenum NICEST = 0x1102; | |
234 | |
235 /* HintTarget */ | |
236 const GLenum GENERATE_MIPMAP_HINT = 0x8192; | |
237 | |
238 /* DataType */ | |
239 const GLenum BYTE = 0x1400; | |
240 const GLenum UNSIGNED_BYTE = 0x1401; | |
241 const GLenum SHORT = 0x1402; | |
242 const GLenum UNSIGNED_SHORT = 0x1403; | |
243 const GLenum INT = 0x1404; | |
244 const GLenum UNSIGNED_INT = 0x1405; | |
245 const GLenum FLOAT = 0x1406; | |
246 | |
247 /* PixelFormat */ | |
248 const GLenum DEPTH_COMPONENT = 0x1902; | |
249 const GLenum ALPHA = 0x1906; | |
250 const GLenum RGB = 0x1907; | |
251 const GLenum RGBA = 0x1908; | |
252 const GLenum LUMINANCE = 0x1909; | |
253 const GLenum LUMINANCE_ALPHA = 0x190A; | |
254 | |
255 /* PixelType */ | |
256 /* UNSIGNED_BYTE */ | |
257 const GLenum UNSIGNED_SHORT_4_4_4_4 = 0x8033; | |
258 const GLenum UNSIGNED_SHORT_5_5_5_1 = 0x8034; | |
259 const GLenum UNSIGNED_SHORT_5_6_5 = 0x8363; | |
260 | |
261 /* Shaders */ | |
262 const GLenum FRAGMENT_SHADER = 0x8B30; | |
263 const GLenum VERTEX_SHADER = 0x8B31; | |
264 const GLenum MAX_VERTEX_ATTRIBS = 0x8869; | |
265 const GLenum MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB; | |
266 const GLenum MAX_VARYING_VECTORS = 0x8DFC; | |
267 const GLenum MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D; | |
268 const GLenum MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C; | |
269 const GLenum MAX_TEXTURE_IMAGE_UNITS = 0x8872; | |
270 const GLenum MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD; | |
271 const GLenum SHADER_TYPE = 0x8B4F; | |
272 const GLenum DELETE_STATUS = 0x8B80; | |
273 const GLenum LINK_STATUS = 0x8B82; | |
274 const GLenum VALIDATE_STATUS = 0x8B83; | |
275 const GLenum ATTACHED_SHADERS = 0x8B85; | |
276 const GLenum ACTIVE_UNIFORMS = 0x8B86; | |
277 const GLenum ACTIVE_ATTRIBUTES = 0x8B89; | |
278 const GLenum SHADING_LANGUAGE_VERSION = 0x8B8C; | |
279 const GLenum CURRENT_PROGRAM = 0x8B8D; | |
280 | |
281 /* StencilFunction */ | |
282 const GLenum NEVER = 0x0200; | |
283 const GLenum LESS = 0x0201; | |
284 const GLenum EQUAL = 0x0202; | |
285 const GLenum LEQUAL = 0x0203; | |
286 const GLenum GREATER = 0x0204; | |
287 const GLenum NOTEQUAL = 0x0205; | |
288 const GLenum GEQUAL = 0x0206; | |
289 const GLenum ALWAYS = 0x0207; | |
290 | |
291 /* StencilOp */ | |
292 /* ZERO */ | |
293 const GLenum KEEP = 0x1E00; | |
294 const GLenum REPLACE = 0x1E01; | |
295 const GLenum INCR = 0x1E02; | |
296 const GLenum DECR = 0x1E03; | |
297 const GLenum INVERT = 0x150A; | |
298 const GLenum INCR_WRAP = 0x8507; | |
299 const GLenum DECR_WRAP = 0x8508; | |
300 | |
301 /* StringName */ | |
302 const GLenum VENDOR = 0x1F00; | |
303 const GLenum RENDERER = 0x1F01; | |
304 const GLenum VERSION = 0x1F02; | |
305 | |
306 /* TextureMagFilter */ | |
307 const GLenum NEAREST = 0x2600; | |
308 const GLenum LINEAR = 0x2601; | |
309 | |
310 /* TextureMinFilter */ | |
311 /* NEAREST */ | |
312 /* LINEAR */ | |
313 const GLenum NEAREST_MIPMAP_NEAREST = 0x2700; | |
314 const GLenum LINEAR_MIPMAP_NEAREST = 0x2701; | |
315 const GLenum NEAREST_MIPMAP_LINEAR = 0x2702; | |
316 const GLenum LINEAR_MIPMAP_LINEAR = 0x2703; | |
317 | |
318 /* TextureParameterName */ | |
319 const GLenum TEXTURE_MAG_FILTER = 0x2800; | |
320 const GLenum TEXTURE_MIN_FILTER = 0x2801; | |
321 const GLenum TEXTURE_WRAP_S = 0x2802; | |
322 const GLenum TEXTURE_WRAP_T = 0x2803; | |
323 | |
324 /* TextureTarget */ | |
325 /* TEXTURE_2D */ | |
326 const GLenum TEXTURE = 0x1702; | |
327 | |
328 const GLenum TEXTURE_CUBE_MAP = 0x8513; | |
329 const GLenum TEXTURE_BINDING_CUBE_MAP = 0x8514; | |
330 const GLenum TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515; | |
331 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516; | |
332 const GLenum TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517; | |
333 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518; | |
334 const GLenum TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519; | |
335 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A; | |
336 const GLenum MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C; | |
337 | |
338 /* TextureUnit */ | |
339 const GLenum TEXTURE0 = 0x84C0; | |
340 const GLenum TEXTURE1 = 0x84C1; | |
341 const GLenum TEXTURE2 = 0x84C2; | |
342 const GLenum TEXTURE3 = 0x84C3; | |
343 const GLenum TEXTURE4 = 0x84C4; | |
344 const GLenum TEXTURE5 = 0x84C5; | |
345 const GLenum TEXTURE6 = 0x84C6; | |
346 const GLenum TEXTURE7 = 0x84C7; | |
347 const GLenum TEXTURE8 = 0x84C8; | |
348 const GLenum TEXTURE9 = 0x84C9; | |
349 const GLenum TEXTURE10 = 0x84CA; | |
350 const GLenum TEXTURE11 = 0x84CB; | |
351 const GLenum TEXTURE12 = 0x84CC; | |
352 const GLenum TEXTURE13 = 0x84CD; | |
353 const GLenum TEXTURE14 = 0x84CE; | |
354 const GLenum TEXTURE15 = 0x84CF; | |
355 const GLenum TEXTURE16 = 0x84D0; | |
356 const GLenum TEXTURE17 = 0x84D1; | |
357 const GLenum TEXTURE18 = 0x84D2; | |
358 const GLenum TEXTURE19 = 0x84D3; | |
359 const GLenum TEXTURE20 = 0x84D4; | |
360 const GLenum TEXTURE21 = 0x84D5; | |
361 const GLenum TEXTURE22 = 0x84D6; | |
362 const GLenum TEXTURE23 = 0x84D7; | |
363 const GLenum TEXTURE24 = 0x84D8; | |
364 const GLenum TEXTURE25 = 0x84D9; | |
365 const GLenum TEXTURE26 = 0x84DA; | |
366 const GLenum TEXTURE27 = 0x84DB; | |
367 const GLenum TEXTURE28 = 0x84DC; | |
368 const GLenum TEXTURE29 = 0x84DD; | |
369 const GLenum TEXTURE30 = 0x84DE; | |
370 const GLenum TEXTURE31 = 0x84DF; | |
371 const GLenum ACTIVE_TEXTURE = 0x84E0; | |
372 | |
373 /* TextureWrapMode */ | |
374 const GLenum REPEAT = 0x2901; | |
375 const GLenum CLAMP_TO_EDGE = 0x812F; | |
376 const GLenum MIRRORED_REPEAT = 0x8370; | |
377 | |
378 /* Uniform Types */ | |
379 const GLenum FLOAT_VEC2 = 0x8B50; | |
380 const GLenum FLOAT_VEC3 = 0x8B51; | |
381 const GLenum FLOAT_VEC4 = 0x8B52; | |
382 const GLenum INT_VEC2 = 0x8B53; | |
383 const GLenum INT_VEC3 = 0x8B54; | |
384 const GLenum INT_VEC4 = 0x8B55; | |
385 const GLenum BOOL = 0x8B56; | |
386 const GLenum BOOL_VEC2 = 0x8B57; | |
387 const GLenum BOOL_VEC3 = 0x8B58; | |
388 const GLenum BOOL_VEC4 = 0x8B59; | |
389 const GLenum FLOAT_MAT2 = 0x8B5A; | |
390 const GLenum FLOAT_MAT3 = 0x8B5B; | |
391 const GLenum FLOAT_MAT4 = 0x8B5C; | |
392 const GLenum SAMPLER_2D = 0x8B5E; | |
393 const GLenum SAMPLER_CUBE = 0x8B60; | |
394 | |
395 /* Vertex Arrays */ | |
396 const GLenum VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622; | |
397 const GLenum VERTEX_ATTRIB_ARRAY_SIZE = 0x8623; | |
398 const GLenum VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624; | |
399 const GLenum VERTEX_ATTRIB_ARRAY_TYPE = 0x8625; | |
400 const GLenum VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A; | |
401 const GLenum VERTEX_ATTRIB_ARRAY_POINTER = 0x8645; | |
402 const GLenum VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F; | |
403 | |
404 /* Read Format */ | |
405 const GLenum IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A; | |
406 const GLenum IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B; | |
407 | |
408 /* Shader Source */ | |
409 const GLenum COMPILE_STATUS = 0x8B81; | |
410 | |
411 /* Shader Precision-Specified Types */ | |
412 const GLenum LOW_FLOAT = 0x8DF0; | |
413 const GLenum MEDIUM_FLOAT = 0x8DF1; | |
414 const GLenum HIGH_FLOAT = 0x8DF2; | |
415 const GLenum LOW_INT = 0x8DF3; | |
416 const GLenum MEDIUM_INT = 0x8DF4; | |
417 const GLenum HIGH_INT = 0x8DF5; | |
418 | |
419 /* Framebuffer Object. */ | |
420 const GLenum FRAMEBUFFER = 0x8D40; | |
421 const GLenum RENDERBUFFER = 0x8D41; | |
422 | |
423 const GLenum RGBA4 = 0x8056; | |
424 const GLenum RGB5_A1 = 0x8057; | |
425 const GLenum RGB565 = 0x8D62; | |
426 const GLenum DEPTH_COMPONENT16 = 0x81A5; | |
427 const GLenum STENCIL_INDEX = 0x1901; | |
428 const GLenum STENCIL_INDEX8 = 0x8D48; | |
429 const GLenum DEPTH_STENCIL = 0x84F9; | |
430 | |
431 const GLenum RENDERBUFFER_WIDTH = 0x8D42; | |
432 const GLenum RENDERBUFFER_HEIGHT = 0x8D43; | |
433 const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44; | |
434 const GLenum RENDERBUFFER_RED_SIZE = 0x8D50; | |
435 const GLenum RENDERBUFFER_GREEN_SIZE = 0x8D51; | |
436 const GLenum RENDERBUFFER_BLUE_SIZE = 0x8D52; | |
437 const GLenum RENDERBUFFER_ALPHA_SIZE = 0x8D53; | |
438 const GLenum RENDERBUFFER_DEPTH_SIZE = 0x8D54; | |
439 const GLenum RENDERBUFFER_STENCIL_SIZE = 0x8D55; | |
440 | |
441 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0; | |
442 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1; | |
443 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2; | |
444 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3; | |
445 | |
446 const GLenum COLOR_ATTACHMENT0 = 0x8CE0; | |
447 const GLenum DEPTH_ATTACHMENT = 0x8D00; | |
448 const GLenum STENCIL_ATTACHMENT = 0x8D20; | |
449 const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A; | |
450 | |
451 const GLenum NONE = 0; | |
452 | |
453 const GLenum FRAMEBUFFER_COMPLETE = 0x8CD5; | |
454 const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6; | |
455 const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7; | |
456 const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9; | |
457 const GLenum FRAMEBUFFER_UNSUPPORTED = 0x8CDD; | |
458 | |
459 const GLenum FRAMEBUFFER_BINDING = 0x8CA6; | |
460 const GLenum RENDERBUFFER_BINDING = 0x8CA7; | |
461 const GLenum MAX_RENDERBUFFER_SIZE = 0x84E8; | |
462 | |
463 const GLenum INVALID_FRAMEBUFFER_OPERATION = 0x0506; | |
464 | |
465 /* WebGL-specific enums */ | |
466 const GLenum UNPACK_FLIP_Y_WEBGL = 0x9240; | |
467 const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241; | |
468 const GLenum CONTEXT_LOST_WEBGL = 0x9242; | |
469 const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243; | |
470 const GLenum BROWSER_DEFAULT_WEBGL = 0x9244; | |
471 | |
472 readonly attribute GLsizei drawingBufferWidth; | |
473 readonly attribute GLsizei drawingBufferHeight; | |
474 | |
475 void activeTexture(GLenum texture); | |
476 void attachShader(WebGLProgram? program, WebGLShader? shader); | |
477 void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name)
; | |
478 void bindBuffer(GLenum target, WebGLBuffer? buffer); | |
479 void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer); | |
480 void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer); | |
481 void bindTexture(GLenum target, WebGLTexture? texture); | |
482 void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
; | |
483 void blendEquation(GLenum mode); | |
484 void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); | |
485 void blendFunc(GLenum sfactor, GLenum dfactor); | |
486 void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum
dstAlpha); | |
487 // FIXME: should be union type | |
488 // https://www.khronos.org/bugzilla/show_bug.cgi?id=1172 | |
489 void bufferData(GLenum target, GLsizeiptr size, GLenum usage); | |
490 void bufferData(GLenum target, ArrayBufferView data, GLenum usage); | |
491 void bufferData(GLenum target, ArrayBuffer? data, GLenum usage); | |
492 void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView data); | |
493 void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data); | |
494 | |
495 GLenum checkFramebufferStatus(GLenum target); | |
496 void clear(GLbitfield mask); | |
497 void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
; | |
498 void clearDepth(GLclampf depth); | |
499 void clearStencil(GLint s); | |
500 void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alp
ha); | |
501 void compileShader(WebGLShader? shader); | |
502 | |
503 void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, | |
504 GLsizei width, GLsizei height, GLint border, Array
BufferView? data); | |
505 void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLin
t yoffset, | |
506 GLsizei width, GLsizei height, GLenum format, A
rrayBufferView? data); | |
507 | |
508 void copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint
x, GLint y, GLsizei width, GLsizei height, GLint border); | |
509 void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff
set, GLint x, GLint y, GLsizei width, GLsizei height); | |
510 | |
511 WebGLBuffer createBuffer(); | |
512 WebGLFramebuffer createFramebuffer(); | |
513 WebGLProgram createProgram(); | |
514 WebGLRenderbuffer createRenderbuffer(); | |
515 WebGLShader createShader(GLenum type); | |
516 WebGLTexture createTexture(); | |
517 | |
518 void cullFace(GLenum mode); | |
519 | |
520 void deleteBuffer(WebGLBuffer? buffer); | |
521 void deleteFramebuffer(WebGLFramebuffer? framebuffer); | |
522 void deleteProgram(WebGLProgram? program); | |
523 void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer); | |
524 void deleteShader(WebGLShader? shader); | |
525 void deleteTexture(WebGLTexture? texture); | |
526 | |
527 void depthFunc(GLenum func); | |
528 void depthMask(GLboolean flag); | |
529 void depthRange(GLclampf zNear, GLclampf zFar); | |
530 void detachShader(WebGLProgram? program, WebGLShader? shader); | |
531 void disable(GLenum cap); | |
532 void disableVertexAttribArray(GLuint index); | |
533 void drawArrays(GLenum mode, GLint first, GLsizei count); | |
534 void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset); | |
535 | |
536 void enable(GLenum cap); | |
537 void enableVertexAttribArray(GLuint index); | |
538 void finish(); | |
539 void flush(); | |
540 void framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum render
buffertarget, WebGLRenderbuffer? renderbuffer); | |
541 void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget
, WebGLTexture? texture, GLint level); | |
542 void frontFace(GLenum mode); | |
543 void generateMipmap(GLenum target); | |
544 | |
545 WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index); | |
546 WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index); | |
547 | |
548 sequence<WebGLShader>? getAttachedShaders(WebGLProgram? program); | |
549 | |
550 GLint getAttribLocation(WebGLProgram? program, DOMString name); | |
551 | |
552 [Custom] any getBufferParameter(GLenum target, GLenum pname); | |
553 | |
554 WebGLContextAttributes getContextAttributes(); | |
555 | |
556 GLenum getError(); | |
557 | |
558 // object getExtension(DOMString name); | |
559 [Custom] any getExtension(DOMString name); | |
560 | |
561 [Custom] any getFramebufferAttachmentParameter(GLenum target, GLenum attachm
ent, GLenum pname); | |
562 [Custom] any getParameter(GLenum pname); | |
563 [Custom] any getProgramParameter(WebGLProgram? program, GLenum pname); | |
564 DOMString? getProgramInfoLog(WebGLProgram? program); | |
565 [Custom] any getRenderbufferParameter(GLenum target, GLenum pname); | |
566 [Custom] any getShaderParameter(WebGLShader? shader, GLenum pname); | |
567 | |
568 DOMString? getShaderInfoLog(WebGLShader? shader); | |
569 | |
570 WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenu
m precisiontype); | |
571 | |
572 DOMString? getShaderSource(WebGLShader? shader); | |
573 | |
574 sequence<DOMString>? getSupportedExtensions(); | |
575 | |
576 [Custom] any getTexParameter(GLenum target, GLenum pname); | |
577 | |
578 [Custom] any getUniform(WebGLProgram? program, WebGLUniformLocation? locatio
n); | |
579 | |
580 WebGLUniformLocation getUniformLocation(WebGLProgram? program, DOMString nam
e); | |
581 | |
582 [Custom] any getVertexAttrib(GLuint index, GLenum pname); | |
583 | |
584 GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname); | |
585 | |
586 void hint(GLenum target, GLenum mode); | |
587 GLboolean isBuffer(WebGLBuffer? buffer); | |
588 GLboolean isContextLost(); | |
589 GLboolean isEnabled(GLenum cap); | |
590 GLboolean isFramebuffer(WebGLFramebuffer? framebuffer); | |
591 GLboolean isProgram(WebGLProgram? program); | |
592 GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer); | |
593 GLboolean isShader(WebGLShader? shader); | |
594 GLboolean isTexture(WebGLTexture? texture); | |
595 void lineWidth(GLfloat width); | |
596 void linkProgram(WebGLProgram? program); | |
597 void pixelStorei(GLenum pname, GLint param); | |
598 void polygonOffset(GLfloat factor, GLfloat units); | |
599 | |
600 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum form
at, GLenum type, ArrayBufferView? pixels); | |
601 | |
602 void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width
, GLsizei height); | |
603 void sampleCoverage(GLclampf value, GLboolean invert); | |
604 void scissor(GLint x, GLint y, GLsizei width, GLsizei height); | |
605 void shaderSource(WebGLShader? shader, DOMString string); | |
606 void stencilFunc(GLenum func, GLint ref, GLuint mask); | |
607 void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); | |
608 void stencilMask(GLuint mask); | |
609 void stencilMaskSeparate(GLenum face, GLuint mask); | |
610 void stencilOp(GLenum fail, GLenum zfail, GLenum zpass); | |
611 void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
; | |
612 | |
613 void texParameterf(GLenum target, GLenum pname, GLfloat param); | |
614 void texParameteri(GLenum target, GLenum pname, GLint param); | |
615 | |
616 // Supported forms: | |
617 // FIXME: should be union type | |
618 // https://www.khronos.org/bugzilla/show_bug.cgi?id=1172 | |
619 [RaisesException] void texImage2D( | |
620 GLenum target, GLint level, GLenum internalformat, | |
621 GLsizei width, GLsizei height, GLint border, | |
622 GLenum format, GLenum type, ArrayBufferView? pixels); | |
623 [RaisesException] void texImage2D( | |
624 GLenum target, GLint level, GLenum internalformat, | |
625 GLenum format, GLenum type, ImageData? pixels); | |
626 [RaisesException] void texImage2D( | |
627 GLenum target, GLint level, GLenum internalformat, | |
628 GLenum format, GLenum type, HTMLImageElement image); | |
629 [RaisesException] void texImage2D( | |
630 GLenum target, GLint level, GLenum internalformat, | |
631 GLenum format, GLenum type, HTMLCanvasElement canvas); | |
632 | |
633 [RaisesException] void texSubImage2D( | |
634 GLenum target, GLint level, GLint xoffset, GLint yoffset, | |
635 GLsizei width, GLsizei height, | |
636 GLenum format, GLenum type, ArrayBufferView? pixels); | |
637 [RaisesException] void texSubImage2D( | |
638 GLenum target, GLint level, GLint xoffset, GLint yoffset, | |
639 GLenum format, GLenum type, ImageData? pixels); | |
640 [RaisesException] void texSubImage2D( | |
641 GLenum target, GLint level, GLint xoffset, GLint yoffset, | |
642 GLenum format, GLenum type, HTMLImageElement image); | |
643 [RaisesException] void texSubImage2D( | |
644 GLenum target, GLint level, GLint xoffset, GLint yoffset, | |
645 GLenum format, GLenum type, HTMLCanvasElement canvas); | |
646 | |
647 void uniform1f(WebGLUniformLocation? location, GLfloat x); | |
648 [Custom] void uniform1fv(WebGLUniformLocation? location, Float32Array v); | |
649 void uniform1i(WebGLUniformLocation? location, GLint x); | |
650 [Custom] void uniform1iv(WebGLUniformLocation? location, Int32Array v); | |
651 void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y); | |
652 [Custom] void uniform2fv(WebGLUniformLocation? location, Float32Array v); | |
653 void uniform2i(WebGLUniformLocation? location, GLint x, GLint y); | |
654 [Custom] void uniform2iv(WebGLUniformLocation? location, Int32Array v); | |
655 void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat
z); | |
656 [Custom] void uniform3fv(WebGLUniformLocation? location, Float32Array v); | |
657 void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z); | |
658 [Custom] void uniform3iv(WebGLUniformLocation? location, Int32Array v); | |
659 void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat
z, GLfloat w); | |
660 [Custom] void uniform4fv(WebGLUniformLocation? location, Float32Array v); | |
661 void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GL
int w); | |
662 [Custom] void uniform4iv(WebGLUniformLocation? location, Int32Array v); | |
663 | |
664 [Custom] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean tra
nspose, Float32Array array); | |
665 [Custom] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean tra
nspose, Float32Array array); | |
666 [Custom] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean tra
nspose, Float32Array array); | |
667 | |
668 void useProgram(WebGLProgram? program); | |
669 void validateProgram(WebGLProgram? program); | |
670 | |
671 void vertexAttrib1f(GLuint indx, GLfloat x); | |
672 [Custom] void vertexAttrib1fv(GLuint indx, Float32Array values); | |
673 void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y); | |
674 [Custom] void vertexAttrib2fv(GLuint indx, Float32Array values); | |
675 void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z); | |
676 [Custom] void vertexAttrib3fv(GLuint indx, Float32Array values); | |
677 void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
; | |
678 [Custom] void vertexAttrib4fv(GLuint indx, Float32Array values); | |
679 void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean nor
malized, | |
680 GLsizei stride, GLintptr offset); | |
681 | |
682 void viewport(GLint x, GLint y, GLsizei width, GLsizei height); | |
683 }; | |
OLD | NEW |