1231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*
2231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Copyright (C) 2009 Apple Inc. All rights reserved.
3231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
4231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Redistribution and use in source and binary forms, with or without
5231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * modification, are permitted provided that the following conditions
6231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * are met:
7231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 1. Redistributions of source code must retain the above copyright
8231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *    notice, this list of conditions and the following disclaimer.
9231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 2. Redistributions in binary form must reproduce the above copyright
10231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *    notice, this list of conditions and the following disclaimer in the
11231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *    documentation and/or other materials provided with the distribution.
12231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
13231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block */
25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockmodule html {
27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    interface [
292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block        Conditional=WEBGL,
30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        InterfaceUUID=98fb48ae-7216-489c-862b-8e1217fc4443,
31967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch        ImplementationUUID=ab4f0781-152f-450e-9546-5b3987491a54,
32f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        CustomMarkFunction,
33967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch        DontCheckEnums
34643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    ] WebGLRenderingContext : CanvasRenderingContext {
35231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* ClearBufferMask */
37231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_BUFFER_BIT               = 0x00000100;
38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BUFFER_BIT             = 0x00000400;
39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COLOR_BUFFER_BIT               = 0x00004000;
40231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
41231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* BeginMode */
42231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int POINTS                         = 0x0000;
43231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINES                          = 0x0001;
44231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINE_LOOP                      = 0x0002;
45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINE_STRIP                     = 0x0003;
46231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TRIANGLES                      = 0x0004;
47231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TRIANGLE_STRIP                 = 0x0005;
48231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TRIANGLE_FAN                   = 0x0006;
49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* AlphaFunction (not supported in ES20) */
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      NEVER */
52231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      LESS */
53231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      EQUAL */
54231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      LEQUAL */
55231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      GREATER */
56231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      NOTEQUAL */
57231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      GEQUAL */
58231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ALWAYS */
59231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
60231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* BlendingFactorDest */
61231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ZERO                           = 0;
62231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE                            = 1;
63231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SRC_COLOR                      = 0x0300;
64231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_SRC_COLOR            = 0x0301;
65231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SRC_ALPHA                      = 0x0302;
66231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_SRC_ALPHA            = 0x0303;
67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DST_ALPHA                      = 0x0304;
68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_DST_ALPHA            = 0x0305;
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
70231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* BlendingFactorSrc */
71231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ZERO */
72231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ONE */
73231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DST_COLOR                      = 0x0306;
74231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_DST_COLOR            = 0x0307;
75231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SRC_ALPHA_SATURATE             = 0x0308;
76231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      SRC_ALPHA */
77231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ONE_MINUS_SRC_ALPHA */
78231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      DST_ALPHA */
79231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ONE_MINUS_DST_ALPHA */
80231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
81231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* BlendEquationSeparate */
82231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FUNC_ADD                       = 0x8006;
83231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_EQUATION                 = 0x8009;
84231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_EQUATION_RGB             = 0x8009;   /* same as BLEND_EQUATION */
85231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_EQUATION_ALPHA           = 0x883D;
86231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
87231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* BlendSubtract */
88231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FUNC_SUBTRACT                  = 0x800A;
89231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FUNC_REVERSE_SUBTRACT          = 0x800B;
90231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
91231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Separate Blend Functions */
92231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_DST_RGB                  = 0x80C8;
93231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_SRC_RGB                  = 0x80C9;
94231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_DST_ALPHA                = 0x80CA;
95231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_SRC_ALPHA                = 0x80CB;
96231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CONSTANT_COLOR                 = 0x8001;
97231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_CONSTANT_COLOR       = 0x8002;
98231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CONSTANT_ALPHA                 = 0x8003;
99231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ONE_MINUS_CONSTANT_ALPHA       = 0x8004;
100231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND_COLOR                    = 0x8005;
101231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
102231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Buffer Objects */
103231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ARRAY_BUFFER                   = 0x8892;
104231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ELEMENT_ARRAY_BUFFER           = 0x8893;
105231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ARRAY_BUFFER_BINDING           = 0x8894;
106231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ELEMENT_ARRAY_BUFFER_BINDING   = 0x8895;
107231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
108231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STREAM_DRAW                    = 0x88E0;
109231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STATIC_DRAW                    = 0x88E4;
110231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DYNAMIC_DRAW                   = 0x88E8;
111231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
112231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BUFFER_SIZE                    = 0x8764;
113231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BUFFER_USAGE                   = 0x8765;
114231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
115231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CURRENT_VERTEX_ATTRIB          = 0x8626;
116231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
117231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* CullFaceMode */
118231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRONT                          = 0x0404;
119231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BACK                           = 0x0405;
120231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRONT_AND_BACK                 = 0x0408;
121231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
122231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* DepthFunction */
123231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      NEVER */
124231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      LESS */
125231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      EQUAL */
126231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      LEQUAL */
127231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      GREATER */
128231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      NOTEQUAL */
129231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      GEQUAL */
130231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ALWAYS */
131231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
132231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* EnableCap */
133231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_2D                     = 0x0DE1;
134231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CULL_FACE                      = 0x0B44;
135231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLEND                          = 0x0BE2;
136231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DITHER                         = 0x0BD0;
137231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_TEST                   = 0x0B90;
138231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_TEST                     = 0x0B71;
139231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SCISSOR_TEST                   = 0x0C11;
140231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int POLYGON_OFFSET_FILL            = 0x8037;
141231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLE_ALPHA_TO_COVERAGE       = 0x809E;
142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLE_COVERAGE                = 0x80A0;
143231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
144231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* ErrorCode */
145231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NO_ERROR                       = 0;
146231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INVALID_ENUM                   = 0x0500;
147231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INVALID_VALUE                  = 0x0501;
148231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INVALID_OPERATION              = 0x0502;
149231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int OUT_OF_MEMORY                  = 0x0505;
150231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
151231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* FrontFaceDirection */
152231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CW                             = 0x0900;
153231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CCW                            = 0x0901;
154231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
155231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* GetPName */
156231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINE_WIDTH                     = 0x0B21;
157231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ALIASED_POINT_SIZE_RANGE       = 0x846D;
158231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ALIASED_LINE_WIDTH_RANGE       = 0x846E;
159231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CULL_FACE_MODE                 = 0x0B45;
160231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRONT_FACE                     = 0x0B46;
161231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_RANGE                    = 0x0B70;
162231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_WRITEMASK                = 0x0B72;
163231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_CLEAR_VALUE              = 0x0B73;
164231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_FUNC                     = 0x0B74;
165231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_CLEAR_VALUE            = 0x0B91;
166231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_FUNC                   = 0x0B92;
167231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_FAIL                   = 0x0B94;
168231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_PASS_DEPTH_FAIL        = 0x0B95;
169231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_PASS_DEPTH_PASS        = 0x0B96;
170231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_REF                    = 0x0B97;
171231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_VALUE_MASK             = 0x0B93;
172231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_WRITEMASK              = 0x0B98;
173231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_FUNC              = 0x8800;
174231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_FAIL              = 0x8801;
175231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_PASS_DEPTH_FAIL   = 0x8802;
176231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_PASS_DEPTH_PASS   = 0x8803;
177231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_REF               = 0x8CA3;
178231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_VALUE_MASK        = 0x8CA4;
179231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BACK_WRITEMASK         = 0x8CA5;
180231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VIEWPORT                       = 0x0BA2;
181231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SCISSOR_BOX                    = 0x0C10;
182231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      SCISSOR_TEST */
183231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COLOR_CLEAR_VALUE              = 0x0C22;
184231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COLOR_WRITEMASK                = 0x0C23;
185231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNPACK_ALIGNMENT               = 0x0CF5;
186231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int PACK_ALIGNMENT                 = 0x0D05;
187231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_TEXTURE_SIZE               = 0x0D33;
188231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_VIEWPORT_DIMS              = 0x0D3A;
189231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SUBPIXEL_BITS                  = 0x0D50;
190231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RED_BITS                       = 0x0D52;
191231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int GREEN_BITS                     = 0x0D53;
192231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BLUE_BITS                      = 0x0D54;
193231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ALPHA_BITS                     = 0x0D55;
194231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_BITS                     = 0x0D56;
195231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_BITS                   = 0x0D57;
196231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int POLYGON_OFFSET_UNITS           = 0x2A00;
197231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      POLYGON_OFFSET_FILL */
198231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int POLYGON_OFFSET_FACTOR          = 0x8038;
199231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_BINDING_2D             = 0x8069;
200231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLE_BUFFERS                 = 0x80A8;
201231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLES                        = 0x80A9;
202231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLE_COVERAGE_VALUE          = 0x80AA;
203231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLE_COVERAGE_INVERT         = 0x80AB;
204231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
205231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* GetTextureParameter */
206231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      TEXTURE_MAG_FILTER */
207231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      TEXTURE_MIN_FILTER */
208231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      TEXTURE_WRAP_S */
209231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      TEXTURE_WRAP_T */
210231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
211231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
212231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COMPRESSED_TEXTURE_FORMATS     = 0x86A3;
213231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
214231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* HintMode */
215231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DONT_CARE                      = 0x1100;
216231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FASTEST                        = 0x1101;
217231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NICEST                         = 0x1102;
218231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
219231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* HintTarget */
220231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int GENERATE_MIPMAP_HINT            = 0x8192;
221231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
222231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* DataType */
223231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BYTE                           = 0x1400;
224231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_BYTE                  = 0x1401;
225231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SHORT                          = 0x1402;
226231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_SHORT                 = 0x1403;
227231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INT                            = 0x1404;
228231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_INT                   = 0x1405;
229231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT                          = 0x1406;
230231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
231231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* PixelFormat */
232231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_COMPONENT                = 0x1902;
233231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ALPHA                          = 0x1906;
234231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RGB                            = 0x1907;
235231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RGBA                           = 0x1908;
236231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LUMINANCE                      = 0x1909;
237231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LUMINANCE_ALPHA                = 0x190A;
238231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
239231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* PixelType */
240231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      UNSIGNED_BYTE */
241231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_SHORT_4_4_4_4         = 0x8033;
242231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_SHORT_5_5_5_1         = 0x8034;
243231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int UNSIGNED_SHORT_5_6_5           = 0x8363;
244231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
245231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Shaders */
246231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAGMENT_SHADER                  = 0x8B30;
247231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_SHADER                    = 0x8B31;
248231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_VERTEX_ATTRIBS               = 0x8869;
249231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_VERTEX_UNIFORM_VECTORS       = 0x8DFB;
250231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_VARYING_VECTORS              = 0x8DFC;
251231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
252231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_VERTEX_TEXTURE_IMAGE_UNITS   = 0x8B4C;
253231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_TEXTURE_IMAGE_UNITS          = 0x8872;
254231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_FRAGMENT_UNIFORM_VECTORS     = 0x8DFD;
255231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SHADER_TYPE                      = 0x8B4F;
256231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DELETE_STATUS                    = 0x8B80;
257231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINK_STATUS                      = 0x8B82;
258231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VALIDATE_STATUS                  = 0x8B83;
259231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ATTACHED_SHADERS                 = 0x8B85;
260231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ACTIVE_UNIFORMS                  = 0x8B86;
261231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ACTIVE_ATTRIBUTES                = 0x8B89;
262231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SHADING_LANGUAGE_VERSION         = 0x8B8C;
263231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CURRENT_PROGRAM                  = 0x8B8D;
264231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
265231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* StencilFunction */
266231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NEVER                          = 0x0200;
267231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LESS                           = 0x0201;
268231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int EQUAL                          = 0x0202;
269231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LEQUAL                         = 0x0203;
270231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int GREATER                        = 0x0204;
271231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NOTEQUAL                       = 0x0205;
272231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int GEQUAL                         = 0x0206;
273231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ALWAYS                         = 0x0207;
274231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
275231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* StencilOp */
276231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      ZERO */
277231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int KEEP                           = 0x1E00;
278231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int REPLACE                        = 0x1E01;
279231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INCR                           = 0x1E02;
280231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DECR                           = 0x1E03;
281231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INVERT                         = 0x150A;
282231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INCR_WRAP                      = 0x8507;
283231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DECR_WRAP                      = 0x8508;
284231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
285231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* StringName */
286231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VENDOR                         = 0x1F00;
287231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERER                       = 0x1F01;
288231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERSION                        = 0x1F02;
289231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
290231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureMagFilter */
291231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NEAREST                        = 0x2600;
292231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINEAR                         = 0x2601;
293231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
294231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureMinFilter */
295231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      NEAREST */
296231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      LINEAR */
297231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NEAREST_MIPMAP_NEAREST         = 0x2700;
298231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINEAR_MIPMAP_NEAREST          = 0x2701;
299231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NEAREST_MIPMAP_LINEAR          = 0x2702;
300231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LINEAR_MIPMAP_LINEAR           = 0x2703;
301231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
302231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureParameterName */
303231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_MAG_FILTER             = 0x2800;
304231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_MIN_FILTER             = 0x2801;
305231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_WRAP_S                 = 0x2802;
306231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_WRAP_T                 = 0x2803;
307231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
308231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureTarget */
309231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /*      TEXTURE_2D */
310231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE                        = 0x1702;
311231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
312231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP               = 0x8513;
313231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_BINDING_CUBE_MAP       = 0x8514;
314231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_POSITIVE_X    = 0x8515;
315231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_X    = 0x8516;
316231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_POSITIVE_Y    = 0x8517;
317231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_Y    = 0x8518;
318231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_POSITIVE_Z    = 0x8519;
319231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_Z    = 0x851A;
320231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_CUBE_MAP_TEXTURE_SIZE      = 0x851C;
321231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
322231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureUnit */
323231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE0                       = 0x84C0;
324231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE1                       = 0x84C1;
325231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE2                       = 0x84C2;
326231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE3                       = 0x84C3;
327231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE4                       = 0x84C4;
328231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE5                       = 0x84C5;
329231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE6                       = 0x84C6;
330231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE7                       = 0x84C7;
331231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE8                       = 0x84C8;
332231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE9                       = 0x84C9;
333231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE10                      = 0x84CA;
334231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE11                      = 0x84CB;
335231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE12                      = 0x84CC;
336231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE13                      = 0x84CD;
337231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE14                      = 0x84CE;
338231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE15                      = 0x84CF;
339231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE16                      = 0x84D0;
340231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE17                      = 0x84D1;
341231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE18                      = 0x84D2;
342231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE19                      = 0x84D3;
343231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE20                      = 0x84D4;
344231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE21                      = 0x84D5;
345231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE22                      = 0x84D6;
346231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE23                      = 0x84D7;
347231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE24                      = 0x84D8;
348231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE25                      = 0x84D9;
349231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE26                      = 0x84DA;
350231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE27                      = 0x84DB;
351231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE28                      = 0x84DC;
352231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE29                      = 0x84DD;
353231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE30                      = 0x84DE;
354231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int TEXTURE31                      = 0x84DF;
355231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int ACTIVE_TEXTURE                 = 0x84E0;
356231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
357231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* TextureWrapMode */
358231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int REPEAT                         = 0x2901;
359231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int CLAMP_TO_EDGE                  = 0x812F;
360231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MIRRORED_REPEAT                = 0x8370;
361231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
362231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Uniform Types */
363231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_VEC2                     = 0x8B50;
364231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_VEC3                     = 0x8B51;
365231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_VEC4                     = 0x8B52;
366231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INT_VEC2                       = 0x8B53;
367231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INT_VEC3                       = 0x8B54;
368231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INT_VEC4                       = 0x8B55;
369231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BOOL                           = 0x8B56;
370231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BOOL_VEC2                      = 0x8B57;
371231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BOOL_VEC3                      = 0x8B58;
372231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int BOOL_VEC4                      = 0x8B59;
373231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_MAT2                     = 0x8B5A;
374231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_MAT3                     = 0x8B5B;
375231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FLOAT_MAT4                     = 0x8B5C;
376231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLER_2D                     = 0x8B5E;
377231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SAMPLER_CUBE                   = 0x8B60;
378231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
379231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Vertex Arrays */
380231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_ENABLED        = 0x8622;
381231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_SIZE           = 0x8623;
382231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_STRIDE         = 0x8624;
383231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_TYPE           = 0x8625;
384231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_NORMALIZED     = 0x886A;
385231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_POINTER        = 0x8645;
386231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
387231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
388231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Shader Source */
389231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COMPILE_STATUS                 = 0x8B81;
390231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int SHADER_COMPILER                = 0x8DFA;
391231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
392231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Shader Precision-Specified Types */
393231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LOW_FLOAT                      = 0x8DF0;
394231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MEDIUM_FLOAT                   = 0x8DF1;
395231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int HIGH_FLOAT                     = 0x8DF2;
396231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int LOW_INT                        = 0x8DF3;
397231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MEDIUM_INT                     = 0x8DF4;
398231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int HIGH_INT                       = 0x8DF5;
399231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
400231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        /* Framebuffer Object. */
401231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER                    = 0x8D40;
402231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER                   = 0x8D41;
403231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
404231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RGBA4                          = 0x8056;
405231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RGB5_A1                        = 0x8057;
406231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RGB565                         = 0x8D62;
407231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_COMPONENT16              = 0x81A5;
408231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_INDEX                  = 0x1901;
409231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_INDEX8                 = 0x8D48;
410dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        const unsigned int DEPTH_STENCIL                  = 0x84F9;
411231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
412231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_WIDTH             = 0x8D42;
413231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_HEIGHT            = 0x8D43;
414231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_INTERNAL_FORMAT   = 0x8D44;
415231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_RED_SIZE          = 0x8D50;
416231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_GREEN_SIZE        = 0x8D51;
417231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_BLUE_SIZE         = 0x8D52;
418231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_ALPHA_SIZE        = 0x8D53;
419231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_DEPTH_SIZE        = 0x8D54;
420231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_STENCIL_SIZE      = 0x8D55;
421231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
422231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           = 0x8CD0;
423231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           = 0x8CD1;
424231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         = 0x8CD2;
425231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
426231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
427231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int COLOR_ATTACHMENT0              = 0x8CE0;
428231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int DEPTH_ATTACHMENT               = 0x8D00;
429231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int STENCIL_ATTACHMENT             = 0x8D20;
430dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        const unsigned int DEPTH_STENCIL_ATTACHMENT       = 0x821A;
431231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
432231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int NONE                           = 0;
433231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
434231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_COMPLETE                      = 0x8CD5;
435231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_INCOMPLETE_ATTACHMENT         = 0x8CD6;
436231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
437231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_INCOMPLETE_DIMENSIONS         = 0x8CD9;
438231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_UNSUPPORTED                   = 0x8CDD;
439231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
440231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int FRAMEBUFFER_BINDING            = 0x8CA6;
441231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int RENDERBUFFER_BINDING           = 0x8CA7;
442231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int MAX_RENDERBUFFER_SIZE          = 0x84E8;
443231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
444231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        const unsigned int INVALID_FRAMEBUFFER_OPERATION  = 0x0506;
445231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
446545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch        /* WebGL-specific enums */
4476b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        const unsigned int UNPACK_FLIP_Y_WEBGL                = 0x9240;
4486b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        const unsigned int UNPACK_PREMULTIPLY_ALPHA_WEBGL     = 0x9241;
4496b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        const unsigned int CONTEXT_LOST_WEBGL                 = 0x9242;
4506b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        const unsigned int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
4516b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        const unsigned int BROWSER_DEFAULT_WEBGL              = 0x9244;
452545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch
453e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         activeTexture(in unsigned long texture) raises(DOMException);
454e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         attachShader(in WebGLProgram program, in WebGLShader shader) raises(DOMException);
455e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bindAttribLocation(in WebGLProgram program, in unsigned long index, in DOMString name) raises(DOMException);
456e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bindBuffer(in unsigned long target, in WebGLBuffer buffer) raises(DOMException);
457e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bindFramebuffer(in unsigned long target, in WebGLFramebuffer framebuffer) raises(DOMException);
458e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bindRenderbuffer(in unsigned long target, in WebGLRenderbuffer renderbuffer) raises(DOMException);
459e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bindTexture(in unsigned long target, in WebGLTexture texture) raises(DOMException);
460cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         blendColor(in float red, in float green, in float blue, in float alpha);
461e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         blendEquation( in unsigned long mode );
462e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         blendEquationSeparate(in unsigned long modeRGB, in unsigned long modeAlpha);
463e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         blendFunc(in unsigned long sfactor, in unsigned long dfactor);
464e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         blendFuncSeparate(in unsigned long srcRGB, in unsigned long dstRGB, in unsigned long srcAlpha, in unsigned long dstAlpha);
465e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bufferData(in unsigned long target, in ArrayBuffer data, in unsigned long usage) raises (DOMException);
466e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bufferData(in unsigned long target, in ArrayBufferView data, in unsigned long usage) raises (DOMException);
467e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bufferData(in unsigned long target, in long size, in unsigned long usage) raises (DOMException);
468e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bufferSubData(in unsigned long target, in long offset, in ArrayBuffer data) raises (DOMException);
469e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         bufferSubData(in unsigned long target, in long offset, in ArrayBufferView data) raises (DOMException);
470e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
471e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] unsigned long checkFramebufferStatus(in unsigned long target);
472e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         clear(in unsigned long mask);
473cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         clearColor(in float red, in float green, in float blue, in float alpha);
474cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         clearDepth(in float depth);
475e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         clearStencil(in long s);
476e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         colorMask(in boolean red, in boolean green, in boolean blue, in boolean alpha);
477e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         compileShader(in WebGLShader shader) raises(DOMException);
478231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
479231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        //void         compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in unsigned long width, in unsigned long height, in long border, in unsigned long imageSize, const void* data);
480231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        //void         compressedTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset, in unsigned long width, in unsigned long height, in unsigned long format, in unsigned long imageSize, const void* data);
481231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
482cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         copyTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in long x, in long y, in long width, in long height, in long border);
483cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         copyTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset, in long x, in long y, in long width, in long height);
484e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
485e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLBuffer createBuffer();
486e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
487e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLProgram createProgram();
488e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLRenderbuffer createRenderbuffer();
489e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLShader createShader(in unsigned long type) raises(DOMException);
490e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLTexture createTexture();
491e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
492e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         cullFace(in unsigned long mode);
493e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
494e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteBuffer(in WebGLBuffer buffer);
495e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteFramebuffer(in WebGLFramebuffer framebuffer);
496e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteProgram(in WebGLProgram program);
497e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteRenderbuffer(in WebGLRenderbuffer renderbuffer);
498e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteShader(in WebGLShader shader);
499e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         deleteTexture(in WebGLTexture texture);
500e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
501e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         depthFunc(in unsigned long func);
502e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         depthMask(in boolean flag);
503231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // FIXME: this differs from the current WebGL spec (depthRangef)
504cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         depthRange(in float zNear, in float zFar);
505e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         detachShader(in WebGLProgram program, in WebGLShader shader) raises(DOMException);
506e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         disable(in unsigned long cap);
507e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         disableVertexAttribArray(in unsigned long index) raises(DOMException);
508e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         drawArrays(in unsigned long mode, in long first, in long count) raises(DOMException);
509e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         drawElements(in unsigned long mode, in long count, in unsigned long type, in long offset) raises(DOMException);
510e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
511e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         enable(in unsigned long cap);
512e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         enableVertexAttribArray(in unsigned long index) raises(DOMException);
513e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         finish();
514e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         flush();
515e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         framebufferRenderbuffer(in unsigned long target, in unsigned long attachment, in unsigned long renderbuffertarget, in WebGLRenderbuffer renderbuffer) raises(DOMException);
516e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         framebufferTexture2D(in unsigned long target, in unsigned long attachment, in unsigned long textarget, in WebGLTexture texture, in long level) raises(DOMException);
517e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         frontFace(in unsigned long mode);
518e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         generateMipmap(in unsigned long target);
519231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
520e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLActiveInfo getActiveAttrib(in WebGLProgram program, in unsigned long index) raises (DOMException);
521e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLActiveInfo getActiveUniform(in WebGLProgram program, in unsigned long index) raises (DOMException);
522cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
523e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getAttachedShaders(in WebGLProgram program) raises (DOMException);
524231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
525e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] int          getAttribLocation(in WebGLProgram program, in DOMString name);
526231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
527643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getBufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
528e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getBufferParameter();
529231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
530e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLContextAttributes getContextAttributes();
531d0825bca7fe65beaee391d30da42e937db621564Steve Block
532e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] unsigned long getError();
533231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
534f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        // object getExtension(in DOMString name);
535f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        [StrictTypeChecking, Custom] void getExtension(in DOMString name);
536f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
537643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getFramebufferAttachmentParameter(in unsigned long target, in unsigned long attachment, in unsigned long pname) raises(DOMException);
538e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getFramebufferAttachmentParameter();
539643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getParameter(in unsigned long pname) raises(DOMException);
540e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getParameter();
541643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getProgramParameter(in WebGLProgram program, in unsigned long pname) raises(DOMException);
542e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getProgramParameter();
54328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu        [StrictTypeChecking, ConvertNullStringTo=Null] DOMString getProgramInfoLog(in WebGLProgram program) raises(DOMException);
544643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getRenderbufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
545e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getRenderbufferParameter();
546643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getShaderParameter(in WebGLShader shader, in unsigned long pname) raises(DOMException);
547e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getShaderParameter() raises(DOMException);
548643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
54928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu        [StrictTypeChecking, ConvertNullStringTo=Null] DOMString    getShaderInfoLog(in WebGLShader shader) raises(DOMException);
550231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
551231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // TBD
552231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
553231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
55428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu        [StrictTypeChecking, ConvertNullStringTo=Null] DOMString    getShaderSource(in WebGLShader shader) raises(DOMException);
555231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
556f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        // DOMString[] getSupportedExtensions()
557f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        [StrictTypeChecking, Custom] void getSupportedExtensions();
558f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
559643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getTexParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
560e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getTexParameter();
561231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
562643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException);
563e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getUniform();
564231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
565e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] WebGLUniformLocation getUniformLocation(in WebGLProgram program, in DOMString name) raises(DOMException);
566643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
567643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        // any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException);
568e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void getVertexAttrib();
569e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
570e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] long getVertexAttribOffset(in unsigned long index, in unsigned long pname);
571e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
572e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         hint(in unsigned long target, in unsigned long mode);
573e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isBuffer(in WebGLBuffer buffer);
57428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu        [StrictTypeChecking] boolean      isContextLost();
575e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isEnabled(in unsigned long cap);
576e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isFramebuffer(in WebGLFramebuffer framebuffer);
577e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isProgram(in WebGLProgram program);
578e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isRenderbuffer(in WebGLRenderbuffer renderbuffer);
579e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isShader(in WebGLShader shader);
580e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] boolean      isTexture(in WebGLTexture texture);
581cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         lineWidth(in float width);
582e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         linkProgram(in WebGLProgram program) raises(DOMException);
583e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         pixelStorei(in unsigned long pname, in long param);
584cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         polygonOffset(in float factor, in float units);
585e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
586bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen        [StrictTypeChecking] void         readPixels(in long x, in long y, in long width, in long height, in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises(DOMException);
587231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
588e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         releaseShaderCompiler();
589cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         renderbufferStorage(in unsigned long target, in unsigned long internalformat, in long width, in long height);
590cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         sampleCoverage(in float value, in boolean invert);
591cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         scissor(in long x, in long y, in long width, in long height);
592e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         shaderSource(in WebGLShader shader, in DOMString string) raises(DOMException);
593e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilFunc(in unsigned long func, in long ref, in unsigned long mask);
594e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilFuncSeparate(in unsigned long face, in unsigned long func, in long ref, in unsigned long mask);
595e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilMask(in unsigned long mask);
596e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilMaskSeparate(in unsigned long face, in unsigned long mask);
597e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilOp(in unsigned long fail, in unsigned long zfail, in unsigned long zpass);
598e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         stencilOpSeparate(in unsigned long face, in unsigned long fail, in unsigned long zfail, in unsigned long zpass);
599e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
600e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texParameterf(in unsigned long target, in unsigned long pname, in float param);
601e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texParameteri(in unsigned long target, in unsigned long pname, in long param);
602231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
603231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // Supported forms:
604e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texImage2D(in unsigned long target, in long level, in unsigned long internalformat, in long width, in long height,
605e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                     in long border, in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises (DOMException);
606e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
607e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                     in unsigned long format, in unsigned long type, in ImageData pixels) raises (DOMException);
608e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
609e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                     in unsigned long format, in unsigned long type, in HTMLImageElement image) raises (DOMException);
610e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
611e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                     in unsigned long format, in unsigned long type, in HTMLCanvasElement canvas) raises (DOMException);
6122fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
613e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
614e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                     in unsigned long format, in unsigned long type, in HTMLVideoElement video) raises (DOMException);
6152fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif
616e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
617e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
618e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in long width, in long height,
619e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises (DOMException);
620e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
621e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in unsigned long format, in unsigned long type, in ImageData pixels) raises (DOMException);
622e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
623e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in unsigned long format, in unsigned long type, in HTMLImageElement image) raises (DOMException);
624e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
625e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in unsigned long format, in unsigned long type, in HTMLCanvasElement canvas) raises (DOMException);
6262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
627e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
628e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block                                                        in unsigned long format, in unsigned long type, in HTMLVideoElement video) raises (DOMException);
6292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif
630e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
631e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform1f(in WebGLUniformLocation location, in float x) raises(DOMException);
632e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform1fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
633e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform1i(in WebGLUniformLocation location, in long x) raises(DOMException);
634e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform1iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
635e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform2f(in WebGLUniformLocation location, in float x, in float y) raises(DOMException);
636e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform2fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
637e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform2i(in WebGLUniformLocation location, in long x, in long y) raises(DOMException);
638e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform2iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
639e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform3f(in WebGLUniformLocation location, in float x, in float y, in float z) raises(DOMException);
640e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform3fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
641e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform3i(in WebGLUniformLocation location, in long x, in long y, in long z) raises(DOMException);
642e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform3iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
643e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform4f(in WebGLUniformLocation location, in float x, in float y, in float z, in float w) raises(DOMException);
644e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform4fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
645e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void uniform4i(in WebGLUniformLocation location, in long x, in long y, in long z, in long w) raises(DOMException);
646e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniform4iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
647e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
648e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniformMatrix2fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
649e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniformMatrix3fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
650e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void uniformMatrix4fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
651e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
652e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         useProgram(in WebGLProgram program) raises(DOMException);
653e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         validateProgram(in WebGLProgram program) raises(DOMException);
654e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
655e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         vertexAttrib1f(in unsigned long indx, in float x);
656e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void         vertexAttrib1fv(in unsigned long indx, in Float32Array values);
657e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         vertexAttrib2f(in unsigned long indx, in float x, in float y);
658e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void         vertexAttrib2fv(in unsigned long indx, in Float32Array values);
659e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         vertexAttrib3f(in unsigned long indx, in float x, in float y, in float z);
660e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void         vertexAttrib3fv(in unsigned long indx, in Float32Array values);
661e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         vertexAttrib4f(in unsigned long indx, in float x, in float y, in float z, in float w);
662e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking, Custom] void         vertexAttrib4fv(in unsigned long indx, in Float32Array values);
663e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block        [StrictTypeChecking] void         vertexAttribPointer(in unsigned long indx, in long size, in unsigned long type, in boolean normalized,
664cad810f21b803229eb11403f9209855525a25d57Steve Block                                                              in long stride, in long offset) raises(DOMException);
665e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
666cad810f21b803229eb11403f9209855525a25d57Steve Block        [StrictTypeChecking] void         viewport(in long x, in long y, in long width, in long height);
667231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    };
668231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
669231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
670