dbf4ade69d
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
3953 lines
180 KiB
Diff
3953 lines
180 KiB
Diff
From 97b447ee480a09a744094562da36b019a3eeb10f Mon Sep 17 00:00:00 2001
|
|
From: Kyle Brenneman <kbrenneman@nvidia.com>
|
|
Date: Wed, 4 Jan 2017 11:31:58 -0700
|
|
Subject: [PATCH 1/2] EGL: Implement the libglvnd interface for EGL (v2)
|
|
|
|
Added separate --enable-libglvnd-glx and --enable-libglvnd-egl configure
|
|
options to enable libglvnd for GLX and EGL. The existing --enable-libglvnd
|
|
option will now enable both EGL and GLX.
|
|
|
|
The new interface mostly just sits on top of the existing library. The only
|
|
change to the existing EGL code is to split the client extension string into
|
|
platform extensions and everything else. On non-glvnd builds, eglQueryString
|
|
will just concatenate the two strings.
|
|
|
|
The EGL dispatch stubs are all generated. The script is based on the one used
|
|
to generate entrypoints in libglvnd itself.
|
|
|
|
v2:
|
|
|
|
Rebased against master.
|
|
|
|
Reworked the EGL makefile to use separate libtool targets instead of an
|
|
automake substitution "lib@EGL_LIB@_la_*" in the variable names. Using the
|
|
substitution broke automake's dependency tracking for "make dist".
|
|
|
|
Made the EGL code generation scripts work with Python 2 or 3.
|
|
|
|
Change gen_egl_dispatch.py to use argparse for the command line arguments.
|
|
|
|
Assorted formatting and style cleanup in the Python scripts.
|
|
---
|
|
configure.ac | 154 ++-
|
|
src/egl/Makefile.am | 97 +-
|
|
src/egl/generate/egl.xml | 2412 ++++++++++++++++++++++++++++++++++
|
|
src/egl/generate/eglFunctionList.py | 197 +++
|
|
src/egl/generate/egl_other.xml | 47 +
|
|
src/egl/generate/genCommon.py | 223 ++++
|
|
src/egl/generate/gen_egl_dispatch.py | 250 ++++
|
|
src/egl/main/50_mesa.json | 6 +
|
|
src/egl/main/eglapi.c | 6 +-
|
|
src/egl/main/egldispatchstubs.c | 110 ++
|
|
src/egl/main/egldispatchstubs.h | 26 +
|
|
src/egl/main/eglglobals.c | 47 +-
|
|
src/egl/main/eglglobals.h | 13 +-
|
|
src/egl/main/eglglvnd.c | 82 ++
|
|
14 files changed, 3576 insertions(+), 94 deletions(-)
|
|
create mode 100755 src/egl/generate/egl.xml
|
|
create mode 100644 src/egl/generate/eglFunctionList.py
|
|
create mode 100644 src/egl/generate/egl_other.xml
|
|
create mode 100644 src/egl/generate/genCommon.py
|
|
create mode 100755 src/egl/generate/gen_egl_dispatch.py
|
|
create mode 100644 src/egl/main/50_mesa.json
|
|
create mode 100644 src/egl/main/egldispatchstubs.c
|
|
create mode 100644 src/egl/main/egldispatchstubs.h
|
|
create mode 100644 src/egl/main/eglglvnd.c
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index de8af874ec..839b25c057 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -528,8 +528,6 @@ else
|
|
DEFINES="$DEFINES -DNDEBUG"
|
|
fi
|
|
|
|
-DEFAULT_GL_LIB_NAME=GL
|
|
-
|
|
dnl
|
|
dnl Check if linker supports -Bsymbolic
|
|
dnl
|
|
@@ -627,23 +625,6 @@ esac
|
|
|
|
AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
|
|
|
|
-DEFAULT_GL_LIB_NAME=GL
|
|
-
|
|
-dnl
|
|
-dnl Libglvnd configuration
|
|
-dnl
|
|
-AC_ARG_ENABLE([libglvnd],
|
|
- [AS_HELP_STRING([--enable-libglvnd],
|
|
- [Build for libglvnd @<:@default=disabled@:>@])],
|
|
- [enable_libglvnd="$enableval"],
|
|
- [enable_libglvnd=no])
|
|
-AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
|
|
-#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"])
|
|
-if test "x$enable_libglvnd" = xyes ; then
|
|
- DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
|
|
- DEFAULT_GL_LIB_NAME=GLX_mesa
|
|
-fi
|
|
-
|
|
dnl
|
|
dnl library names
|
|
dnl
|
|
@@ -677,36 +658,6 @@ esac
|
|
|
|
AC_SUBST([LIB_EXT])
|
|
|
|
-AC_ARG_WITH([gl-lib-name],
|
|
- [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
|
|
- [specify GL library name @<:@default=GL@:>@])],
|
|
- [GL_LIB=$withval],
|
|
- [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
|
-AC_ARG_WITH([osmesa-lib-name],
|
|
- [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
|
|
- [specify OSMesa library name @<:@default=OSMesa@:>@])],
|
|
- [OSMESA_LIB=$withval],
|
|
- [OSMESA_LIB=OSMesa])
|
|
-AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
|
-AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
|
|
-
|
|
-dnl
|
|
-dnl Mangled Mesa support
|
|
-dnl
|
|
-AC_ARG_ENABLE([mangling],
|
|
- [AS_HELP_STRING([--enable-mangling],
|
|
- [enable mangled symbols and library name @<:@default=disabled@:>@])],
|
|
- [enable_mangling="${enableval}"],
|
|
- [enable_mangling=no]
|
|
-)
|
|
-if test "x${enable_mangling}" = "xyes" ; then
|
|
- DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
|
|
- GL_LIB="Mangled${GL_LIB}"
|
|
- OSMESA_LIB="Mangled${OSMESA_LIB}"
|
|
-fi
|
|
-AC_SUBST([GL_LIB])
|
|
-AC_SUBST([OSMESA_LIB])
|
|
-
|
|
dnl
|
|
dnl potentially-infringing-but-nobody-knows-for-sure stuff
|
|
dnl
|
|
@@ -1335,31 +1286,94 @@ AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib)
|
|
dnl
|
|
dnl Libglvnd configuration
|
|
dnl
|
|
+
|
|
+DEFAULT_GL_LIB_NAME=GL
|
|
+
|
|
AC_ARG_ENABLE([libglvnd],
|
|
[AS_HELP_STRING([--enable-libglvnd],
|
|
- [Build for libglvnd @<:@default=disabled@:>@])],
|
|
+ [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])],
|
|
[enable_libglvnd="$enableval"],
|
|
[enable_libglvnd=no])
|
|
-AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
|
|
-if test "x$enable_libglvnd" = xyes ; then
|
|
- dnl XXX: update once we can handle more than libGL/glx.
|
|
- dnl Namely: we should error out if neither of the glvnd enabled libraries
|
|
- dnl are built
|
|
- case "x$enable_glx" in
|
|
- xno)
|
|
- AC_MSG_ERROR([cannot build libglvnd without GLX])
|
|
- ;;
|
|
- xxlib | xgallium-xlib )
|
|
- AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
|
|
- ;;
|
|
- xdri)
|
|
- ;;
|
|
- esac
|
|
+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
|
|
+
|
|
+AC_ARG_ENABLE([libglvnd-glx],
|
|
+ [AS_HELP_STRING([--enable-libglvnd-glx],
|
|
+ [Build GLX for libglvnd @<:@default=disabled@:>@])],
|
|
+ [enable_libglvnd_glx="$enableval"],
|
|
+ [enable_libglvnd_glx="$enable_libglvnd"])
|
|
+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
|
|
+
|
|
+AC_ARG_ENABLE([libglvnd-egl],
|
|
+ [AS_HELP_STRING([--enable-libglvnd-egl],
|
|
+ [Build EGL for libglvnd @<:@default=disabled@:>@])],
|
|
+ [enable_libglvnd_egl="$enableval"],
|
|
+ [enable_libglvnd_egl="$enable_libglvnd"])
|
|
+AM_CONDITIONAL(USE_LIBGLVND_EGL, test "x$enable_libglvnd_egl" = xyes)
|
|
+
|
|
+if test "x$enable_libglvnd_glx" = xyes -o "x$enable_libglvnd_egl" = xyes ; then
|
|
+ PKG_CHECK_VAR(LIBGLVND_DATADIR, libglvnd, datadir)
|
|
+ AC_SUBST([LIBGLVND_DATADIR])
|
|
+
|
|
+ if test "x$enable_libglvnd_egl" = xyes ; then
|
|
+ PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0)
|
|
+
|
|
+ if test "x$enable_egl" != xyes ; then
|
|
+ AC_MSG_ERROR([cannot build libglvnd without EGL])
|
|
+ fi
|
|
+ DEFINES="${DEFINES} -DUSE_LIBGLVND_EGL=1"
|
|
+ else
|
|
+ PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
|
|
+ fi
|
|
+
|
|
+ if test "x$enable_libglvnd_glx" = xyes ; then
|
|
+ dnl XXX: update once we can handle more than libGL/glx.
|
|
+ dnl Namely: we should error out if neither of the glvnd enabled libraries
|
|
+ dnl are built
|
|
+ case "x$enable_glx" in
|
|
+ xno)
|
|
+ AC_MSG_ERROR([cannot build libglvnd without GLX])
|
|
+ ;;
|
|
+ xxlib | xgallium-xlib )
|
|
+ AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
|
|
+ ;;
|
|
+ xdri)
|
|
+ ;;
|
|
+ esac
|
|
+
|
|
+ DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
|
|
+ DEFAULT_GL_LIB_NAME=GLX_mesa
|
|
+ fi
|
|
+fi
|
|
+
|
|
+AC_ARG_WITH([gl-lib-name],
|
|
+ [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
|
|
+ [specify GL library name @<:@default=GL@:>@])],
|
|
+ [GL_LIB=$withval],
|
|
+ [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
|
+AC_ARG_WITH([osmesa-lib-name],
|
|
+ [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
|
|
+ [specify OSMesa library name @<:@default=OSMesa@:>@])],
|
|
+ [OSMESA_LIB=$withval],
|
|
+ [OSMESA_LIB=OSMesa])
|
|
+AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
|
+AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
|
|
|
|
- PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
|
|
- DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
|
|
- DEFAULT_GL_LIB_NAME=GLX_mesa
|
|
+dnl
|
|
+dnl Mangled Mesa support
|
|
+dnl
|
|
+AC_ARG_ENABLE([mangling],
|
|
+ [AS_HELP_STRING([--enable-mangling],
|
|
+ [enable mangled symbols and library name @<:@default=disabled@:>@])],
|
|
+ [enable_mangling="${enableval}"],
|
|
+ [enable_mangling=no]
|
|
+)
|
|
+if test "x${enable_mangling}" = "xyes" ; then
|
|
+ DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
|
|
+ GL_LIB="Mangled${GL_LIB}"
|
|
+ OSMESA_LIB="Mangled${OSMESA_LIB}"
|
|
fi
|
|
+AC_SUBST([GL_LIB])
|
|
+AC_SUBST([OSMESA_LIB])
|
|
|
|
# Check for libdrm
|
|
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
|
|
@@ -2759,11 +2773,15 @@ xgallium-xlib)
|
|
echo " GLX: $enable_glx"
|
|
;;
|
|
esac
|
|
+if test "x$enable_glx" != xno; then
|
|
+ echo " GLX libglvnd: $enable_libglvnd_glx"
|
|
+fi
|
|
|
|
dnl EGL
|
|
echo ""
|
|
echo " EGL: $enable_egl"
|
|
if test "$enable_egl" = yes; then
|
|
+ echo " EGL libglvnd: $enable_libglvnd_egl"
|
|
echo " EGL platforms: $egl_platforms"
|
|
|
|
egl_drivers=""
|
|
diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
|
|
index 78cf525951..3bc62d550f 100644
|
|
--- a/src/egl/Makefile.am
|
|
+++ b/src/egl/Makefile.am
|
|
@@ -32,19 +32,16 @@ AM_CFLAGS = \
|
|
$(EGL_CFLAGS) \
|
|
-D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM)
|
|
|
|
-lib_LTLIBRARIES = libEGL.la
|
|
-
|
|
-libEGL_la_SOURCES = \
|
|
+# Depending on whether libglvnd is enabled, we'll build the EGL library as
|
|
+# either libEGL.so.1 or libEGL_mesa.so.0. Using an automake substitution
|
|
+# in the variable names breaks "make dist" target, so use a conenience library
|
|
+# instead.
|
|
+noinst_LTLIBRARIES = libEGL_common.la
|
|
+libEGL_common_la_SOURCES = \
|
|
$(LIBEGL_C_FILES)
|
|
|
|
-libEGL_la_LIBADD = \
|
|
+libEGL_common_la_LIBADD = \
|
|
$(EGL_LIB_DEPS)
|
|
-libEGL_la_LDFLAGS = \
|
|
- -no-undefined \
|
|
- -version-number 1:0 \
|
|
- $(BSYMBOLIC) \
|
|
- $(GC_SECTIONS) \
|
|
- $(LD_NO_UNDEFINED)
|
|
|
|
dri2_backend_FILES =
|
|
dri3_backend_FILES =
|
|
@@ -52,7 +49,7 @@ dri3_backend_FILES =
|
|
if HAVE_PLATFORM_X11
|
|
AM_CFLAGS += -DHAVE_X11_PLATFORM
|
|
AM_CFLAGS += $(XCB_DRI2_CFLAGS)
|
|
-libEGL_la_LIBADD += $(XCB_DRI2_LIBS)
|
|
+libEGL_common_la_LIBADD += $(XCB_DRI2_LIBS)
|
|
dri2_backend_FILES += drivers/dri2/platform_x11.c
|
|
|
|
if HAVE_DRI3
|
|
@@ -60,22 +57,22 @@ dri3_backend_FILES += \
|
|
drivers/dri2/platform_x11_dri3.c \
|
|
drivers/dri2/platform_x11_dri3.h
|
|
|
|
-libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
|
|
+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
|
|
endif
|
|
endif
|
|
|
|
if HAVE_PLATFORM_WAYLAND
|
|
AM_CFLAGS += -DHAVE_WAYLAND_PLATFORM
|
|
AM_CFLAGS += $(WAYLAND_CFLAGS)
|
|
-libEGL_la_LIBADD += $(WAYLAND_LIBS)
|
|
-libEGL_la_LIBADD += $(LIBDRM_LIBS)
|
|
-libEGL_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
|
|
+libEGL_common_la_LIBADD += $(WAYLAND_LIBS)
|
|
+libEGL_common_la_LIBADD += $(LIBDRM_LIBS)
|
|
+libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
|
|
dri2_backend_FILES += drivers/dri2/platform_wayland.c
|
|
endif
|
|
|
|
if HAVE_EGL_PLATFORM_DRM
|
|
AM_CFLAGS += -DHAVE_DRM_PLATFORM
|
|
-libEGL_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
|
|
+libEGL_common_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
|
|
dri2_backend_FILES += drivers/dri2/platform_drm.c
|
|
endif
|
|
|
|
@@ -87,7 +84,7 @@ endif
|
|
if HAVE_EGL_PLATFORM_ANDROID
|
|
AM_CFLAGS += -DHAVE_ANDROID_PLATFORM
|
|
AM_CFLAGS += $(ANDROID_CFLAGS)
|
|
-libEGL_la_LIBADD += $(ANDROID_LIBS)
|
|
+libEGL_common_la_LIBADD += $(ANDROID_LIBS)
|
|
dri2_backend_FILES += drivers/dri2/platform_android.c
|
|
endif
|
|
|
|
@@ -101,13 +98,68 @@ AM_CFLAGS += \
|
|
-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
|
|
-D_EGL_BUILT_IN_DRIVER_DRI2
|
|
|
|
-libEGL_la_SOURCES += \
|
|
+libEGL_common_la_SOURCES += \
|
|
$(dri2_backend_core_FILES) \
|
|
$(dri2_backend_FILES) \
|
|
$(dri3_backend_FILES)
|
|
|
|
-libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader.la
|
|
-libEGL_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
|
|
+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader.la
|
|
+libEGL_common_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
|
|
+
|
|
+GLVND_GEN_DEPS = generate/gen_egl_dispatch.py \
|
|
+ generate/egl.xml generate/eglFunctionList.py generate/genCommon.py \
|
|
+ generate/egl_other.xml
|
|
+
|
|
+PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
|
|
+g_egldispatchstubs.c: $(GLVND_GEN_DEPS)
|
|
+ $(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py source \
|
|
+ $(top_srcdir)/src/egl/generate/eglFunctionList.py \
|
|
+ $(top_srcdir)/src/egl/generate/egl.xml \
|
|
+ $(top_srcdir)/src/egl/generate/egl_other.xml > $@
|
|
+
|
|
+g_egldispatchstubs.h: $(GLVND_GEN_DEPS)
|
|
+ $(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py header \
|
|
+ $(top_srcdir)/src/egl/generate/eglFunctionList.py \
|
|
+ $(top_srcdir)/src/egl/generate/egl.xml \
|
|
+ $(top_srcdir)/src/egl/generate/egl_other.xml > $@
|
|
+
|
|
+BUILT_SOURCES = g_egldispatchstubs.c g_egldispatchstubs.h
|
|
+CLEANFILES = $(BUILT_SOURCES)
|
|
+
|
|
+if USE_LIBGLVND_EGL
|
|
+AM_CFLAGS += \
|
|
+ $(GLVND_CFLAGS)
|
|
+
|
|
+vendorjsondir = @LIBGLVND_DATADIR@/glvnd/egl_vendor.d
|
|
+vendorjson_DATA = main/50_mesa.json
|
|
+
|
|
+lib_LTLIBRARIES = libEGL_mesa.la
|
|
+libEGL_mesa_la_SOURCES = \
|
|
+ main/eglglvnd.c \
|
|
+ main/egldispatchstubs.h \
|
|
+ main/egldispatchstubs.c \
|
|
+ g_egldispatchstubs.c
|
|
+libEGL_mesa_la_LIBADD = libEGL_common.la
|
|
+libEGL_mesa_la_LDFLAGS = \
|
|
+ -no-undefined \
|
|
+ -version-number 0 \
|
|
+ $(BSYMBOLIC) \
|
|
+ $(GC_SECTIONS) \
|
|
+ $(LD_NO_UNDEFINED)
|
|
+
|
|
+else # USE_LIBGLVND_EGL
|
|
+
|
|
+lib_LTLIBRARIES = libEGL.la
|
|
+libEGL_la_SOURCES =
|
|
+libEGL_la_LIBADD = libEGL_common.la
|
|
+libEGL_la_LDFLAGS = \
|
|
+ -no-undefined \
|
|
+ -version-number 1:0 \
|
|
+ $(BSYMBOLIC) \
|
|
+ $(GC_SECTIONS) \
|
|
+ $(LD_NO_UNDEFINED)
|
|
+
|
|
+endif # USE_LIBGLVND_EGL
|
|
|
|
include $(top_srcdir)/install-lib-links.mk
|
|
|
|
@@ -133,4 +185,7 @@ EXTRA_DIST = \
|
|
SConscript \
|
|
drivers/haiku \
|
|
main/egl.def \
|
|
- main/README.txt
|
|
+ main/README.txt \
|
|
+ $(GLVND_GEN_DEPS) \
|
|
+ main/50_mesa.json
|
|
+
|
|
diff --git a/src/egl/generate/egl.xml b/src/egl/generate/egl.xml
|
|
new file mode 100755
|
|
index 0000000000..f6dbbc0f26
|
|
--- /dev/null
|
|
+++ b/src/egl/generate/egl.xml
|
|
@@ -0,0 +1,2412 @@
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
+<registry>
|
|
+ <!--
|
|
+ Copyright (c) 2013-2014 The Khronos Group Inc.
|
|
+
|
|
+ Permission is hereby granted, free of charge, to any person obtaining a
|
|
+ copy of this software and/or associated documentation files (the
|
|
+ "Materials"), to deal in the Materials without restriction, including
|
|
+ without limitation the rights to use, copy, modify, merge, publish,
|
|
+ distribute, sublicense, and/or sell copies of the Materials, and to
|
|
+ permit persons to whom the Materials are furnished to do so, subject to
|
|
+ the following conditions:
|
|
+
|
|
+ The above copyright notice and this permission notice shall be included
|
|
+ in all copies or substantial portions of the Materials.
|
|
+
|
|
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
+ MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
+ -->
|
|
+ <!--
|
|
+ This file, egl.xml, is the EGL API Registry. The older ".spec" file
|
|
+ format has been retired and will no longer be updated with new
|
|
+ extensions and API versions. The canonical version of the registry,
|
|
+ together with documentation, schema, and Python generator scripts used
|
|
+ to generate C header files for EGL, can be found in the Khronos Registry
|
|
+ at
|
|
+ http://www.opengl.org/registry/
|
|
+ -->
|
|
+
|
|
+ <!-- SECTION: EGL type definitions. Does not include GL types. -->
|
|
+ <types>
|
|
+ <!-- These are dependencies EGL types require to be declared legally -->
|
|
+ <type name="khrplatform">#include <KHR/khrplatform.h></type>
|
|
+ <type name="eglplatform" requires="khrplatform">#include <EGL/eglplatform.h></type>
|
|
+ <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/>
|
|
+ <type name="khronos_uint64_t" requires="khrplatform"/>
|
|
+ <type name="khronos_ssize_t" requires="khrplatform"/>
|
|
+ <type name="EGLNativeDisplayType" requires="eglplatform"/>
|
|
+ <type name="EGLNativePixmapType" requires="eglplatform"/>
|
|
+ <type name="EGLNativeWindowType" requires="eglplatform"/>
|
|
+ <type name="EGLint" requires="eglplatform"/>
|
|
+ <type name="NativeDisplayType" requires="eglplatform"/>
|
|
+ <type name="NativePixmapType" requires="eglplatform"/>
|
|
+ <type name="NativeWindowType" requires="eglplatform"/>
|
|
+ <!-- Dummy placeholders for non-EGL types -->
|
|
+ <type name="Bool"/>
|
|
+ <!-- These are actual EGL types. -->
|
|
+ <type>typedef unsigned int <name>EGLBoolean</name>;</type>
|
|
+ <type>typedef unsigned int <name>EGLenum</name>;</type>
|
|
+ <type requires="khrplatform">typedef intptr_t <name>EGLAttribKHR</name>;</type>
|
|
+ <type requires="khrplatform">typedef intptr_t <name>EGLAttrib</name>;</type>
|
|
+ <type>typedef void *<name>EGLClientBuffer</name>;</type>
|
|
+ <type>typedef void *<name>EGLConfig</name>;</type>
|
|
+ <type>typedef void *<name>EGLContext</name>;</type>
|
|
+ <type>typedef void *<name>EGLDeviceEXT</name>;</type>
|
|
+ <type>typedef void *<name>EGLDisplay</name>;</type>
|
|
+ <type>typedef void *<name>EGLImage</name>;</type>
|
|
+ <type>typedef void *<name>EGLImageKHR</name>;</type>
|
|
+ <type>typedef void *<name>EGLLabelKHR</name>;</type>
|
|
+ <type>typedef void *<name>EGLObjectKHR</name>;</type>
|
|
+ <type>typedef void *<name>EGLOutputLayerEXT</name>;</type>
|
|
+ <type>typedef void *<name>EGLOutputPortEXT</name>;</type>
|
|
+ <type>typedef void *<name>EGLStreamKHR</name>;</type>
|
|
+ <type>typedef void *<name>EGLSurface</name>;</type>
|
|
+ <type>typedef void *<name>EGLSync</name>;</type>
|
|
+ <type>typedef void *<name>EGLSyncKHR</name>;</type>
|
|
+ <type>typedef void *<name>EGLSyncNV</name>;</type>
|
|
+ <type>typedef void (*<name>__eglMustCastToProperFunctionPointerType</name>)(void);</type>
|
|
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeKHR</name>;</type>
|
|
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTime</name>;</type>
|
|
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeNV</name>;</type>
|
|
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLuint64NV</name>;</type>
|
|
+ <type requires="khrplatform">typedef khronos_uint64_t <name>EGLuint64KHR</name>;</type>
|
|
+ <type>typedef int <name>EGLNativeFileDescriptorKHR</name>;</type>
|
|
+ <type requires="khrplatform">typedef khronos_ssize_t <name>EGLsizeiANDROID</name>;</type>
|
|
+ <type requires="EGLsizeiANDROID">typedef void (*<name>EGLSetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);</type>
|
|
+ <type requires="EGLsizeiANDROID">typedef EGLsizeiANDROID (*<name>EGLGetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);</type>
|
|
+ <type>struct <name>EGLClientPixmapHI</name> {
|
|
+ void *pData;
|
|
+ EGLint iWidth;
|
|
+ EGLint iHeight;
|
|
+ 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>
|
|
+ </types>
|
|
+
|
|
+ <!-- SECTION: EGL enumerant (token) definitions. -->
|
|
+
|
|
+ <!-- Bitmasks each have their own namespace, as do a few other
|
|
+ categories of enumeration -->
|
|
+
|
|
+ <enums namespace="EGLSurfaceTypeMask" type="bitmask" comment="EGL_SURFACE_TYPE bits">
|
|
+ <enum value="0x0001" name="EGL_PBUFFER_BIT"/>
|
|
+ <enum value="0x0002" name="EGL_PIXMAP_BIT"/>
|
|
+ <enum value="0x0004" name="EGL_WINDOW_BIT"/>
|
|
+ <enum value="0x0008" name="EGL_PBUFFER_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
|
|
+ <enum value="0x0010" name="EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
|
|
+ <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
|
|
+ <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
|
|
+ <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
|
|
+ <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
|
|
+ <enum value="0x0080" name="EGL_LOCK_SURFACE_BIT_KHR"/>
|
|
+ <enum value="0x0100" name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
|
|
+ <enum value="0x0200" name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
|
|
+ <enum value="0x0400" name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
|
|
+ <enum value="0x0800" name="EGL_STREAM_BIT_KHR"/>
|
|
+ <!--
|
|
+ <enum value="0x0800" name="EGL_STREAM_BIT_NV" comment="Draft EGL_NV_stream_producer_eglsurface extension (bug 8064)"/>
|
|
+ -->
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGLRenderableTypeMask" type="bitmask" comment="EGL_RENDERABLE_TYPE bits">
|
|
+ <enum value="0x0001" name="EGL_OPENGL_ES_BIT"/>
|
|
+ <enum value="0x0002" name="EGL_OPENVG_BIT"/>
|
|
+ <enum value="0x0004" name="EGL_OPENGL_ES2_BIT"/>
|
|
+ <enum value="0x0008" name="EGL_OPENGL_BIT"/>
|
|
+ <enum value="0x0010" name="EGL_INTEROP_BIT_KHR" comment="EGL_KHR_interop"/>
|
|
+ <enum value="0x0020" name="EGL_OPENMAX_IL_BIT_KHR" comment="EGL_KHR_interop"/>
|
|
+ <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT"/>
|
|
+ <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT_KHR" alias="EGL_OPENGL_ES3_BIT"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGLLockUsageHintKHRMask" type="bitmask" comment="EGL_LOCK_USAGE_HINT_KHR bits">
|
|
+ <enum value="0x0001" name="EGL_READ_SURFACE_BIT_KHR"/>
|
|
+ <enum value="0x0002" name="EGL_WRITE_SURFACE_BIT_KHR"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGLSyncFlagsKHR" type="bitmask" comment="Fence/reusable sync wait bits">
|
|
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
|
|
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
|
|
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits">
|
|
+ <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
|
|
+ <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
|
|
+ </enums>
|
|
+
|
|
+ <!-- Should be shared with GL, but aren't aren't since the
|
|
+ FORWARD_COMPATIBLE and DEBUG_BIT values are swapped in the
|
|
+ corresponding GL enums. Oops :-( -->
|
|
+ <enums namespace="EGLContextFlagMask" type="bitmask" comment="EGL_CONTEXT_FLAGS_KHR bits">
|
|
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
|
|
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
|
|
+ <enum value="0x00000004" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGLContextProfileMask" type="bitmask" comment="Shared with GL">
|
|
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
|
|
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
|
|
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
|
|
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
|
|
+ </enums>
|
|
+
|
|
+ <!-- The default ("API") enum namespace starts here. While some
|
|
+ assigned values may overlap, and different parts of the
|
|
+ namespace are reserved for different purposes, it is a single
|
|
+ namespace. The "class" attribute indicates some of the reserved
|
|
+ purposes but is by no means complete (and cannot be, since many
|
|
+ tokens are reused for different purposes in different
|
|
+ extensions and API versions). -->
|
|
+
|
|
+ <enums namespace="EGL" start="0x0000" end="0x2FFF" vendor="ARB"/>
|
|
+
|
|
+ <enums namespace="EGL" group="Boolean" vendor="ARB">
|
|
+ <enum value="0" name="EGL_FALSE"/>
|
|
+ <enum value="1" name="EGL_TRUE"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
|
|
+ <enum value="((EGLint)-1)" name="EGL_DONT_CARE"/>
|
|
+ <enum value="((EGLint)-1)" name="EGL_UNKNOWN"/>
|
|
+ <enum value="-1" name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
|
|
+ <enum value="0" name="EGL_DEPTH_ENCODING_NONE_NV"/>
|
|
+ <enum value="((EGLContext)0)" name="EGL_NO_CONTEXT"/>
|
|
+ <enum value="((EGLDeviceEXT)(0))" name="EGL_NO_DEVICE_EXT"/>
|
|
+ <enum value="((EGLDisplay)0)" name="EGL_NO_DISPLAY"/>
|
|
+ <enum value="((EGLImage)0)" name="EGL_NO_IMAGE"/>
|
|
+ <enum value="((EGLImageKHR)0)" name="EGL_NO_IMAGE_KHR"/>
|
|
+ <enum value="((EGLNativeDisplayType)0)" name="EGL_DEFAULT_DISPLAY"/>
|
|
+ <enum value="((EGLNativeFileDescriptorKHR)(-1))" name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
|
|
+ <enum value="((EGLOutputLayerEXT)0)" name="EGL_NO_OUTPUT_LAYER_EXT"/>
|
|
+ <enum value="((EGLOutputPortEXT)0)" name="EGL_NO_OUTPUT_PORT_EXT"/>
|
|
+ <enum value="((EGLStreamKHR)0)" name="EGL_NO_STREAM_KHR"/>
|
|
+ <enum value="((EGLSurface)0)" name="EGL_NO_SURFACE"/>
|
|
+ <enum value="((EGLSync)0)" name="EGL_NO_SYNC"/>
|
|
+ <enum value="((EGLSyncKHR)0)" name="EGL_NO_SYNC_KHR" alias="EGL_NO_SYNC"/>
|
|
+ <enum value="((EGLSyncNV)0)" name="EGL_NO_SYNC_NV" alias="EGL_NO_SYNC"/>
|
|
+ <enum value="10000" name="EGL_DISPLAY_SCALING"/>
|
|
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER" type="ull"/>
|
|
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_KHR" type="ull" alias="EGL_FOREVER"/>
|
|
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_NV" type="ull" alias="EGL_FOREVER"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3000" end="0x305F" vendor="KHR">
|
|
+ <enum value="0x3000" name="EGL_SUCCESS"/>
|
|
+ <enum value="0x3001" name="EGL_NOT_INITIALIZED"/>
|
|
+ <enum value="0x3002" name="EGL_BAD_ACCESS"/>
|
|
+ <enum value="0x3003" name="EGL_BAD_ALLOC"/>
|
|
+ <enum value="0x3004" name="EGL_BAD_ATTRIBUTE"/>
|
|
+ <enum value="0x3005" name="EGL_BAD_CONFIG"/>
|
|
+ <enum value="0x3006" name="EGL_BAD_CONTEXT"/>
|
|
+ <enum value="0x3007" name="EGL_BAD_CURRENT_SURFACE"/>
|
|
+ <enum value="0x3008" name="EGL_BAD_DISPLAY"/>
|
|
+ <enum value="0x3009" name="EGL_BAD_MATCH"/>
|
|
+ <enum value="0x300A" name="EGL_BAD_NATIVE_PIXMAP"/>
|
|
+ <enum value="0x300B" name="EGL_BAD_NATIVE_WINDOW"/>
|
|
+ <enum value="0x300C" name="EGL_BAD_PARAMETER"/>
|
|
+ <enum value="0x300D" name="EGL_BAD_SURFACE"/>
|
|
+ <enum value="0x300E" name="EGL_CONTEXT_LOST"/>
|
|
+ <unused start="0x300F" end="0x301F" comment="for additional errors"/>
|
|
+ <enum value="0x3020" name="EGL_BUFFER_SIZE"/>
|
|
+ <enum value="0x3021" name="EGL_ALPHA_SIZE"/>
|
|
+ <enum value="0x3022" name="EGL_BLUE_SIZE"/>
|
|
+ <enum value="0x3023" name="EGL_GREEN_SIZE"/>
|
|
+ <enum value="0x3024" name="EGL_RED_SIZE"/>
|
|
+ <enum value="0x3025" name="EGL_DEPTH_SIZE"/>
|
|
+ <enum value="0x3026" name="EGL_STENCIL_SIZE"/>
|
|
+ <enum value="0x3027" name="EGL_CONFIG_CAVEAT"/>
|
|
+ <enum value="0x3028" name="EGL_CONFIG_ID"/>
|
|
+ <enum value="0x3029" name="EGL_LEVEL"/>
|
|
+ <enum value="0x302A" name="EGL_MAX_PBUFFER_HEIGHT"/>
|
|
+ <enum value="0x302B" name="EGL_MAX_PBUFFER_PIXELS"/>
|
|
+ <enum value="0x302C" name="EGL_MAX_PBUFFER_WIDTH"/>
|
|
+ <enum value="0x302D" name="EGL_NATIVE_RENDERABLE"/>
|
|
+ <enum value="0x302E" name="EGL_NATIVE_VISUAL_ID"/>
|
|
+ <enum value="0x302F" name="EGL_NATIVE_VISUAL_TYPE"/>
|
|
+ <enum value="0x3031" name="EGL_SAMPLES"/>
|
|
+ <enum value="0x3032" name="EGL_SAMPLE_BUFFERS"/>
|
|
+ <enum value="0x3033" name="EGL_SURFACE_TYPE"/>
|
|
+ <enum value="0x3034" name="EGL_TRANSPARENT_TYPE"/>
|
|
+ <enum value="0x3035" name="EGL_TRANSPARENT_BLUE_VALUE"/>
|
|
+ <enum value="0x3036" name="EGL_TRANSPARENT_GREEN_VALUE"/>
|
|
+ <enum value="0x3037" name="EGL_TRANSPARENT_RED_VALUE"/>
|
|
+ <enum value="0x3038" name="EGL_NONE" comment="Attribute list terminator"/>
|
|
+ <enum value="0x3039" name="EGL_BIND_TO_TEXTURE_RGB"/>
|
|
+ <enum value="0x303A" name="EGL_BIND_TO_TEXTURE_RGBA"/>
|
|
+ <enum value="0x303B" name="EGL_MIN_SWAP_INTERVAL"/>
|
|
+ <enum value="0x303C" name="EGL_MAX_SWAP_INTERVAL"/>
|
|
+ <enum value="0x303D" name="EGL_LUMINANCE_SIZE"/>
|
|
+ <enum value="0x303E" name="EGL_ALPHA_MASK_SIZE"/>
|
|
+ <enum value="0x303F" name="EGL_COLOR_BUFFER_TYPE"/>
|
|
+ <enum value="0x3040" name="EGL_RENDERABLE_TYPE"/>
|
|
+ <enum value="0x3041" name="EGL_MATCH_NATIVE_PIXMAP"/>
|
|
+ <enum value="0x3042" name="EGL_CONFORMANT"/>
|
|
+ <enum value="0x3042" name="EGL_CONFORMANT_KHR"/>
|
|
+ <enum value="0x3043" name="EGL_MATCH_FORMAT_KHR"/>
|
|
+ <unused start="0x3044" end="0x304F" comment="for additional config attributes"/>
|
|
+ <enum value="0x3050" name="EGL_SLOW_CONFIG"/>
|
|
+ <enum value="0x3051" name="EGL_NON_CONFORMANT_CONFIG"/>
|
|
+ <enum value="0x3052" name="EGL_TRANSPARENT_RGB"/>
|
|
+ <enum value="0x3053" name="EGL_VENDOR"/>
|
|
+ <enum value="0x3054" name="EGL_VERSION"/>
|
|
+ <enum value="0x3055" name="EGL_EXTENSIONS"/>
|
|
+ <enum value="0x3056" name="EGL_HEIGHT"/>
|
|
+ <enum value="0x3057" name="EGL_WIDTH"/>
|
|
+ <enum value="0x3058" name="EGL_LARGEST_PBUFFER"/>
|
|
+ <enum value="0x3059" name="EGL_DRAW"/>
|
|
+ <enum value="0x305A" name="EGL_READ"/>
|
|
+ <enum value="0x305B" name="EGL_CORE_NATIVE_ENGINE"/>
|
|
+ <enum value="0x305C" name="EGL_NO_TEXTURE"/>
|
|
+ <enum value="0x305D" name="EGL_TEXTURE_RGB"/>
|
|
+ <enum value="0x305E" name="EGL_TEXTURE_RGBA"/>
|
|
+ <enum value="0x305F" name="EGL_TEXTURE_2D"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3060-0x306F" vendor="TAO" comment="Reserved for Phil Huxley">
|
|
+ <unused start="0x3060" end="0x306F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3070-0x307F" vendor="NOK" comment="Reserved for Jani Vaarala">
|
|
+ <unused start="0x3070" end="0x307E"/>
|
|
+ <enum value="0x307F" name="EGL_Y_INVERTED_NOK"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3080-0x30AF" vendor="KHR">
|
|
+ <enum value="0x3080" name="EGL_TEXTURE_FORMAT"/>
|
|
+ <enum value="0x3081" name="EGL_TEXTURE_TARGET"/>
|
|
+ <enum value="0x3082" name="EGL_MIPMAP_TEXTURE"/>
|
|
+ <enum value="0x3083" name="EGL_MIPMAP_LEVEL"/>
|
|
+ <enum value="0x3084" name="EGL_BACK_BUFFER"/>
|
|
+ <enum value="0x3085" name="EGL_SINGLE_BUFFER"/>
|
|
+ <enum value="0x3086" name="EGL_RENDER_BUFFER"/>
|
|
+ <enum value="0x3087" name="EGL_COLORSPACE" alias="EGL_VG_COLORSPACE"/>
|
|
+ <enum value="0x3087" name="EGL_VG_COLORSPACE"/>
|
|
+ <enum value="0x3088" name="EGL_ALPHA_FORMAT" alias="EGL_VG_ALPHA_FORMAT"/>
|
|
+ <enum value="0x3088" name="EGL_VG_ALPHA_FORMAT"/>
|
|
+ <enum value="0x3089" name="EGL_COLORSPACE_sRGB"/>
|
|
+ <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB" alias="EGL_COLORSPACE_sRGB"/>
|
|
+ <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB_KHR" alias="EGL_COLORSPACE_sRGB"/>
|
|
+ <enum value="0x3089" name="EGL_VG_COLORSPACE_sRGB" alias="EGL_COLORSPACE_sRGB"/>
|
|
+ <enum value="0x308A" name="EGL_COLORSPACE_LINEAR"/>
|
|
+ <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
|
|
+ <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR_KHR" alias="EGL_COLORSPACE_LINEAR"/>
|
|
+ <enum value="0x308A" name="EGL_VG_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
|
|
+ <enum value="0x308B" name="EGL_ALPHA_FORMAT_NONPRE" alias="EGL_VG_ALPHA_FORMAT_NONPRE"/>
|
|
+ <enum value="0x308B" name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
|
|
+ <enum value="0x308C" name="EGL_ALPHA_FORMAT_PRE" alias="EGL_VG_ALPHA_FORMAT_PRE"/>
|
|
+ <enum value="0x308C" name="EGL_VG_ALPHA_FORMAT_PRE"/>
|
|
+ <enum value="0x308D" name="EGL_CLIENT_APIS"/>
|
|
+ <enum value="0x308E" name="EGL_RGB_BUFFER"/>
|
|
+ <enum value="0x308F" name="EGL_LUMINANCE_BUFFER"/>
|
|
+ <enum value="0x3090" name="EGL_HORIZONTAL_RESOLUTION"/>
|
|
+ <enum value="0x3091" name="EGL_VERTICAL_RESOLUTION"/>
|
|
+ <enum value="0x3092" name="EGL_PIXEL_ASPECT_RATIO"/>
|
|
+ <enum value="0x3093" name="EGL_SWAP_BEHAVIOR"/>
|
|
+ <enum value="0x3094" name="EGL_BUFFER_PRESERVED"/>
|
|
+ <enum value="0x3095" name="EGL_BUFFER_DESTROYED"/>
|
|
+ <enum value="0x3096" name="EGL_OPENVG_IMAGE"/>
|
|
+ <enum value="0x3097" name="EGL_CONTEXT_CLIENT_TYPE"/>
|
|
+ <enum value="0x3098" name="EGL_CONTEXT_CLIENT_VERSION"/>
|
|
+ <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION" alias="EGL_CONTEXT_CLIENT_VERSION"/>
|
|
+ <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION_KHR" alias="EGL_CONTEXT_CLIENT_VERSION"/>
|
|
+ <enum value="0x3099" name="EGL_MULTISAMPLE_RESOLVE"/>
|
|
+ <enum value="0x309A" name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
|
|
+ <enum value="0x309B" name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
|
|
+ <enum value="0x309C" name="EGL_CL_EVENT_HANDLE"/>
|
|
+ <enum value="0x309C" name="EGL_CL_EVENT_HANDLE_KHR" alias="EGL_CL_EVENT_HANDLE"/>
|
|
+ <enum value="0x309D" name="EGL_GL_COLORSPACE"/>
|
|
+ <enum value="0x309D" name="EGL_GL_COLORSPACE_KHR" alias="EGL_GL_COLORSPACE"/>
|
|
+ <unused start="0x309E" end="0x309F"/>
|
|
+ <enum value="0x30A0" name="EGL_OPENGL_ES_API"/>
|
|
+ <enum value="0x30A1" name="EGL_OPENVG_API"/>
|
|
+ <enum value="0x30A2" name="EGL_OPENGL_API"/>
|
|
+ <unused start="0x30A3" end="0x30AF" comment="for additional client API names"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x30B0-0x30BF" vendor="NV" comment="Reserved for Ignacio Llamas">
|
|
+ <enum value="0x30B0" name="EGL_NATIVE_PIXMAP_KHR"/>
|
|
+ <enum value="0x30B1" name="EGL_GL_TEXTURE_2D"/>
|
|
+ <enum value="0x30B1" name="EGL_GL_TEXTURE_2D_KHR" alias="EGL_GL_TEXTURE_2D"/>
|
|
+ <enum value="0x30B2" name="EGL_GL_TEXTURE_3D"/>
|
|
+ <enum value="0x30B2" name="EGL_GL_TEXTURE_3D_KHR" alias="EGL_GL_TEXTURE_3D"/>
|
|
+ <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
|
|
+ <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
|
|
+ <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
|
|
+ <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
|
|
+ <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
|
|
+ <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
|
|
+ <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
|
|
+ <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
|
|
+ <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
|
|
+ <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
|
|
+ <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
|
|
+ <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
|
|
+ <enum value="0x30B9" name="EGL_GL_RENDERBUFFER"/>
|
|
+ <enum value="0x30B9" name="EGL_GL_RENDERBUFFER_KHR" alias="EGL_GL_RENDERBUFFER"/>
|
|
+ <enum value="0x30BA" name="EGL_VG_PARENT_IMAGE_KHR"/>
|
|
+ <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL"/>
|
|
+ <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL_KHR" alias="EGL_GL_TEXTURE_LEVEL"/>
|
|
+ <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET"/>
|
|
+ <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET_KHR" alias="EGL_GL_TEXTURE_ZOFFSET"/>
|
|
+ <enum value="0x30BE" name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
|
|
+ <enum value="0x30BF" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT" alias="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x30C0-0x30CF" vendor="KHR">
|
|
+ <enum value="0x30C0" name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
|
|
+ <enum value="0x30C1" name="EGL_FORMAT_RGB_565_KHR"/>
|
|
+ <enum value="0x30C2" name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
|
|
+ <enum value="0x30C3" name="EGL_FORMAT_RGBA_8888_KHR"/>
|
|
+ <enum value="0x30C4" name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
|
|
+ <enum value="0x30C5" name="EGL_LOCK_USAGE_HINT_KHR"/>
|
|
+ <enum value="0x30C6" name="EGL_BITMAP_POINTER_KHR"/>
|
|
+ <enum value="0x30C7" name="EGL_BITMAP_PITCH_KHR"/>
|
|
+ <enum value="0x30C8" name="EGL_BITMAP_ORIGIN_KHR"/>
|
|
+ <enum value="0x30C9" name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
|
|
+ <enum value="0x30CA" name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
|
|
+ <enum value="0x30CB" name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
|
|
+ <enum value="0x30CC" name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
|
|
+ <enum value="0x30CD" name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
|
|
+ <enum value="0x30CE" name="EGL_LOWER_LEFT_KHR"/>
|
|
+ <enum value="0x30CF" name="EGL_UPPER_LEFT_KHR"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x30D0" end="0x30DF" vendor="Symbian" comment="Reserved for Robert Palmer (bug #2545)">
|
|
+ <unused start="0x30D0" end="0x30D1"/>
|
|
+ <enum value="0x30D2" name="EGL_IMAGE_PRESERVED"/>
|
|
+ <enum value="0x30D2" name="EGL_IMAGE_PRESERVED_KHR"/>
|
|
+ <unused start="0x30D3" end="0x30D9"/>
|
|
+ <enum value="0x30DA" name="EGL_SHARED_IMAGE_NOK" comment="Unreleased extension"/>
|
|
+ <unused start="0x30DB" end="0x30DF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x30E0" end="0x30EF" vendor="NV" comment="Reserved for Russell Pflughaupt (bug #3314)">
|
|
+ <enum value="0x30E0" name="EGL_COVERAGE_BUFFERS_NV"/>
|
|
+ <enum value="0x30E1" name="EGL_COVERAGE_SAMPLES_NV"/>
|
|
+ <enum value="0x30E2" name="EGL_DEPTH_ENCODING_NV"/>
|
|
+ <enum value="0x30E3" name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
|
|
+ <unused start="0x30E4" end="0x30E5"/>
|
|
+ <enum value="0x30E6" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
|
|
+ <enum value="0x30E7" name="EGL_SYNC_STATUS_NV"/>
|
|
+ <enum value="0x30E8" name="EGL_SIGNALED_NV"/>
|
|
+ <enum value="0x30E9" name="EGL_UNSIGNALED_NV"/>
|
|
+ <enum value="0x30EA" name="EGL_ALREADY_SIGNALED_NV"/>
|
|
+ <enum value="0x30EB" name="EGL_TIMEOUT_EXPIRED_NV"/>
|
|
+ <enum value="0x30EC" name="EGL_CONDITION_SATISFIED_NV"/>
|
|
+ <enum value="0x30ED" name="EGL_SYNC_TYPE_NV"/>
|
|
+ <enum value="0x30EE" name="EGL_SYNC_CONDITION_NV"/>
|
|
+ <enum value="0x30EF" name="EGL_SYNC_FENCE_NV"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x30F0" end="0x30FF" vendor="KHR">
|
|
+ <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
|
|
+ <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR" alias="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
|
|
+ <enum value="0x30F1" name="EGL_SYNC_STATUS"/>
|
|
+ <enum value="0x30F1" name="EGL_SYNC_STATUS_KHR" alias="EGL_SYNC_STATUS"/>
|
|
+ <enum value="0x30F2" name="EGL_SIGNALED"/>
|
|
+ <enum value="0x30F2" name="EGL_SIGNALED_KHR" alias="EGL_SIGNALED"/>
|
|
+ <enum value="0x30F3" name="EGL_UNSIGNALED"/>
|
|
+ <enum value="0x30F3" name="EGL_UNSIGNALED_KHR" alias="EGL_UNSIGNALED"/>
|
|
+ <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED"/>
|
|
+ <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED_KHR" alias="EGL_TIMEOUT_EXPIRED"/>
|
|
+ <enum value="0x30F6" name="EGL_CONDITION_SATISFIED"/>
|
|
+ <enum value="0x30F6" name="EGL_CONDITION_SATISFIED_KHR" alias="EGL_CONDITION_SATISFIED"/>
|
|
+ <enum value="0x30F7" name="EGL_SYNC_TYPE"/>
|
|
+ <enum value="0x30F7" name="EGL_SYNC_TYPE_KHR" alias="EGL_SYNC_TYPE"/>
|
|
+ <enum value="0x30F8" name="EGL_SYNC_CONDITION"/>
|
|
+ <enum value="0x30F8" name="EGL_SYNC_CONDITION_KHR" alias="EGL_SYNC_CONDITION"/>
|
|
+ <enum value="0x30F9" name="EGL_SYNC_FENCE"/>
|
|
+ <enum value="0x30F9" name="EGL_SYNC_FENCE_KHR" alias="EGL_SYNC_FENCE"/>
|
|
+ <enum value="0x30FA" name="EGL_SYNC_REUSABLE_KHR"/>
|
|
+ <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION"/>
|
|
+ <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION_KHR" alias="EGL_CONTEXT_MINOR_VERSION"/>
|
|
+ <enum value="0x30FC" name="EGL_CONTEXT_FLAGS_KHR"/>
|
|
+ <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
|
|
+ <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR" alias="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
|
|
+ <enum value="0x30FE" name="EGL_SYNC_CL_EVENT"/>
|
|
+ <enum value="0x30FE" name="EGL_SYNC_CL_EVENT_KHR" alias="EGL_SYNC_CL_EVENT"/>
|
|
+ <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE"/>
|
|
+ <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE_KHR" alias="EGL_SYNC_CL_EVENT_COMPLETE"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3100" end="0x310F" vendor="IMG" comment="Reserved for Ben Bowman (Khronos bug 4748)">
|
|
+ <enum value="0x3100" name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
|
|
+ <enum value="0x3101" name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
|
|
+ <enum value="0x3102" name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
|
|
+ <enum value="0x3103" name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
|
|
+ <unused start="0x3104" end="0x310F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3110" end="0x311F" vendor="ATX" comment="Reserved for Tim Renouf, Antix (Khronos bug 4949)">
|
|
+ <enum value="0x3110" name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
|
|
+ <unused start="0x3111" end="0x311F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3120" end="0x312F" vendor="AMD" comment="Reserved for David Garcia (Khronos bug 5149)">
|
|
+ <unused start="0x3120" end="0x312F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3130" end="0x313F" vendor="NV" comment="Reserved for Greg Prisament (Khronos bug 5166)">
|
|
+ <unused start="0x3130"/>
|
|
+ <enum value="0x3131" name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
|
|
+ <enum value="0x3132" name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
|
|
+ <enum value="0x3133" name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
|
|
+ <enum value="0x3134" name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
|
|
+ <unused start="0x3135"/>
|
|
+ <enum value="0x3136" name="EGL_AUTO_STEREO_NV"/>
|
|
+ <unused start="0x3137"/>
|
|
+ <enum value="0x3138" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
|
|
+ <unused start="0x3139" end="0x313C"/>
|
|
+ <enum value="0x313D" name="EGL_BUFFER_AGE_KHR"/>
|
|
+ <enum value="0x313D" name="EGL_BUFFER_AGE_EXT" alias="EGL_BUFFER_AGE_KHR"/>
|
|
+ <unused start="0x313E" end="0x313F"/>
|
|
+ <enum value="0x313F" name="EGL_PLATFORM_DEVICE_EXT"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3140" end="0x314F" vendor="Google" comment="Reserved for Mathias Agopian (Khronos bug 5199)">
|
|
+ <enum value="0x3140" name="EGL_NATIVE_BUFFER_ANDROID"/>
|
|
+ <enum value="0x3141" name="EGL_PLATFORM_ANDROID_KHR"/>
|
|
+ <enum value="0x3142" name="EGL_RECORDABLE_ANDROID"/>
|
|
+ <unused start="0x3143"/>
|
|
+ <enum value="0x3144" name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
|
|
+ <enum value="0x3145" name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
|
|
+ <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
|
|
+ <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
|
|
+ <unused start="0x3148" end="0x314F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)">
|
|
+ <unused start="0x3150" end="0x315F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3160" end="0x316F" vendor="Seaweed" comment="Reserved for Sree Sridharan (Khronos public bug 198)">
|
|
+ <unused start="0x3160" end="0x316F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3170" end="0x318F" vendor="QNX" comment="Reserved for Joel Pilon (Khronos bug 5834)">
|
|
+ <unused start="0x3170" end="0x318F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3190" end="0x31AF" vendor="FSL" comment="Reserved for Brian Murray, Freescale (Khronos bug 5939)">
|
|
+ <unused start="0x3190" end="0x31AF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x31B0" end="0x31BF" vendor="KHR" comment="Reserved for Marcus Lorentzon (Khronos bug 6437)">
|
|
+ <enum value="0x31B0" name="EGL_CONTEXT_OPENGL_DEBUG"/>
|
|
+ <enum value="0x31B1" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
|
|
+ <enum value="0x31B2" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
|
|
+ <enum value="0x31B3" name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
|
|
+ <unused start="0x31B4" end="0x31BC" comment="0x31B3-0x31BC formerly reserved for EGL_image_stream"/>
|
|
+ <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR" alias="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
|
|
+ <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
|
|
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION"/>
|
|
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_KHR" alias="EGL_NO_RESET_NOTIFICATION"/>
|
|
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_EXT" alias="EGL_NO_RESET_NOTIFICATION"/>
|
|
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET"/>
|
|
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_KHR" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
|
|
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_EXT" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x31C0" end="0x31CF" vendor="QCOM" comment="Reserved for Maurice Ribble (Khronos bug 6644) - EGL_QCOM_create_image spec TBD">
|
|
+ <unused start="0x31C0" end="0x31CF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x31D0" end="0x31DF" vendor="MESA" comment="Reserved for Kristian Høgsberg (Khronos bug 6757)">
|
|
+ <enum value="0x31D0" name="EGL_DRM_BUFFER_FORMAT_MESA"/>
|
|
+ <enum value="0x31D1" name="EGL_DRM_BUFFER_USE_MESA"/>
|
|
+ <enum value="0x31D2" name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
|
|
+ <enum value="0x31D3" name="EGL_DRM_BUFFER_MESA"/>
|
|
+ <enum value="0x31D4" name="EGL_DRM_BUFFER_STRIDE_MESA"/>
|
|
+ <enum value="0x31D5" name="EGL_PLATFORM_X11_KHR"/>
|
|
+ <enum value="0x31D5" name="EGL_PLATFORM_X11_EXT" alias="EGL_PLATFORM_X11_KHR"/>
|
|
+ <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_KHR"/>
|
|
+ <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_EXT" alias="EGL_PLATFORM_X11_SCREEN_KHR"/>
|
|
+ <enum value="0x31D7" name="EGL_PLATFORM_GBM_KHR"/>
|
|
+ <enum value="0x31D7" name="EGL_PLATFORM_GBM_MESA" alias="EGL_PLATFORM_GBM_KHR"/>
|
|
+ <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_KHR"/>
|
|
+ <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_EXT" alias="EGL_PLATFORM_WAYLAND_KHR"/>
|
|
+ <unused start="0x31D9" end="0x31DF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x31E0" end="0x31EF" vendor="HI" comment="Reserved for Mark Callow (Khronos bug 6799)">
|
|
+ <unused start="0x31E0" end="0x31EF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x31F0" end="0x31FF" vendor="KHR">
|
|
+ <unused start="0x31F0" end="0x31FB" comment="Placeholders for draft extensions follow"/>
|
|
+ <!--
|
|
+ <enum value="0x31F0" name="EGL_IMAGE_USE_AS_OPENGL_ES1_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl1_renderbuffer"/>
|
|
+ <enum value="0x31F1" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl1_texture_2d"/>
|
|
+ <enum value="0x31F2" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl1_texture_external"/>
|
|
+ <enum value="0x31F3" name="EGL_IMAGE_USE_AS_OPENGL_ES2_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl2_renderbuffer"/>
|
|
+ <enum value="0x31F4" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl2_texture_2d"/>
|
|
+ <enum value="0x31F5" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl2_texture_external"/>
|
|
+ <enum value="0x31F6" name="EGL_IMAGE_USE_AS_OPENVG_IMAGE_KHR" comment="Draft KHR_image_use_vg_vgimage"/>
|
|
+ <enum value="0x31F7" name="EGL_STREAM_CONSUMER_ATTACHMENT_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
|
|
+ <enum value="0x31F8" name="EGL_NO_FORMAT_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
|
|
+ <enum value="0x31F9" name="EGL_FORMAT_RGBA8888_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
|
|
+ <enum value="0x31FA" name="EGL_FORMAT_RGB888_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
|
|
+ <enum value="0x31FB" name="EGL_FORMAT_RGB565_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
|
|
+ -->
|
|
+ <enum value="0x31FC" name="EGL_STREAM_FIFO_LENGTH_KHR"/>
|
|
+ <enum value="0x31FD" name="EGL_STREAM_TIME_NOW_KHR"/>
|
|
+ <enum value="0x31FE" name="EGL_STREAM_TIME_CONSUMER_KHR"/>
|
|
+ <enum value="0x31FF" name="EGL_STREAM_TIME_PRODUCER_KHR"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3200" end="0x320F" vendor="ANGLE" comment="Reserved for Daniel Koch, ANGLE Project (Khronos bug 7139)">
|
|
+ <enum value="0x3200" name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
|
|
+ <enum value="0x3201" name="EGL_FIXED_SIZE_ANGLE"/>
|
|
+ <unused start="0x3202" end="0x320F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3210" end="0x321F" vendor="KHR">
|
|
+ <enum value="0x3210" name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
|
|
+ <unused start="0x3211"/>
|
|
+ <enum value="0x3212" name="EGL_PRODUCER_FRAME_KHR"/>
|
|
+ <enum value="0x3213" name="EGL_CONSUMER_FRAME_KHR"/>
|
|
+ <enum value="0x3214" name="EGL_STREAM_STATE_KHR"/>
|
|
+ <enum value="0x3215" name="EGL_STREAM_STATE_CREATED_KHR"/>
|
|
+ <enum value="0x3216" name="EGL_STREAM_STATE_CONNECTING_KHR"/>
|
|
+ <enum value="0x3217" name="EGL_STREAM_STATE_EMPTY_KHR"/>
|
|
+ <enum value="0x3218" name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
|
|
+ <enum value="0x3219" name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
|
|
+ <enum value="0x321A" name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
|
|
+ <enum value="0x321B" name="EGL_BAD_STREAM_KHR"/>
|
|
+ <enum value="0x321C" name="EGL_BAD_STATE_KHR"/>
|
|
+ <enum value="0x321D" name="EGL_BUFFER_COUNT_NV" comment="From EGL_NV_stream_producer_eglsurface, which has no known specification and was replaced by a KHR extension"/>
|
|
+ <enum value="0x321E" name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
|
|
+ <enum value="0x321F" name="EGL_SYNC_NEW_FRAME_NV"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3220" end="0x325F" vendor="NV" comment="Reserved for Greg Roth (Bug 8220)">
|
|
+ <unused start="0x3220" end="0x322A"/>
|
|
+ <enum value="0x322B" name="EGL_BAD_DEVICE_EXT"/>
|
|
+ <enum value="0x322C" name="EGL_DEVICE_EXT"/>
|
|
+ <enum value="0x322D" name="EGL_BAD_OUTPUT_LAYER_EXT"/>
|
|
+ <enum value="0x322E" name="EGL_BAD_OUTPUT_PORT_EXT"/>
|
|
+ <enum value="0x322F" name="EGL_SWAP_INTERVAL_EXT"/>
|
|
+ <unused start="0x3230" end="0x3232"/>
|
|
+ <enum value="0x3233" name="EGL_DRM_DEVICE_FILE_EXT"/>
|
|
+ <enum value="0x3234" name="EGL_DRM_CRTC_EXT"/>
|
|
+ <enum value="0x3235" name="EGL_DRM_PLANE_EXT"/>
|
|
+ <enum value="0x3236" name="EGL_DRM_CONNECTOR_EXT"/>
|
|
+ <enum value="0x3237" name="EGL_OPENWF_DEVICE_ID_EXT"/>
|
|
+ <enum value="0x3238" name="EGL_OPENWF_PIPELINE_ID_EXT"/>
|
|
+ <enum value="0x3239" name="EGL_OPENWF_PORT_ID_EXT"/>
|
|
+ <enum value="0x323A" name="EGL_CUDA_DEVICE_NV"/>
|
|
+ <enum value="0x323B" name="EGL_CUDA_EVENT_HANDLE_NV"/>
|
|
+ <enum value="0x323C" name="EGL_SYNC_CUDA_EVENT_NV"/>
|
|
+ <enum value="0x323D" name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
|
|
+ <unused start="0x323E" end="0x325F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3260" end="0x326F" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Public bug 620)">
|
|
+ <unused start="0x3260" end="0x326F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3270" end="0x328F" vendor="ARM" comment="Reserved for Tom Cooksey (Bug 9963)">
|
|
+ <enum value="0x3270" name="EGL_LINUX_DMA_BUF_EXT"/>
|
|
+ <enum value="0x3271" name="EGL_LINUX_DRM_FOURCC_EXT"/>
|
|
+ <enum value="0x3272" name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
|
|
+ <enum value="0x3273" name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
|
|
+ <enum value="0x3274" name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
|
|
+ <enum value="0x3275" name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
|
|
+ <enum value="0x3276" name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
|
|
+ <enum value="0x3277" name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
|
|
+ <enum value="0x3278" name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
|
|
+ <enum value="0x3279" name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
|
|
+ <enum value="0x327A" name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
|
|
+ <enum value="0x327B" name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
|
|
+ <enum value="0x327C" name="EGL_SAMPLE_RANGE_HINT_EXT"/>
|
|
+ <enum value="0x327D" name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
|
|
+ <enum value="0x327E" name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
|
|
+ <enum value="0x327F" name="EGL_ITU_REC601_EXT"/>
|
|
+ <enum value="0x3280" name="EGL_ITU_REC709_EXT"/>
|
|
+ <enum value="0x3281" name="EGL_ITU_REC2020_EXT"/>
|
|
+ <enum value="0x3282" name="EGL_YUV_FULL_RANGE_EXT"/>
|
|
+ <enum value="0x3283" name="EGL_YUV_NARROW_RANGE_EXT"/>
|
|
+ <enum value="0x3284" name="EGL_YUV_CHROMA_SITING_0_EXT"/>
|
|
+ <enum value="0x3285" name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
|
|
+ <enum value="0x3286" name="EGL_DISCARD_SAMPLES_ARM"/>
|
|
+ <unused start="0x3287" end="0x328F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3290" end="0x329F" vendor="MESA" comment="Reserved for John Kåre Alsaker (Public bug 757)">
|
|
+ <unused start="0x3290" end="0x329F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x32A0" end="0x32AF" vendor="Samsung" comment="Reserved for Dongyeon Kim (Public bug 880)">
|
|
+ <enum value="0x32A0" name="EGL_NATIVE_BUFFER_TIZEN"/>
|
|
+ <enum value="0x32A1" name="EGL_NATIVE_SURFACE_TIZEN"/>
|
|
+ <unused start="0x32A2" end="0x32AF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x32B0" end="0x32BF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 10663) - EGL_QCOM_lock_image spec TBD">
|
|
+ <unused start="0x32B0" end="0x32BF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x32C0" end="0x32CF" vendor="Vivante" comment="Reserved for Yanjun Zhang (Bug 11498)">
|
|
+ <enum value="0x32C0" name="EGL_PROTECTED_CONTENT_EXT"/>
|
|
+ <unused start="0x32C1" end="0x32CF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x32D0" end="0x32EF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 11735) - EGL_QCOM_gpu_perf spec TBD + Bug 12286 - EGL_QCOM_content_protection spec TBD">
|
|
+ <unused start="0x32D0" end="0x32EF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x32F0" end="0x32FF" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Bug 12870)">
|
|
+ <unused start="0x32F0" end="0x32FF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3300" end="0x331F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 12973,12849) - EGL_EXT_yuv_surface spec TBD">
|
|
+ <enum value="0x3300" name="EGL_YUV_BUFFER_EXT"/>
|
|
+ <enum value="0x3301" name="EGL_YUV_ORDER_EXT"/>
|
|
+ <enum value="0x3302" name="EGL_YUV_ORDER_YUV_EXT"/>
|
|
+ <enum value="0x3303" name="EGL_YUV_ORDER_YVU_EXT"/>
|
|
+ <enum value="0x3304" name="EGL_YUV_ORDER_YUYV_EXT"/>
|
|
+ <enum value="0x3305" name="EGL_YUV_ORDER_UYVY_EXT"/>
|
|
+ <enum value="0x3306" name="EGL_YUV_ORDER_YVYU_EXT"/>
|
|
+ <enum value="0x3307" name="EGL_YUV_ORDER_VYUY_EXT"/>
|
|
+ <enum value="0x3308" name="EGL_YUV_ORDER_AYUV_EXT"/>
|
|
+ <unused start="0x3309"/>
|
|
+ <enum value="0x330A" name="EGL_YUV_CSC_STANDARD_EXT"/>
|
|
+ <enum value="0x330B" name="EGL_YUV_CSC_STANDARD_601_EXT"/>
|
|
+ <enum value="0x330C" name="EGL_YUV_CSC_STANDARD_709_EXT"/>
|
|
+ <enum value="0x330D" name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
|
|
+ <unused start="0x330E" end="0x3310"/>
|
|
+ <enum value="0x3311" name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
|
|
+ <enum value="0x3312" name="EGL_YUV_SUBSAMPLE_EXT"/>
|
|
+ <enum value="0x3313" name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
|
|
+ <enum value="0x3314" name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
|
|
+ <enum value="0x3315" name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
|
|
+ <unused start="0x3316"/>
|
|
+ <enum value="0x3317" name="EGL_YUV_DEPTH_RANGE_EXT"/>
|
|
+ <enum value="0x3318" name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
|
|
+ <enum value="0x3319" name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
|
|
+ <enum value="0x331A" name="EGL_YUV_PLANE_BPP_EXT"/>
|
|
+ <enum value="0x331B" name="EGL_YUV_PLANE_BPP_0_EXT"/>
|
|
+ <enum value="0x331C" name="EGL_YUV_PLANE_BPP_8_EXT"/>
|
|
+ <enum value="0x331D" name="EGL_YUV_PLANE_BPP_10_EXT"/>
|
|
+ <unused start="0x331E" end="0x331F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x3320" end="0x339F" vendor="NV" comment="Reserved for James Jones (Bug 13209)">
|
|
+ <unused start="0x3320" end="0x339F"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 13175)">
|
|
+ <enum value="0x33A0" name="EGL_D3D9_DEVICE_ANGLE"/>
|
|
+ <enum value="0x33A1" name="EGL_D3D11_DEVICE_ANGLE"/>
|
|
+ <unused start="0x33A2" end="0x33AF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x33B0" end="0x33BF" vendor="KHR" comment="Reserved for EGL_KHR_debug / Jeff Vigil (Bug 13357)">
|
|
+ <enum value="0x33B0" name="EGL_OBJECT_THREAD_KHR"/>
|
|
+ <enum value="0x33B1" name="EGL_OBJECT_DISPLAY_KHR"/>
|
|
+ <enum value="0x33B2" name="EGL_OBJECT_CONTEXT_KHR"/>
|
|
+ <enum value="0x33B3" name="EGL_OBJECT_SURFACE_KHR"/>
|
|
+ <enum value="0x33B4" name="EGL_OBJECT_IMAGE_KHR"/>
|
|
+ <enum value="0x33B5" name="EGL_OBJECT_SYNC_KHR"/>
|
|
+ <enum value="0x33B6" name="EGL_OBJECT_STREAM_KHR"/>
|
|
+ <unused start="0x33B7"/>
|
|
+ <enum value="0x33B8" name="EGL_DEBUG_CALLBACK_KHR"/>
|
|
+ <enum value="0x33B9" name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
|
|
+ <enum value="0x33BA" name="EGL_DEBUG_MSG_ERROR_KHR"/>
|
|
+ <enum value="0x33BB" name="EGL_DEBUG_MSG_WARN_KHR"/>
|
|
+ <enum value="0x33BC" name="EGL_DEBUG_MSG_INFO_KHR"/>
|
|
+ <unused start="0x33BD" end="0x33BF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x33C0" end="0x33DF" vendor="BCOM" comment="Reserved for Gary Sweet (Bug 12203)">
|
|
+ <unused start="0x33C0" end="0x33DF"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x33E0" end="0x342F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 10663,13364)">
|
|
+ <unused start="0x33E0" end="0x342F"/>
|
|
+ </enums>
|
|
+
|
|
+<!-- Please remember that new enumerant allocations must be obtained by
|
|
+ request to the Khronos API registrar (see comments at the top of this
|
|
+ file) File requests in the Khronos Bugzilla, EGL project, Registry
|
|
+ component. Also note that some EGL enum values are shared with other
|
|
+ Khronos APIs, and new ranges should be allocated with such overlaps in
|
|
+ mind. -->
|
|
+
|
|
+<!-- Reservable for future use. To generate a new range, allocate multiples
|
|
+ of 16 starting at the lowest available point in this block. -->
|
|
+ <enums namespace="EGL" start="0x3420" end="0x3FFF" vendor="KHR">
|
|
+ <unused start="0x3420" end="0x3FFF" comment="Reserved for future use"/>
|
|
+ </enums>
|
|
+
|
|
+ <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
|
|
+ <enum value="0x8F70" name="EGL_COLOR_FORMAT_HI"/>
|
|
+ <enum value="0x8F71" name="EGL_COLOR_RGB_HI"/>
|
|
+ <enum value="0x8F72" name="EGL_COLOR_RGBA_HI"/>
|
|
+ <enum value="0x8F73" name="EGL_COLOR_ARGB_HI"/>
|
|
+ <enum value="0x8F74" name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
|
|
+ </enums>
|
|
+
|
|
+ <!-- SECTION: EGL command definitions. -->
|
|
+ <commands namespace="EGL">
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglBindAPI</name></proto>
|
|
+ <param><ptype>EGLenum</ptype> <name>api</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglBindTexImage</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>buffer</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglChooseConfig</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>config_size</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>num_config</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSync</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
|
|
+ <param><ptype>EGLTime</ptype> <name>timeout</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
|
|
+ <param><ptype>EGLTimeKHR</ptype> <name>timeout</name></param>
|
|
+ <alias name="eglClientWaitSync"/>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncNV</name></proto>
|
|
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
|
|
+ <param><ptype>EGLTimeNV</ptype> <name>timeout</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglCopyBuffers</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLNativePixmapType</ptype> <name>target</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLContext</ptype> <name>eglCreateContext</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>share_context</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLImageKHR</ptype> <name>eglCreateDRMImageMESA</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSyncNV</ptype> <name>eglCreateFenceSyncNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>condition</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLImage</ptype> <name>eglCreateImage</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>target</name></param>
|
|
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLImageKHR</ptype> <name>eglCreateImageKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>target</name></param>
|
|
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferFromClientBuffer</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>buftype</name></param>
|
|
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferSurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param><ptype>EGLNativePixmapType</ptype> <name>pixmap</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurfaceHI</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>struct <ptype>EGLClientPixmapHI</ptype> *<name>pixmap</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>void *<name>native_pixmap</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurfaceEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>void *<name>native_pixmap</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>void *<name>native_window</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurfaceEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param>void *<name>native_window</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamFromFileDescriptorKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLNativeFileDescriptorKHR</ptype> <name>file_descriptor</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreateStreamProducerSurfaceKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateStreamSyncNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSync</ptype> <name>eglCreateSync</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSyncKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSync64KHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
|
|
+ <param>const <ptype>EGLAttribKHR</ptype> *<name>attrib_list</name></param>
|
|
+ <alias name="eglCreateSync"/>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglCreateWindowSurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param><ptype>EGLNativeWindowType</ptype> <name>win</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglDebugMessageControlKHR</name></proto>
|
|
+ <param><ptype>EGLDEBUGPROCKHR</ptype> <name>callback</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyContext</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImage</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImage</ptype> <name>image</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImageKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
|
|
+ <alias name="eglDestroyImage"/>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyStreamKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySync</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ <alias name="eglDestroySync"/>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncNV</name></proto>
|
|
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglDupNativeFenceFDANDROID</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageMESA</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
|
|
+ <param>int *<name>fds</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>strides</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>offsets</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageQueryMESA</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
|
|
+ <param>int *<name>fourcc</name></param>
|
|
+ <param>int *<name>num_planes</name></param>
|
|
+ <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDRMImageMESA</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>name</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>handle</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>stride</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglFenceNV</name></proto>
|
|
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigAttrib</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigs</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>config_size</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>num_config</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLContext</ptype> <name>eglGetCurrentContext</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetCurrentDisplay</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLSurface</ptype> <name>eglGetCurrentSurface</name></proto>
|
|
+ <param><ptype>EGLint</ptype> <name>readdraw</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetDisplay</name></proto>
|
|
+ <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputLayersEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ <param><ptype>EGLOutputLayerEXT</ptype> *<name>layers</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>max_layers</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>num_layers</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputPortsEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ <param><ptype>EGLOutputPortEXT</ptype> *<name>ports</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>max_ports</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>num_ports</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplay</name></proto>
|
|
+ <param><ptype>EGLenum</ptype> <name>platform</name></param>
|
|
+ <param>void *<name>native_display</name></param>
|
|
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplayEXT</name></proto>
|
|
+ <param><ptype>EGLenum</ptype> <name>platform</name></param>
|
|
+ <param>void *<name>native_display</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>__eglMustCastToProperFunctionPointerType</ptype> <name>eglGetProcAddress</name></proto>
|
|
+ <param>const char *<name>procname</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLNativeFileDescriptorKHR</ptype> <name>eglGetStreamFileDescriptorKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttrib</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribNV</name></proto>
|
|
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeFrequencyNV</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeNV</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglInitialize</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>major</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>minor</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglLabelObjectKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>display</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>objectType</name></param>
|
|
+ <param><ptype>EGLObjectKHR</ptype> <name>object</name></param>
|
|
+ <param><ptype>EGLLabelKHR</ptype> <name>label</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglLockSurfaceKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglMakeCurrent</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>draw</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>read</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglOutputLayerAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> <name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglOutputPortAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> <name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglPostSubBufferNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>x</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>y</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>width</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>height</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryContext</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDebugKHR</name></proto>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDeviceAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto>const char *<name>eglQueryDeviceStringEXT</name></proto>
|
|
+ <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>name</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDevicesEXT</name></proto>
|
|
+ <param><ptype>EGLint</ptype> <name>max_devices</name></param>
|
|
+ <param><ptype>EGLDeviceEXT</ptype> *<name>devices</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>num_devices</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLNativeDisplayType</ptype> *<name>display_id</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativePixmapNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surf</name></param>
|
|
+ <param><ptype>EGLNativePixmapType</ptype> *<name>pixmap</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeWindowNV</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surf</name></param>
|
|
+ <param><ptype>EGLNativeWindowType</ptype> *<name>window</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputLayerAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto>const char *<name>eglQueryOutputLayerStringEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>name</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputPortAttribEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto>const char *<name>eglQueryOutputPortStringEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>name</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamTimeKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLTimeKHR</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamu64KHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLuint64KHR</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto>const char *<name>eglQueryString</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>name</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface64KHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLAttribKHR</ptype> *<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurfacePointerANGLE</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param>void **<name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglReleaseTexImage</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>buffer</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglReleaseThread</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto>void <name>eglSetBlobCacheFuncsANDROID</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSetBlobFuncANDROID</ptype> <name>set</name></param>
|
|
+ <param><ptype>EGLGetBlobFuncANDROID</ptype> <name>get</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSetDamageRegionKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>rects</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>mode</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncNV</name></proto>
|
|
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>mode</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamAttribKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerOutputEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>value</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageEXT</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>rects</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> *<name>rects</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegionNOK</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>numRects</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegion2NOK</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>numRects</name></param>
|
|
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapInterval</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>interval</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglTerminate</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglUnlockSurfaceKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitGL</name></proto>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitNative</name></proto>
|
|
+ <param><ptype>EGLint</ptype> <name>engine</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitSync</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
|
|
+ </command>
|
|
+ <command>
|
|
+ <proto><ptype>EGLint</ptype> <name>eglWaitSyncKHR</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
|
|
+ </command>
|
|
+ </commands>
|
|
+
|
|
+ <!-- SECTION: EGL API interface definitions. -->
|
|
+ <feature api="egl" name="EGL_VERSION_1_0" number="1.0">
|
|
+ <require>
|
|
+ <enum name="EGL_ALPHA_SIZE"/>
|
|
+ <enum name="EGL_BAD_ACCESS"/>
|
|
+ <enum name="EGL_BAD_ALLOC"/>
|
|
+ <enum name="EGL_BAD_ATTRIBUTE"/>
|
|
+ <enum name="EGL_BAD_CONFIG"/>
|
|
+ <enum name="EGL_BAD_CONTEXT"/>
|
|
+ <enum name="EGL_BAD_CURRENT_SURFACE"/>
|
|
+ <enum name="EGL_BAD_DISPLAY"/>
|
|
+ <enum name="EGL_BAD_MATCH"/>
|
|
+ <enum name="EGL_BAD_NATIVE_PIXMAP"/>
|
|
+ <enum name="EGL_BAD_NATIVE_WINDOW"/>
|
|
+ <enum name="EGL_BAD_PARAMETER"/>
|
|
+ <enum name="EGL_BAD_SURFACE"/>
|
|
+ <enum name="EGL_BLUE_SIZE"/>
|
|
+ <enum name="EGL_BUFFER_SIZE"/>
|
|
+ <enum name="EGL_CONFIG_CAVEAT"/>
|
|
+ <enum name="EGL_CONFIG_ID"/>
|
|
+ <enum name="EGL_CORE_NATIVE_ENGINE"/>
|
|
+ <enum name="EGL_DEPTH_SIZE"/>
|
|
+ <enum name="EGL_DONT_CARE"/>
|
|
+ <enum name="EGL_DRAW"/>
|
|
+ <enum name="EGL_EXTENSIONS"/>
|
|
+ <enum name="EGL_FALSE"/>
|
|
+ <enum name="EGL_GREEN_SIZE"/>
|
|
+ <enum name="EGL_HEIGHT"/>
|
|
+ <enum name="EGL_LARGEST_PBUFFER"/>
|
|
+ <enum name="EGL_LEVEL"/>
|
|
+ <enum name="EGL_MAX_PBUFFER_HEIGHT"/>
|
|
+ <enum name="EGL_MAX_PBUFFER_PIXELS"/>
|
|
+ <enum name="EGL_MAX_PBUFFER_WIDTH"/>
|
|
+ <enum name="EGL_NATIVE_RENDERABLE"/>
|
|
+ <enum name="EGL_NATIVE_VISUAL_ID"/>
|
|
+ <enum name="EGL_NATIVE_VISUAL_TYPE"/>
|
|
+ <enum name="EGL_NONE"/>
|
|
+ <enum name="EGL_NON_CONFORMANT_CONFIG"/>
|
|
+ <enum name="EGL_NOT_INITIALIZED"/>
|
|
+ <enum name="EGL_NO_CONTEXT"/>
|
|
+ <enum name="EGL_NO_DISPLAY"/>
|
|
+ <enum name="EGL_NO_SURFACE"/>
|
|
+ <enum name="EGL_PBUFFER_BIT"/>
|
|
+ <enum name="EGL_PIXMAP_BIT"/>
|
|
+ <enum name="EGL_READ"/>
|
|
+ <enum name="EGL_RED_SIZE"/>
|
|
+ <enum name="EGL_SAMPLES"/>
|
|
+ <enum name="EGL_SAMPLE_BUFFERS"/>
|
|
+ <enum name="EGL_SLOW_CONFIG"/>
|
|
+ <enum name="EGL_STENCIL_SIZE"/>
|
|
+ <enum name="EGL_SUCCESS"/>
|
|
+ <enum name="EGL_SURFACE_TYPE"/>
|
|
+ <enum name="EGL_TRANSPARENT_BLUE_VALUE"/>
|
|
+ <enum name="EGL_TRANSPARENT_GREEN_VALUE"/>
|
|
+ <enum name="EGL_TRANSPARENT_RED_VALUE"/>
|
|
+ <enum name="EGL_TRANSPARENT_RGB"/>
|
|
+ <enum name="EGL_TRANSPARENT_TYPE"/>
|
|
+ <enum name="EGL_TRUE"/>
|
|
+ <enum name="EGL_VENDOR"/>
|
|
+ <enum name="EGL_VERSION"/>
|
|
+ <enum name="EGL_WIDTH"/>
|
|
+ <enum name="EGL_WINDOW_BIT"/>
|
|
+ <command name="eglChooseConfig"/>
|
|
+ <command name="eglCopyBuffers"/>
|
|
+ <command name="eglCreateContext"/>
|
|
+ <command name="eglCreatePbufferSurface"/>
|
|
+ <command name="eglCreatePixmapSurface"/>
|
|
+ <command name="eglCreateWindowSurface"/>
|
|
+ <command name="eglDestroyContext"/>
|
|
+ <command name="eglDestroySurface"/>
|
|
+ <command name="eglGetConfigAttrib"/>
|
|
+ <command name="eglGetConfigs"/>
|
|
+ <command name="eglGetCurrentDisplay"/>
|
|
+ <command name="eglGetCurrentSurface"/>
|
|
+ <command name="eglGetDisplay"/>
|
|
+ <command name="eglGetError"/>
|
|
+ <command name="eglGetProcAddress"/>
|
|
+ <command name="eglInitialize"/>
|
|
+ <command name="eglMakeCurrent"/>
|
|
+ <command name="eglQueryContext"/>
|
|
+ <command name="eglQueryString"/>
|
|
+ <command name="eglQuerySurface"/>
|
|
+ <command name="eglSwapBuffers"/>
|
|
+ <command name="eglTerminate"/>
|
|
+ <command name="eglWaitGL"/>
|
|
+ <command name="eglWaitNative"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+ <feature api="egl" name="EGL_VERSION_1_1" number="1.1">
|
|
+ <require>
|
|
+ <enum name="EGL_BACK_BUFFER"/>
|
|
+ <enum name="EGL_BIND_TO_TEXTURE_RGB"/>
|
|
+ <enum name="EGL_BIND_TO_TEXTURE_RGBA"/>
|
|
+ <enum name="EGL_CONTEXT_LOST"/>
|
|
+ <enum name="EGL_MIN_SWAP_INTERVAL"/>
|
|
+ <enum name="EGL_MAX_SWAP_INTERVAL"/>
|
|
+ <enum name="EGL_MIPMAP_TEXTURE"/>
|
|
+ <enum name="EGL_MIPMAP_LEVEL"/>
|
|
+ <enum name="EGL_NO_TEXTURE"/>
|
|
+ <enum name="EGL_TEXTURE_2D"/>
|
|
+ <enum name="EGL_TEXTURE_FORMAT"/>
|
|
+ <enum name="EGL_TEXTURE_RGB"/>
|
|
+ <enum name="EGL_TEXTURE_RGBA"/>
|
|
+ <enum name="EGL_TEXTURE_TARGET"/>
|
|
+ <command name="eglBindTexImage"/>
|
|
+ <command name="eglReleaseTexImage"/>
|
|
+ <command name="eglSurfaceAttrib"/>
|
|
+ <command name="eglSwapInterval"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+ <feature api="egl" name="EGL_VERSION_1_2" number="1.2">
|
|
+ <require>
|
|
+ <enum name="EGL_ALPHA_FORMAT"/>
|
|
+ <enum name="EGL_ALPHA_FORMAT_NONPRE"/>
|
|
+ <enum name="EGL_ALPHA_FORMAT_PRE"/>
|
|
+ <enum name="EGL_ALPHA_MASK_SIZE"/>
|
|
+ <enum name="EGL_BUFFER_PRESERVED"/>
|
|
+ <enum name="EGL_BUFFER_DESTROYED"/>
|
|
+ <enum name="EGL_CLIENT_APIS"/>
|
|
+ <enum name="EGL_COLORSPACE"/>
|
|
+ <enum name="EGL_COLORSPACE_sRGB"/>
|
|
+ <enum name="EGL_COLORSPACE_LINEAR"/>
|
|
+ <enum name="EGL_COLOR_BUFFER_TYPE"/>
|
|
+ <enum name="EGL_CONTEXT_CLIENT_TYPE"/>
|
|
+ <enum name="EGL_DISPLAY_SCALING"/>
|
|
+ <enum name="EGL_HORIZONTAL_RESOLUTION"/>
|
|
+ <enum name="EGL_LUMINANCE_BUFFER"/>
|
|
+ <enum name="EGL_LUMINANCE_SIZE"/>
|
|
+ <enum name="EGL_OPENGL_ES_BIT"/>
|
|
+ <enum name="EGL_OPENVG_BIT"/>
|
|
+ <enum name="EGL_OPENGL_ES_API"/>
|
|
+ <enum name="EGL_OPENVG_API"/>
|
|
+ <enum name="EGL_OPENVG_IMAGE"/>
|
|
+ <enum name="EGL_PIXEL_ASPECT_RATIO"/>
|
|
+ <enum name="EGL_RENDERABLE_TYPE"/>
|
|
+ <enum name="EGL_RENDER_BUFFER"/>
|
|
+ <enum name="EGL_RGB_BUFFER"/>
|
|
+ <enum name="EGL_SINGLE_BUFFER"/>
|
|
+ <enum name="EGL_SWAP_BEHAVIOR"/>
|
|
+ <enum name="EGL_UNKNOWN"/>
|
|
+ <enum name="EGL_VERTICAL_RESOLUTION"/>
|
|
+ <command name="eglBindAPI"/>
|
|
+ <command name="eglQueryAPI"/>
|
|
+ <command name="eglCreatePbufferFromClientBuffer"/>
|
|
+ <command name="eglReleaseThread"/>
|
|
+ <command name="eglWaitClient"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+ <feature api="egl" name="EGL_VERSION_1_3" number="1.3">
|
|
+ <require>
|
|
+ <enum name="EGL_CONFORMANT"/>
|
|
+ <enum name="EGL_CONTEXT_CLIENT_VERSION"/>
|
|
+ <enum name="EGL_MATCH_NATIVE_PIXMAP"/>
|
|
+ <enum name="EGL_OPENGL_ES2_BIT"/>
|
|
+ <enum name="EGL_VG_ALPHA_FORMAT"/>
|
|
+ <enum name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
|
|
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE"/>
|
|
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
|
|
+ <enum name="EGL_VG_COLORSPACE"/>
|
|
+ <enum name="EGL_VG_COLORSPACE_sRGB"/>
|
|
+ <enum name="EGL_VG_COLORSPACE_LINEAR"/>
|
|
+ <enum name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+ <feature api="egl" name="EGL_VERSION_1_4" number="1.4">
|
|
+ <require>
|
|
+ <enum name="EGL_DEFAULT_DISPLAY"/>
|
|
+ <enum name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
|
|
+ <enum name="EGL_MULTISAMPLE_RESOLVE"/>
|
|
+ <enum name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
|
|
+ <enum name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
|
|
+ <enum name="EGL_OPENGL_API"/>
|
|
+ <enum name="EGL_OPENGL_BIT"/>
|
|
+ <enum name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
|
|
+ <command name="eglGetCurrentContext"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+ <feature api="egl" name="EGL_VERSION_1_5" number="1.5">
|
|
+ <require comment="EGL_KHR_create_context features">
|
|
+ <enum name="EGL_CONTEXT_MAJOR_VERSION"/>
|
|
+ <enum name="EGL_CONTEXT_MINOR_VERSION"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
|
|
+ <enum name="EGL_NO_RESET_NOTIFICATION"/>
|
|
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_DEBUG"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
|
|
+ <enum name="EGL_OPENGL_ES3_BIT"/>
|
|
+ </require>
|
|
+ <require comment="EGL_EXT_create_context_robustness">
|
|
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
|
|
+ </require>
|
|
+ <require comment="EGL_EXT_client_extensions"/>
|
|
+ <require comment="EGL_KHR_cl_event2">
|
|
+ <enum name="EGL_CL_EVENT_HANDLE"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_fence_sync">
|
|
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
|
|
+ <enum name="EGL_SYNC_TYPE"/>
|
|
+ <enum name="EGL_SYNC_STATUS"/>
|
|
+ <enum name="EGL_SYNC_CONDITION"/>
|
|
+ <enum name="EGL_SIGNALED"/>
|
|
+ <enum name="EGL_UNSIGNALED"/>
|
|
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
|
|
+ <enum name="EGL_FOREVER"/>
|
|
+ <enum name="EGL_TIMEOUT_EXPIRED"/>
|
|
+ <enum name="EGL_CONDITION_SATISFIED"/>
|
|
+ <enum name="EGL_NO_SYNC"/>
|
|
+ <enum name="EGL_SYNC_FENCE"/>
|
|
+ <command name="eglCreateSync"/>
|
|
+ <command name="eglDestroySync"/>
|
|
+ <command name="eglClientWaitSync"/>
|
|
+ <command name="eglGetSyncAttrib"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_get_all_proc_addresses"/>
|
|
+ <require comment="EGL_KHR_client_get_all_proc_addresses"/>
|
|
+ <require comment="EGL_KHR_gl_colorspace">
|
|
+ <enum name="EGL_GL_COLORSPACE"/>
|
|
+ <enum name="EGL_GL_COLORSPACE_SRGB"/>
|
|
+ <enum name="EGL_GL_COLORSPACE_LINEAR"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_gl_renderbuffer_image">
|
|
+ <enum name="EGL_GL_RENDERBUFFER"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_gl_texture_2D_image">
|
|
+ <enum name="EGL_GL_TEXTURE_2D"/>
|
|
+ <enum name="EGL_GL_TEXTURE_LEVEL"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_gl_texture_3D_image">
|
|
+ <enum name="EGL_GL_TEXTURE_3D"/>
|
|
+ <enum name="EGL_GL_TEXTURE_ZOFFSET"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_gl_texture_cubemap_image">
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_image_base">
|
|
+ <enum name="EGL_IMAGE_PRESERVED"/>
|
|
+ <enum name="EGL_NO_IMAGE"/>
|
|
+ <command name="eglCreateImage"/>
|
|
+ <command name="eglDestroyImage"/>
|
|
+ </require>
|
|
+ <require comment="EGL_EXT_platform_base">
|
|
+ <command name="eglGetPlatformDisplay"/>
|
|
+ <command name="eglCreatePlatformWindowSurface"/>
|
|
+ <command name="eglCreatePlatformPixmapSurface"/>
|
|
+ </require>
|
|
+ <require comment="EGL_KHR_surfaceless_context - just relaxes an error condition"/>
|
|
+ <require comment="EGL_KHR_wait_sync">
|
|
+ <command name="eglWaitSync"/>
|
|
+ </require>
|
|
+ </feature>
|
|
+
|
|
+ <!-- SECTION: EGL extension interface definitions -->
|
|
+ <extensions>
|
|
+ <extension name="EGL_ANDROID_blob_cache" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglSetBlobCacheFuncsANDROID"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANDROID_framebuffer_target" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANDROID_image_native_buffer" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NATIVE_BUFFER_ANDROID"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANDROID_native_fence_sync" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
|
|
+ <enum name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
|
|
+ <enum name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
|
|
+ <enum name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
|
|
+ <command name="eglDupNativeFenceFDANDROID"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANDROID_recordable" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_RECORDABLE_ANDROID"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANGLE_device_d3d" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_D3D9_DEVICE_ANGLE"/>
|
|
+ <enum name="EGL_D3D11_DEVICE_ANGLE"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANGLE_query_surface_pointer" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglQuerySurfacePointerANGLE"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANGLE_surface_d3d_texture_2d_share_handle" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ANGLE_window_fixed_size" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_FIXED_SIZE_ANGLE"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_ARM_pixmap_multisample_discard" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_DISCARD_SAMPLES_ARM"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_buffer_age" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_BUFFER_AGE_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_client_extensions" supported="egl"/>
|
|
+ <extension name="EGL_EXT_create_context_robustness" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
|
|
+ <enum name="EGL_NO_RESET_NOTIFICATION_EXT"/>
|
|
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_device_base" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NO_DEVICE_EXT"/>
|
|
+ <enum name="EGL_BAD_DEVICE_EXT"/>
|
|
+ <enum name="EGL_DEVICE_EXT"/>
|
|
+ <command name="eglQueryDeviceAttribEXT"/>
|
|
+ <command name="eglQueryDeviceStringEXT"/>
|
|
+ <command name="eglQueryDevicesEXT"/>
|
|
+ <command name="eglQueryDisplayAttribEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_device_drm" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_DRM_DEVICE_FILE_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_device_enumeration" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglQueryDevicesEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_device_openwf" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_OPENWF_DEVICE_ID_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_device_query" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NO_DEVICE_EXT"/>
|
|
+ <enum name="EGL_BAD_DEVICE_EXT"/>
|
|
+ <enum name="EGL_DEVICE_EXT"/>
|
|
+ <command name="eglQueryDeviceAttribEXT"/>
|
|
+ <command name="eglQueryDeviceStringEXT"/>
|
|
+ <command name="eglQueryDisplayAttribEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_image_dma_buf_import" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_LINUX_DMA_BUF_EXT"/>
|
|
+ <enum name="EGL_LINUX_DRM_FOURCC_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
|
|
+ <enum name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
|
|
+ <enum name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
|
|
+ <enum name="EGL_SAMPLE_RANGE_HINT_EXT"/>
|
|
+ <enum name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
|
|
+ <enum name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
|
|
+ <enum name="EGL_ITU_REC601_EXT"/>
|
|
+ <enum name="EGL_ITU_REC709_EXT"/>
|
|
+ <enum name="EGL_ITU_REC2020_EXT"/>
|
|
+ <enum name="EGL_YUV_FULL_RANGE_EXT"/>
|
|
+ <enum name="EGL_YUV_NARROW_RANGE_EXT"/>
|
|
+ <enum name="EGL_YUV_CHROMA_SITING_0_EXT"/>
|
|
+ <enum name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_multiview_window" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_output_base" supported="egl">
|
|
+ <require>
|
|
+ <type name="EGLOutputLayerEXT"/>
|
|
+ <type name="EGLOutputPortEXT"/>
|
|
+ <enum name="EGL_NO_OUTPUT_LAYER_EXT"/>
|
|
+ <enum name="EGL_NO_OUTPUT_PORT_EXT"/>
|
|
+ <enum name="EGL_BAD_OUTPUT_LAYER_EXT"/>
|
|
+ <enum name="EGL_BAD_OUTPUT_PORT_EXT"/>
|
|
+ <enum name="EGL_SWAP_INTERVAL_EXT"/>
|
|
+ <command name="eglGetOutputLayersEXT"/>
|
|
+ <command name="eglGetOutputPortsEXT"/>
|
|
+ <command name="eglOutputLayerAttribEXT"/>
|
|
+ <command name="eglQueryOutputLayerAttribEXT"/>
|
|
+ <command name="eglQueryOutputLayerStringEXT"/>
|
|
+ <command name="eglOutputPortAttribEXT"/>
|
|
+ <command name="eglQueryOutputPortAttribEXT"/>
|
|
+ <command name="eglQueryOutputPortStringEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_output_drm" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_DRM_CRTC_EXT"/>
|
|
+ <enum name="EGL_DRM_PLANE_EXT"/>
|
|
+ <enum name="EGL_DRM_CONNECTOR_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_output_openwf" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_OPENWF_PIPELINE_ID_EXT"/>
|
|
+ <enum name="EGL_OPENWF_PORT_ID_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_platform_base" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglGetPlatformDisplayEXT"/>
|
|
+ <command name="eglCreatePlatformWindowSurfaceEXT"/>
|
|
+ <command name="eglCreatePlatformPixmapSurfaceEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_platform_device" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_DEVICE_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_platform_wayland" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_WAYLAND_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_platform_x11" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_X11_EXT"/>
|
|
+ <enum name="EGL_PLATFORM_X11_SCREEN_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_protected_surface" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PROTECTED_CONTENT_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_stream_consumer_egloutput" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglStreamConsumerOutputEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglSwapBuffersWithDamageEXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_EXT_yuv_surface" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_YUV_ORDER_EXT"/>
|
|
+ <enum name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
|
|
+ <enum name="EGL_YUV_SUBSAMPLE_EXT"/>
|
|
+ <enum name="EGL_YUV_DEPTH_RANGE_EXT"/>
|
|
+ <enum name="EGL_YUV_CSC_STANDARD_EXT"/>
|
|
+ <enum name="EGL_YUV_PLANE_BPP_EXT"/>
|
|
+ <enum name="EGL_YUV_BUFFER_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_YUV_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_YVU_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_YUYV_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_UYVY_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_YVYU_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_VYUY_EXT"/>
|
|
+ <enum name="EGL_YUV_ORDER_AYUV_EXT"/>
|
|
+ <enum name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
|
|
+ <enum name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
|
|
+ <enum name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
|
|
+ <enum name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
|
|
+ <enum name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
|
|
+ <enum name="EGL_YUV_CSC_STANDARD_601_EXT"/>
|
|
+ <enum name="EGL_YUV_CSC_STANDARD_709_EXT"/>
|
|
+ <enum name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
|
|
+ <enum name="EGL_YUV_PLANE_BPP_0_EXT"/>
|
|
+ <enum name="EGL_YUV_PLANE_BPP_8_EXT"/>
|
|
+ <enum name="EGL_YUV_PLANE_BPP_10_EXT"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_HI_clientpixmap" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
|
|
+ <command name="eglCreatePixmapSurfaceHI"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_HI_colorformats" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_COLOR_FORMAT_HI"/>
|
|
+ <enum name="EGL_COLOR_RGB_HI"/>
|
|
+ <enum name="EGL_COLOR_RGBA_HI"/>
|
|
+ <enum name="EGL_COLOR_ARGB_HI"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_IMG_context_priority" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
|
|
+ <enum name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
|
|
+ <enum name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
|
|
+ <enum name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_cl_event" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT_KHR"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_cl_event2" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT_KHR"/>
|
|
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
|
|
+ <command name="eglCreateSync64KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_config_attribs" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONFORMANT_KHR"/>
|
|
+ <enum name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
|
|
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_client_get_all_proc_addresses" supported="egl" comment="Alias of EGL_KHR_get_all_proc_addresses"/>
|
|
+ <extension name="EGL_KHR_create_context" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONTEXT_MAJOR_VERSION_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_MINOR_VERSION_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_FLAGS_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/>
|
|
+ <enum name="EGL_NO_RESET_NOTIFICATION_KHR"/>
|
|
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/>
|
|
+ <enum name="EGL_OPENGL_ES3_BIT"/>
|
|
+ <enum name="EGL_OPENGL_ES3_BIT_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_create_context_no_error" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_debug" supported="egl">
|
|
+ <require>
|
|
+ <!-- Explicit dependencies require to get EGLDEBUGPROCKHR dependencies correct -->
|
|
+ <type name="EGLLabelKHR"/>
|
|
+ <type name="EGLObjectKHR"/>
|
|
+ <enum name="EGL_OBJECT_THREAD_KHR"/>
|
|
+ <enum name="EGL_OBJECT_DISPLAY_KHR"/>
|
|
+ <enum name="EGL_OBJECT_CONTEXT_KHR"/>
|
|
+ <enum name="EGL_OBJECT_SURFACE_KHR"/>
|
|
+ <enum name="EGL_OBJECT_IMAGE_KHR"/>
|
|
+ <enum name="EGL_OBJECT_SYNC_KHR"/>
|
|
+ <enum name="EGL_OBJECT_STREAM_KHR"/>
|
|
+ <enum name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
|
|
+ <enum name="EGL_DEBUG_MSG_ERROR_KHR"/>
|
|
+ <enum name="EGL_DEBUG_MSG_WARN_KHR"/>
|
|
+ <enum name="EGL_DEBUG_MSG_INFO_KHR"/>
|
|
+ <enum name="EGL_DEBUG_CALLBACK_KHR"/>
|
|
+ <command name="eglDebugMessageControlKHR"/>
|
|
+ <command name="eglQueryDebugKHR"/>
|
|
+ <command name="eglLabelObjectKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
|
|
+ <require>
|
|
+ <!-- Most interfaces also defined by EGL_KHR_reusable sync -->
|
|
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/>
|
|
+ <enum name="EGL_SYNC_CONDITION_KHR"/>
|
|
+ <enum name="EGL_SYNC_FENCE_KHR"/>
|
|
+ <command name="eglCreateSyncKHR"/>
|
|
+ <command name="eglDestroySyncKHR"/>
|
|
+ <command name="eglClientWaitSyncKHR"/>
|
|
+ <command name="eglGetSyncAttribKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_get_all_proc_addresses" supported="egl"/>
|
|
+ <extension name="EGL_KHR_gl_colorspace" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_GL_COLORSPACE_KHR"/>
|
|
+ <enum name="EGL_GL_COLORSPACE_SRGB_KHR"/>
|
|
+ <enum name="EGL_GL_COLORSPACE_LINEAR_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_gl_renderbuffer_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_GL_RENDERBUFFER_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_gl_texture_2D_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_GL_TEXTURE_2D_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_LEVEL_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_gl_texture_3D_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_GL_TEXTURE_3D_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_ZOFFSET_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_gl_texture_cubemap_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/>
|
|
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NATIVE_PIXMAP_KHR"/>
|
|
+ <enum name="EGL_NO_IMAGE_KHR"/>
|
|
+ <command name="eglCreateImageKHR"/>
|
|
+ <command name="eglDestroyImageKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_image_base" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_IMAGE_PRESERVED_KHR"/>
|
|
+ <enum name="EGL_NO_IMAGE_KHR"/>
|
|
+ <command name="eglCreateImageKHR"/>
|
|
+ <command name="eglDestroyImageKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_image_pixmap" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NATIVE_PIXMAP_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_lock_surface" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_READ_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
|
|
+ <enum name="EGL_MATCH_FORMAT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGB_565_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
|
|
+ <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
|
|
+ <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
|
|
+ <enum name="EGL_BITMAP_POINTER_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PITCH_KHR"/>
|
|
+ <enum name="EGL_BITMAP_ORIGIN_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
|
|
+ <enum name="EGL_LOWER_LEFT_KHR"/>
|
|
+ <enum name="EGL_UPPER_LEFT_KHR"/>
|
|
+ <command name="eglLockSurfaceKHR"/>
|
|
+ <command name="eglUnlockSurfaceKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_lock_surface2" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_lock_surface3" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_READ_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
|
|
+ <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
|
|
+ <enum name="EGL_MATCH_FORMAT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGB_565_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
|
|
+ <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
|
|
+ <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
|
|
+ <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PITCH_KHR"/>
|
|
+ <enum name="EGL_BITMAP_ORIGIN_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
|
|
+ <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
|
|
+ <enum name="EGL_BITMAP_POINTER_KHR"/>
|
|
+ <enum name="EGL_LOWER_LEFT_KHR"/>
|
|
+ <enum name="EGL_UPPER_LEFT_KHR"/>
|
|
+ <command name="eglLockSurfaceKHR"/>
|
|
+ <command name="eglUnlockSurfaceKHR"/>
|
|
+ <command name="eglQuerySurface64KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_partial_update" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_BUFFER_AGE_KHR"/>
|
|
+ <command name="eglSetDamageRegionKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_platform_android" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_ANDROID_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_platform_gbm" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_GBM_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_platform_wayland" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_WAYLAND_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_platform_x11" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_X11_KHR"/>
|
|
+ <enum name="EGL_PLATFORM_X11_SCREEN_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_reusable_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_SYNC_STATUS_KHR"/>
|
|
+ <enum name="EGL_SIGNALED_KHR"/>
|
|
+ <enum name="EGL_UNSIGNALED_KHR"/>
|
|
+ <enum name="EGL_TIMEOUT_EXPIRED_KHR"/>
|
|
+ <enum name="EGL_CONDITION_SATISFIED_KHR"/>
|
|
+ <enum name="EGL_SYNC_TYPE_KHR"/>
|
|
+ <enum name="EGL_SYNC_REUSABLE_KHR"/>
|
|
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/>
|
|
+ <enum name="EGL_FOREVER_KHR"/>
|
|
+ <enum name="EGL_NO_SYNC_KHR"/>
|
|
+ <command name="eglCreateSyncKHR"/>
|
|
+ <command name="eglDestroySyncKHR"/>
|
|
+ <command name="eglClientWaitSyncKHR"/>
|
|
+ <command name="eglSignalSyncKHR"/>
|
|
+ <command name="eglGetSyncAttribKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_stream" protect="KHRONOS_SUPPORT_INT64" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NO_STREAM_KHR"/>
|
|
+ <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
|
|
+ <enum name="EGL_PRODUCER_FRAME_KHR"/>
|
|
+ <enum name="EGL_CONSUMER_FRAME_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_CREATED_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_EMPTY_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
|
|
+ <enum name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
|
|
+ <enum name="EGL_BAD_STREAM_KHR"/>
|
|
+ <enum name="EGL_BAD_STATE_KHR"/>
|
|
+ <command name="eglCreateStreamKHR"/>
|
|
+ <command name="eglDestroyStreamKHR"/>
|
|
+ <command name="eglStreamAttribKHR"/>
|
|
+ <command name="eglQueryStreamKHR"/>
|
|
+ <command name="eglQueryStreamu64KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_stream_consumer_gltexture" protect="EGL_KHR_stream" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
|
|
+ <command name="eglStreamConsumerGLTextureExternalKHR"/>
|
|
+ <command name="eglStreamConsumerAcquireKHR"/>
|
|
+ <command name="eglStreamConsumerReleaseKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_stream_cross_process_fd" protect="EGL_KHR_stream" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
|
|
+ <command name="eglGetStreamFileDescriptorKHR"/>
|
|
+ <command name="eglCreateStreamFromFileDescriptorKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_stream_fifo" protect="EGL_KHR_stream" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_STREAM_FIFO_LENGTH_KHR"/>
|
|
+ <enum name="EGL_STREAM_TIME_NOW_KHR"/>
|
|
+ <enum name="EGL_STREAM_TIME_CONSUMER_KHR"/>
|
|
+ <enum name="EGL_STREAM_TIME_PRODUCER_KHR"/>
|
|
+ <command name="eglQueryStreamTimeKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_stream_producer_aldatalocator" protect="EGL_KHR_stream" supported="egl"/>
|
|
+ <extension name="EGL_KHR_stream_producer_eglsurface" protect="EGL_KHR_stream" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_STREAM_BIT_KHR"/>
|
|
+ <command name="eglCreateStreamProducerSurfaceKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_surfaceless_context" supported="egl" comment="Just relaxes an error condition"/>
|
|
+ <extension name="EGL_KHR_swap_buffers_with_damage" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglSwapBuffersWithDamageKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_vg_parent_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_VG_PARENT_IMAGE_KHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_KHR_wait_sync" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglWaitSyncKHR"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_MESA_drm_image" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_DRM_BUFFER_FORMAT_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_USE_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
|
|
+ <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
|
|
+ <command name="eglCreateDRMImageMESA"/>
|
|
+ <command name="eglExportDRMImageMESA"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_MESA_image_dma_buf_export" supported="egl">
|
|
+ <require>
|
|
+ <type name="EGLuint64KHR"/>
|
|
+ <command name="eglExportDMABUFImageQueryMESA"/>
|
|
+ <command name="eglExportDMABUFImageMESA"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_MESA_platform_gbm" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_PLATFORM_GBM_MESA"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NOK_swap_region" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglSwapBuffersRegionNOK"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NOK_swap_region2" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglSwapBuffersRegion2NOK"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NOK_texture_from_pixmap" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_Y_INVERTED_NOK"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_3dvision_surface" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_AUTO_STEREO_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_coverage_sample" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_COVERAGE_BUFFERS_NV"/>
|
|
+ <enum name="EGL_COVERAGE_SAMPLES_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_coverage_sample_resolve" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
|
|
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
|
|
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_cuda_event" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CUDA_EVENT_HANDLE_NV"/>
|
|
+ <enum name="EGL_SYNC_CUDA_EVENT_NV"/>
|
|
+ <enum name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_depth_nonlinear" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_DEPTH_ENCODING_NV"/>
|
|
+ <enum name="EGL_DEPTH_ENCODING_NONE_NV"/>
|
|
+ <enum name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_device_cuda" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_CUDA_DEVICE_NV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_native_query" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglQueryNativeDisplayNV"/>
|
|
+ <command name="eglQueryNativeWindowNV"/>
|
|
+ <command name="eglQueryNativePixmapNV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_post_convert_rounding" supported="egl">
|
|
+ <require>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_post_sub_buffer" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
|
|
+ <command name="eglPostSubBufferNV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_stream_sync" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_SYNC_TYPE_KHR"/>
|
|
+ <enum name="EGL_SYNC_NEW_FRAME_NV"/>
|
|
+ <command name="eglCreateStreamSyncNV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
|
|
+ <enum name="EGL_SYNC_STATUS_NV"/>
|
|
+ <enum name="EGL_SIGNALED_NV"/>
|
|
+ <enum name="EGL_UNSIGNALED_NV"/>
|
|
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/>
|
|
+ <enum name="EGL_FOREVER_NV"/>
|
|
+ <enum name="EGL_ALREADY_SIGNALED_NV"/>
|
|
+ <enum name="EGL_TIMEOUT_EXPIRED_NV"/>
|
|
+ <enum name="EGL_CONDITION_SATISFIED_NV"/>
|
|
+ <enum name="EGL_SYNC_TYPE_NV"/>
|
|
+ <enum name="EGL_SYNC_CONDITION_NV"/>
|
|
+ <enum name="EGL_SYNC_FENCE_NV"/>
|
|
+ <enum name="EGL_NO_SYNC_NV"/>
|
|
+ <command name="eglCreateFenceSyncNV"/>
|
|
+ <command name="eglDestroySyncNV"/>
|
|
+ <command name="eglFenceNV"/>
|
|
+ <command name="eglClientWaitSyncNV"/>
|
|
+ <command name="eglSignalSyncNV"/>
|
|
+ <command name="eglGetSyncAttribNV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_NV_system_time" protect="KHRONOS_SUPPORT_INT64" supported="egl">
|
|
+ <require>
|
|
+ <command name="eglGetSystemTimeFrequencyNV"/>
|
|
+ <command name="eglGetSystemTimeNV"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_TIZEN_image_native_buffer" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NATIVE_BUFFER_TIZEN"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ <extension name="EGL_TIZEN_image_native_surface" supported="egl">
|
|
+ <require>
|
|
+ <enum name="EGL_NATIVE_SURFACE_TIZEN"/>
|
|
+ </require>
|
|
+ </extension>
|
|
+ </extensions>
|
|
+</registry>
|
|
diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
|
|
new file mode 100644
|
|
index 0000000000..b19b5f7193
|
|
--- /dev/null
|
|
+++ b/src/egl/generate/eglFunctionList.py
|
|
@@ -0,0 +1,197 @@
|
|
+#!/usr/bin/env python
|
|
+
|
|
+"""
|
|
+Contains a list of EGL functions to generate dispatch functions for.
|
|
+
|
|
+This is used from gen_egl_dispatch.py.
|
|
+
|
|
+EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name
|
|
+of the function, and eglData is a dictionary containing data about that
|
|
+function.
|
|
+
|
|
+The values in the eglData dictionary are:
|
|
+- method (string):
|
|
+ How to select a vendor library. See "Method values" below.
|
|
+
|
|
+- prefix (string):
|
|
+ This string is prepended to the name of the dispatch function. If
|
|
+ unspecified, the default is "" (an empty string).
|
|
+
|
|
+- static (boolean)
|
|
+ If True, this function should be declared static.
|
|
+
|
|
+- "public" (boolean)
|
|
+ If True, the function should be exported from the library. Vendor libraries
|
|
+ generally should not use this.
|
|
+
|
|
+- extension (string):
|
|
+ If specified, this is the name of a macro to check for before defining a
|
|
+ function. Used for checking for extension macros and such.
|
|
+
|
|
+- retval (string):
|
|
+ If specified, this is a C expression with the default value to return if we
|
|
+ can't find a function to call. By default, it will try to guess from the
|
|
+ return type: EGL_NO_whatever for the various handle types, NULL for
|
|
+ pointers, and zero for everything else.
|
|
+
|
|
+method values:
|
|
+- "custom"
|
|
+ The dispatch stub will be hand-written instead of generated.
|
|
+
|
|
+- "none"
|
|
+ No dispatch function exists at all, but the function should still have an
|
|
+ entry in the index array. This is for other functions that a stub may need
|
|
+ to call that are implemented in libEGL itself.
|
|
+
|
|
+- "display"
|
|
+ Select a vendor from an EGLDisplay argument.
|
|
+
|
|
+- "device"
|
|
+ Select a vendor from an EGLDeviceEXT argument.
|
|
+
|
|
+- "current"
|
|
+ Select the vendor that owns the current context.
|
|
+"""
|
|
+
|
|
+def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
|
|
+ """
|
|
+ A convenience function to define an entry in the EGL function list.
|
|
+ """
|
|
+ if inheader is None:
|
|
+ inheader = (not public)
|
|
+ values = {
|
|
+ "method" : method,
|
|
+ "prefix" : prefix,
|
|
+ "extension" : extension,
|
|
+ "retval" : retval,
|
|
+ "static" : static,
|
|
+ "public" : public,
|
|
+ "inheader" : inheader,
|
|
+ }
|
|
+ return (name, values)
|
|
+
|
|
+EGL_FUNCTIONS = (
|
|
+ # EGL_VERSION_1_0
|
|
+ _eglFunc("eglChooseConfig", "none"),
|
|
+ _eglFunc("eglCopyBuffers", "none"),
|
|
+ _eglFunc("eglCreateContext", "none"),
|
|
+ _eglFunc("eglCreatePbufferSurface", "none"),
|
|
+ _eglFunc("eglCreatePixmapSurface", "none"),
|
|
+ _eglFunc("eglCreateWindowSurface", "none"),
|
|
+ _eglFunc("eglDestroyContext", "none"),
|
|
+ _eglFunc("eglDestroySurface", "none"),
|
|
+ _eglFunc("eglGetConfigAttrib", "none"),
|
|
+ _eglFunc("eglGetConfigs", "none"),
|
|
+ _eglFunc("eglQueryContext", "none"),
|
|
+ _eglFunc("eglQuerySurface", "none"),
|
|
+ _eglFunc("eglSwapBuffers", "none"),
|
|
+ _eglFunc("eglWaitGL", "none"),
|
|
+ _eglFunc("eglWaitNative", "none"),
|
|
+ _eglFunc("eglTerminate", "none"),
|
|
+ _eglFunc("eglInitialize", "none"),
|
|
+
|
|
+ _eglFunc("eglGetCurrentDisplay", "none"),
|
|
+ _eglFunc("eglGetCurrentSurface", "none"),
|
|
+ _eglFunc("eglGetDisplay", "none"),
|
|
+ _eglFunc("eglGetError", "none"),
|
|
+ _eglFunc("eglGetProcAddress", "none"),
|
|
+ _eglFunc("eglMakeCurrent", "none"),
|
|
+ _eglFunc("eglQueryString", "none"),
|
|
+
|
|
+ # EGL_VERSION_1_1
|
|
+ _eglFunc("eglBindTexImage", "none"),
|
|
+ _eglFunc("eglReleaseTexImage", "none"),
|
|
+ _eglFunc("eglSurfaceAttrib", "none"),
|
|
+ _eglFunc("eglSwapInterval", "none"),
|
|
+
|
|
+ # EGL_VERSION_1_2
|
|
+ _eglFunc("eglCreatePbufferFromClientBuffer", "none"),
|
|
+ _eglFunc("eglWaitClient", "none"),
|
|
+ _eglFunc("eglBindAPI", "none"),
|
|
+ _eglFunc("eglQueryAPI", "none"),
|
|
+ _eglFunc("eglReleaseThread", "none"),
|
|
+
|
|
+ # EGL_VERSION_1_4
|
|
+ _eglFunc("eglGetCurrentContext", "none"),
|
|
+
|
|
+ # EGL_VERSION_1_5
|
|
+ _eglFunc("eglCreateSync", "none"),
|
|
+ _eglFunc("eglDestroySync", "none"),
|
|
+ _eglFunc("eglClientWaitSync", "none"),
|
|
+ _eglFunc("eglGetSyncAttrib", "none"),
|
|
+ _eglFunc("eglCreateImage", "none"),
|
|
+ _eglFunc("eglDestroyImage", "none"),
|
|
+ _eglFunc("eglCreatePlatformWindowSurface", "none"),
|
|
+ _eglFunc("eglCreatePlatformPixmapSurface", "none"),
|
|
+ _eglFunc("eglWaitSync", "none"),
|
|
+ _eglFunc("eglGetPlatformDisplay", "none"),
|
|
+
|
|
+ # EGL_EXT_platform_base
|
|
+ _eglFunc("eglCreatePlatformWindowSurfaceEXT", "display"),
|
|
+ _eglFunc("eglCreatePlatformPixmapSurfaceEXT", "display"),
|
|
+ _eglFunc("eglGetPlatformDisplayEXT", "none"),
|
|
+
|
|
+ # TODO: Most of these extensions should be provided by the vendor
|
|
+ # libraries, not by libEGL. They're here now to make testing everything
|
|
+ # else easier.
|
|
+
|
|
+ # EGL_EXT_swap_buffers_with_damage
|
|
+ _eglFunc("eglSwapBuffersWithDamageEXT", "display"),
|
|
+
|
|
+ # KHR_EXT_swap_buffers_with_damage
|
|
+ _eglFunc("eglSwapBuffersWithDamageKHR", "display"),
|
|
+
|
|
+ # EGL_KHR_cl_event2
|
|
+ _eglFunc("eglCreateSync64KHR", "display"),
|
|
+
|
|
+ # EGL_KHR_fence_sync
|
|
+ _eglFunc("eglCreateSyncKHR", "display"),
|
|
+ _eglFunc("eglDestroySyncKHR", "display"),
|
|
+ _eglFunc("eglClientWaitSyncKHR", "display"),
|
|
+ _eglFunc("eglGetSyncAttribKHR", "display"),
|
|
+
|
|
+ # EGL_KHR_image
|
|
+ _eglFunc("eglCreateImageKHR", "display"),
|
|
+ _eglFunc("eglDestroyImageKHR", "display"),
|
|
+
|
|
+ # EGL_KHR_image_base
|
|
+ # eglCreateImageKHR already defined in EGL_KHR_image
|
|
+ # eglDestroyImageKHR already defined in EGL_KHR_image
|
|
+
|
|
+ # EGL_KHR_reusable_sync
|
|
+ _eglFunc("eglSignalSyncKHR", "display"),
|
|
+ # eglCreateSyncKHR already defined in EGL_KHR_fence_sync
|
|
+ # eglDestroySyncKHR already defined in EGL_KHR_fence_sync
|
|
+ # eglClientWaitSyncKHR already defined in EGL_KHR_fence_sync
|
|
+ # eglGetSyncAttribKHR already defined in EGL_KHR_fence_sync
|
|
+
|
|
+ # EGL_KHR_wait_sync
|
|
+ _eglFunc("eglWaitSyncKHR", "display"),
|
|
+
|
|
+ # EGL_MESA_drm_image
|
|
+ _eglFunc("eglCreateDRMImageMESA", "display"),
|
|
+ _eglFunc("eglExportDRMImageMESA", "display"),
|
|
+
|
|
+ # EGL_MESA_image_dma_buf_export
|
|
+ _eglFunc("eglExportDMABUFImageQueryMESA", "display"),
|
|
+ _eglFunc("eglExportDMABUFImageMESA", "display"),
|
|
+
|
|
+ # EGL_NOK_swap_region
|
|
+ _eglFunc("eglSwapBuffersRegionNOK", "display"),
|
|
+
|
|
+ # EGL_NV_post_sub_buffer
|
|
+ _eglFunc("eglPostSubBufferNV", "display"),
|
|
+
|
|
+ # EGL_WL_bind_wayland_display
|
|
+ _eglFunc("eglCreateWaylandBufferFromImageWL", "display"),
|
|
+ _eglFunc("eglUnbindWaylandDisplayWL", "display"),
|
|
+ _eglFunc("eglQueryWaylandBufferWL", "display"),
|
|
+ _eglFunc("eglBindWaylandDisplayWL", "display"),
|
|
+
|
|
+ # EGL_CHROMIUM_get_sync_values
|
|
+ _eglFunc("eglGetSyncValuesCHROMIUM", "display"),
|
|
+
|
|
+ # EGL_ANDROID_native_fence_sync
|
|
+ _eglFunc("eglDupNativeFenceFDANDROID", "display"),
|
|
+)
|
|
+
|
|
diff --git a/src/egl/generate/egl_other.xml b/src/egl/generate/egl_other.xml
|
|
new file mode 100644
|
|
index 0000000000..7fe3a9e272
|
|
--- /dev/null
|
|
+++ b/src/egl/generate/egl_other.xml
|
|
@@ -0,0 +1,47 @@
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
+<registry>
|
|
+ <comment>
|
|
+ This file contains any EGL extension functions that are missing from
|
|
+ the normal egl.xml list.
|
|
+ </comment>
|
|
+ <commands namespace="EGL">
|
|
+ <!-- EGL_WL_bind_wayland_display -->
|
|
+ <command>
|
|
+ <proto>struct wl_buffer * <name>eglCreateWaylandBufferFromImageWL</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>EGLImage</ptype> <name>image</name></param>
|
|
+ </command>
|
|
+
|
|
+ <command>
|
|
+ <proto>EGLBoolean <name>eglUnbindWaylandDisplayWL</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>struct wl_display *</ptype> <name>display</name></param>
|
|
+ </command>
|
|
+
|
|
+ <command>
|
|
+ <proto>EGLBoolean <name>eglQueryWaylandBufferWL</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>struct wl_resource *</ptype> <name>buffer</name></param>
|
|
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
|
|
+ <param><ptype>EGLint *</ptype> <name>value</name></param>
|
|
+ </command>
|
|
+
|
|
+ <command>
|
|
+ <proto>EGLBoolean <name>eglBindWaylandDisplayWL</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
|
+ <param><ptype>struct wl_display *</ptype> <name>display</name></param>
|
|
+ </command>
|
|
+
|
|
+ <!-- EGL_CHROMIUM_get_sync_values -->
|
|
+ <command>
|
|
+ <proto>EGLBoolean <name>eglGetSyncValuesCHROMIUM</name></proto>
|
|
+ <param><ptype>EGLDisplay</ptype> <name>display</name></param>
|
|
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
|
+ <param><ptype>EGLuint64KHR *</ptype> <name>ust</name></param>
|
|
+ <param><ptype>EGLuint64KHR *</ptype> <name>msc</name></param>
|
|
+ <param><ptype>EGLuint64KHR *</ptype> <name>sbc</name></param>
|
|
+ </command>
|
|
+ </commands>
|
|
+</registry>
|
|
+
|
|
+
|
|
diff --git a/src/egl/generate/genCommon.py b/src/egl/generate/genCommon.py
|
|
new file mode 100644
|
|
index 0000000000..d493d7bf29
|
|
--- /dev/null
|
|
+++ b/src/egl/generate/genCommon.py
|
|
@@ -0,0 +1,223 @@
|
|
+#!/usr/bin/env python
|
|
+
|
|
+# (C) Copyright 2015, NVIDIA CORPORATION.
|
|
+# All Rights Reserved.
|
|
+#
|
|
+# Permission is hereby granted, free of charge, to any person obtaining a
|
|
+# copy of this software and associated documentation files (the "Software"),
|
|
+# to deal in the Software without restriction, including without limitation
|
|
+# on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
+# license, and/or sell copies of the Software, and to permit persons to whom
|
|
+# the Software is furnished to do so, subject to the following conditions:
|
|
+#
|
|
+# The above copyright notice and this permission notice (including the next
|
|
+# paragraph) shall be included in all copies or substantial portions of the
|
|
+# Software.
|
|
+#
|
|
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
+# IN THE SOFTWARE.
|
|
+#
|
|
+# Authors:
|
|
+# Kyle Brenneman <kbrenneman@nvidia.com>
|
|
+
|
|
+import collections
|
|
+import re
|
|
+import sys
|
|
+import xml.etree.cElementTree as etree
|
|
+
|
|
+MAPI_TABLE_NUM_DYNAMIC = 4096
|
|
+
|
|
+_LIBRARY_FEATURE_NAMES = {
|
|
+ # libGL and libGLdiapatch both include every function.
|
|
+ "gl" : None,
|
|
+ "gldispatch" : None,
|
|
+ "opengl" : frozenset(( "GL_VERSION_1_0", "GL_VERSION_1_1",
|
|
+ "GL_VERSION_1_2", "GL_VERSION_1_3", "GL_VERSION_1_4", "GL_VERSION_1_5",
|
|
+ "GL_VERSION_2_0", "GL_VERSION_2_1", "GL_VERSION_3_0", "GL_VERSION_3_1",
|
|
+ "GL_VERSION_3_2", "GL_VERSION_3_3", "GL_VERSION_4_0", "GL_VERSION_4_1",
|
|
+ "GL_VERSION_4_2", "GL_VERSION_4_3", "GL_VERSION_4_4", "GL_VERSION_4_5",
|
|
+ )),
|
|
+ "glesv1" : frozenset(("GL_VERSION_ES_CM_1_0", "GL_OES_point_size_array")),
|
|
+ "glesv2" : frozenset(("GL_ES_VERSION_2_0", "GL_ES_VERSION_3_0",
|
|
+ "GL_ES_VERSION_3_1" "GL_ES_VERSION_3_2",
|
|
+ )),
|
|
+}
|
|
+
|
|
+def getFunctions(xmlFiles):
|
|
+ """
|
|
+ Reads an XML file and returns all of the functions defined in it.
|
|
+
|
|
+ xmlFile should be the path to Khronos's gl.xml file. The return value is a
|
|
+ sequence of FunctionDesc objects, ordered by slot number.
|
|
+ """
|
|
+ roots = [ etree.parse(xmlFile).getroot() for xmlFile in xmlFiles ]
|
|
+ return getFunctionsFromRoots(roots)
|
|
+
|
|
+def getFunctionsFromRoots(roots):
|
|
+ functions = {}
|
|
+ for root in roots:
|
|
+ for func in _getFunctionList(root):
|
|
+ functions[func.name] = func
|
|
+ functions = functions.values()
|
|
+
|
|
+ # Sort the function list by name.
|
|
+ functions = sorted(functions, key=lambda f: f.name)
|
|
+
|
|
+ # Assign a slot number to each function. This isn't strictly necessary,
|
|
+ # since you can just look at the index in the list, but it makes it easier
|
|
+ # to include the slot when formatting output.
|
|
+ for i in range(len(functions)):
|
|
+ functions[i] = functions[i]._replace(slot=i)
|
|
+
|
|
+ return functions
|
|
+
|
|
+def getExportNamesFromRoots(target, roots):
|
|
+ """
|
|
+ Goes through the <feature> tags from gl.xml and returns a set of OpenGL
|
|
+ functions that a library should export.
|
|
+
|
|
+ target should be one of "gl", "gldispatch", "opengl", "glesv1", or
|
|
+ "glesv2".
|
|
+ """
|
|
+ featureNames = _LIBRARY_FEATURE_NAMES[target]
|
|
+ if featureNames is None:
|
|
+ return set(func.name for func in getFunctionsFromRoots(roots))
|
|
+
|
|
+ names = set()
|
|
+ for root in roots:
|
|
+ features = []
|
|
+ for featElem in root.findall("feature"):
|
|
+ if featElem.get("name") in featureNames:
|
|
+ features.append(featElem)
|
|
+ for featElem in root.findall("extensions/extension"):
|
|
+ if featElem.get("name") in featureNames:
|
|
+ features.append(featElem)
|
|
+ for featElem in features:
|
|
+ for commandElem in featElem.findall("require/command"):
|
|
+ names.add(commandElem.get("name"))
|
|
+ return names
|
|
+
|
|
+class FunctionArg(collections.namedtuple("FunctionArg", "type name")):
|
|
+ @property
|
|
+ def dec(self):
|
|
+ """
|
|
+ Returns a "TYPE NAME" string, suitable for a function prototype.
|
|
+ """
|
|
+ rv = str(self.type)
|
|
+ if not rv.endswith("*"):
|
|
+ rv += " "
|
|
+ rv += self.name
|
|
+ return rv
|
|
+
|
|
+class FunctionDesc(collections.namedtuple("FunctionDesc", "name rt args slot")):
|
|
+ def hasReturn(self):
|
|
+ """
|
|
+ Returns true if the function returns a value.
|
|
+ """
|
|
+ return (self.rt != "void")
|
|
+
|
|
+ @property
|
|
+ def decArgs(self):
|
|
+ """
|
|
+ Returns a string with the types and names of the arguments, as you
|
|
+ would use in a function declaration.
|
|
+ """
|
|
+ if not self.args:
|
|
+ return "void"
|
|
+ else:
|
|
+ return ", ".join(arg.dec for arg in self.args)
|
|
+
|
|
+ @property
|
|
+ def callArgs(self):
|
|
+ """
|
|
+ Returns a string with the names of the arguments, as you would use in a
|
|
+ function call.
|
|
+ """
|
|
+ return ", ".join(arg.name for arg in self.args)
|
|
+
|
|
+ @property
|
|
+ def basename(self):
|
|
+ assert self.name.startswith("gl")
|
|
+ return self.name[2:]
|
|
+
|
|
+def _getFunctionList(root):
|
|
+ for elem in root.findall("commands/command"):
|
|
+ yield _parseCommandElem(elem)
|
|
+
|
|
+def _parseCommandElem(elem):
|
|
+ protoElem = elem.find("proto")
|
|
+ (rt, name) = _parseProtoElem(protoElem)
|
|
+
|
|
+ args = []
|
|
+ for ch in elem.findall("param"):
|
|
+ # <param> tags have the same format as a <proto> tag.
|
|
+ args.append(FunctionArg(*_parseProtoElem(ch)))
|
|
+ func = FunctionDesc(name, rt, tuple(args), slot=None)
|
|
+
|
|
+ return func
|
|
+
|
|
+def _parseProtoElem(elem):
|
|
+ # If I just remove the tags and string the text together, I'll get valid C code.
|
|
+ text = _flattenText(elem)
|
|
+ text = text.strip()
|
|
+ m = re.match(r"^(.+)\b(\w+)(?:\s*\[\s*(\d*)\s*\])?$", text, re.S)
|
|
+ if m:
|
|
+ typename = _fixupTypeName(m.group(1))
|
|
+ name = m.group(2)
|
|
+ if m.group(3):
|
|
+ # HACK: glPathGlyphIndexRangeNV defines an argument like this:
|
|
+ # GLuint baseAndCount[2]
|
|
+ # Convert it to a pointer and hope for the best.
|
|
+ typename += "*"
|
|
+ return (typename, name)
|
|
+ else:
|
|
+ raise ValueError("Can't parse element %r -> %r" % (elem, text))
|
|
+
|
|
+def _flattenText(elem):
|
|
+ """
|
|
+ Returns the text in an element and all child elements, with the tags
|
|
+ removed.
|
|
+ """
|
|
+ text = ""
|
|
+ if elem.text is not None:
|
|
+ text = elem.text
|
|
+ for ch in elem:
|
|
+ text += _flattenText(ch)
|
|
+ if ch.tail is not None:
|
|
+ text += ch.tail
|
|
+ return text
|
|
+
|
|
+def _fixupTypeName(typeName):
|
|
+ """
|
|
+ Converts a typename into a more consistent format.
|
|
+ """
|
|
+
|
|
+ rv = typeName.strip()
|
|
+
|
|
+ # Replace "GLvoid" with just plain "void".
|
|
+ rv = re.sub(r"\bGLvoid\b", "void", rv)
|
|
+
|
|
+ # Remove the vendor suffixes from types that have a suffix-less version.
|
|
+ rv = re.sub(r"\b(GLhalf|GLintptr|GLsizeiptr|GLint64|GLuint64)(?:ARB|EXT|NV|ATI)\b", r"\1", rv)
|
|
+
|
|
+ rv = re.sub(r"\bGLvoid\b", "void", rv)
|
|
+
|
|
+ # Clear out any leading and trailing whitespace.
|
|
+ rv = rv.strip()
|
|
+
|
|
+ # Remove any whitespace before a '*'
|
|
+ rv = re.sub(r"\s+\*", r"*", rv)
|
|
+
|
|
+ # Change "foo*" to "foo *"
|
|
+ rv = re.sub(r"([^\*])\*", r"\1 *", rv)
|
|
+
|
|
+ # Condense all whitespace into a single space.
|
|
+ rv = re.sub(r"\s+", " ", rv)
|
|
+
|
|
+ return rv
|
|
+
|
|
diff --git a/src/egl/generate/gen_egl_dispatch.py b/src/egl/generate/gen_egl_dispatch.py
|
|
new file mode 100755
|
|
index 0000000000..eeb3f3f9a5
|
|
--- /dev/null
|
|
+++ b/src/egl/generate/gen_egl_dispatch.py
|
|
@@ -0,0 +1,250 @@
|
|
+#!/usr/bin/env python
|
|
+
|
|
+# (C) Copyright 2016, NVIDIA CORPORATION.
|
|
+# All Rights Reserved.
|
|
+#
|
|
+# Permission is hereby granted, free of charge, to any person obtaining a
|
|
+# copy of this software and associated documentation files (the "Software"),
|
|
+# to deal in the Software without restriction, including without limitation
|
|
+# on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
+# license, and/or sell copies of the Software, and to permit persons to whom
|
|
+# the Software is furnished to do so, subject to the following conditions:
|
|
+#
|
|
+# The above copyright notice and this permission notice (including the next
|
|
+# paragraph) shall be included in all copies or substantial portions of the
|
|
+# Software.
|
|
+#
|
|
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
+# IN THE SOFTWARE.
|
|
+#
|
|
+# Authors:
|
|
+# Kyle Brenneman <kbrenneman@nvidia.com>
|
|
+
|
|
+"""
|
|
+Generates dispatch functions for EGL.
|
|
+
|
|
+The list of functions and arguments is read from the Khronos's XML files, with
|
|
+additional information defined in the module eglFunctionList.
|
|
+"""
|
|
+
|
|
+import argparse
|
|
+import collections
|
|
+import imp
|
|
+import sys
|
|
+import textwrap
|
|
+
|
|
+import genCommon
|
|
+
|
|
+def main():
|
|
+ parser = argparse.ArgumentParser()
|
|
+ parser.add_argument("target", choices=("header", "source"),
|
|
+ help="Whether to build the source or header file.")
|
|
+ parser.add_argument("func_list_file", help="The function list .py file.")
|
|
+ parser.add_argument("xml_files", nargs="+", help="The XML files with the EGL function lists.")
|
|
+
|
|
+ args = parser.parse_args()
|
|
+
|
|
+ # The function list is a Python module, but it's specified on the command
|
|
+ # line.
|
|
+ eglFunctionList = imp.load_source("eglFunctionList", args.func_list_file)
|
|
+
|
|
+ xmlFunctions = genCommon.getFunctions(args.xml_files)
|
|
+ xmlByName = dict((f.name, f) for f in xmlFunctions)
|
|
+ functions = []
|
|
+ for (name, eglFunc) in eglFunctionList.EGL_FUNCTIONS:
|
|
+ func = xmlByName[name]
|
|
+ eglFunc = fixupEglFunc(func, eglFunc)
|
|
+ functions.append((func, eglFunc))
|
|
+
|
|
+ # Sort the function list by name.
|
|
+ functions = sorted(functions, key=lambda f: f[0].name)
|
|
+
|
|
+ if args.target == "header":
|
|
+ text = generateHeader(functions)
|
|
+ elif args.target == "source":
|
|
+ text = generateSource(functions)
|
|
+ sys.stdout.write(text)
|
|
+
|
|
+def fixupEglFunc(func, eglFunc):
|
|
+ result = dict(eglFunc)
|
|
+ if result.get("prefix") is None:
|
|
+ result["prefix"] = ""
|
|
+
|
|
+ if result.get("extension") is not None:
|
|
+ text = "defined(" + result["extension"] + ")"
|
|
+ result["extension"] = text
|
|
+
|
|
+ if result["method"] in ("none", "custom"):
|
|
+ return result
|
|
+
|
|
+ if result["method"] not in ("display", "device", "current"):
|
|
+ raise ValueError("Invalid dispatch method %r for function %r" % (result["method"], func.name))
|
|
+
|
|
+ if func.hasReturn():
|
|
+ if result.get("retval") is None:
|
|
+ result["retval"] = getDefaultReturnValue(func.rt)
|
|
+
|
|
+ return result
|
|
+
|
|
+def generateHeader(functions):
|
|
+ text = textwrap.dedent(r"""
|
|
+ #ifndef G_EGLDISPATCH_STUBS_H
|
|
+ #define G_EGLDISPATCH_STUBS_H
|
|
+
|
|
+ #ifdef __cplusplus
|
|
+ extern "C" {
|
|
+ #endif
|
|
+
|
|
+ #include <EGL/egl.h>
|
|
+ #include <EGL/eglext.h>
|
|
+ #include "glvnd/libeglabi.h"
|
|
+
|
|
+ """.lstrip("\n"))
|
|
+
|
|
+ text += "enum {\n"
|
|
+ for (func, eglFunc) in functions:
|
|
+ text += generateGuardBegin(func, eglFunc)
|
|
+ text += " __EGL_DISPATCH_" + func.name + ",\n"
|
|
+ text += generateGuardEnd(func, eglFunc)
|
|
+ text += " __EGL_DISPATCH_COUNT\n"
|
|
+ text += "};\n"
|
|
+
|
|
+ for (func, eglFunc) in functions:
|
|
+ if eglFunc["inheader"]:
|
|
+ text += generateGuardBegin(func, eglFunc)
|
|
+ text += "{f.rt} EGLAPIENTRY {ex[prefix]}{f.name}({f.decArgs});\n".format(f=func, ex=eglFunc)
|
|
+ text += generateGuardEnd(func, eglFunc)
|
|
+
|
|
+ text += textwrap.dedent(r"""
|
|
+ #ifdef __cplusplus
|
|
+ }
|
|
+ #endif
|
|
+ #endif // G_EGLDISPATCH_STUBS_H
|
|
+ """)
|
|
+ return text
|
|
+
|
|
+def generateSource(functions):
|
|
+ # First, sort the function list by name.
|
|
+ text = ""
|
|
+ text += '#include "egldispatchstubs.h"\n'
|
|
+ text += '#include "g_egldispatchstubs.h"\n'
|
|
+ text += "\n"
|
|
+
|
|
+ for (func, eglFunc) in functions:
|
|
+ if eglFunc["method"] not in ("custom", "none"):
|
|
+ text += generateGuardBegin(func, eglFunc)
|
|
+ text += generateDispatchFunc(func, eglFunc)
|
|
+ text += generateGuardEnd(func, eglFunc)
|
|
+
|
|
+ text += "\n"
|
|
+ text += "const char * const __EGL_DISPATCH_FUNC_NAMES[__EGL_DISPATCH_COUNT + 1] = {\n"
|
|
+ for (func, eglFunc) in functions:
|
|
+ text += generateGuardBegin(func, eglFunc)
|
|
+ text += ' "' + func.name + '",\n'
|
|
+ text += generateGuardEnd(func, eglFunc)
|
|
+ text += " NULL\n"
|
|
+ text += "};\n"
|
|
+
|
|
+ text += "const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[__EGL_DISPATCH_COUNT + 1] = {\n"
|
|
+ for (func, eglFunc) in functions:
|
|
+ text += generateGuardBegin(func, eglFunc)
|
|
+ if eglFunc["method"] != "none":
|
|
+ text += " (__eglMustCastToProperFunctionPointerType) " + eglFunc.get("prefix", "") + func.name + ",\n"
|
|
+ else:
|
|
+ text += " NULL, // " + func.name + "\n"
|
|
+ text += generateGuardEnd(func, eglFunc)
|
|
+ text += " NULL\n"
|
|
+ text += "};\n"
|
|
+
|
|
+ return text
|
|
+
|
|
+def generateGuardBegin(func, eglFunc):
|
|
+ ext = eglFunc.get("extension")
|
|
+ if ext is not None:
|
|
+ return "#if " + ext + "\n"
|
|
+ else:
|
|
+ return ""
|
|
+
|
|
+def generateGuardEnd(func, eglFunc):
|
|
+ if eglFunc.get("extension") is not None:
|
|
+ return "#endif\n"
|
|
+ else:
|
|
+ return ""
|
|
+
|
|
+def generateDispatchFunc(func, eglFunc):
|
|
+ text = ""
|
|
+
|
|
+ if eglFunc.get("static"):
|
|
+ text += "static "
|
|
+ elif eglFunc.get("public"):
|
|
+ text += "PUBLIC "
|
|
+ text += textwrap.dedent(
|
|
+ r"""
|
|
+ {f.rt} EGLAPIENTRY {ef[prefix]}{f.name}({f.decArgs})
|
|
+ {{
|
|
+ typedef {f.rt} EGLAPIENTRY (* _pfn_{f.name})({f.decArgs});
|
|
+ """).lstrip("\n").format(f=func, ef=eglFunc)
|
|
+
|
|
+ if func.hasReturn():
|
|
+ text += " {f.rt} _ret = {ef[retval]};\n".format(f=func, ef=eglFunc)
|
|
+
|
|
+ text += " _pfn_{f.name} _ptr_{f.name} = (_pfn_{f.name}) ".format(f=func)
|
|
+ if eglFunc["method"] == "current":
|
|
+ text += "__eglDispatchFetchByCurrent(__EGL_DISPATCH_{f.name});\n".format(f=func)
|
|
+
|
|
+ elif eglFunc["method"] in ("display", "device"):
|
|
+ if eglFunc["method"] == "display":
|
|
+ lookupFunc = "__eglDispatchFetchByDisplay"
|
|
+ lookupType = "EGLDisplay"
|
|
+ else:
|
|
+ assert eglFunc["method"] == "device"
|
|
+ lookupFunc = "__eglDispatchFetchByDevice"
|
|
+ lookupType = "EGLDeviceEXT"
|
|
+
|
|
+ lookupArg = None
|
|
+ for arg in func.args:
|
|
+ if arg.type == lookupType:
|
|
+ lookupArg = arg.name
|
|
+ break
|
|
+ if lookupArg is None:
|
|
+ raise ValueError("Can't find %s argument for function %s" % (lookupType, func.name,))
|
|
+
|
|
+ text += "{lookupFunc}({lookupArg}, __EGL_DISPATCH_{f.name});\n".format(
|
|
+ f=func, lookupFunc=lookupFunc, lookupArg=lookupArg)
|
|
+ else:
|
|
+ raise ValueError("Unknown dispatch method: %r" % (eglFunc["method"],))
|
|
+
|
|
+ text += " if(_ptr_{f.name} != NULL) {{\n".format(f=func)
|
|
+ text += " "
|
|
+ if func.hasReturn():
|
|
+ text += "_ret = "
|
|
+ text += "_ptr_{f.name}({f.callArgs});\n".format(f=func)
|
|
+ text += " }\n"
|
|
+
|
|
+ if func.hasReturn():
|
|
+ text += " return _ret;\n"
|
|
+ text += "}\n"
|
|
+ return text
|
|
+
|
|
+def getDefaultReturnValue(typename):
|
|
+ if typename.endswith("*"):
|
|
+ return "NULL"
|
|
+ elif typename == "EGLDisplay":
|
|
+ return "EGL_NO_DISPLAY"
|
|
+ elif typename == "EGLContext":
|
|
+ return "EGL_NO_CONTEXT"
|
|
+ elif typename == "EGLSurface":
|
|
+ return "EGL_NO_SURFACE"
|
|
+ elif typename == "EGLBoolean":
|
|
+ return "EGL_FALSE";
|
|
+
|
|
+ return "0"
|
|
+
|
|
+if __name__ == "__main__":
|
|
+ main()
|
|
+
|
|
diff --git a/src/egl/main/50_mesa.json b/src/egl/main/50_mesa.json
|
|
new file mode 100644
|
|
index 0000000000..8aaaa100ff
|
|
--- /dev/null
|
|
+++ b/src/egl/main/50_mesa.json
|
|
@@ -0,0 +1,6 @@
|
|
+{
|
|
+ "file_format_version" : "1.0.0",
|
|
+ "ICD" : {
|
|
+ "library_path" : "libEGL_mesa.so.0"
|
|
+ }
|
|
+}
|
|
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
|
|
index cab05c2301..5f21f3457d 100644
|
|
--- a/src/egl/main/eglapi.c
|
|
+++ b/src/egl/main/eglapi.c
|
|
@@ -651,7 +651,11 @@ eglQueryString(EGLDisplay dpy, EGLint name)
|
|
_EGLDriver *drv;
|
|
|
|
if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) {
|
|
- RETURN_EGL_SUCCESS(NULL, _eglGlobal.ClientExtensionString);
|
|
+ const char *ret = _eglGetClientExtensionString();
|
|
+ if (ret != NULL)
|
|
+ RETURN_EGL_SUCCESS(NULL, ret);
|
|
+ else
|
|
+ RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, NULL);
|
|
}
|
|
|
|
disp = _eglLockDisplay(dpy);
|
|
diff --git a/src/egl/main/egldispatchstubs.c b/src/egl/main/egldispatchstubs.c
|
|
new file mode 100644
|
|
index 0000000000..e02abd7a9e
|
|
--- /dev/null
|
|
+++ b/src/egl/main/egldispatchstubs.c
|
|
@@ -0,0 +1,110 @@
|
|
+#include "egldispatchstubs.h"
|
|
+#include "g_egldispatchstubs.h"
|
|
+
|
|
+#include <string.h>
|
|
+
|
|
+#include "eglcurrent.h"
|
|
+
|
|
+static const __EGLapiExports *exports;
|
|
+
|
|
+const int __EGL_DISPATCH_FUNC_COUNT = __EGL_DISPATCH_COUNT;
|
|
+int __EGL_DISPATCH_FUNC_INDICES[__EGL_DISPATCH_COUNT + 1];
|
|
+
|
|
+static int FindProcIndex(const char *name)
|
|
+{
|
|
+ unsigned first = 0;
|
|
+ unsigned last = __EGL_DISPATCH_COUNT - 1;
|
|
+
|
|
+ while (first <= last) {
|
|
+ unsigned middle = (first + last) / 2;
|
|
+ int comp = strcmp(name,
|
|
+ __EGL_DISPATCH_FUNC_NAMES[middle]);
|
|
+
|
|
+ if (comp > 0)
|
|
+ first = middle + 1;
|
|
+ else if (comp < 0)
|
|
+ last = middle - 1;
|
|
+ else
|
|
+ return middle;
|
|
+ }
|
|
+
|
|
+ /* Just point to the dummy entry at the end of the respective table */
|
|
+ return __EGL_DISPATCH_COUNT;
|
|
+}
|
|
+
|
|
+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable)
|
|
+{
|
|
+ int i;
|
|
+ exports = exportsTable;
|
|
+ for (i=0; i<__EGL_DISPATCH_FUNC_COUNT; i++) {
|
|
+ __EGL_DISPATCH_FUNC_INDICES[i] = -1;
|
|
+ }
|
|
+}
|
|
+
|
|
+void __eglSetDispatchIndex(const char *name, int dispatchIndex)
|
|
+{
|
|
+ int index = FindProcIndex(name);
|
|
+ __EGL_DISPATCH_FUNC_INDICES[index] = dispatchIndex;
|
|
+}
|
|
+
|
|
+void *__eglDispatchFindDispatchFunction(const char *name)
|
|
+{
|
|
+ int index = FindProcIndex(name);
|
|
+ return (void *) __EGL_DISPATCH_FUNCS[index];
|
|
+}
|
|
+
|
|
+static __eglMustCastToProperFunctionPointerType FetchVendorFunc(__EGLvendorInfo *vendor,
|
|
+ int index, EGLint errorCode)
|
|
+{
|
|
+ __eglMustCastToProperFunctionPointerType func = NULL;
|
|
+
|
|
+ if (vendor != NULL) {
|
|
+ func = exports->fetchDispatchEntry(vendor, __EGL_DISPATCH_FUNC_INDICES[index]);
|
|
+ }
|
|
+ if (func == NULL) {
|
|
+ if (errorCode != EGL_SUCCESS) {
|
|
+ _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
|
|
+ }
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ if (!exports->setLastVendor(vendor)) {
|
|
+ // Don't bother trying to set an error code in libglvnd. If
|
|
+ // setLastVendor failed, then setEGLError would also fail.
|
|
+ _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ return func;
|
|
+}
|
|
+
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index)
|
|
+{
|
|
+ __EGLvendorInfo *vendor;
|
|
+
|
|
+ // Note: This is only used for the eglWait* functions. For those, if
|
|
+ // there's no current context, then they're supposed to do nothing but
|
|
+ // return success.
|
|
+ exports->threadInit();
|
|
+ vendor = exports->getCurrentVendor();
|
|
+ return FetchVendorFunc(vendor, index, EGL_SUCCESS);
|
|
+}
|
|
+
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index)
|
|
+{
|
|
+ __EGLvendorInfo *vendor;
|
|
+
|
|
+ exports->threadInit();
|
|
+ vendor = exports->getVendorFromDisplay(dpy);
|
|
+ return FetchVendorFunc(vendor, index, EGL_BAD_DISPLAY);
|
|
+}
|
|
+
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dev, int index)
|
|
+{
|
|
+ __EGLvendorInfo *vendor;
|
|
+
|
|
+ exports->threadInit();
|
|
+ vendor = exports->getVendorFromDevice(dev);
|
|
+ return FetchVendorFunc(vendor, index, EGL_BAD_DEVICE_EXT);
|
|
+}
|
|
+
|
|
diff --git a/src/egl/main/egldispatchstubs.h b/src/egl/main/egldispatchstubs.h
|
|
new file mode 100644
|
|
index 0000000000..7861ea5e61
|
|
--- /dev/null
|
|
+++ b/src/egl/main/egldispatchstubs.h
|
|
@@ -0,0 +1,26 @@
|
|
+#ifndef EGLDISPATCHSTUBS_H
|
|
+#define EGLDISPATCHSTUBS_H
|
|
+
|
|
+#include "glvnd/libeglabi.h"
|
|
+
|
|
+// These variables are all generated along with the dispatch stubs.
|
|
+extern const int __EGL_DISPATCH_FUNC_COUNT;
|
|
+extern const char * const __EGL_DISPATCH_FUNC_NAMES[];
|
|
+extern int __EGL_DISPATCH_FUNC_INDICES[];
|
|
+extern const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[];
|
|
+
|
|
+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable);
|
|
+void __eglSetDispatchIndex(const char *name, int index);
|
|
+
|
|
+/**
|
|
+ * Returns the dispatch function for the given name, or \c NULL if the function
|
|
+ * isn't supported.
|
|
+ */
|
|
+void *__eglDispatchFindDispatchFunction(const char *name);
|
|
+
|
|
+// Helper functions used by the generated stubs.
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index);
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dpy, int index);
|
|
+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index);
|
|
+
|
|
+#endif // EGLDISPATCHSTUBS_H
|
|
diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c
|
|
index cb41063e32..baf96bb1ec 100644
|
|
--- a/src/egl/main/eglglobals.c
|
|
+++ b/src/egl/main/eglglobals.c
|
|
@@ -29,6 +29,8 @@
|
|
|
|
|
|
#include <stdlib.h>
|
|
+#include <stdio.h>
|
|
+#include <string.h>
|
|
#include <assert.h>
|
|
#include "c11/threads.h"
|
|
|
|
@@ -50,9 +52,13 @@ struct _egl_global _eglGlobal =
|
|
_eglFiniDisplay
|
|
},
|
|
|
|
- /* ClientExtensionString */
|
|
+ /* ClientOnlyExtensionString */
|
|
"EGL_EXT_client_extensions"
|
|
" EGL_EXT_platform_base"
|
|
+ " EGL_KHR_client_get_all_proc_addresses"
|
|
+ " EGL_KHR_debug",
|
|
+
|
|
+ /* PlatformExtensionString */
|
|
#ifdef HAVE_WAYLAND_PLATFORM
|
|
" EGL_EXT_platform_wayland"
|
|
#endif
|
|
@@ -65,8 +71,9 @@ struct _egl_global _eglGlobal =
|
|
#ifdef HAVE_SURFACELESS_PLATFORM
|
|
" EGL_MESA_platform_surfaceless"
|
|
#endif
|
|
- " EGL_KHR_client_get_all_proc_addresses"
|
|
- " EGL_KHR_debug",
|
|
+ "",
|
|
+
|
|
+ NULL, /* ClientExtensionsString */
|
|
|
|
NULL, /* debugCallback */
|
|
_EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */
|
|
@@ -101,3 +108,37 @@ _eglAddAtExitCall(void (*func)(void))
|
|
mtx_unlock(_eglGlobal.Mutex);
|
|
}
|
|
}
|
|
+
|
|
+const char *
|
|
+_eglGetClientExtensionString(void)
|
|
+{
|
|
+ const char *ret;
|
|
+
|
|
+ mtx_lock(_eglGlobal.Mutex);
|
|
+
|
|
+ if (_eglGlobal.ClientExtensionString == NULL) {
|
|
+ size_t clientLen = strlen(_eglGlobal.ClientOnlyExtensionString);
|
|
+ size_t platformLen = strlen(_eglGlobal.PlatformExtensionString);
|
|
+
|
|
+ _eglGlobal.ClientExtensionString = (char *) malloc(clientLen + platformLen + 1);
|
|
+ if (_eglGlobal.ClientExtensionString != NULL) {
|
|
+ char *ptr = _eglGlobal.ClientExtensionString;
|
|
+
|
|
+ memcpy(ptr, _eglGlobal.ClientOnlyExtensionString, clientLen);
|
|
+ ptr += clientLen;
|
|
+
|
|
+ if (platformLen > 0) {
|
|
+ // Note that if PlatformExtensionString is not empty, then it will
|
|
+ // already have a leading space.
|
|
+ assert(_eglGlobal.PlatformExtensionString[0] == ' ');
|
|
+ memcpy(ptr, _eglGlobal.PlatformExtensionString, platformLen);
|
|
+ ptr += platformLen;
|
|
+ }
|
|
+ *ptr = '\0';
|
|
+ }
|
|
+ }
|
|
+ ret = _eglGlobal.ClientExtensionString;
|
|
+
|
|
+ mtx_unlock(_eglGlobal.Mutex);
|
|
+ return ret;
|
|
+}
|
|
diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h
|
|
index ec4f3d04a3..c6ef59d482 100644
|
|
--- a/src/egl/main/eglglobals.h
|
|
+++ b/src/egl/main/eglglobals.h
|
|
@@ -57,7 +57,15 @@ struct _egl_global
|
|
EGLint NumAtExitCalls;
|
|
void (*AtExitCalls[10])(void);
|
|
|
|
- const char *ClientExtensionString;
|
|
+ /*
|
|
+ * Under libglvnd, the client extension string has to be split into two
|
|
+ * strings, one for platform extensions, and one for everything else. So,
|
|
+ * define separate strings for them. _eglGetClientExtensionString will
|
|
+ * concatenate them together for a non-libglvnd build.
|
|
+ */
|
|
+ const char *ClientOnlyExtensionString;
|
|
+ const char *PlatformExtensionString;
|
|
+ char *ClientExtensionString;
|
|
|
|
EGLDEBUGPROCKHR debugCallback;
|
|
unsigned int debugTypesEnabled;
|
|
@@ -76,4 +84,7 @@ static inline unsigned int DebugBitFromType(EGLenum type)
|
|
return (1 << (type - EGL_DEBUG_MSG_CRITICAL_KHR));
|
|
}
|
|
|
|
+extern const char *
|
|
+_eglGetClientExtensionString(void);
|
|
+
|
|
#endif /* EGLGLOBALS_INCLUDED */
|
|
diff --git a/src/egl/main/eglglvnd.c b/src/egl/main/eglglvnd.c
|
|
new file mode 100644
|
|
index 0000000000..6b984ed6c2
|
|
--- /dev/null
|
|
+++ b/src/egl/main/eglglvnd.c
|
|
@@ -0,0 +1,82 @@
|
|
+#include <string.h>
|
|
+#include <assert.h>
|
|
+
|
|
+#include <glvnd/libeglabi.h>
|
|
+
|
|
+#include "eglcurrent.h"
|
|
+#include "egldispatchstubs.h"
|
|
+#include "eglglobals.h"
|
|
+
|
|
+static const __EGLapiExports *__eglGLVNDApiExports = NULL;
|
|
+
|
|
+static const char * EGLAPIENTRY
|
|
+__eglGLVNDQueryString(EGLDisplay dpy, EGLenum name)
|
|
+{
|
|
+ // For client extensions, return the list of non-platform extensions. The
|
|
+ // platform extensions are returned by __eglGLVNDGetVendorString.
|
|
+ if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS)
|
|
+ return _eglGlobal.ClientOnlyExtensionString;
|
|
+
|
|
+ // For everything else, forward to the normal eglQueryString function.
|
|
+ return eglQueryString(dpy, name);
|
|
+}
|
|
+
|
|
+static const char *
|
|
+__eglGLVNDGetVendorString(int name)
|
|
+{
|
|
+ if (name == __EGL_VENDOR_STRING_PLATFORM_EXTENSIONS) {
|
|
+ const char *str = _eglGlobal.PlatformExtensionString;
|
|
+ // The platform extension string may have a leading space. If it does,
|
|
+ // then skip over it.
|
|
+ while (*str == ' ') {
|
|
+ str++;
|
|
+ }
|
|
+ return str;
|
|
+ }
|
|
+
|
|
+ return NULL;
|
|
+}
|
|
+
|
|
+static EGLDisplay
|
|
+__eglGLVNDGetPlatformDisplay(EGLenum platform, void *native_display,
|
|
+ const EGLAttrib *attrib_list)
|
|
+{
|
|
+ if (platform == EGL_NONE) {
|
|
+ assert(native_display == (void *) EGL_DEFAULT_DISPLAY);
|
|
+ assert(attrib_list == NULL);
|
|
+ return eglGetDisplay((EGLNativeDisplayType) native_display);
|
|
+ } else {
|
|
+ return eglGetPlatformDisplay(platform, native_display, attrib_list);
|
|
+ }
|
|
+}
|
|
+
|
|
+static void *
|
|
+__eglGLVNDGetProcAddress(const char *procName)
|
|
+{
|
|
+ if (strcmp(procName, "eglQueryString") == 0)
|
|
+ return (void *) __eglGLVNDQueryString;
|
|
+
|
|
+ return (void *) eglGetProcAddress(procName);
|
|
+}
|
|
+
|
|
+EGLAPI EGLBoolean
|
|
+__egl_Main(uint32_t version, const __EGLapiExports *exports,
|
|
+ __EGLvendorInfo *vendor, __EGLapiImports *imports)
|
|
+{
|
|
+ if (EGL_VENDOR_ABI_GET_MAJOR_VERSION(version) !=
|
|
+ EGL_VENDOR_ABI_MAJOR_VERSION)
|
|
+ return EGL_FALSE;
|
|
+
|
|
+ __eglGLVNDApiExports = exports;
|
|
+ __eglInitDispatchStubs(exports);
|
|
+
|
|
+ imports->getPlatformDisplay = __eglGLVNDGetPlatformDisplay;
|
|
+ imports->getSupportsAPI = _eglIsApiValid;
|
|
+ imports->getVendorString = __eglGLVNDGetVendorString;
|
|
+ imports->getProcAddress = __eglGLVNDGetProcAddress;
|
|
+ imports->getDispatchAddress = __eglDispatchFindDispatchFunction;
|
|
+ imports->setDispatchIndex = __eglSetDispatchIndex;
|
|
+
|
|
+ return EGL_TRUE;
|
|
+}
|
|
+
|
|
--
|
|
2.11.0
|
|
|