[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53925] trunk/blender/intern/ghost/intern/ GHOST_DisplayManagerWin32.cpp: More win32 multimon (r53923).

Jason Wilkins Jason.A.Wilkins at gmail.com
Sun Jan 20 15:40:33 CET 2013


Revision: 53925
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53925
Author:   jwilkins
Date:     2013-01-20 14:40:31 +0000 (Sun, 20 Jan 2013)
Log Message:
-----------
More win32 multimon (r53923).  Changed getNumDisplays so that it will actually succeed.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53923

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp

Modified: trunk/blender/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp	2013-01-20 14:10:10 UTC (rev 53924)
+++ trunk/blender/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp	2013-01-20 14:40:31 UTC (rev 53925)
@@ -52,11 +52,15 @@
 
 GHOST_TSuccess GHOST_DisplayManagerWin32::getNumDisplays(GHOST_TUns8& numDisplays) const
 {
-	// We do not support multiple monitors at the moment
 	numDisplays = ::GetSystemMetrics(SM_CMONITORS);
 	return numDisplays > 0 ? GHOST_kSuccess : GHOST_kFailure;
 }
 
+static BOOL get_dd(DWORD d, DISPLAY_DEVICE* dd)
+{
+	dd->cb = sizeof(DISPLAY_DEVICE);
+	return ::EnumDisplayDevices(NULL, d, dd, 0);
+}
 
 /*
  * When you call EnumDisplaySettings with iModeNum set to zero, the operating system 
@@ -68,8 +72,7 @@
 GHOST_TSuccess GHOST_DisplayManagerWin32::getNumDisplaySettings(GHOST_TUns8 display, GHOST_TInt32& numSettings) const
 {
 	DISPLAY_DEVICE display_device;
-	display_device.cb = sizeof(DISPLAY_DEVICE);
-	::EnumDisplayDevices(NULL, display, &display_device, 0);
+	if (!get_dd(display, &display_device)) return GHOST_kFailure;
 
 	numSettings = 0;
 	DEVMODE dm;
@@ -83,8 +86,7 @@
 GHOST_TSuccess GHOST_DisplayManagerWin32::getDisplaySetting(GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting) const
 {
 	DISPLAY_DEVICE display_device;
-	display_device.cb = sizeof(DISPLAY_DEVICE);
-	::EnumDisplayDevices(NULL, display, &display_device, 0);
+	if (!get_dd(display, &display_device)) return GHOST_kFailure;
 
 	GHOST_TSuccess success;
 	DEVMODE dm;
@@ -125,8 +127,7 @@
 GHOST_TSuccess GHOST_DisplayManagerWin32::setCurrentDisplaySetting(GHOST_TUns8 display, const GHOST_DisplaySetting& setting)
 {
 	DISPLAY_DEVICE display_device;
-	display_device.cb = sizeof(DISPLAY_DEVICE);
-	::EnumDisplayDevices(NULL, display, &display_device, 0);
+	if (!get_dd(display, &display_device)) return GHOST_kFailure;
 
 	GHOST_DisplaySetting match;
 	findMatch(display, setting, match);




More information about the Bf-blender-cvs mailing list