On Saturday 19 August 2006 17:26, Roderick Colenbrander wrote:
There's one big issue regarding windowed opengl rendering and pbuffers. A while ago Huw added some code for bitmap rendering using GLX Pixmaps. In the end our wglMakeCurrent checks whether the DC is used for offscreen rendering or not. If offscreen rendering is used (there's no distinction between a pixmap or a pbuffer!) it an indirect GLX Context as that's needed for pixmaps (mesa+dri doesn't accelerate it).
This code is also entered for games like World of Warcraft which use pbuffers. The main issue is that some glDrawBuffer line is called (single buffer emulation). In case of non-Nvidia users the indirect rendering context which shouldn't be needed for pbuffers is very bad, as most drivers don't accelerate indirect rendering yet. The glxpixmap code should be rewritten using pbuffers or perhaps there's a different way.
what about a flag for specifics glxpixmaps ?
On irc someone suggested to create a new window for opengl rendering and put it on top of the place that needs rendering. He claimed that something similar is done on Windows.
Yes i thought about the same :) But seems ugly to handle on x11drv (2 window for the same => redirect input, etc...)
This would solve the issues. I was also thinking about layering WineD3D on top of WGL also for the sake of portability and it will allow us to use WineD3D on Windows for testing purposes. It would be usefull if our opengl can atleast handle windowed rendering. I don't know the code that well to change it.
Problem with WineD3D on top of WGL is that we lost many of usefull APIs I think WineD3D on top of x11drv (as WGL on top of x11drv) should a the better way
Roderick
Regards, Raphael