]> git.tdb.fi Git - libs/gl.git/blob - gl.fixes.xml
a2271d302f44a69c332c84e5ca98e15eb90d573f
[libs/gl.git] / gl.fixes.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <registry>
3     <!-- The gl.xml file does not contain enough information to make all the
4     connections between extension and core functions correctly.  This file
5     attempts to rectify these problems. -->
6
7     <commands>
8         <!-- The EXT versions allow user-generated names; core versions don't.
9         Since we use GL-generated names, it's safe to alias them. -->
10         <command>
11             <proto><name>glBindFramebufferEXT</name></proto>
12             <alias name="glBindFramebuffer" />
13         </command>
14         <command>
15             <proto><name>glBindRenderbufferEXT</name></proto>
16             <alias name="glBindRenderbuffer" />
17         </command>
18
19         <!-- ARB_shader_objects function names got changed when promoted to
20         core. -->
21         <command>
22             <proto><name>glDeleteObjectARB</name></proto>
23             <alias name="glDeleteShader" />
24             <alias name="glDeleteProgram" />
25         </command>
26         <command>
27             <proto><name>glGetInfoLogARB</name></proto>
28             <alias name="glGetShaderInfoLog" />
29             <alias name="glGetProgramInfoLog" />
30         </command>
31         <command>
32             <proto><name>glGetObjectParameterivARB</name></proto>
33             <alias name="glGetShaderiv" />
34             <alias name="glGetProgramiv" />
35         </command>
36
37         <!-- This alias is missing because the ARB version returns GLhandleARB,
38         which is typedef'd as a pointer on OS X.  It could cause problems on
39         64-bit macs with shaders only available through the extension. -->
40         <command>
41             <proto><name>glGetAttachedObjectsARB</name></proto>
42             <alias name="glGetAttachedShaders" />
43         </command>
44     </commands>
45
46     <enums>
47         <!-- These error codes weren't promoted to core with the rest of
48         EXT_framebuffer_object.  There's no harm in taking them in since
49         they're not passed to GL at any point. -->
50         <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
51         <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS"/>
52     </enums>
53
54     <feature api="gl" name="MSPGL">
55         <require>
56             <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS" />
57             <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS" />
58         </require>
59     </feature>
60
61     <feature api="gles2" name="MSPGLES">
62         <require>
63             <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS" />
64         </require>
65     </feature>
66
67     <feature name="MSPGL_REMOVE">
68         <remove>
69             <!-- These have no counterparts in the core version of
70             ARB_shader_objects. -->
71             <command name="glGetHandleARB" />
72             <command name="glGetObjectParameterfvARB" />
73             <enum name="GL_PROGRAM_OBJECT_ARB" />
74             <enum name="GL_SHADER_OBJECT_ARB" />
75             <enum name="GL_OBJECT_TYPE_ARB" />
76
77             <!-- Ignore this, as it comes from ARB_vertex_program and I'm not
78             sure if it works with ARB_shader_objects. -->
79             <command name="glIsProgramARB" />
80
81             <!-- This was never promoted from ARB_geometry_shader4. -->
82             <command name="glFramebufferTextureFaceARB" />
83         </remove>
84     </feature>
85
86     <extensions>
87         <!-- Some functions mentioned in ARB_uniform_buffer_object
88         specification are missing from gl.xml. -->
89         <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
90             <require>
91                 <command name="glBindBufferRange" />
92                 <command name="glBindBufferBase" />
93             </require>
94         </extension>
95
96         <!-- Put GL_RED here for the benefit of OpenGL ES. -->
97         <extension name="GL_ARB_texture_rg" supported="gl|glcore">
98             <require>
99                 <enum name="GL_RED" />
100             </require>
101         </extension>
102
103         <!-- And the remaining color components here. -->
104         <extension name="GL_ARB_texture_swizzle" supported="gl|glcore">
105             <require>
106                 <enum name="GL_GREEN" />
107                 <enum name="GL_BLUE" />
108                 <enum name="GL_ALPHA" />
109             </require>
110         </extension>
111
112         <extension name="GL_MSP_legacy_features" supported="gl">
113             <require>
114                 <command name="glEnableClientState" />
115                 <command name="glDisableClientState" />
116
117                 <enum name="GL_QUADS" />
118                 <enum name="GL_QUAD_STRIP" />
119                 <enum name="GL_LUMINANCE8" />
120                 <enum name="GL_LUMINANCE8_ALPHA8" />
121
122                 <enum name="GL_AMBIENT" />
123                 <enum name="GL_DIFFUSE" />
124                 <enum name="GL_SPECULAR" />
125                 <enum name="GL_EMISSION" />
126                 <enum name="GL_SHININESS" />
127                 <enum name="GL_LIGHTING" />
128                 <enum name="GL_LIGHT_MODEL_AMBIENT" />
129                 <enum name="GL_LIGHT0" />
130                 <enum name="GL_MAX_LIGHTS" />
131                 <enum name="GL_POSITION" />
132                 <enum name="GL_SPOT_DIRECTION" />
133                 <enum name="GL_SPOT_EXPONENT" />
134                 <enum name="GL_SPOT_CUTOFF" />
135                 <enum name="GL_CONSTANT_ATTENUATION" />
136                 <enum name="GL_LINEAR_ATTENUATION" />
137                 <enum name="GL_QUADRATIC_ATTENUATION" />
138                 <command name="glLightModelfv" />
139                 <command name="glLightf" />
140                 <command name="glLightfv" />
141                 <command name="glMaterialf" />
142                 <command name="glMaterialfv" />
143
144                 <enum name="GL_FOG" />
145                 <enum name="GL_FOG_MODE" />
146                 <enum name="GL_FOG_DENSITY" />
147                 <enum name="GL_FOG_COLOR" />
148                 <enum name="GL_EXP" />
149                 <command name="glFogi" />
150                 <command name="glFogf" />
151                 <command name="glFogfv" />
152
153                 <enum name="GL_MODELVIEW" />
154                 <enum name="GL_PROJECTION" />
155                 <command name="glMatrixMode" />
156                 <command name="glLoadMatrixf" />
157
158                 <!-- Can't reuse EXT_vertex_array for these, as the functions
159                 defined there have different signatures. -->
160                 <enum name="GL_VERTEX_ARRAY" />
161                 <enum name="GL_NORMAL_ARRAY" />
162                 <enum name="GL_COLOR_ARRAY" />
163                 <enum name="GL_TEXTURE_COORD_ARRAY" />
164                 <command name="glVertexPointer" />
165                 <command name="glNormalPointer" />
166                 <command name="glColorPointer" />
167                 <command name="glTexCoordPointer" />
168
169                 <command name="glClipPlane" />
170             </require>
171         </extension>
172
173         <!-- OpenGL ES does not have glDrawBuffer. -->
174         <extension name="GL_MSP_draw_buffer" supported="gl">
175             <require>
176                 <command name="glDrawBuffer" />
177                 <command name="glReadBuffer" />
178             </require>
179         </extension>
180
181         <!-- OpenGL ES does not have harwdare clipping. -->
182         <extension name="GL_MSP_clipping" supported="gl">
183             <require>
184                 <enum name="GL_MAX_CLIP_PLANES" />
185                 <enum name="GL_CLIP_PLANE0" />
186                 <enum name="GL_CLIP_PLANE1" />
187                 <enum name="GL_CLIP_PLANE2" />
188                 <enum name="GL_CLIP_PLANE3" />
189                 <enum name="GL_CLIP_PLANE4" />
190                 <enum name="GL_CLIP_PLANE5" />
191             </require>
192         </extension>
193
194         <!-- Stereo rendering is not supported on OpenGL ES, but I'm not
195         certain enough of its uselessness to remove the constants outright. -->
196         <extension name="GL_MSP_stereo_rendering" supported="gl">
197             <require>
198                 <enum name="GL_FRONT_LEFT" />
199                 <enum name="GL_FRONT_RIGHT" />
200                 <enum name="GL_BACK_LEFT" />
201                 <enum name="GL_BACK_RIGHT" />
202                 <enum name="GL_LEFT" />
203                 <enum name="GL_RIGHT" />
204             </require>
205         </extension>
206
207         <!-- Sized internal formats were introduced in OpenGL ES 3.0, but are
208         not available as an extension. -->
209         <extension name="GL_MSP_sized_internal_formats" supported="gl|gles2">
210             <require>
211                 <enum name="GL_RGB8" />
212                 <enum name="GL_RGBA8" />
213             </require>
214         </extension>
215
216         <!-- 1D textures are not available in OpenGL ES, but could conceivably
217         be added at a later date. -->
218         <extension name="GL_MSP_texture1D" supported="gl">
219             <require>
220                 <command name="glTexImage1D" />
221                 <command name="glTexSubImage1D" />
222                 <enum name="GL_TEXTURE_1D" />
223             </require>
224         </extension>
225
226         <!-- The core version of primitive restart has different semantics
227         from the NV extension but is not available as a backport extension. -->
228         <extension name="GL_MSP_primitive_restart" supported="gl">
229             <require>
230                 <enum name="GL_PRIMITIVE_RESTART" />
231                 <enum name="GL_PRIMITIVE_RESTART_INDEX" />
232                 <command name="glPrimitiveRestartIndex" />
233             </require>
234         </extension>
235     </extensions>
236 </registry>