]> git.tdb.fi Git - libs/gl.git/blob - gl.fixes.xml
Access clipping through the extension mechanism
[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         </remove>
81     </feature>
82
83     <extensions>
84         <!-- Some functions mentioned in ARB_uniform_buffer_object
85         specification are missing from gl.xml. -->
86         <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
87             <require>
88                 <command name="glBindBufferRange" />
89                 <command name="glBindBufferBase" />
90             </require>
91         </extension>
92
93         <!-- Put GL_RED here for the benefit of OpenGL ES. -->
94         <extension name="GL_ARB_texture_rg" supported="gl|glcore">
95             <require>
96                 <enum name="GL_RED" />
97             </require>
98         </extension>
99
100         <extension name="GL_MSP_legacy_features" supported="gl">
101             <require>
102                 <command name="glEnableClientState" />
103                 <command name="glDisableClientState" />
104
105                 <enum name="GL_QUADS" />
106                 <enum name="GL_QUAD_STRIP" />
107                 <enum name="GL_LUMINANCE8" />
108                 <enum name="GL_LUMINANCE8_ALPHA8" />
109
110                 <enum name="GL_AMBIENT" />
111                 <enum name="GL_DIFFUSE" />
112                 <enum name="GL_SPECULAR" />
113                 <enum name="GL_EMISSION" />
114                 <enum name="GL_SHININESS" />
115                 <enum name="GL_LIGHTING" />
116                 <enum name="GL_LIGHT_MODEL_AMBIENT" />
117                 <enum name="GL_LIGHT0" />
118                 <enum name="GL_MAX_LIGHTS" />
119                 <enum name="GL_POSITION" />
120                 <enum name="GL_SPOT_DIRECTION" />
121                 <enum name="GL_SPOT_EXPONENT" />
122                 <enum name="GL_SPOT_CUTOFF" />
123                 <enum name="GL_CONSTANT_ATTENUATION" />
124                 <enum name="GL_LINEAR_ATTENUATION" />
125                 <enum name="GL_QUADRATIC_ATTENUATION" />
126                 <command name="glLightModelfv" />
127                 <command name="glLightf" />
128                 <command name="glLightfv" />
129                 <command name="glMaterialf" />
130                 <command name="glMaterialfv" />
131
132                 <enum name="GL_FOG" />
133                 <enum name="GL_FOG_MODE" />
134                 <enum name="GL_FOG_DENSITY" />
135                 <enum name="GL_FOG_COLOR" />
136                 <enum name="GL_EXP" />
137                 <command name="glFogi" />
138                 <command name="glFogf" />
139                 <command name="glFogfv" />
140
141                 <enum name="GL_MODELVIEW" />
142                 <enum name="GL_PROJECTION" />
143                 <command name="glMatrixMode" />
144                 <command name="glLoadMatrixf" />
145
146                 <!-- Can't reuse EXT_vertex_array for these, as the functions
147                 defined there have different signatures. -->
148                 <enum name="GL_VERTEX_ARRAY" />
149                 <enum name="GL_NORMAL_ARRAY" />
150                 <enum name="GL_COLOR_ARRAY" />
151                 <enum name="GL_TEXTURE_COORD_ARRAY" />
152                 <command name="glVertexPointer" />
153                 <command name="glNormalPointer" />
154                 <command name="glColorPointer" />
155                 <command name="glTexCoordPointer" />
156
157                 <command name="glClipPlane" />
158             </require>
159         </extension>
160
161         <!-- OpenGL ES does not have glDrawBuffer. -->
162         <extension name="GL_MSP_draw_buffer" supported="gl">
163             <require>
164                 <command name="glDrawBuffer" />
165                 <command name="glReadBuffer" />
166             </require>
167         </extension>
168
169         <!-- OpenGL ES does not have harwdare clipping. -->
170         <extension name="GL_MSP_clipping" supported="gl">
171             <require>
172                 <enum name="GL_MAX_CLIP_PLANES" />
173                 <enum name="GL_CLIP_PLANE0" />
174                 <enum name="GL_CLIP_PLANE1" />
175                 <enum name="GL_CLIP_PLANE2" />
176                 <enum name="GL_CLIP_PLANE3" />
177                 <enum name="GL_CLIP_PLANE4" />
178                 <enum name="GL_CLIP_PLANE5" />
179             </require>
180         </extension>
181
182         <!-- Stereo rendering is not supported on OpenGL ES, but I'm not
183         certain enough of its uselessness to remove the constants outright. -->
184         <extension name="GL_MSP_stereo_rendering" supported="gl">
185             <require>
186                 <enum name="GL_FRONT_LEFT" />
187                 <enum name="GL_FRONT_RIGHT" />
188                 <enum name="GL_BACK_LEFT" />
189                 <enum name="GL_BACK_RIGHT" />
190                 <enum name="GL_LEFT" />
191                 <enum name="GL_RIGHT" />
192             </require>
193         </extension>
194
195         <!-- Sized internal formats were introduced in OpenGL ES 3.0, but are
196         not available as an extension. -->
197         <extension name="GL_MSP_sized_internal_formats" supported="gl|gles2">
198             <require>
199                 <enum name="GL_RGB8" />
200                 <enum name="GL_RGBA8" />
201             </require>
202         </extension>
203
204         <!-- 1D textures are not available in OpenGL ES, but could conceivably
205         be added at a later date. -->
206         <extension name="GL_MSP_texture1D" supported="gl">
207             <require>
208                 <command name="glTexImage1D" />
209                 <enum name="GL_TEXTURE_1D" />
210             </require>
211         </extension>
212     </extensions>
213 </registry>