Hello, this is a follow-up of an issue I'm unable to solve, I've been asking around on OpenGL.org without much success.
Since I switched to Win7 as a development environment, and a possible target platform for my applications, I noticed a regression in their behaviour.
Whenever I have a fullscreen window containing a fullscreen OpenGL context, the applications have problems displaying modal dialog boxes (such as message boxes, file open dialog, etc.)
The window is just created with WS_POPUP style. The GL context is nothing fancy. And everything is fine with Windows XP.
The problem under Windows 7 is that the modal dialog boxes are invisible at their opening (maybe their appear behind the full screen window). You have to Alt-Tab the application to have the dialogs appear.
Actually, on my AMD Radeon HD 5770 + Catalyst 10.2, you have to do a Ctrl-Atl-Suppr to have the display working again. Before that, it's all frozen as long as the modal dialog is open.
This is a major problem as the application appears to be frozen, while it in fact waits for user input.
Did anyone encounter this behaviour ? Does anyone know a workaround that works on AMD boards ?
On NVidia, the problem also happens, but a workaround is to ask 'wglChoosePixelFormatARB' to select a pixel format with the 'WGL_SWAP_COPY_ARB' flag.
I've quickly made up a sample test application ; its source code can be found at http://pastebin.com/K4v2NNDs. A simple MSVC8 project can be found here.
Any help will be greatly appreciated as I have to deliver an application for a client running on Win7, and it's becoming a show-stopper !
Originally posted by: pboudier we will be looking into this issue (i.e. disable fullscreen mode for copy_swap)
Thanks Pierre for your reply ! Would you care to elaborate a bit though ? Is there a 'fullscreen mode' on Windows 7 that is known to prevent 'classic' windows to show up ? Is this normal behaviour documented somewhere ?
The copy_swap happens to work but it may just be an accident...
the issue is wether we chose to enter fullscreen mode or not; when we are in that mode, the pop up will not be seen. we can't detect that the pop up happened in order to get out of the fullscreen mode.
for this _workaround_ to work, we just need to avoid getting in fullscreen mode, which translates in lower performance on radeon (lack of fast 3d clock)
I have an issue like yours. The app I am developing uses fullscreen double buffer opengl window. When I try to display gdi menus or panels they aren't shown.
In my case I "solved" the problem adding a non fullscreen mode to my app. The other solution i found is to set a non double buffer mode. In this case menus and gdi elements are shown right, but in this case other "cards" like Intel don't work in fullscreen mode.
In my case I can reproduce this behavior in Windows Vista, 7 but not in Windows XP.
You can follow my issue in this thread:
Also Windows specification tells clearly that GDI is not supported on OpenGL double buffered window (only if the driver implements it - maybe it should exist an opengl extension to enable this...):