Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Apr 2021 18:31:58 GMT
From:      Dmitry Marakasov <amdmi3@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b46d53b6cedd - main - devel/sdl20: backport Wayland fix for games/supertuxkart
Message-ID:  <202104271831.13RIVwdx073375@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b46d53b6cedd133f4caa018e76a161e686ff5858

commit b46d53b6cedd133f4caa018e76a161e686ff5858
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2021-04-27 18:28:46 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2021-04-27 18:29:55 +0000

    devel/sdl20: backport Wayland fix for games/supertuxkart
    
    PR:             255418
    Reported by:    stephan@lichtenauer.co.za
    Submitted by:   jbeich
---
 devel/sdl20/Makefile            |  2 +-
 devel/sdl20/files/patch-wayland | 70 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 1 deletion(-)

diff --git a/devel/sdl20/Makefile b/devel/sdl20/Makefile
index fb983f9924f7..2468565e5ef9 100644
--- a/devel/sdl20/Makefile
+++ b/devel/sdl20/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	sdl2
 PORTVERSION=	2.0.12
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	devel
 MASTER_SITES=	https://www.libsdl.org/release/
 DISTNAME=	SDL2-${PORTVERSION}
diff --git a/devel/sdl20/files/patch-wayland b/devel/sdl20/files/patch-wayland
new file mode 100644
index 000000000000..9191eff7fe43
--- /dev/null
+++ b/devel/sdl20/files/patch-wayland
@@ -0,0 +1,70 @@
+From 8babda2c206949ad9c4f42e64bf8ae3e35b2e709 Mon Sep 17 00:00:00 2001
+From: "Ryan C. Gordon" <icculus@icculus.org>
+Date: Thu, 16 Jul 2020 13:18:19 -0400
+Subject: [PATCH] egl: SDL_EGL_LoadLibaryOnly() shouldn't set
+ _this->gl_config.driver_loaded = 1
+
+This is handled in in the higher-level SDL_GL_LoadLibrary().
+
+All uses of SDL_EGL_LoadLibrary (which calls the Only version) are just
+target-specific wrappers for their own GL_LoadLibrary hook, with two
+exceptions which now handle driver_loaded correctly (although it's
+questionable if these init-if-no-one-did-it-correctly-already code blocks
+should exist at all, fwiw).
+
+Fixes Bugzilla #5190.
+---
+ src/video/SDL_egl.c                     | 2 --
+ src/video/cocoa/SDL_cocoaopengles.m     | 2 ++
+ src/video/windows/SDL_windowsopengles.c | 3 ++-
+ 3 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c
+index 58939053c..3358f47b8 100644
+--- src/video/SDL_egl.c
++++ src/video/SDL_egl.c
+@@ -438,8 +438,6 @@ SDL_EGL_LoadLibraryOnly(_THIS, const char *egl_path)
+     LOAD_FUNC_EGLEXT(eglQueryDevicesEXT);
+     LOAD_FUNC_EGLEXT(eglGetPlatformDisplayEXT);
+ 
+-    _this->gl_config.driver_loaded = 1;
+-
+     if (path) {
+         SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
+     } else {
+diff --git a/src/video/cocoa/SDL_cocoaopengles.m b/src/video/cocoa/SDL_cocoaopengles.m
+index a45a9f57c..0f551de10 100644
+--- src/video/cocoa/SDL_cocoaopengles.m
++++ src/video/cocoa/SDL_cocoaopengles.m
+@@ -109,10 +109,12 @@
+ 
+ 
+     if (_this->egl_data == NULL) {
++        SDL_assert(!_this->gl_config.driver_loaded);
+         if (SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY, 0) < 0) {
+             SDL_EGL_UnloadLibrary(_this);
+             return -1;
+         }
++        _this->gl_config.driver_loaded = 1;
+     }
+   
+     /* Create the GLES window surface */
+diff --git a/src/video/windows/SDL_windowsopengles.c b/src/video/windows/SDL_windowsopengles.c
+index e4bfe49cc..5ee46d83c 100644
+--- src/video/windows/SDL_windowsopengles.c
++++ src/video/windows/SDL_windowsopengles.c
+@@ -107,12 +107,13 @@ WIN_GLES_SetupWindow(_THIS, SDL_Window * window)
+     SDL_Window *current_win = SDL_GL_GetCurrentWindow();
+     SDL_GLContext current_ctx = SDL_GL_GetCurrentContext();
+ 
+-
+     if (_this->egl_data == NULL) {
++        SDL_assert(!_this->gl_config.driver_loaded);
+         if (SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY, 0) < 0) {
+             SDL_EGL_UnloadLibrary(_this);
+             return -1;
+         }
++        _this->gl_config.driver_loaded = 1;
+     }
+   
+     /* Create the GLES window surface */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104271831.13RIVwdx073375>