From ab7f957f377cc1d28d35785fefb185533da9f6e4 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 22 May 2014 21:12:44 +0200 Subject: m MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/gamma-w32-gdi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/gamma-w32-gdi.c') diff --git a/src/gamma-w32-gdi.c b/src/gamma-w32-gdi.c index 5065641..50683a9 100644 --- a/src/gamma-w32-gdi.c +++ b/src/gamma-w32-gdi.c @@ -143,6 +143,8 @@ int libgamma_w32_gdi_partition_initialise(libgamma_partition_state_t* restrict t if (partition != 0) return LIBGAMMA_NO_SUCH_PARTITION; + /* Count CRTC:s by iteration over all possible identifiers + until we reach on that does not exist. */ display.cb = sizeof(DISPLAY_DEVICE); while (EnumDisplayDevices(NULL, n, &display, 0)) if (n++, n == 0) @@ -196,11 +198,16 @@ int libgamma_w32_gdi_crtc_initialise(libgamma_crtc_state_t* restrict this, (void) partition; this->data = NULL; - display.cb = sizeof(DISPLAY_DEVICE); + + display.cb = sizeof(DISPLAY_DEVICE); /* Windows's API mandates this... */ + /* Get identifier for selected CRTC. */ if (!EnumDisplayDevices(NULL, (DWORD)crtc, &display, 0)) return LIBGAMMA_NO_SUCH_CRTC; + /* Check that the connector is enabled, + * newer versions of Windows will always pass. */ if (!(display.StateFlags & DISPLAY_DEVICE_ACTIVE)) return LIBGAMMA_CONNECTOR_DISABLED; + /* Acquire CRTC connection. */ context = CreateDC(TEXT("DISPLAY"), display.DeviceName, NULL, NULL); if (context == NULL) return LIBGAMMA_OPEN_CRTC_FAILED; -- cgit v1.2.3-70-g09d2