[PATCH v2 4/9] gdi32: Use NtGdiOpenDCW for CreateDCW.
Jacek Caban
jacek at codeweavers.com
Tue Sep 28 08:44:36 CDT 2021
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
Passing function getter to NtGdiOpenDCW is hackish, but it's meant to
unblock the transition for now. This is used for printer drivers. Since
DC driver interface is meant to be Unix-side-only, we will need to
change it. While making wineps.drv a Unix lib would be possible, I think
it would be better to mimic Windows behaviour closer. For that, we'd
need to expose printer processor functionality from wineps.drv that
would convert EMFs to PostScript. The existing wineps code seems to be a
good base for that. We'd need to factor out driver-specific bits and
call conversion functions from EMF replay. With that in place:
- gdi32 would setup EMF recording for printer DCs (on PE side)
- it would submit EMF records to winspool when appropriate
- winspool would detect EMFs and use print processor to convert it to PS
- winspool would submit PS document to the printer
With that in place, hopefully only small bits of wineps.drv will still
need to live in DC driver part. I hope that we will be able to move
those bits directly to win32u, so no actual library loading would need
to be performed by gdi32 nor ntgdi.
dlls/gdi32/dc.c | 62 +++++------
dlls/gdi32/driver.c | 188 +++-----------------------------
dlls/gdi32/emfdrv.c | 2 +-
dlls/gdi32/gdidc.c | 215 +++++++++++++++++++++++++++++++++++++
dlls/gdi32/ntgdi_private.h | 3 +-
5 files changed, 260 insertions(+), 210 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: v2-0004-gdi32-Use-NtGdiOpenDCW-for-CreateDCW.txt
Type: text/x-patch
Size: 19910 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20210928/c8525d87/attachment.bin>
More information about the wine-devel
mailing list