mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 17:44:18 +00:00
switch between fullscreen and windowed mode without restarting the client (by oy)
This commit is contained in:
parent
6c4e6c5c44
commit
354696afb7
|
@ -696,6 +696,11 @@ void CGraphicsBackend_SDL_OpenGL::Maximize()
|
||||||
// TODO: SDL
|
// TODO: SDL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CGraphicsBackend_SDL_OpenGL::Fullscreen(bool State)
|
||||||
|
{
|
||||||
|
return SDL_SetWindowFullscreen(m_pWindow, State ? SDL_WINDOW_FULLSCREEN : 0) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
int CGraphicsBackend_SDL_OpenGL::WindowActive()
|
int CGraphicsBackend_SDL_OpenGL::WindowActive()
|
||||||
{
|
{
|
||||||
return SDL_GetWindowFlags(m_pWindow)&SDL_WINDOW_INPUT_FOCUS;
|
return SDL_GetWindowFlags(m_pWindow)&SDL_WINDOW_INPUT_FOCUS;
|
||||||
|
|
|
@ -188,6 +188,7 @@ public:
|
||||||
|
|
||||||
virtual void Minimize();
|
virtual void Minimize();
|
||||||
virtual void Maximize();
|
virtual void Maximize();
|
||||||
|
virtual bool Fullscreen(bool State);
|
||||||
virtual int WindowActive();
|
virtual int WindowActive();
|
||||||
virtual int WindowOpen();
|
virtual int WindowOpen();
|
||||||
virtual void SetWindowGrab(bool Grab);
|
virtual void SetWindowGrab(bool Grab);
|
||||||
|
|
|
@ -895,6 +895,11 @@ void CGraphics_Threaded::Maximize()
|
||||||
m_pBackend->Maximize();
|
m_pBackend->Maximize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CGraphics_Threaded::Fullscreen(bool State)
|
||||||
|
{
|
||||||
|
return m_pBackend->Fullscreen(State);
|
||||||
|
}
|
||||||
|
|
||||||
int CGraphics_Threaded::WindowActive()
|
int CGraphics_Threaded::WindowActive()
|
||||||
{
|
{
|
||||||
return m_pBackend->WindowActive();
|
return m_pBackend->WindowActive();
|
||||||
|
|
|
@ -311,6 +311,7 @@ public:
|
||||||
|
|
||||||
virtual void Minimize() = 0;
|
virtual void Minimize() = 0;
|
||||||
virtual void Maximize() = 0;
|
virtual void Maximize() = 0;
|
||||||
|
virtual bool Fullscreen(bool State) = 0;
|
||||||
virtual int WindowActive() = 0;
|
virtual int WindowActive() = 0;
|
||||||
virtual int WindowOpen() = 0;
|
virtual int WindowOpen() = 0;
|
||||||
virtual void SetWindowGrab(bool Grab) = 0;
|
virtual void SetWindowGrab(bool Grab) = 0;
|
||||||
|
@ -427,6 +428,7 @@ public:
|
||||||
|
|
||||||
virtual void Minimize();
|
virtual void Minimize();
|
||||||
virtual void Maximize();
|
virtual void Maximize();
|
||||||
|
virtual bool Fullscreen(bool State);
|
||||||
|
|
||||||
virtual int WindowActive();
|
virtual int WindowActive();
|
||||||
virtual int WindowOpen();
|
virtual int WindowOpen();
|
||||||
|
|
|
@ -66,6 +66,8 @@ public:
|
||||||
int ScreenHeight() const { return m_ScreenHeight; }
|
int ScreenHeight() const { return m_ScreenHeight; }
|
||||||
float ScreenAspect() const { return (float)ScreenWidth()/(float)ScreenHeight(); }
|
float ScreenAspect() const { return (float)ScreenWidth()/(float)ScreenHeight(); }
|
||||||
|
|
||||||
|
virtual bool Fullscreen(bool State) = 0;
|
||||||
|
|
||||||
virtual void Clear(float r, float g, float b) = 0;
|
virtual void Clear(float r, float g, float b) = 0;
|
||||||
|
|
||||||
virtual void ClipEnable(int x, int y, int w, int h) = 0;
|
virtual void ClipEnable(int x, int y, int w, int h) = 0;
|
||||||
|
|
|
@ -802,7 +802,6 @@ void CMenus::RenderSettingsGraphics(CUIRect MainView)
|
||||||
static int s_GfxScreenHeight = g_Config.m_GfxScreenHeight;
|
static int s_GfxScreenHeight = g_Config.m_GfxScreenHeight;
|
||||||
static int s_GfxColorDepth = g_Config.m_GfxColorDepth;
|
static int s_GfxColorDepth = g_Config.m_GfxColorDepth;
|
||||||
static int s_GfxBorderless = g_Config.m_GfxBorderless;
|
static int s_GfxBorderless = g_Config.m_GfxBorderless;
|
||||||
static int s_GfxFullscreen = g_Config.m_GfxFullscreen;
|
|
||||||
static int s_GfxVsync = g_Config.m_GfxVsync;
|
static int s_GfxVsync = g_Config.m_GfxVsync;
|
||||||
static int s_GfxFsaaSamples = g_Config.m_GfxFsaaSamples;
|
static int s_GfxFsaaSamples = g_Config.m_GfxFsaaSamples;
|
||||||
static int s_GfxTextureQuality = g_Config.m_GfxTextureQuality;
|
static int s_GfxTextureQuality = g_Config.m_GfxTextureQuality;
|
||||||
|
@ -868,10 +867,11 @@ void CMenus::RenderSettingsGraphics(CUIRect MainView)
|
||||||
MainView.HSplitTop(20.0f, &Button, &MainView);
|
MainView.HSplitTop(20.0f, &Button, &MainView);
|
||||||
if(DoButton_CheckBox(&g_Config.m_GfxFullscreen, Localize("Fullscreen"), g_Config.m_GfxFullscreen, &Button))
|
if(DoButton_CheckBox(&g_Config.m_GfxFullscreen, Localize("Fullscreen"), g_Config.m_GfxFullscreen, &Button))
|
||||||
{
|
{
|
||||||
g_Config.m_GfxFullscreen ^= 1;
|
if(Graphics()->Fullscreen(g_Config.m_GfxFullscreen^1))
|
||||||
if(g_Config.m_GfxFullscreen && g_Config.m_GfxBorderless)
|
{ g_Config.m_GfxFullscreen ^= 1;
|
||||||
g_Config.m_GfxBorderless = 0;
|
if(g_Config.m_GfxFullscreen && g_Config.m_GfxBorderless)
|
||||||
CheckSettings = true;
|
g_Config.m_GfxBorderless = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MainView.HSplitTop(20.0f, &Button, &MainView);
|
MainView.HSplitTop(20.0f, &Button, &MainView);
|
||||||
|
@ -919,7 +919,6 @@ void CMenus::RenderSettingsGraphics(CUIRect MainView)
|
||||||
s_GfxScreenHeight == g_Config.m_GfxScreenHeight &&
|
s_GfxScreenHeight == g_Config.m_GfxScreenHeight &&
|
||||||
s_GfxColorDepth == g_Config.m_GfxColorDepth &&
|
s_GfxColorDepth == g_Config.m_GfxColorDepth &&
|
||||||
s_GfxBorderless == g_Config.m_GfxBorderless &&
|
s_GfxBorderless == g_Config.m_GfxBorderless &&
|
||||||
s_GfxFullscreen == g_Config.m_GfxFullscreen &&
|
|
||||||
s_GfxVsync == g_Config.m_GfxVsync &&
|
s_GfxVsync == g_Config.m_GfxVsync &&
|
||||||
s_GfxFsaaSamples == g_Config.m_GfxFsaaSamples &&
|
s_GfxFsaaSamples == g_Config.m_GfxFsaaSamples &&
|
||||||
s_GfxTextureQuality == g_Config.m_GfxTextureQuality &&
|
s_GfxTextureQuality == g_Config.m_GfxTextureQuality &&
|
||||||
|
|
Loading…
Reference in a new issue