On 9/29/08, Sergey Novosyolov chi@etersoft.ru wrote:
The first thing, i like to see is a Design in the correct way: Inside gdi32 while using Eng* and friends. (Needed by Printer drivers, and any Display driver including mirror / remote display drivers)
why can't we release DIB-Engine as own driver? GDI32 functions are main and GDI32 calls driver functions in dependence of which type of DC we have (printer DC, Xwindow HDC or DIB DC)
Any Driver can call the Graphic Rendering Engine (GRE) to do parts (or all) of the rendering (and native driver do that): 1: DDB (Driver managed: using any driver specific format) (The Driver should do Everything. When the driver call the GRE, the DDB is converted to a DIB, GDI renders into the DIB and then the DIB is converted back to a DDB) => like our winex11.drv and wineps.drv
2: DDB (GDI managed: using DIB format) (The driver render, what the driver want to render with hw-support and can call the GRE for all the other rendering without converting) => Needed for native printer drivers / mirror drivers or OpenGL accelerated rendering (stefan did some experiments)
3: DIB (GDI renders everything) => The current Code is using a X11-DDB (Driver Managed) with converting issues.
With a winedib.drv (the experimental tree is a wrapper around a wine driver), native printer drivers / mirror drivers will never work without another (additional) wrapper.