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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to