Use EGL_KHR_get_all_proc_addresses if possible.

If EGL_KHR_get_all_proc_addresses extension is supported, then don't try to
load a separate client library. Instead, just use eglGetProcAddress to load
everything.

This can also avoid problems with trying to use OpenGL functions from
libGL.so.1 (which is the GLX library) when an EGL context is current.
This commit is contained in:
Kyle Brenneman 2016-09-28 14:10:51 -06:00
parent 66ff4aae89
commit f2f6e9437e
2 changed files with 4 additions and 0 deletions

View File

@ -399,6 +399,8 @@ GLFWbool _glfwInitEGL(void)
extensionSupportedEGL("EGL_KHR_create_context_no_error");
_glfw.egl.KHR_gl_colorspace =
extensionSupportedEGL("EGL_KHR_gl_colorspace");
_glfw.egl.KHR_get_all_proc_addresses =
extensionSupportedEGL("EGL_KHR_get_all_proc_addresses");
return GLFW_TRUE;
}
@ -583,6 +585,7 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window,
window->context.egl.config = config;
// Load the appropriate client library
if (!_glfw.egl.KHR_get_all_proc_addresses)
{
int i;
const char** sonames;

View File

@ -176,6 +176,7 @@ typedef struct _GLFWlibraryEGL
GLFWbool KHR_create_context;
GLFWbool KHR_create_context_no_error;
GLFWbool KHR_gl_colorspace;
GLFWbool KHR_get_all_proc_addresses;
void* handle;