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="gl" 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 api="gles2">
+ <require>
+ <!-- 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>
<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>
+ <!-- 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>
+
+ <extension name="GL_ARB_texture_rg" supported="gl|glcore">
<require>
- <command name="glBindBufferRange" />
- <command name="glBindBufferBase" />
+ <!-- GL_RED is mentioned in the extension spec. -->
+ <enum name="GL_RED"/>
</require>
</extension>
</extensions>