From 6775a524004ba15ab281c1391fb24cbf621fe859 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Sun, 1 Sep 2019 17:22:24 +0300 Subject: [PATCH] egl: fix platform selection Add missing "device" platform v2: Add the missing platform (Eric) Signed-off-by: Lionel Landwerlin Reported-by: Jean Hertel Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111529 Fixes: d6edccee8d ("egl: add EGL_platform_device support") Reviewed-by: Eric Engestrom --- src/egl/main/egldisplay.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index c1e8c341ac6..05720015c24 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -38,6 +38,7 @@ #include #include #include "c11/threads.h" +#include "util/macros.h" #include "util/u_atomic.h" #include "eglcontext.h" @@ -66,13 +67,14 @@ static const struct { _EGLPlatformType platform; const char *name; -} egl_platforms[_EGL_NUM_PLATFORMS] = { +} egl_platforms[] = { { _EGL_PLATFORM_X11, "x11" }, { _EGL_PLATFORM_WAYLAND, "wayland" }, { _EGL_PLATFORM_DRM, "drm" }, { _EGL_PLATFORM_ANDROID, "android" }, { _EGL_PLATFORM_HAIKU, "haiku" }, { _EGL_PLATFORM_SURFACELESS, "surfaceless" }, + { _EGL_PLATFORM_DEVICE, "device" }, }; @@ -86,6 +88,9 @@ _eglGetNativePlatformFromEnv(void) const char *plat_name; EGLint i; + static_assert(ARRAY_SIZE(egl_platforms) == _EGL_NUM_PLATFORMS, + "Missing platform"); + plat_name = getenv("EGL_PLATFORM"); /* try deprecated env variable */ if (!plat_name || !plat_name[0]) @@ -93,7 +98,7 @@ _eglGetNativePlatformFromEnv(void) if (!plat_name || !plat_name[0]) return _EGL_INVALID_PLATFORM; - for (i = 0; i < _EGL_NUM_PLATFORMS; i++) { + for (i = 0; i < ARRAY_SIZE(egl_platforms); i++) { if (strcmp(egl_platforms[i].name, plat_name) == 0) { plat = egl_platforms[i].platform; break; -- 2.30.2