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
@@ -258,6 +258,79 @@ Actor::Actor( const Actor &cpy ):
|
||||
#undef CPY
|
||||
}
|
||||
|
||||
Actor &Actor::operator=(Actor other)
|
||||
{
|
||||
/* Don't copy an Actor in the middle of rendering. */
|
||||
ASSERT( other.m_pTempState == nullptr );
|
||||
m_pTempState = nullptr;
|
||||
|
||||
using std::swap;
|
||||
#define SWAP(x) swap(x, other.x)
|
||||
SWAP( m_sName );
|
||||
SWAP( m_pParent );
|
||||
SWAP( m_FakeParent );
|
||||
SWAP( m_pLuaInstance );
|
||||
|
||||
SWAP( m_WrapperStates );
|
||||
|
||||
SWAP( m_baseRotation );
|
||||
SWAP( m_baseScale );
|
||||
SWAP( m_fBaseAlpha );
|
||||
SWAP( m_internalDiffuse );
|
||||
SWAP( m_internalGlow );
|
||||
|
||||
|
||||
SWAP( m_size );
|
||||
SWAP( m_current );
|
||||
SWAP( m_start );
|
||||
SWAP( m_Tweens );
|
||||
|
||||
SWAP( m_bFirstUpdate );
|
||||
|
||||
SWAP( m_fHorizAlign );
|
||||
SWAP( m_fVertAlign );
|
||||
#if defined(SSC_FUTURES)
|
||||
SWAP( M_Effects );
|
||||
#else
|
||||
SWAP( m_Effect );
|
||||
#endif
|
||||
SWAP( m_fSecsIntoEffect );
|
||||
SWAP( m_fEffectDelta );
|
||||
SWAP(m_effect_ramp_to_half);
|
||||
SWAP(m_effect_hold_at_half);
|
||||
SWAP(m_effect_ramp_to_full);
|
||||
SWAP(m_effect_hold_at_full);
|
||||
SWAP(m_effect_hold_at_zero);
|
||||
SWAP(m_effect_period);
|
||||
SWAP( m_fEffectOffset );
|
||||
SWAP( m_EffectClock );
|
||||
|
||||
SWAP( m_effectColor1 );
|
||||
SWAP( m_effectColor2 );
|
||||
SWAP( m_vEffectMagnitude );
|
||||
|
||||
SWAP( m_bVisible );
|
||||
SWAP( m_fHibernateSecondsLeft );
|
||||
SWAP( m_fShadowLengthX );
|
||||
SWAP( m_fShadowLengthY );
|
||||
SWAP( m_ShadowColor );
|
||||
SWAP( m_bIsAnimating );
|
||||
SWAP( m_iDrawOrder );
|
||||
|
||||
SWAP( m_bTextureWrapping );
|
||||
SWAP( m_bTextureFiltering );
|
||||
SWAP( m_BlendMode );
|
||||
SWAP( m_bClearZBuffer );
|
||||
SWAP( m_ZTestMode );
|
||||
SWAP( m_bZWrite );
|
||||
SWAP( m_fZBias );
|
||||
SWAP( m_CullMode );
|
||||
|
||||
SWAP( m_mapNameToCommands );
|
||||
#undef SWAP
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* XXX: This calls InitCommand, which must happen after all other
|
||||
* initialization (eg. ActorFrame loading children). However, it
|
||||
* also loads input variables, which should happen first. The
|
||||
|
||||
Reference in New Issue
Block a user