[GD-Windows] Some multimon data
Brought to you by:
vexxed72
From: Brian H. <bri...@py...> - 2003-03-31 06:15:19
|
I hacked up a quick multimon information extractor (GDI only, no= DX stuff) and ran it on some of my multimon systems to see what interesting information I could glean (or not). These are all Win2K systems, I'm not sure what happens on XP or Win98, but since the APIs are the same I'm assuming that it won't= do anything too out of whack. Win98 is my biggest concern since= it's a different driver model. System #1: GF3/AGP + Rage128/PCI + TNT2/PCI GetSystemMetrics( SM_CMONITORS ) =3D 3 \\.\DISPLAY1 - "NVIDIA GeForce3", attached, primary - \\.\DISPLAY1\Monitor0, "Plug and Play Monitor" - attached, 181 video modes \\.\DISPLAY2 - "Xpert 128", attached - \\.\DISPLAY2\Monitor0, "Default Monitor" - attached, 210 video modes \\.\DISPLAY3 - NVIDIA RIVA TNT2 Mode 64/Model 64 Pro, attached - \\.\DISPLAY3\Monitor0, "Default Monitor" - attached, 336 video modes \\.\DISPLAY5 - NetMeeting driver That is a pretty sane system. System #2a: GF4 Ti4200, single virtual desktop GetSystemMetrics( SM_CMONITORS ) =3D 1 \\.\DISPLAY1 - "NVIDIA GeForce4 Ti 4200", attached, primary - \\.\DISPLAY1\Monitor0, "Plug and Play Monitor" - NOT attached, 217 video modes, 2560x1024 \\.\DISPLAY3 - "NetMeeting Driver" Pretty bizarre all the way around. Only a single monitor, only a= single adapter found, and the monitor on DISPLAY1 is listed as "unattached", which is either a bug or clearly something I don't= understand. Next I configured it the same as above, but turned off one of the= desktops, which _should_ make it seem like a complete single= monitor system. System #2b: GF4 Ti4200, second monitor not enabled GetSystemMetrics( SM_CMONITORS ) =3D 1 \\.\DISPLAY1 - "NVIDIA GeForce4 Ti 4200", attached, primary - \\.\DISPLAY1\Monitor0, "Default Monitor" - \\.\DISPLAY1\Monitor1, "Default Monitor" - \\.\DISPLAY1\Monitor2, "Plug and Play Monitor" - \\.\DISPLAY2\Monitor3, "Plug and Play Monitor" - attached, 181 video modes \\.\DISPLAY2 - "NVIDIA Dualview", not attached - \\.\DISPLAY1\Monitor0, "Default Monitor" - \\.\DISPLAY1\Monitor1, "Default Monitor" - \\.\DISPLAY1\Monitor2, "Plug and Play Monitor" - attached, 275 video modes - \\.\DISPLAY2\Monitor3, "Plug and Play Monitor" \\.\DISPLAY4 - "NetMeeting Driver" Well, this is a lot weirder than I was expecting. The first big= thing is that there are four monitors enumerated. The second= thing is that it looks like there are two adapters in the system, when= there's only one. So long as the code observes "primary only adapters and attached monitors", it should be okay. Finally I turned on the checkbox for "Treat each output as a= separate video device" (or whatever it's called). System #2c: GF4 Ti4200, "independent" outputs, dual head GetSystemMetrics( SM_CMONITORS ) =3D 2 \\.\DISPLAY1 - "NVIDIA GeForce4 Ti 4200", attached, primary - \\.\DISPLAY1\Monitor0, "Default Monitor" - \\.\DISPLAY1\Monitor1, "Default Monitor" - \\.\DISPLAY1\Monitor2, "Plug and Play Monitor" - \\.\DISPLAY2\Monitor3, "Plug and Play Monitor" - attached, 181 video modes \\.\DISPLAY2 - "NVIDIA Dualview", attached - \\.\DISPLAY1\Monitor0, "Default Monitor" - \\.\DISPLAY1\Monitor1, "Default Monitor" - \\.\DISPLAY1\Monitor2, "Plug and Play Monitor" - attached, 275 video modes - \\.\DISPLAY2\Monitor3, "Plug and Play Monitor" Finally, a little bit of sanity -- this works just like #2b,= except the second display is marked as attached. So the heuristic that I'll probably use: if more than one monitor reported enumerate monitors get primary get attached else if aspect ratio is > 2:1 assume single virtual desktop multimon system else treat as a regular old single head system The major thing is that you just have to let the user choose to= run windowed for the SVD configuration or let them select "Don't= change video modes" or something similar. That's just a shitty= situation to be in unfortunately. Brian |