Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorJason Wilkins <Jason.A.Wilkins@gmail.com>2013-01-20 18:40:31 +0400
committerJason Wilkins <Jason.A.Wilkins@gmail.com>2013-01-20 18:40:31 +0400
commit160dd1dc3b31e68c82b92fe69a8438e999c2ed35 (patch)
tree7a97defd0d22b0bd4d5a0708dfa4ced44625b385 /intern
parent159507dc2c4346035a016ba3af359419ba36706c (diff)
More win32 multimon (r53923). Changed getNumDisplays so that it will actually succeed.
Diffstat (limited to 'intern')
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerWin32.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
index 15b81feb73c..0bfc67a9126 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
@@ -52,11 +52,15 @@ GHOST_DisplayManagerWin32::GHOST_DisplayManagerWin32(void)
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::getNumDisplays(GHOST_TUns8& numDisplay
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::getNumDisplaySettings(GHOST_TUns8 disp
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::getCurrentDisplaySetting(GHOST_TUns8 d
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);