On 2/12/07, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am Montag 12 Februar 2007 19:54 schrieb Daniel Remenak:
On 2/11/07, Damjan Jovanovic damjan.jov@gmail.com wrote:
What about the case where you draw with GDI, then render with OpenGL on top of that, then draw on top of that with GDI, then swap buffers? If you draw only client-side, you have to copy to the server, then copy back, then copy to the server *again*. You have to upload or download the image *every time* you go between OpenGL and GDI drawing, whereas when you draw with X11, there is no uploads/downloads unless you use DIB sections and draw directly.
Not that it's relevant to this conversation (since wine needs to support legacy apps), but just so you know, even Microsoft no longer supports this sample scenario. Drawing with GDI over OpenGL (or DX), and reading from the GDI buffer on a hardware-accelerated window, are both undefined (officially "not supported") operations on Windows Vista. Caused a ton of problems for my company's product
So IDirect3DSurface9::GetDC does not work any longer? (Or IDirectDrawSurface7::GetDC)
/me parties!
Unfortunately, no; it looks like you can still render GDI onto a DX surface, just not directly onto a window which is also being rendered to by DX.
From the linked blog article:
"Note that there is an alternative that can often work for an application -- DirectX is capable of handing back a DC to a DirectX surface, and applications can perform GDI rendering to that DC. From the DWM's perspective, that DirectX surface remains purely rendered by DirectX, and all is well."
--Daniel Remenak