How should I describe the effects of certain Window Styles from MSDN for OpenGL applications?

  • Thread starter Thread starter tom_mai78101
  • Start date Start date
T

tom_mai78101

Guest
I'm doing research at the moment, and I came across some interesting things with Window Styles for OpenGL on Windows platform:

  • WS_CLIPCHILDREN and WS_CLIPSIBLINGS are both required for OpenGL applications.
  • WS_POPUP is preferred over WS_OVERLAPPEDWINDOW, WS_OVERLAPPED, and WS_POPUPWINDOW. But, it didn't say if it's required, or it's explicitly not necessary for OpenGL applications.
  • WS_BORDER is also required for OpenGL applications.
  • WS_VISIBLE is necessary as a precaution.

So all of those explanations are just comments and posts spread out across many different forums, answer posts, StackOverflow, and on old MSDN blog comments. There's too many to list, so I just wanted brevity over having to cite out quite a bit of references.

Anyway, what I personally don't understand about the Window Styles is:

  1. How do I describe the effects of WS_CLIPCHILDREN and WS_CLIPSIBLINGS on an OpenGL application? Its uses has some uses related to how OpenGL applications have their own pixel formats supported by the device context, and how it may be possible for a parent window to spawn children windows and somehow, miraculously clipping each other. Or, maybe the flag is put there mainly so the parent window, or the primary OpenGL application window, is prevented from being clipped by any children and parent siblings (windows)?
  2. Why is it preferrable to use WS_POPUP over WS_OVERLAPPEDWINDOW? I am speculating it has to do with toggling fullscreen and windowed mode for any OpenGL application, but, does that mean, just by setting WS_POPUP, it is enough to have fullscreen toggling support? Or, does it require that the window itself need to set/remove certain Window Styles, so WS_POPUP = fullscreen, and then WS_OVERLAPPED | ~(WS_POPUP) is used for windowed mode?
  3. Why is WS_VISIBLE necessary? Does that mean it can skip a step for setting the window to be visible?
  4. WS_BORDER is for windowed mode only, and thus it's required? Or that fullscreen and windowed mode both need WS_BORDER to function?

So, those are my questions I have right now. Am I correct to assume all if these?


Thanks in advance.

Continue reading...
 
Back
Top