Example of defining backwards-compatibility names for EGL function
pointer types in egl.xml. Unfortunately this approach uses #defines
rather than typedefs, due to constraints in the generator scripts, but
it should work OK.
diff --git a/api/EGL/eglext.h b/api/EGL/eglext.h
index 4e9c0dc..e63b5dd 100644
--- a/api/EGL/eglext.h
+++ b/api/EGL/eglext.h
@@ -33,12 +33,12 @@
** used to make the header, and the header can be found at
** http://www.khronos.org/registry/egl
**
-** Khronos $Git commit SHA1: cb927ca98d $ on $Git commit date: 2019-08-08 01:05:38 -0700 $
+** Khronos $Git commit SHA1: de3a5e867d $ on $Git commit date: 2019-10-12 05:44:43 -0700 $
*/
#include <EGL/eglplatform.h>
-#define EGL_EGLEXT_VERSION 20190808
+#define EGL_EGLEXT_VERSION 20191212
/* Generated C header for:
* API: egl
@@ -202,6 +202,8 @@
#ifndef EGL_KHR_image
#define EGL_KHR_image 1
+#define PGNEGLBINDWAYLANDDISPLAYWL PFNEGLCREATEIMAGEKHRPROC
+#define PFNEGLBINDWAYLANDDISPLAYWLPROC PFNEGLDESTROYIMAGEKHRPROC
typedef void *EGLImageKHR;
#define EGL_NATIVE_PIXMAP_KHR 0x30B0
#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
diff --git a/api/egl.xml b/api/egl.xml
index 6bc2ea2..fbd7335 100644
--- a/api/egl.xml
+++ b/api/egl.xml
@@ -90,6 +90,12 @@
EGLint iStride;
};</type>
<type>typedef void (<apientry/> *<name>EGLDEBUGPROCKHR</name>)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);</type>
+ <!-- These are aliases of EGL function pointer types, as an
+ example for #95. It would probably be better to use
+ typedefs, but unfortunately the way output elements in an
+ extension interface are sorted prevents that. -->
+ <type>#define <name>PGNEGLBINDWAYLANDDISPLAYWL</name> PFNEGLCREATEIMAGEKHRPROC</type>
+ <type>#define <name>PFNEGLBINDWAYLANDDISPLAYWLPROC</name> PFNEGLDESTROYIMAGEKHRPROC</type>
</types>
<!-- SECTION: EGL enumerant (token) definitions. -->
@@ -2724,6 +2730,9 @@
<enum name="EGL_NO_IMAGE_KHR"/>
<command name="eglCreateImageKHR"/>
<command name="eglDestroyImageKHR"/>
+ <!-- Backwards-compatibility aliases of function pointer types -->
+ <type name="PGNEGLBINDWAYLANDDISPLAYWL"/>
+ <type name="PFNEGLBINDWAYLANDDISPLAYWLPROC"/>
</require>
</extension>
<extension name="EGL_KHR_image_base" supported="egl">