Hello community.

First I appologise if this is the wrong forum to ask this question. I have signed up here hoping to find a community of D3D developers who could help me out a little while I learn the ropes.

Anyway, I have a multimonitor setup where I am trying to create a fullscreen window on my secondary monitor. This is mainly for debug purposes but it would be great to enable this in my final product. I have no trouble creating the device, but when I start working on my primary screen the secondary loses focus, and with it loses the device. There is probably a really simple solution to this, but I have yet to find it.

Also, when creating a fullscreen window, is it ordinary for for both screen to start flickering while the fullscreen device is being created I have a feeling this is related to my first problem.


Re: Game Technologies: DirectX 101 Fullscreen and multimon


Well I would like to know if there is a better/proper way to do this, but this is how I resolved the issue.

I added a new method to my framework which detects if more than a single monitor is installed on the system. If so, rather than use DirectX to create a fullscreen device I instead change the display settings of that monitor and create a window to fill the screen. Removing the borders and setting the window to topmost gives the illusion of fullscreen. Which leads me to another question. What are the benefits of using direct3D's method as opposed to my workaround To be honest, I see none:

1. using Direct3D the front and back buffer must have the same format. Using an expanded window it's not so important, but if they are not the same it requires color conversion.

2. Using the window api's can be a pain, if the game crashes the resolutions will not be reset. Direct3D will , 99% of the time, return all modes to their origional state.

3. An annoyance with Direct3D on vista, the sidebar has a habit of flickering through the scene. I advise all developers to programatically hide the sidebar when entering fullscreen mode.

Re: Game Technologies: DirectX 101 Fullscreen and multimon


Without fully reading your lengthy post, I'm guessing you'd like to render to a specific adapter without it loosing focus, so you can debug. I could reccomend you investigate these threads.

http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1189937&SiteID=1

http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1214924&SiteID=1

Re: Game Technologies: DirectX 101 Fullscreen and multimon

Jim Perry

The Sample Browser in the Feb 07 DX SDK has a sample on handling multiple monitors.

Re: Game Technologies: DirectX 101 Fullscreen and multimon


The SDK's samples is where this whole mess started. In my opinion DXUT just cannot handle multiple monitors correctly. If I create a window on the primary, drag it to the secondary the toggle to full screen, it appears to work. But when toggling back to windowed, the window size is not what is was before, also when dragging the window back to the primary, the window appears to be stretched.

In order to correct this problem, and a few others I have noticed, I have built my own C++ framework. No more messing around with C style calls and callback functions. I can simply derive any new project from my framework and away I go. From a newbies percpective, it has given me a great knowledge of the inner workings of DX.