diff --git a/MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp b/MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp index 69ccd765..ecca9326 100644 --- a/MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp +++ b/MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp @@ -382,7 +382,14 @@ namespace MobileGL::MG_Impl::EGLImpl { case EGL_CLIENT_APIS: return "OpenGL OpenGL_ES"; case EGL_EXTENSIONS: - return ""; + if (display == EGL_NO_DISPLAY) { + return "EGL_EXT_client_extensions " + "EGL_EXT_platform_base " + "EGL_KHR_platform_base " + "EGL_MESA_platform_surfaceless"; + } + return "EGL_KHR_create_context " + "EGL_MESA_platform_surfaceless"; default: state->SetError(EGL_BAD_PARAMETER); return nullptr; diff --git a/MobileGL/MG_Impl/EGLImpl/Exporting/Definitions.cpp b/MobileGL/MG_Impl/EGLImpl/Exporting/Definitions.cpp index f155ba58..4821af46 100644 --- a/MobileGL/MG_Impl/EGLImpl/Exporting/Definitions.cpp +++ b/MobileGL/MG_Impl/EGLImpl/Exporting/Definitions.cpp @@ -235,6 +235,14 @@ MOBILEGL_EGL_API EGLDisplay eglGetPlatformDisplay(EGLenum platform, void* native return MobileGL::MG_Impl::EGLImpl::GetPlatformDisplay(platform, native_display, attrib_list); } +MOBILEGL_EGL_API EGLDisplay eglGetPlatformDisplayEXT(EGLenum platform, void* native_display, + const EGLint* attrib_list) { + MGLOG_D("eglGetPlatformDisplayEXT(platform=%u, native_display=%p, attrib_list=%p)", platform, native_display, + attrib_list); + return MobileGL::MG_Impl::EGLImpl::GetPlatformDisplay( + platform, native_display, reinterpret_cast(attrib_list)); +} + MOBILEGL_EGL_API EGLSurface eglCreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, void* native_window, const EGLAttrib* attrib_list) { MGLOG_D("eglCreatePlatformWindowSurface(dpy=%p, config=%p, native_window=%p, attrib_list=%p)", dpy, config, diff --git a/MobileGL/MG_Impl/GetProcAddress.cpp b/MobileGL/MG_Impl/GetProcAddress.cpp index ca9167bd..811e8986 100644 --- a/MobileGL/MG_Impl/GetProcAddress.cpp +++ b/MobileGL/MG_Impl/GetProcAddress.cpp @@ -14,6 +14,8 @@ #include #endif +extern "C" EGLDisplay eglGetPlatformDisplayEXT(EGLenum platform, void* native_display, const EGLint* attrib_list); + #define GETPROC(name, var) \ if (strcmp(#name, var) == 0) { \ return (void*)name; \ @@ -63,6 +65,7 @@ namespace MobileGL::MG_Impl { GETPROC(eglCreateImage, name); GETPROC(eglDestroyImage, name); GETPROC(eglGetPlatformDisplay, name); + GETPROC(eglGetPlatformDisplayEXT, name); GETPROC(eglCreatePlatformWindowSurface, name); GETPROC(eglCreatePlatformPixmapSurface, name); GETPROC(eglWaitSync, name);