egl: Expose EGL_KHR_get_all_proc_addresses and its client extension
Mesa already implements the behavior of EGL_KHR_get_all_proc_addresses and EGL_KHR_client_get_all_proc_addresses. This patch just exposes the extension strings. See: https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
@@ -357,6 +357,23 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
|
|||||||
|
|
||||||
/* limit to APIs supported by core */
|
/* limit to APIs supported by core */
|
||||||
disp->ClientAPIs &= _EGL_API_ALL_BITS;
|
disp->ClientAPIs &= _EGL_API_ALL_BITS;
|
||||||
|
|
||||||
|
/* EGL_KHR_get_all_proc_addresses is a corner-case extension. The spec
|
||||||
|
* classifies it as an EGL display extension, though conceptually it's an
|
||||||
|
* EGL client extension.
|
||||||
|
*
|
||||||
|
* From the EGL_KHR_get_all_proc_addresses spec:
|
||||||
|
*
|
||||||
|
* The EGL implementation must expose the name
|
||||||
|
* EGL_KHR_client_get_all_proc_addresses if and only if it exposes
|
||||||
|
* EGL_KHR_get_all_proc_addresses and supports
|
||||||
|
* EGL_EXT_client_extensions.
|
||||||
|
*
|
||||||
|
* Mesa unconditionally exposes both client extensions mentioned above,
|
||||||
|
* so the spec requires that each EGLDisplay unconditionally expose
|
||||||
|
* EGL_KHR_get_all_proc_addresses also.
|
||||||
|
*/
|
||||||
|
disp->Extensions.KHR_get_all_proc_addresses = EGL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update applications version of major and minor if not NULL */
|
/* Update applications version of major and minor if not NULL */
|
||||||
|
@@ -97,6 +97,7 @@ struct _egl_extensions
|
|||||||
EGLBoolean KHR_image_base;
|
EGLBoolean KHR_image_base;
|
||||||
EGLBoolean KHR_image_pixmap;
|
EGLBoolean KHR_image_pixmap;
|
||||||
EGLBoolean KHR_vg_parent_image;
|
EGLBoolean KHR_vg_parent_image;
|
||||||
|
EGLBoolean KHR_get_all_proc_addresses;
|
||||||
EGLBoolean KHR_gl_texture_2D_image;
|
EGLBoolean KHR_gl_texture_2D_image;
|
||||||
EGLBoolean KHR_gl_texture_cubemap_image;
|
EGLBoolean KHR_gl_texture_cubemap_image;
|
||||||
EGLBoolean KHR_gl_texture_3D_image;
|
EGLBoolean KHR_gl_texture_3D_image;
|
||||||
|
@@ -55,7 +55,8 @@ struct _egl_global _eglGlobal =
|
|||||||
true, /* EGL_EXT_platform_base */
|
true, /* EGL_EXT_platform_base */
|
||||||
true, /* EGL_EXT_platform_x11 */
|
true, /* EGL_EXT_platform_x11 */
|
||||||
true, /* EGL_EXT_platform_wayland */
|
true, /* EGL_EXT_platform_wayland */
|
||||||
true /* EGL_MESA_platform_gbm */
|
true, /* EGL_MESA_platform_gbm */
|
||||||
|
true, /* EGL_KHR_client_get_all_proc_addresses */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* ClientExtensionsString */
|
/* ClientExtensionsString */
|
||||||
@@ -64,6 +65,7 @@ struct _egl_global _eglGlobal =
|
|||||||
" EGL_EXT_platform_x11"
|
" EGL_EXT_platform_x11"
|
||||||
" EGL_EXT_platform_wayland"
|
" EGL_EXT_platform_wayland"
|
||||||
" EGL_MESA_platform_gbm"
|
" EGL_MESA_platform_gbm"
|
||||||
|
" EGL_KHR_client_get_all_proc_addresses"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@ struct _egl_global
|
|||||||
bool EXT_platform_x11;
|
bool EXT_platform_x11;
|
||||||
bool EXT_platform_wayland;
|
bool EXT_platform_wayland;
|
||||||
bool MESA_platform_gbm;
|
bool MESA_platform_gbm;
|
||||||
|
bool KHR_get_all_proc_addresses;
|
||||||
} ClientExtensions;
|
} ClientExtensions;
|
||||||
|
|
||||||
const char *ClientExtensionString;
|
const char *ClientExtensionString;
|
||||||
|
@@ -101,6 +101,7 @@ _eglUpdateExtensionsString(_EGLDisplay *dpy)
|
|||||||
_eglAppendExtension(&exts, "EGL_KHR_image");
|
_eglAppendExtension(&exts, "EGL_KHR_image");
|
||||||
|
|
||||||
_EGL_CHECK_EXTENSION(KHR_vg_parent_image);
|
_EGL_CHECK_EXTENSION(KHR_vg_parent_image);
|
||||||
|
_EGL_CHECK_EXTENSION(KHR_get_all_proc_addresses);
|
||||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_2D_image);
|
_EGL_CHECK_EXTENSION(KHR_gl_texture_2D_image);
|
||||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_cubemap_image);
|
_EGL_CHECK_EXTENSION(KHR_gl_texture_cubemap_image);
|
||||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_3D_image);
|
_EGL_CHECK_EXTENSION(KHR_gl_texture_3D_image);
|
||||||
|
Reference in New Issue
Block a user