mirror of https://github.com/encounter/SDL.git
Implement SuspendScreenSaver for Win32
Creating a full-screen SDL renderer on Windows will keep the screensaver suspended by DirectX, as is default for full-screen DX applications. However, for applications that render in windowed-mode, the screensaver will still kick in, even if SDL_DisableScreenSaver() is called or SDL_HINT_VIDEO_ALLOW_SCREENSAVER is set to 0 (default). Implementing a SuspendScreenSaver() function for Win32 fixes this behavior.
This commit is contained in:
parent
04cbf13261
commit
eff5f65096
|
@ -63,6 +63,15 @@ UpdateWindowFrameUsableWhileCursorHidden(void *userdata, const char *name, const
|
|||
}
|
||||
}
|
||||
|
||||
static void WIN_SuspendScreenSaver(_THIS)
|
||||
{
|
||||
if (_this->suspend_screensaver) {
|
||||
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
|
||||
} else {
|
||||
SetThreadExecutionState(ES_CONTINUOUS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Windows driver bootstrap functions */
|
||||
|
||||
|
@ -136,6 +145,7 @@ WIN_CreateDevice(int devindex)
|
|||
device->GetDisplayModes = WIN_GetDisplayModes;
|
||||
device->SetDisplayMode = WIN_SetDisplayMode;
|
||||
device->PumpEvents = WIN_PumpEvents;
|
||||
device->SuspendScreenSaver = WIN_SuspendScreenSaver;
|
||||
|
||||
device->CreateSDLWindow = WIN_CreateWindow;
|
||||
device->CreateSDLWindowFrom = WIN_CreateWindowFrom;
|
||||
|
|
Loading…
Reference in New Issue