aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-01-09 11:37:21 +0100
committerSimon Ser <contact@emersion.fr>2021-01-12 11:31:04 +0100
commit76ed2255ef8da963b1d4a9a121e24a094dfead20 (patch)
tree28161b6792e7b0f9f987256e8f358fdafd688188
parent07111828c5a2a4cd12db348c4d1879c2f769a71c (diff)
render/egl: remove support for EGL_NATIVE_VISUAL_ID
Nobody uses it anymore.
-rw-r--r--examples/idle-inhibit.c2
-rw-r--r--examples/input-inhibitor.c2
-rw-r--r--examples/keyboard-shortcuts-inhibit.c2
-rw-r--r--examples/layer-shell.c2
-rw-r--r--examples/pointer-constraints.c2
-rw-r--r--examples/relative-pointer-unstable-v1.c2
-rw-r--r--examples/text-input.c2
-rw-r--r--examples/toplevel-decoration.c2
-rw-r--r--include/wlr/render/egl.h2
-rw-r--r--render/egl.c47
-rw-r--r--render/wlr_renderer.c2
11 files changed, 19 insertions, 48 deletions
diff --git a/examples/idle-inhibit.c b/examples/idle-inhibit.c
index 829da851..44a7f5b5 100644
--- a/examples/idle-inhibit.c
+++ b/examples/idle-inhibit.c
@@ -193,7 +193,7 @@ int main(int argc, char **argv) {
}
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
struct xdg_surface *xdg_surface =
diff --git a/examples/input-inhibitor.c b/examples/input-inhibitor.c
index 06aa4142..80be3916 100644
--- a/examples/input-inhibitor.c
+++ b/examples/input-inhibitor.c
@@ -158,7 +158,7 @@ int main(int argc, char **argv) {
assert(input_inhibitor);
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
assert(surface);
diff --git a/examples/keyboard-shortcuts-inhibit.c b/examples/keyboard-shortcuts-inhibit.c
index 8551973c..1b2d7aab 100644
--- a/examples/keyboard-shortcuts-inhibit.c
+++ b/examples/keyboard-shortcuts-inhibit.c
@@ -225,7 +225,7 @@ int main(int argc, char **argv) {
}
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
struct xdg_surface *xdg_surface =
diff --git a/examples/layer-shell.c b/examples/layer-shell.c
index 6975bf41..6d1cb78c 100644
--- a/examples/layer-shell.c
+++ b/examples/layer-shell.c
@@ -611,7 +611,7 @@ int main(int argc, char **argv) {
assert(cursor_surface);
EGLint attribs[] = { EGL_ALPHA_SIZE, 8, EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
wl_surface = wl_compositor_create_surface(compositor);
assert(wl_surface);
diff --git a/examples/pointer-constraints.c b/examples/pointer-constraints.c
index 19b28e98..e020c5e7 100644
--- a/examples/pointer-constraints.c
+++ b/examples/pointer-constraints.c
@@ -212,7 +212,7 @@ int main(int argc, char **argv) {
regions[REGION_TYPE_JOINT] = joint_region;
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
struct xdg_surface *xdg_surface =
diff --git a/examples/relative-pointer-unstable-v1.c b/examples/relative-pointer-unstable-v1.c
index b6e56f84..de7919bd 100644
--- a/examples/relative-pointer-unstable-v1.c
+++ b/examples/relative-pointer-unstable-v1.c
@@ -444,7 +444,7 @@ int main(int argc, char **argv) {
e->width = e->height = 512;
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(e->egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(e->egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
/* Create the surface and xdg_toplevels, and set listeners */
diff --git a/examples/text-input.c b/examples/text-input.c
index cc89cbf4..8559810f 100644
--- a/examples/text-input.c
+++ b/examples/text-input.c
@@ -364,7 +364,7 @@ int main(int argc, char **argv) {
zwp_text_input_v3_add_listener(text_input, &text_input_listener, NULL);
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
struct xdg_surface *xdg_surface =
diff --git a/examples/toplevel-decoration.c b/examples/toplevel-decoration.c
index 4f309feb..f10ac742 100644
--- a/examples/toplevel-decoration.c
+++ b/examples/toplevel-decoration.c
@@ -219,7 +219,7 @@ int main(int argc, char **argv) {
}
EGLint attribs[] = { EGL_NONE };
- wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs, 0);
+ wlr_egl_init(&egl, EGL_PLATFORM_WAYLAND_EXT, display, attribs);
struct wl_surface *surface = wl_compositor_create_surface(compositor);
struct xdg_surface *xdg_surface =
diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h
index cbcf37ab..3fa47cc9 100644
--- a/include/wlr/render/egl.h
+++ b/include/wlr/render/egl.h
@@ -89,7 +89,7 @@ struct wlr_egl {
* If config_attribs is NULL, the EGL config is not created.
*/
bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, void *remote_display,
- const EGLint *config_attribs, EGLint visual_id);
+ const EGLint *config_attribs);
/**
* Frees all related EGL resources, makes the context not-current and
diff --git a/render/egl.c b/render/egl.c
index 8914801b..22feade3 100644
--- a/render/egl.c
+++ b/render/egl.c
@@ -10,41 +10,6 @@
#include <wlr/util/region.h>
#include <xf86drm.h>
-static bool egl_get_config(EGLDisplay disp, const EGLint *attribs,
- EGLConfig *out, EGLint visual_id) {
- EGLint count = 0, matched = 0, ret;
-
- ret = eglGetConfigs(disp, NULL, 0, &count);
- if (ret == EGL_FALSE || count == 0) {
- wlr_log(WLR_ERROR, "eglGetConfigs returned no configs");
- return false;
- }
-
- EGLConfig configs[count];
-
- ret = eglChooseConfig(disp, attribs, configs, count, &matched);
- if (ret == EGL_FALSE) {
- wlr_log(WLR_ERROR, "eglChooseConfig failed");
- return false;
- }
-
- for (int i = 0; i < matched; ++i) {
- EGLint visual;
- if (!eglGetConfigAttrib(disp, configs[i],
- EGL_NATIVE_VISUAL_ID, &visual)) {
- continue;
- }
-
- if (!visual_id || visual == visual_id) {
- *out = configs[i];
- return true;
- }
- }
-
- wlr_log(WLR_ERROR, "no valid egl config found");
- return false;
-}
-
static enum wlr_log_importance egl_log_importance_to_wlr(EGLint type) {
switch (type) {
case EGL_DEBUG_MSG_CRITICAL_KHR: return WLR_ERROR;
@@ -185,7 +150,7 @@ out:
}
bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, void *remote_display,
- const EGLint *config_attribs, EGLint visual_id) {
+ const EGLint *config_attribs) {
const char *client_exts_str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
if (client_exts_str == NULL) {
if (eglGetError() == EGL_BAD_DISPLAY) {
@@ -321,8 +286,14 @@ bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, void *remote_display,
}
if (config_attribs != NULL) {
- if (!egl_get_config(egl->display, config_attribs, &egl->config, visual_id)) {
- wlr_log(WLR_ERROR, "Failed to get EGL config");
+ EGLint matched = 0;
+ if (!eglChooseConfig(egl->display, config_attribs, &egl->config, 1,
+ &matched)) {
+ wlr_log(WLR_ERROR, "eglChooseConfig failed");
+ goto error;
+ }
+ if (matched == 0) {
+ wlr_log(WLR_ERROR, "Failed to match an EGL config");
goto error;
}
} else {
diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c
index 69cc0363..b721036f 100644
--- a/render/wlr_renderer.c
+++ b/render/wlr_renderer.c
@@ -255,7 +255,7 @@ struct wlr_renderer *wlr_renderer_autocreate(EGLenum platform,
return NULL;
}
- if (!wlr_egl_init(egl, platform, remote_display, NULL, 0)) {
+ if (!wlr_egl_init(egl, platform, remote_display, NULL)) {
wlr_log(WLR_ERROR, "Could not initialize EGL");
return NULL;
}