On 8/23/07, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am Donnerstag, 23. August 2007 20:59 schrieb Jesse Allen:
While you're at it, can you make it more universal so we can add a wined3d driver too, and convince AJ about it?
Okay, but the dib driver is special. A dib works on any device, so that's why I can convert between. You're not supposed to blit across different devices. Could you point out your issues with blitting and wined3d?
Applications are supposed to be able to blit between d3d DCs and "normal" DCs(DIBs mostly). This works currently because wined3d downloads the gl data into a DIB and passes a DC of that DIB to the app. I wanted to improve our performance of GetDC on render targets by writing my own GDI driver, and return a DC whose functions draw directly in opengl, rather than downloading and reuploading.
...
I do not see any essential difference between your DIB driver and a wined3d driver from the BitBlt point of view.
There is one essential difference. The DIB driver and graphics driver reside in the same DC. I do not have to create another DC to get it to work. And because it is in the same DC, GDI has to be the one that manages the DIB driver internally. To get wined3d to do the same thing here with Blt calls, we would have to move wined3d to be internal to GDI which is something we don't want to do.