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
@@ -59,13 +59,23 @@ function FooMods()
|
||||
return {PLAYER_2}
|
||||
end,
|
||||
|
||||
-- Optional function. If non-nil, this function must return the string representation
|
||||
-- of a member of the ReloadChanged enum. This function is called in response to a message
|
||||
-- listed in the optional ReloadRowMessages table below. For example,
|
||||
-- to completely change the Choices presented by this OptionRow, modify
|
||||
-- self.Choices in the body of this function and return "ReloadChanged_All"
|
||||
Reload= function(self)
|
||||
Trace("FooMods:Reload() called.")
|
||||
return "ReloadChanged_None"
|
||||
end,
|
||||
|
||||
-- A table of strings that are the names of choices. Choice names are not
|
||||
-- localized.
|
||||
Choices= {"a", "b", "c", "d"},
|
||||
|
||||
-- Optional table. If non-nil, this table must contain a list of messages
|
||||
-- this row should listen for. If one of the messages is recieved, the
|
||||
-- row is reloaded (and the EnabledForPlayers function is called if it is
|
||||
-- row is reloaded (and each of the EnabledForPlayers/Reload functions is called if it is
|
||||
-- non-nil).
|
||||
ReloadRowMessages= {"ReloadFooMods"},
|
||||
|
||||
@@ -90,6 +100,12 @@ function FooMods()
|
||||
-- SaveSelections should examine the list of what the player has selected
|
||||
-- and apply the appropriate modifiers to the player.
|
||||
-- Same args as LoadSelections.
|
||||
--
|
||||
-- May optionally return an "effects" bit mask (constructed by combination of
|
||||
-- the bit masks from the OptEffect enum), which dictates actions the
|
||||
-- game should take in response to the selected option. For example,
|
||||
-- OPT_SAVE_PREFERENCES directs the game to save Preferences.ini,
|
||||
-- OPT_APPLY_ASPECT_RATIO directs the game to recompute the projection matrix, etc.
|
||||
SaveSelections= function(self, list, pn)
|
||||
Trace("FooMods:SaveSelections(" .. pn .. ")")
|
||||
for i, choice in ipairs(self.Choices) do
|
||||
|
||||
Reference in New Issue
Block a user