|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
From 1a9c35461dc93979dbc45a201a6670eb049bb285 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
From: Adam Jackson <ajax@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
Date: Mon, 10 Oct 2016 14:12:40 -0400
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
Subject: [PATCH 2/2] Use eglGetPlatformDisplay{,EXT} if available
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
Calling eglGetDisplay forces libEGL to guess what kind of pointer you
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
passed it. Different EGL libraries will do different things here, and in
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
particular glvnd will do something different than Mesa. Since we do have
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
an API that allows us to explicitly type the display, use it.
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
The explicit call to eglGetProcAddress is working around a bug in
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
libepoxy 1.3, which does not understand the EGL concept of client
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
extensions. Since it does not, the normal epoxy resolver for
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
eglGetPlatformDisplayEXT would not find any provider for that entry
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
point, and crash when you attempted to call it.
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
---
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
gdk/wayland/gdkglcontext-wayland.c | 37 ++++++++++++++++++++++++++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
gtk/inspector/general.c | 32 +++++++++++++++++++++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
2 files changed, 67 insertions(+), 2 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
diff --git a/gdk/wayland/gdkglcontext-wayland.c b/gdk/wayland/gdkglcontext-wayland.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
index ae1354e..6573688 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
--- a/gdk/wayland/gdkglcontext-wayland.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+++ b/gdk/wayland/gdkglcontext-wayland.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
@@ -274,6 +274,40 @@ gdk_wayland_gl_context_init (GdkWaylandGLContext *self)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+static EGLDisplay
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+gdk_wayland_get_display (GdkWaylandDisplay *display_wayland)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ EGLDisplay dpy = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (epoxy_has_egl_extension (NULL, "EGL_KHR_platform_base"))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ PFNEGLGETPLATFORMDISPLAYPROC getPlatformDisplay =
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ (void *) eglGetProcAddress ("eglGetPlatformDisplay");
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (getPlatformDisplay)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = getPlatformDisplay (EGL_PLATFORM_WAYLAND_EXT,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ display_wayland->wl_display,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ NULL);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (dpy)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return dpy;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (epoxy_has_egl_extension (NULL, "EGL_EXT_platform_base"))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplay =
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (getPlatformDisplay)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = getPlatformDisplay (EGL_PLATFORM_WAYLAND_EXT,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ display_wayland->wl_display,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ NULL);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (dpy)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return dpy;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return eglGetDisplay ((EGLNativeDisplayType) display_wayland->wl_display);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
gboolean
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
gdk_wayland_display_init_gl (GdkDisplay *display)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
@@ -284,7 +318,8 @@ gdk_wayland_display_init_gl (GdkDisplay *display)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
if (display_wayland->have_egl)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
- dpy = eglGetDisplay ((EGLNativeDisplayType)display_wayland->wl_display);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = gdk_wayland_get_display (display_wayland);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
if (dpy == NULL)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
return FALSE;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
index 77d0a76..f32f7fe 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
--- a/gtk/inspector/general.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+++ b/gtk/inspector/general.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
@@ -214,6 +214,36 @@ append_egl_extension_row (GtkInspectorGeneral *gen,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_egl_extension (dpy, ext), 0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+static EGLDisplay
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+wayland_get_display (struct wl_display *wl_dpy)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ EGLDisplay dpy = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (epoxy_has_egl_extension (NULL, "EGL_KHR_platform_base"))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ PFNEGLGETPLATFORMDISPLAYPROC getPlatformDisplay =
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ (void *) eglGetProcAddress ("eglGetPlatformDisplay");
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (getPlatformDisplay)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = getPlatformDisplay (EGL_PLATFORM_WAYLAND_EXT, wl_dpy, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (dpy)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return dpy;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (epoxy_has_egl_extension (NULL, "EGL_EXT_platform_base"))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplay =
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (getPlatformDisplay)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = getPlatformDisplay (EGL_PLATFORM_WAYLAND_EXT, wl_dpy, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ if (dpy)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return dpy;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ return eglGetDisplay ((EGLNativeDisplayType) wl_dpy);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
@@ -254,7 +284,7 @@ init_gl (GtkInspectorGeneral *gen)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
EGLint major, minor;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
gchar *version;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
- dpy = eglGetDisplay ((EGLNativeDisplayType)gdk_wayland_display_get_wl_display (display));
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
+ dpy = wayland_get_display (gdk_wayland_display_get_wl_display (display));
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
if (!eglInitialize (dpy, &major, &minor))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
return;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
--
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
2.9.3
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
a93c5b0 |
|