Since we use GL-generated names, it's safe to alias them. -->
<command>
<proto><name>glBindFramebufferEXT</name></proto>
- <alias name="glBindFramebuffer" />
+ <alias name="glBindFramebuffer"/>
</command>
<command>
<proto><name>glBindRenderbufferEXT</name></proto>
- <alias name="glBindRenderbuffer" />
+ <alias name="glBindRenderbuffer"/>
</command>
<!-- ARB_shader_objects function names got changed when promoted to
- core. -->
+ core. The ARB versions can be used to operate on either shaders or
+ programs, but we use the core names so this is safe. -->
<command>
<proto><name>glDeleteObjectARB</name></proto>
- <alias name="glDeleteShader" />
- <alias name="glDeleteProgram" />
+ <alias name="glDeleteShader"/>
+ <alias name="glDeleteProgram"/>
</command>
<command>
<proto><name>glGetInfoLogARB</name></proto>
- <alias name="glGetShaderInfoLog" />
- <alias name="glGetProgramInfoLog" />
+ <alias name="glGetShaderInfoLog"/>
+ <alias name="glGetProgramInfoLog"/>
</command>
<command>
<proto><name>glGetObjectParameterivARB</name></proto>
- <alias name="glGetShaderiv" />
- <alias name="glGetProgramiv" />
+ <alias name="glGetShaderiv"/>
+ <alias name="glGetProgramiv"/>
</command>
<!-- This alias is missing because the ARB version returns GLhandleARB,
64-bit macs with shaders only available through the extension. -->
<command>
<proto><name>glGetAttachedObjectsARB</name></proto>
- <alias name="glGetAttachedShaders" />
+ <alias name="glGetAttachedShaders"/>
+ </command>
+
+ <!-- The APPLE version allows user-generated names. -->
+ <command>
+ <proto><name>glBindVertexArrayAPPLE</name></proto>
+ <alias name="glBindVertexArray"/>
</command>
</commands>
<enums>
- <!-- These error codes weren't promoted to core with the rest of
- EXT_framebuffer_object. There's no harm in taking them in since
- they're not passed to GL at any point. -->
- <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
- <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS"/>
+ <!-- ARB_shader_objects enum names got changed when promoted to core. -->
+ <enum value="0x8B80" name="GL_OBJECT_DELETE_STATUS_ARB" alias="GL_DELETE_STATUS"/>
+ <enum value="0x8B81" name="GL_OBJECT_COMPILE_STATUS_ARB" alias="GL_COMPILE_STATUS"/>
+ <enum value="0x8B82" name="GL_OBJECT_LINK_STATUS_ARB" alias="GL_LINK_STATUS"/>
+ <enum value="0x8B83" name="GL_OBJECT_VALIDATE_STATUS_ARB" alias="GL_VALIDATE_STATUS"/>
+ <enum value="0x8B84" name="GL_OBJECT_INFO_LOG_LENGTH_ARB" alias="GL_INFO_LOG_LENGTH"/>
+ <enum value="0x8B85" name="GL_OBJECT_ATTACHED_OBJECTS_ARB" alias="GL_ATTACHED_SHADERS"/>
+ <enum value="0x8B86" name="GL_OBJECT_ACTIVE_UNIFORMS_ARB" alias="GL_ACTIVE_UNIFORMS"/>
+ <enum value="0x8B87" name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB" alias="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8B88" name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB" alias="GL_SHADER_SOURCE_LENGTH"/>
+ <enum value="0x8B89" name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB" alias="GL_ACTIVE_ATTRIBUTES"/>
+ <enum value="0x8B8A" name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB" alias="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+
+ <!-- The name got changed but as far as I can tell they mean the same
+ thing. -->
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT" alias="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+
+ <!-- Add an alias to improve desktop OpenGL compatibility even though
+ this was not promoted to core in OpenGL ES. -->
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES" alias="GL_DEPTH_COMPONENT32"/>
</enums>
- <feature api="gl" name="MSPGL">
+ <feature api="gl" name="GL_VERSION_1_4" number="1.4">
<require>
- <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS" />
- <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS" />
+ <!-- All evidence points to this being promoted but it's not marked
+ as such. -->
+ <enum name="GL_BLEND_EQUATION"/>
</require>
</feature>
- <feature api="gles2" name="MSPGLES">
+ <feature api="gles2">
<require>
- <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS" />
+ <!-- Annotate support for certain things in OpenGL ES. Don't set
+ version because they are only available through extensions. -->
+ <enum name="GL_DEPTH_COMPONENT32"/>
+ <enum name="GL_BUFFER_ACCESS"/>
+ <command name="glBindFragDataLocation"/>
+ <command name="glMapBuffer"/>
</require>
</feature>
- <feature name="MSPGL_REMOVE">
- <remove>
- <!-- These have no counterparts in the core version of
- ARB_shader_objects. -->
- <command name="glGetHandleARB" />
- <command name="glGetObjectParameterfvARB" />
- <enum name="GL_PROGRAM_OBJECT_ARB" />
- <enum name="GL_SHADER_OBJECT_ARB" />
- <enum name="GL_OBJECT_TYPE_ARB" />
-
- <!-- Ignore this, as it comes from ARB_vertex_program and I'm not
- sure if it works with ARB_shader_objects. -->
- <command name="glIsProgramARB" />
- </remove>
- </feature>
-
<extensions>
- <!-- Some functions mentioned in GL_ARB_uniform_buffer_object
- specification are missing from gl.xml. -->
- <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
+ <extension name="GL_ARB_depth_texture" supported="gl">
<require>
- <command name="glBindBufferRange" />
- <command name="glBindBufferBase" />
+ <!-- The base GL_DEPTH_COMPONENT format was introduced for
+ other purposes before it could be used for textures. -->
+ <enum name="GL_DEPTH_COMPONENT"/>
</require>
</extension>
- <!-- Put GL_RED here for the benefit of OpenGL ES. -->
<extension name="GL_ARB_texture_rg" supported="gl|glcore">
<require>
- <enum name="GL_RED" />
- </require>
- </extension>
-
- <extension name="GL_MSP_legacy_features" supported="gl">
- <require>
- <command name="glEnableClientState" />
- <command name="glDisableClientState" />
-
- <enum name="GL_QUADS" />
- <enum name="GL_QUAD_STRIP" />
- <enum name="GL_LUMINANCE8" />
- <enum name="GL_LUMINANCE8_ALPHA8" />
-
- <enum name="GL_AMBIENT" />
- <enum name="GL_DIFFUSE" />
- <enum name="GL_SPECULAR" />
- <enum name="GL_EMISSION" />
- <enum name="GL_SHININESS" />
- <enum name="GL_LIGHTING" />
- <enum name="GL_LIGHT_MODEL_AMBIENT" />
- <enum name="GL_LIGHT0" />
- <enum name="GL_MAX_LIGHTS" />
- <enum name="GL_POSITION" />
- <enum name="GL_SPOT_DIRECTION" />
- <enum name="GL_SPOT_EXPONENT" />
- <enum name="GL_SPOT_CUTOFF" />
- <enum name="GL_CONSTANT_ATTENUATION" />
- <enum name="GL_LINEAR_ATTENUATION" />
- <enum name="GL_QUADRATIC_ATTENUATION" />
- <command name="glLightModelfv" />
- <command name="glLightf" />
- <command name="glLightfv" />
- <command name="glMaterialf" />
- <command name="glMaterialfv" />
-
- <enum name="GL_MODELVIEW" />
- <enum name="GL_PROJECTION" />
- <command name="glMatrixMode" />
- <command name="glLoadMatrixf" />
-
- <!-- Can't reuse EXT_vertex_array for these, as the functions
- defined there have different signatures. -->
- <enum name="GL_VERTEX_ARRAY" />
- <enum name="GL_NORMAL_ARRAY" />
- <enum name="GL_COLOR_ARRAY" />
- <enum name="GL_TEXTURE_COORD_ARRAY" />
- <command name="glVertexPointer" />
- <command name="glNormalPointer" />
- <command name="glColorPointer" />
- <command name="glTexCoordPointer" />
- </require>
- </extension>
-
- <!-- OpenGL ES does not have glDrawBuffer. -->
- <extension name="GL_MSP_draw_buffer" supported="gl">
- <require>
- <command name="glDrawBuffer" />
- <command name="glReadBuffer" />
- </require>
- </extension>
-
- <!-- Stereo rendering is not supported on OpenGL ES, but I'm not
- certain enough of its uselessness to remove the constants outright. -->
- <extension name="GL_MSP_stereo_rendering" supported="gl">
- <require>
- <enum name="GL_FRONT_LEFT" />
- <enum name="GL_FRONT_RIGHT" />
- <enum name="GL_BACK_LEFT" />
- <enum name="GL_BACK_RIGHT" />
- <enum name="GL_LEFT" />
- <enum name="GL_RIGHT" />
- </require>
- </extension>
-
- <!-- Sized internal formats were introduced in OpenGL ES 3.0, but are
- not available as an extension. -->
- <extension name="GL_MSP_sized_internal_formats" supported="gl|gles2">
- <require>
- <enum name="GL_RGB8" />
- <enum name="GL_RGBA8" />
- </require>
- </extension>
-
- <!-- 1D textures are not available in OpenGL ES, but could conceivably
- be added at a later date. -->
- <extension name="GL_MSP_texture1D" supported="gl">
- <require>
- <command name="glTexImage1D" />
- <enum name="GL_TEXTURE_1D" />
+ <!-- GL_RED is mentioned in the extension spec. -->
+ <enum name="GL_RED"/>
</require>
</extension>
</extensions>