]> git.tdb.fi Git - libs/gl.git/blobdiff - gl.fixes.xml
Be much more strict about extension support
[libs/gl.git] / gl.fixes.xml
index 39ec23e7c621d1840d777415fb5a69842dda69c7..e6e14b38e400a8b2aa5caed85ba62d5085e27932 100644 (file)
@@ -9,50 +9,88 @@
         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,
+        which is typedef'd as a pointer on OS X.  It could cause problems on
+        64-bit macs with shaders only available through the extension. -->
+        <command>
+            <proto><name>glGetAttachedObjectsARB</name></proto>
+            <alias name="glGetAttachedShaders"/>
+        </command>
+
+        <!-- The APPLE version allows user-generated names. -->
+        <command>
+            <proto><name>glBindVertexArrayAPPLE</name></proto>
+            <alias name="glBindVertexArray"/>
         </command>
     </commands>
 
-    <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" />
-
-            <!-- 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>
+    <enums>
+        <!-- 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"/>
+    </enums>
+
+    <feature api="gl" name="GL_VERSION_1_4" number="1.4">
+        <require>
+            <!-- All evidence points to this being promoted but it's not marked
+            as such. -->
+            <enum name="GL_BLEND_EQUATION"/>
+        </require>
     </feature>
 
     <extensions>
-        <extension name="GL_ARB_uniform_buffer_object" supported="gl">
+        <!-- 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>
+
+        <!-- And the remaining color components here. -->
+        <extension name="GL_ARB_texture_swizzle" supported="gl|glcore">
             <require>
-                <command name="glBindBufferRange" />
-                <command name="glBindBufferBase" />
+                <enum name="GL_GREEN"/>
+                <enum name="GL_BLUE"/>
+                <enum name="GL_ALPHA"/>
             </require>
         </extension>
     </extensions>