comparison src/video/win32/SDL_win32gamma.c @ 1733:0b1070f2f94d SDL-1.3

Implemented gamma correction on Windows. Added general code to restore the video mode and gamma when windows lose focus.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 09 Jul 2006 09:02:26 +0000
parents
children 99210400e8b9
comparison
equal deleted inserted replaced
1732:fd65f12b6de6 1733:0b1070f2f94d
1 /*
2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997-2006 Sam Lantinga
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
19 Sam Lantinga
20 slouken@libsdl.org
21 */
22 #include "SDL_config.h"
23
24 #include "SDL_win32video.h"
25
26
27 int
28 WIN_SetDisplayGammaRamp(_THIS, Uint16 * ramp)
29 {
30 SDL_DisplayData *data = (SDL_DisplayData *) SDL_CurrentDisplay.driverdata;
31 HDC hdc;
32 BOOL succeeded = FALSE;
33
34 hdc = CreateDC(data->DeviceName, NULL, NULL, NULL);
35 if (hdc) {
36 succeeded = SetDeviceGammaRamp(hdc, ramp);
37 if (!succeeded) {
38 WIN_SetError("SetDeviceGammaRamp()");
39 }
40 DeleteDC(hdc);
41 }
42 return succeeded ? 0 : -1;
43 }
44
45 int
46 WIN_GetDisplayGammaRamp(_THIS, Uint16 * ramp)
47 {
48 SDL_DisplayData *data = (SDL_DisplayData *) SDL_CurrentDisplay.driverdata;
49 HDC hdc;
50 BOOL succeeded = FALSE;
51
52 hdc = CreateDC(data->DeviceName, NULL, NULL, NULL);
53 if (hdc) {
54 succeeded = GetDeviceGammaRamp(hdc, ramp);
55 if (!succeeded) {
56 WIN_SetError("GetDeviceGammaRamp()");
57 }
58 DeleteDC(hdc);
59 }
60 return succeeded ? 0 : -1;
61 }
62
63 /* vi: set ts=4 sw=4 expandtab: */