Muliple OpenGL Contexts in Windows

My program works fine when all of my drawing
is to the client area of the main window.
But when I create a STATIC control and
try to send OpenGL commands to it, the
commands appear to go nowhere. Does
anyone have sample code showing how to draw
to multiple windows (PC Windows)?
Thank you.

Hi !

Each window you want to render into needs it’s own context, you use wglCreateContext to do that, one for each window you need to render to.

When you want to render to a specific window you call wglMakeCurrent to make that context the one to use at the moment.

That’s all, be careful if you are using multithreading though.

The msdn docs on the wgl functions should give you the information you need.

Mikael

Mikael,

Thanks. Just after I posted my question, I
saw in the OpenGL overview for Windows a
statement that OpenGL can write ONLY to the
client area of a non-child Window, not to a
Control, which perhaps explains why what I
tried did not work. Have you actually been
able to use OpenGL to draw into a Control,
for example, a “STATIC”?

  • Bob

Hi !

That could be tricky, but you can always create your own control to do it, you also do the rendering into the dialogbox itself:
http://codeguru.earthweb.com/opengl/texture_mapping.shtml

Mikael

Mikael,

Thanks for the reference to codeguru.
I see I will need to create a sub-class
of Dialog to make this work.

  • Bob