aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32gdi.c
diff options
context:
space:
mode:
authorJon Lund Steffensen <jonlst@gmail.com>2010-05-24 23:37:36 +0200
committerJon Lund Steffensen <jonlst@gmail.com>2010-05-24 23:37:36 +0200
commit65dd76a221e23a7200b33645326e90c0c02be7ed (patch)
treefd3ea9ba55dcc874b49f8fb845035a78aa44d2a7 /src/w32gdi.c
parentPass arguments as string to adjustment methods. (diff)
downloadredshift-ng-65dd76a221e23a7200b33645326e90c0c02be7ed.tar.gz
redshift-ng-65dd76a221e23a7200b33645326e90c0c02be7ed.tar.bz2
redshift-ng-65dd76a221e23a7200b33645326e90c0c02be7ed.tar.xz
Use the prefix 'gamma' for gamma adjustment source files.
Diffstat (limited to 'src/w32gdi.c')
-rw-r--r--src/w32gdi.c127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/w32gdi.c b/src/w32gdi.c
deleted file mode 100644
index f15746e..0000000
--- a/src/w32gdi.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* w32gdi.c -- Windows GDI gamma adjustment source
- This file is part of Redshift.
-
- Redshift is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Redshift is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Redshift. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright (c) 2010 Jon Lund Steffensen <jonlst@gmail.com>
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#define WINVER 0x0500
-#include <windows.h>
-#include <wingdi.h>
-
-#ifdef ENABLE_NLS
-# include <libintl.h>
-# define _(s) gettext(s)
-#else
-# define _(s) s
-#endif
-
-#include "w32gdi.h"
-#include "colorramp.h"
-
-#define GAMMA_RAMP_SIZE 256
-
-
-int
-w32gdi_init(w32gdi_state_t *state, char *args)
-{
- BOOL r;
-
- /* Open device context */
- state->hDC = GetDC(NULL);
- if (state->hDC == NULL) {
- fputs(_("Unable to open device context.\n"), stderr);
- return -1;
- }
-
- /* Check support for gamma ramps */
- int cmcap = GetDeviceCaps(state->hDC, COLORMGMTCAPS);
- if (cmcap != CM_GAMMA_RAMP) {
- fputs(_("Display device does not support gamma ramps.\n"),
- stderr);
- return -1;
- }
-
- /* Allocate space for saved gamma ramps */
- state->saved_ramps = malloc(3*GAMMA_RAMP_SIZE*sizeof(WORD));
- if (state->saved_ramps == NULL) {
- perror("malloc");
- ReleaseDC(NULL, state->hDC);
- return -1;
- }
-
- /* Save current gamma ramps so we can restore them at program exit */
- r = GetDeviceGammaRamp(state->hDC, state->saved_ramps);
- if (!r) {
- fputs(_("Unable to save current gamma ramp.\n"), stderr);
- ReleaseDC(NULL, state->hDC);
- return -1;
- }
-
- return 0;
-}
-
-void
-w32gdi_free(w32gdi_state_t *state)
-{
- /* Free saved ramps */
- free(state->saved_ramps);
-
- /* Release device context */
- ReleaseDC(NULL, state->hDC);
-}
-
-void
-w32gdi_restore(w32gdi_state_t *state)
-{
- /* Restore gamma ramps */
- BOOL r = SetDeviceGammaRamp(state->hDC, state->saved_ramps);
- if (!r) fputs(_("Unable to restore gamma ramps.\n"), stderr);
-}
-
-int
-w32gdi_set_temperature(w32gdi_state_t *state, int temp, float gamma[3])
-{
- BOOL r;
-
- /* Create new gamma ramps */
- WORD *gamma_ramps = malloc(3*GAMMA_RAMP_SIZE*sizeof(WORD));
- if (gamma_ramps == NULL) {
- perror("malloc");
- return -1;
- }
-
- WORD *gamma_r = &gamma_ramps[0*GAMMA_RAMP_SIZE];
- WORD *gamma_g = &gamma_ramps[1*GAMMA_RAMP_SIZE];
- WORD *gamma_b = &gamma_ramps[2*GAMMA_RAMP_SIZE];
-
- colorramp_fill(gamma_r, gamma_g, gamma_b, GAMMA_RAMP_SIZE,
- temp, gamma);
-
- /* Set new gamma ramps */
- r = SetDeviceGammaRamp(state->hDC, gamma_ramps);
- if (!r) {
- fputs(_("Unable to set gamma ramps.\n"), stderr);
- free(gamma_ramps);
- return -1;
- }
-
- free(gamma_ramps);
-
- return 0;
-}