Gamma support is back!
New API functions: SDL_SetWindowBrightness() SDL_GetWindowBrightness() SDL_SetWindowGammaRamp() SDL_GetWindowGammaRamp() SDL_CalculateGammaRamp()
This commit is contained in:
parent
2f6aa755d6
commit
7dd0385c57
21 changed files with 703 additions and 26 deletions
|
@ -125,6 +125,8 @@ WIN_CreateDevice(int devindex)
|
|||
device->MinimizeWindow = WIN_MinimizeWindow;
|
||||
device->RestoreWindow = WIN_RestoreWindow;
|
||||
device->SetWindowFullscreen = WIN_SetWindowFullscreen;
|
||||
device->SetWindowGammaRamp = WIN_SetWindowGammaRamp;
|
||||
device->GetWindowGammaRamp = WIN_GetWindowGammaRamp;
|
||||
device->SetWindowGrab = WIN_SetWindowGrab;
|
||||
device->DestroyWindow = WIN_DestroyWindow;
|
||||
device->GetWindowWMInfo = WIN_GetWindowWMInfo;
|
||||
|
|
|
@ -571,6 +571,54 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display,
|
|||
SetWindowPos(hwnd, top, x, y, w, h, SWP_NOCOPYBITS);
|
||||
}
|
||||
|
||||
int
|
||||
WIN_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp)
|
||||
{
|
||||
#ifdef _WIN32_WCE
|
||||
SDL_Unsupported();
|
||||
return -1;
|
||||
#else
|
||||
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
|
||||
SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata;
|
||||
HDC hdc;
|
||||
BOOL succeeded = FALSE;
|
||||
|
||||
hdc = CreateDC(data->DeviceName, NULL, NULL, NULL);
|
||||
if (hdc) {
|
||||
succeeded = SetDeviceGammaRamp(hdc, (LPVOID)ramp);
|
||||
if (!succeeded) {
|
||||
WIN_SetError("SetDeviceGammaRamp()");
|
||||
}
|
||||
DeleteDC(hdc);
|
||||
}
|
||||
return succeeded ? 0 : -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
WIN_GetWindowGammaRamp(_THIS, SDL_Window * window, Uint16 * ramp)
|
||||
{
|
||||
#ifdef _WIN32_WCE
|
||||
SDL_Unsupported();
|
||||
return -1;
|
||||
#else
|
||||
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
|
||||
SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata;
|
||||
HDC hdc;
|
||||
BOOL succeeded = FALSE;
|
||||
|
||||
hdc = CreateDC(data->DeviceName, NULL, NULL, NULL);
|
||||
if (hdc) {
|
||||
succeeded = GetDeviceGammaRamp(hdc, (LPVOID)ramp);
|
||||
if (!succeeded) {
|
||||
WIN_SetError("GetDeviceGammaRamp()");
|
||||
}
|
||||
DeleteDC(hdc);
|
||||
}
|
||||
return succeeded ? 0 : -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
WIN_SetWindowGrab(_THIS, SDL_Window * window)
|
||||
{
|
||||
|
|
|
@ -59,6 +59,8 @@ extern void WIN_MaximizeWindow(_THIS, SDL_Window * window);
|
|||
extern void WIN_MinimizeWindow(_THIS, SDL_Window * window);
|
||||
extern void WIN_RestoreWindow(_THIS, SDL_Window * window);
|
||||
extern void WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen);
|
||||
extern int WIN_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp);
|
||||
extern int WIN_GetWindowGammaRamp(_THIS, SDL_Window * window, Uint16 * ramp);
|
||||
extern void WIN_SetWindowGrab(_THIS, SDL_Window * window);
|
||||
extern void WIN_DestroyWindow(_THIS, SDL_Window * window);
|
||||
extern SDL_bool WIN_GetWindowWMInfo(_THIS, SDL_Window * window,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue