Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


Why, why, why? Checking if fullscreen is minimized.

This topic is 6269 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

In fullscreen I press ALT-TAB. My WndProc should get WM_SIZE message and wParam should have SIZE_MAXHIDE or SIZE_MINIMIZED flag set. This works in OpenGL, but in Direct3D mode doesn''t. Why? I have same wndProc for both and create windows same way. Only difference is that Direct3D sets it displaymode, but I set Display mode for OpenGL using Win32 functions. Does D3D steal some WM_messages?

Share this post

Link to post
Share on other sites
You set the screenmode in OpenGL using Win32 functions...

...Therefore your OpenGL application is running in WINDOWED mode. DirectX will behave the same if you run it in windowed mode and use Win32 functions to change mode.

When you run DirectX in fullscreen **exclusive** mode it does slightly alter the behaviour of some although I don''t think I''ve ever noticed a WM_SIZE not being sent.

If you pass the correct flags to DirectX (ie. don''t disable task switching in SetCooperativeLevel etc) and don''t trap any of the NC* messages in your message loop Alt-Tab should be fine although some problems could be:

- Bad drivers - true fullscreen exclusive mode set by the driver is different to your "Windowed in a different display mode" - some video card drivers wrongly try to stop Alt-Tabs so messages may get lost.

- Bad handling of lost resources - WM_SIZE happens *after* the Alt-Tab has completed - if you aren''t restoring/resetting the device and using TestCooperativeLevel properly it may never get to the WM_SIZE stage!!!

Anyway I don''t see the problem - you have much more appropriate messages to use: WM_ACTIVATE and WM_ACTIVATEAPP

Simon O''''Connor
Creative Asylum Ltd

Share this post

Link to post
Share on other sites

I totally forgot WM_ACTIVATE and others. I was just looking for d3dapp.cpp (from d3d8 sdk) and it used only WM_SIZE.


Now I also understand that OGL fs = windowed compared to D3D exclusive fs mode.

I was also wondering why did I see nothing after resetting the device but I forgot to set_render_states().
Not all works fine.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!