[gtk/wip/otte/for-master: 93/93] wayland: Better error on eglGetDisplay() failure
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/for-master: 93/93] wayland: Better error on eglGetDisplay() failure
- Date: Tue, 24 Aug 2021 19:55:23 +0000 (UTC)
commit 95931a7e6c5c3e8cf9d410863c4d7b58e020af1b
Author: Benjamin Otte <otte redhat com>
Date: Tue Aug 24 21:27:49 2021 +0200
wayland: Better error on eglGetDisplay() failure
Goals:
1. Provide as much information as possible in the error message, so
users can try to fix their system themselves.
2. Try to formulate the error message in a way that explains that this
is not something GTK can fix, but a lower layer problem.
Related: #4193
gdk/wayland/gdkglcontext-wayland.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
---
diff --git a/gdk/wayland/gdkglcontext-wayland.c b/gdk/wayland/gdkglcontext-wayland.c
index 7e6dd07225..2cf7285fe5 100644
--- a/gdk/wayland/gdkglcontext-wayland.c
+++ b/gdk/wayland/gdkglcontext-wayland.c
@@ -32,6 +32,7 @@
#include "gdkprivate-wayland.h"
#include "gdkinternals.h"
+#include "gdk-private.h"
#include "gdksurfaceprivate.h"
#include "gdkprofilerprivate.h"
@@ -474,14 +475,28 @@ gdk_wayland_display_init_gl (GdkDisplay *display,
G_GNUC_UNUSED gint64 start_time = GDK_PROFILER_CURRENT_TIME;
G_GNUC_UNUSED gint64 start_time2;
+ if (!epoxy_has_egl ())
+ {
+ gboolean sandboxed = gdk_running_in_sandbox ();
+
+ g_set_error_literal (error, GDK_GL_ERROR,
+ GDK_GL_ERROR_NOT_AVAILABLE,
+ sandboxed ? _("libEGL not available in this sandbox")
+ : _("libEGL not available"));
+ return NULL;
+ }
+
start_time2 = GDK_PROFILER_CURRENT_TIME;
dpy = get_egl_display (display_wayland);
gdk_profiler_end_mark (start_time, "get_egl_display", NULL);
if (dpy == NULL)
{
+ gboolean sandboxed = gdk_running_in_sandbox ();
+
g_set_error_literal (error, GDK_GL_ERROR,
GDK_GL_ERROR_NOT_AVAILABLE,
- _("Failed to create EGL display"));
+ sandboxed ? _("Sandbox does not provide an OpenGL implementation")
+ : _("No OpenGL implementation available"));
return NULL;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]