From 7d7ec9c95146c44d4b4643ed552796bf07937057 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Tue, 26 Apr 2022 16:41:28 -0400
Subject: [PATCH] x11: Remove XVidMode and Xinerama support.
Fixes #1782.
---
CMakeLists.txt | 2 +-
cmake/sdlchecks.cmake | 24 +-
configure | 175 ------------
configure.ac | 62 -----
docs/README-linux.md | 17 +-
docs/README-raspberrypi.md | 2 +-
include/SDL_config.h.cmake | 4 -
include/SDL_config.h.in | 4 -
include/SDL_config_macosx.h | 4 -
include/SDL_hints.h | 22 +-
src/video/x11/SDL_x11dyn.c | 10 +-
src/video/x11/SDL_x11dyn.h | 6 -
src/video/x11/SDL_x11modes.c | 483 +---------------------------------
src/video/x11/SDL_x11modes.h | 21 +-
src/video/x11/SDL_x11sym.h | 20 --
src/video/x11/SDL_x11video.h | 6 -
src/video/x11/SDL_x11window.c | 174 +-----------
src/video/x11/SDL_x11window.h | 1 -
test/testautomation_hints.c | 4 -
19 files changed, 38 insertions(+), 1003 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ede1a4c1c58..76978aaa4fc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -423,7 +423,7 @@ set_option(SDL_RPATH "Use an rpath when linking SDL" ${UNIX_SYS})
set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${UNIX_SYS})
set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS})
dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF)
-set(SDL_X11_OPTIONS Xcursor Xdbe Xinerama XInput Xfixes Xrandr Xscrnsaver XShape Xvm)
+set(SDL_X11_OPTIONS Xcursor Xdbe XInput Xfixes Xrandr Xscrnsaver XShape)
foreach(_SUB ${SDL_X11_OPTIONS})
string(TOUPPER "SDL_X11_${_SUB}" _OPT)
dep_option(${_OPT} "Enable ${_SUB} support" ON "SDL_X11" OFF)
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index 8dcb39265df..c7b4b8887f4 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -393,7 +393,7 @@ endmacro()
# - HAVE_SDL_LOADSO opt
macro(CheckX11)
if(SDL_X11)
- foreach(_LIB X11 Xext Xcursor Xinerama Xi Xfixes Xrandr Xrender Xss Xxf86vm)
+ foreach(_LIB X11 Xext Xcursor Xi Xfixes Xrandr Xrender Xss)
FindLibraryAndSONAME("${_LIB}")
endforeach()
@@ -415,7 +415,6 @@ macro(CheckX11)
endif()
check_include_file(X11/Xcursor/Xcursor.h HAVE_XCURSOR_H)
- check_include_file(X11/extensions/Xinerama.h HAVE_XINERAMA_H)
check_include_file(X11/extensions/XInput2.h HAVE_XINPUT2_H)
check_include_file(X11/extensions/Xrandr.h HAVE_XRANDR_H)
check_include_file(X11/extensions/Xfixes.h HAVE_XFIXES_H_)
@@ -423,7 +422,6 @@ macro(CheckX11)
check_include_file(X11/extensions/scrnsaver.h HAVE_XSS_H)
check_include_file(X11/extensions/shape.h HAVE_XSHAPE_H)
check_include_files("X11/Xlib.h;X11/extensions/Xdbe.h" HAVE_XDBE_H)
- check_include_files("X11/Xlib.h;X11/extensions/xf86vmode.h" HAVE_XF86VM_H)
check_include_files("X11/Xlib.h;X11/Xproto.h;X11/extensions/Xext.h" HAVE_XEXT_H)
if(X11_LIB)
@@ -504,16 +502,6 @@ macro(CheckX11)
set(SDL_VIDEO_DRIVER_X11_XDBE 1)
endif()
- if(SDL_X11_XINERAMA AND HAVE_XINERAMA_H)
- set(HAVE_X11_XINERAMA TRUE)
- if(HAVE_X11_SHARED AND XINERAMA_LIB)
- set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "\"${XINERAMA_LIB_SONAME}\"")
- else()
- list(APPEND EXTRA_LIBS ${XINERAMA_LIB})
- endif()
- set(SDL_VIDEO_DRIVER_X11_XINERAMA 1)
- endif()
-
if(SDL_X11_XINPUT AND HAVE_XINPUT2_H)
set(HAVE_X11_XINPUT TRUE)
if(HAVE_X11_SHARED AND XI_LIB)
@@ -584,16 +572,6 @@ macro(CheckX11)
set(HAVE_X11_XSHAPE TRUE)
endif()
- if(SDL_X11_XVM AND HAVE_XF86VM_H)
- if(HAVE_X11_SHARED AND XXF86VM_LIB)
- set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "\"${XXF86VM_LIB_SONAME}\"")
- else()
- list(APPEND EXTRA_LIBS ${XXF86VM_LIB})
- endif()
- set(SDL_VIDEO_DRIVER_X11_XVIDMODE 1)
- set(HAVE_X11_XVM TRUE)
- endif()
-
set(CMAKE_REQUIRED_LIBRARIES)
endif()
endif()
diff --git a/configure b/configure
index 947d643a94e..c85144b7aef 100755
--- a/configure
+++ b/configure
@@ -878,13 +878,11 @@ with_x
enable_x11_shared
enable_video_x11_xcursor
enable_video_x11_xdbe
-enable_video_x11_xinerama
enable_video_x11_xinput
enable_video_x11_xfixes
enable_video_x11_xrandr
enable_video_x11_scrnsaver
enable_video_x11_xshape
-enable_video_x11_vm
enable_video_vivante
enable_video_cocoa
enable_video_metal
@@ -1668,8 +1666,6 @@ Optional Features:
--enable-video-x11-xcursor
enable X11 Xcursor support [default=yes]
--enable-video-x11-xdbe enable X11 Xdbe support [default=yes]
- --enable-video-x11-xinerama
- enable X11 Xinerama support [default=yes]
--enable-video-x11-xinput
enable X11 XInput extension for manymouse, tablets,
etc [default=yes]
@@ -1682,7 +1678,6 @@ Optional Features:
enable X11 screensaver extension [default=yes]
--enable-video-x11-xshape
enable X11 XShape support [default=yes]
- --enable-video-x11-vm use X11 VM extension for fullscreen [default=yes]
--enable-video-vivante use Vivante EGL video driver [default=yes]
--enable-video-cocoa use Cocoa video driver [default=yes]
--enable-video-metal include Metal support [default=yes]
@@ -21741,37 +21736,31 @@ fi
x11_lib='/opt/X11/lib/libX11.6.dylib'
x11ext_lib='/opt/X11/lib/libXext.6.dylib'
xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
- xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
xinput_lib='/opt/X11/lib/libXi.6.dylib'
xfixes_lib='/opt/X11/lib/libXfixes.3.dylib'
xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
xrender_lib='/opt/X11/lib/libXrender.1.dylib'
xss_lib='/opt/X11/lib/libXss.1.dylib'
- xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
;;
*-*-openbsd*)
x11_lib='libX11.so'
x11ext_lib='libXext.so'
xcursor_lib='libXcursor.so'
- xinerama_lib='libXinerama.so'
xinput_lib='libXi.so'
xfixes_lib='libXfixes.so'
xrandr_lib='libXrandr.so'
xrender_lib='libXrender.so'
xss_lib='libXss.so'
- xvidmode_lib='libXxf86vm.so'
;;
*)
x11_lib=`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
x11ext_lib=`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xcursor_lib=`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
- xinerama_lib=`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xinput_lib=`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xfixes_lib=`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xrandr_lib=`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xrender_lib=`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
xss_lib=`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
- xvidmode_lib=`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
;;
esac
@@ -22023,88 +22012,6 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XDBE 1" >>confdefs.h
SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
fi
fi
- # Check whether --enable-video-x11-xinerama was given.
-if test "${enable_video_x11_xinerama+set}" = set; then :
- enableval=$enable_video_x11_xinerama;
-else
- enable_video_x11_xinerama=yes
-fi
-
- if test x$enable_video_x11_xinerama = xyes; then
- definitely_enable_video_x11_xinerama=no
- ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xinerama.h" "ac_cv_header_X11_extensions_Xinerama_h" "#include <X11/Xlib.h>
-
-"
-if test "x$ac_cv_header_X11_extensions_Xinerama_h" = xyes; then :
- have_xinerama_h_hdr=yes
-else
- have_xinerama_h_hdr=no
-fi
-
-
- if test x$have_xinerama_h_hdr = xyes; then
- if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
- echo "-- dynamic libXinerama -> $xinerama_lib"
-
-cat >>confdefs.h <<_ACEOF
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "$xinerama_lib"
-_ACEOF
-
- definitely_enable_video_x11_xinerama=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryExtension in -lXinerama" >&5
-$as_echo_n "checking for XineramaQueryExtension in -lXinerama... " >&6; }
-if ${ac_cv_lib_Xinerama_XineramaQueryExtension+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXinerama $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XineramaQueryExtension ();
-int
-main ()
-{
-return XineramaQueryExtension ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_Xinerama_XineramaQueryExtension=yes
-else
- ac_cv_lib_Xinerama_XineramaQueryExtension=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xinerama_XineramaQueryExtension" >&5
-$as_echo "$ac_cv_lib_Xinerama_XineramaQueryExtension" >&6; }
-if test "x$ac_cv_lib_Xinerama_XineramaQueryExtension" = xyes; then :
- have_xinerama_lib=yes
-fi
-
- if test x$have_xinerama_lib = xyes ; then
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
- definitely_enable_video_x11_xinerama=yes
- fi
- fi
- fi
- fi
- if test x$definitely_enable_video_x11_xinerama = xyes; then
-
-$as_echo "#define SDL_VIDEO_DRIVER_X11_XINERAMA 1" >>confdefs.h
-
- SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
- fi
# Check whether --enable-video-x11-xinput was given.
if test "${enable_video_x11_xinput+set}" = set; then :
enableval=$enable_video_x11_xinput;
@@ -22517,88 +22424,6 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XSHAPE 1" >>confdefs.h
SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
fi
fi
- # Check whether --enable-video-x11-vm was given.
-if test "${enable_video_x11_vm+set}" = set; then :
- enableval=$enable_video_x11_vm;
-else
- enable_video_x11_vm=yes
-fi
-
- if test x$enable_video_x11_vm = xyes; then
- definitely_enable_video_x11_vm=no
- ac_fn_c_check_header_compile "$LINENO" "X11/extensions/xf86vmode.h" "ac_cv_header_X11_extensions_xf86vmode_h" "#include <X11/Xlib.h>
-
-"
-if test "x$ac_cv_header_X11_extensions_xf86vmode_h" = xyes; then :
- have_vm_h_hdr=yes
-else
- have_vm_h_hdr=no
-fi
-
-
- if test x$have_vm_h_hdr = xyes; then
- if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
- echo "-- dynamic libXxf86vm -> $xvidmode_lib"
-
-cat >>confdefs.h <<_ACEOF
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "$xvidmode_lib"
-_ACEOF
-
- definitely_enable_video_x11_vm=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86VidModeQueryVersion in -lXxf86vm" >&5
-$as_echo_n "checking for XF86VidModeQueryVersion in -lXxf86vm... " >&6; }
-if ${ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXxf86vm $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XF86VidModeQueryVersion ();
-int
-main ()
-{
-return XF86VidModeQueryVersion ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion=yes
-else
- ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" >&5
-$as_echo "$ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" >&6; }
-if test "x$ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" = xyes; then :
- have_vm_lib=yes
-fi
-
- if test x$have_vm_lib = xyes ; then
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
- definitely_enable_video_x11_vm=yes
- fi
- fi
- fi
- fi
- if test x$definitely_enable_video_x11_vm = xyes; then
-
-$as_echo "#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1" >>confdefs.h
-
- SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
- fi
fi
fi
if test x$have_x != xyes; then
diff --git a/configure.ac b/configure.ac
index 8bc41946a34..128e9916f22 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1768,37 +1768,31 @@ CheckX11()
x11_lib='/opt/X11/lib/libX11.6.dylib'
x11ext_lib='/opt/X11/lib/libXext.6.dylib'
xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
- xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
xinput_lib='/opt/X11/lib/libXi.6.dylib'
xfixes_lib='/opt/X11/lib/libXfixes.3.dylib'
xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
xrender_lib='/opt/X11/lib/libXrender.1.dylib'
xss_lib='/opt/X11/lib/libXss.1.dylib'
- xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
;;
*-*-openbsd*)
x11_lib='libX11.so'
x11ext_lib='libXext.so'
xcursor_lib='libXcursor.so'
- xinerama_lib='libXinerama.so'
xinput_lib='libXi.so'
xfixes_lib='libXfixes.so'
xrandr_lib='libXrandr.so'
xrender_lib='libXrender.so'
xss_lib='libXss.so'
- xvidmode_lib='libXxf86vm.so'
;;
*)
x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
- xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xfixes_lib=[`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
- xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
;;
esac
@@ -1910,34 +1904,6 @@ XFreeEventData(display, cookie);
SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
fi
fi
- AC_ARG_ENABLE(video-x11-xinerama,
-[AS_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [default=yes]])],
- , enable_video_x11_xinerama=yes)
- if test x$enable_video_x11_xinerama = xyes; then
- definitely_enable_video_x11_xinerama=no
- AC_CHECK_HEADER(X11/extensions/Xinerama.h,
- have_xinerama_h_hdr=yes,
- have_xinerama_h_hdr=no,
- [#include <X11/Xlib.h>
- ])
- if test x$have_xinerama_h_hdr = xyes; then
- if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
- echo "-- dynamic libXinerama -> $xinerama_lib"
- AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
- definitely_enable_video_x11_xinerama=yes
- else
- AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
- if test x$have_xinerama_lib = xyes ; then
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
- definitely_enable_video_x11_xinerama=yes
- fi
- fi
- fi
- fi
- if test x$definitely_enable_video_x11_xinerama = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
- SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
- fi
AC_ARG_ENABLE(video-x11-xinput,
[AS_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [default=yes]])],
, enable_video_x11_xinput=yes)
@@ -2087,34 +2053,6 @@ dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that
SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
fi
fi
- AC_ARG_ENABLE(video-x11-vm,
-[AS_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [default=yes]])],
- , enable_video_x11_vm=yes)
- if test x$enable_video_x11_vm = xyes; then
- definitely_enable_video_x11_vm=no
- AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
- have_vm_h_hdr=yes,
- have_vm_h_hdr=no,
- [#include <X11/Xlib.h>
- ])
- if test x$have_vm_h_hdr = xyes; then
- if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
- echo "-- dynamic libXxf86vm -> $xvidmode_lib"
- AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
- definitely_enable_video_x11_vm=yes
- else
- AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
- if test x$have_vm_lib = xyes ; then
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
- definitely_enable_video_x11_vm=yes
- fi
- fi
- fi
- fi
- if test x$definitely_enable_video_x11_vm = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
- SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
- fi
fi
fi
if test x$have_x != xyes; then
diff --git a/docs/README-linux.md b/docs/README-linux.md
index 9c1b0c4c69e..2bce34d5a5f 100644
--- a/docs/README-linux.md
+++ b/docs/README-linux.md
@@ -3,8 +3,8 @@ Linux
By default SDL will only link against glibc, the rest of the features will be
enabled dynamically at runtime depending on the available features on the target
-system. So, for example if you built SDL with Xinerama support and the target
-system does not have the Xinerama libraries installed, it will be disabled
+system. So, for example if you built SDL with XRandR support and the target
+system does not have the XRandR libraries installed, it will be disabled
at runtime, and you won't get a missing library error, at least with the
default configuration parameters.
@@ -17,7 +17,7 @@ Ubuntu 20.04, all available features enabled:
sudo apt-get install build-essential git make cmake autoconf automake \
libtool pkg-config libasound2-dev libpulse-dev libaudio-dev libjack-dev \
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev \
- libxinerama-dev libxxf86vm-dev libxss-dev libgl1-mesa-dev libdbus-1-dev \
+ libxss-dev libgl1-mesa-dev libdbus-1-dev \
libudev-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev \
fcitx-libs-dev libsamplerate0-dev libsndio-dev libwayland-dev \
libxkbcommon-dev libdrm-dev libgbm-dev
@@ -27,12 +27,11 @@ Fedora 35, all available features enabled:
sudo yum install gcc git-core make cmake autoconf automake libtool \
alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel \
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel \
- libXi-devel libXinerama-devel libXxf86vm-devel libXScrnSaver-devel \
- dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel \
- libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel \
- wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel \
- libusb-devel pipewire-jack-audio-connection-kit-devel libdecor-devel \
- libsamplerate-devel
+ libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel \
+ systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel
+ mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel
+ libdrm-devel mesa-libgbm-devel libusb-devel libdecor-devel \
+ libsamplerate-devel pipewire-jack-audio-connection-kit-devel \
NOTES:
- This includes all the audio targets except arts and esd, because Ubuntu
diff --git a/docs/README-raspberrypi.md b/docs/README-raspberrypi.md
index 556b9f8d13b..d2eddb862ab 100644
--- a/docs/README-raspberrypi.md
+++ b/docs/README-raspberrypi.md
@@ -63,7 +63,7 @@ Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
sudo chroot $SYSROOT
- apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev
+ apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxss-dev
exit
sudo umount $SYSROOT/dev
sudo umount $SYSROOT/proc
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index 77433354237..8445ac2e2df 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -421,22 +421,18 @@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC @SDL_VIDEO_DRIVER_X11_DYNAMIC@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT @SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR @SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR@
-#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA @SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 @SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES @SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR @SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR@
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS @SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS@
-#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE @SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE@
#cmakedefine SDL_VIDEO_DRIVER_X11_XCURSOR @SDL_VIDEO_DRIVER_X11_XCURSOR@
#cmakedefine SDL_VIDEO_DRIVER_X11_XDBE @SDL_VIDEO_DRIVER_X11_XDBE@
-#cmakedefine SDL_VIDEO_DRIVER_X11_XINERAMA @SDL_VIDEO_DRIVER_X11_XINERAMA@
#cmakedefine SDL_VIDEO_DRIVER_X11_XINPUT2 @SDL_VIDEO_DRIVER_X11_XINPUT2@
#cmakedefine SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH @SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH@
#cmakedefine SDL_VIDEO_DRIVER_X11_XFIXES @SDL_VIDEO_DRIVER_X11_XFIXES@
#cmakedefine SDL_VIDEO_DRIVER_X11_XRANDR @SDL_VIDEO_DRIVER_X11_XRANDR@
#cmakedefine SDL_VIDEO_DRIVER_X11_XSCRNSAVER @SDL_VIDEO_DRIVER_X11_XSCRNSAVER@
#cmakedefine SDL_VIDEO_DRIVER_X11_XSHAPE @SDL_VIDEO_DRIVER_X11_XSHAPE@
-#cmakedefine SDL_VIDEO_DRIVER_X11_XVIDMODE @SDL_VIDEO_DRIVER_X11_XVIDMODE@
#cmakedefine SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS @SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS@
#cmakedefine SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM @SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM@
#cmakedefine SDL_VIDEO_DRIVER_VITA @SDL_VIDEO_DRIVER_VITA@
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 51cadaea843..97b6e140d55 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -388,22 +388,18 @@
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR
-#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
-#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE
#undef SDL_VIDEO_DRIVER_X11_XCURSOR
#undef SDL_VIDEO_DRIVER_X11_XDBE
-#undef SDL_VIDEO_DRIVER_X11_XINERAMA
#undef SDL_VIDEO_DRIVER_X11_XINPUT2
#undef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
#undef SDL_VIDEO_DRIVER_X11_XFIXES
#undef SDL_VIDEO_DRIVER_X11_XRANDR
#undef SDL_VIDEO_DRIVER_X11_XSCRNSAVER
#undef SDL_VIDEO_DRIVER_X11_XSHAPE
-#undef SDL_VIDEO_DRIVER_X11_XVIDMODE
#undef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS
#undef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM
#undef SDL_VIDEO_DRIVER_NACL
diff --git a/include/SDL_config_macosx.h b/include/SDL_config_macosx.h
index 1c9698a2896..f752a7b1de3 100644
--- a/include/SDL_config_macosx.h
+++ b/include/SDL_config_macosx.h
@@ -186,17 +186,13 @@
#undef SDL_VIDEO_DRIVER_X11
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/opt/X11/lib/libXinerama.1.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/opt/X11/lib/libXxf86vm.1.dylib"
#define SDL_VIDEO_DRIVER_X11_XDBE 1
-#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
#define SDL_VIDEO_DRIVER_X11_XRANDR 1
#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
#define SDL_VIDEO_DRIVER_X11_XSHAPE 1
-#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
#ifdef MAC_OS_X_VERSION_10_8
diff --git a/include/SDL_hints.h b/include/SDL_hints.h
index ea819c85d3a..03bbb57bad0 100644
--- a/include/SDL_hints.h
+++ b/include/SDL_hints.h
@@ -1590,13 +1590,11 @@ extern "C" {
#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID"
/**
- * \brief A variable controlling whether the X11 Xinerama extension should be used.
+ * \brief A no-longer-used variable controlling whether the X11 Xinerama extension should be used.
*
- * This variable can be set to the following values:
- * "0" - Disable Xinerama
- * "1" - Enable Xinerama
- *
- * By default SDL will use Xinerama if it is available.
+ * Before SDL 2.0.24, this would let apps and users disable Xinerama support on X11.
+ * Now SDL never uses Xinerama, and does not check for this hint at all.
+ * The preprocessor define is left here for source compatibility.
*/
#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
@@ -1607,18 +1605,16 @@ extern "C" {
* "0" - Disable XRandR
* "1" - Enable XRandR
*
- * By default SDL will not use XRandR because of window manager issues.
+ * By default SDL will use XRandR.
*/
#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
/**
- * \brief A variable controlling whether the X11 VidMode extension should be used.
- *
- * This variable can be set to the following values:
- * "0" - Disable XVidMode
- * "1" - Enable XVidMode
+ * \brief A no-longer-used variable controlling whether the X11 VidMode extension should be used.
*
- * By default SDL will use XVidMode if it is available.
+ * Before SDL 2.0.24, this would let apps and users disable XVidMode support on X11.
+ * Now SDL never uses XVidMode, and does not check for this hint at all.
+ * The preprocessor define is left here for source compatibility.
*/
#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
diff --git a/src/video/x11/SDL_x11dyn.c b/src/video/x11/SDL_x11dyn.c
index 29a8186fa72..4bfef21e3f3 100644
--- a/src/video/x11/SDL_x11dyn.c
+++ b/src/video/x11/SDL_x11dyn.c
@@ -47,9 +47,6 @@ typedef struct
#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR NULL
#endif
-#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA NULL
-#endif
#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 NULL
#endif
@@ -62,20 +59,15 @@ typedef struct
#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS NULL
#endif
-#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE
-#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE NULL
-#endif
static x11dynlib x11libs[] = {
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC},
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT},
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR},
-
(Patch may be truncated, please check the link at the top of this post.)