OpenGL windowing and wglMakeCurrent
matchmovie at yahoo.com
Wed Aug 24 16:40:48 CDT 2005
Trying to get my 3-D app to run under WINE using the same binary with the odd
workaround or two. It uses OpenGL in various subwindows of the main window as
needed. Under WINE, the subwindow graphics all get drawn in the lower left
corner of the overall X11 window, and the entire X11 window's redraw is
mangled---OpenGL is affecting the entire X11 Window.
In Win32, when you call wglMakeCurrent, the opengl context is configured to
match the size/position of the HWND for the HDC, even if it is only a small
child window, so drawing openGL goes just into the desired subwindow. However,
the WINE implementation of wglMakeCurrent just calls glXMakeCurrent (and
glXCreateContext), which produces the entire size of the X11 window, resulting
in the incorrect behavior observed.
In my Mac OS X port, I have a similar issue, resolved by calling
aglSetInteger(glContext, AGL_BUFFER_RECT,... I'm not sure what a glX equivalent
would be to try. It is possible that glScissor might be used. A more accurate
wglMakeCurrent emulation is necessary for a usable port. Suggestions welcome.
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
More information about the wine-devel