5 1 new backport x11 fs rework (#1485)
* Use XRandR 1.2 to set fullscreen resolution for single output Squash of roothorick's PR #497 (also includes Kyzentun's CMake changes from PR #716) * Cherry-pick json c++1x stuff (b9e3d7174e) * Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309 * rework Linux (X11) fullscreen, improve display-related Graphics Options Implement option to select between monitors for exclusive fullscreen mode on X11 (using XRandR 1.2), or use a fullscreen borderless window. Reimplement resolution/refresh rate/display mode-related option rows using Lua, update choices dynamically so only known-good groupings of resolution/refresh rate/aspect ratio can be selected. Minimally update Windows/MacOS LowLevelWindow implementations to support changes made for Linux side. Fullscreen Borderless Window/multi monitor support from X11 not implemented for those in this commit. * allow forcibly disabling xinerama use on Linux When libXinerama is available, SM tries to use it to find the proper monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless fullscreen). xfwm4 seems to assume that monitors are numbered in increasing order from left to right (rather than using the Xinerama-assigned numbers), so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce. This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen on the desired monitor in the backup, hacky way: remove all window hints, move window to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on mutter and Xfce. * Remove multiple warnings on redundant define. This used to be hard-coded due to pthread related items, but now it's dynamically determined. * fix _fallback menu behavior for unrecognized aspect ratios * Fix error recreating existing FS texture * Bump deployment target to 10.7 to use libc++ on XCode 8 * Add explicit casts to please clang * Update changelog
This commit is contained in:
committed by
Colby Klein
parent
7ef14c340d
commit
557be7cf1b
+14
-4
@@ -19,18 +19,21 @@ set(SM_EXE_NAME "StepMania")
|
||||
# Some OS specific helpers.
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(LINUX TRUE)
|
||||
set(SM_CPP_STANDARD "gnu++11")
|
||||
else()
|
||||
set(LINUX FALSE)
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set(MACOSX TRUE)
|
||||
set(SM_CPP_STANDARD "gnu++14")
|
||||
else()
|
||||
set(MACOSX FALSE)
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "BSD")
|
||||
set(BSD TRUE)
|
||||
set(SM_CPP_STANDARD "gnu++11")
|
||||
else()
|
||||
set(BSD FALSE)
|
||||
endif()
|
||||
@@ -279,8 +282,8 @@ elseif(MACOSX)
|
||||
# Apple Archs needs to be 32-bit for now.
|
||||
# When SDL2 is introduced, this may change.
|
||||
set(CMAKE_OSX_ARCHITECTURES "i386")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.6")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET_FULL "10.6.8")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET_FULL "10.7.1")
|
||||
|
||||
find_library(MAC_FRAME_ACCELERATE Accelerate ${CMAKE_SYSTEM_FRAMEWORK_PATH})
|
||||
find_library(MAC_FRAME_APPKIT AppKit ${CMAKE_SYSTEM_FRAMEWORK_PATH})
|
||||
@@ -346,11 +349,18 @@ elseif(LINUX)
|
||||
|
||||
find_package(Dl)
|
||||
|
||||
find_package(Xrandr)
|
||||
find_package(Xrandr REQUIRED)
|
||||
if (${XRANDR_FOUND})
|
||||
set(HAS_XRANDR TRUE)
|
||||
else()
|
||||
set(HAX_XRANDR FALSE)
|
||||
set(HAS_XRANDR FALSE)
|
||||
endif()
|
||||
|
||||
find_package(Xinerama)
|
||||
if (${XINERAMA_FOUND})
|
||||
set(HAS_XINERAMA TRUE)
|
||||
else()
|
||||
set(HAS_XINERAMA FALSE)
|
||||
endif()
|
||||
|
||||
find_package(PulseAudio)
|
||||
|
||||
Reference in New Issue
Block a user