Module: wine Branch: master Commit: a6ceafae2eb02ce2a14c6f94899ac85d62a40774 URL: https://gitlab.winehq.org/wine/wine/-/commit/a6ceafae2eb02ce2a14c6f94899ac85...
Author: Piotr Caban piotr@codeweavers.com Date: Wed Apr 12 11:30:18 2023 +0200
wineps: Handle EMR_INVERTRGN record in spool files.
---
dlls/wineps.drv/printproc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/dlls/wineps.drv/printproc.c b/dlls/wineps.drv/printproc.c index a5922c848e0..0fb35b2b8c0 100644 --- a/dlls/wineps.drv/printproc.c +++ b/dlls/wineps.drv/printproc.c @@ -986,6 +986,19 @@ static int WINAPI hmf_proc(HDC hdc, HANDLETABLE *htable, DeleteObject(frame); return ret; } + case EMR_INVERTRGN: + { + const EMRINVERTRGN *p = (const EMRINVERTRGN *)rec; + int old_rop, ret; + HRGN rgn; + + rgn = ExtCreateRegion(NULL, p->cbRgnData, (const RGNDATA *)p->RgnData); + old_rop = SetROP2(data->pdev->dev.hdc, R2_NOT); + ret = fill_rgn(data, htable, 0x80000000 | BLACK_BRUSH, rgn); + SetROP2(data->pdev->dev.hdc, old_rop); + DeleteObject(rgn); + return ret; + } case EMR_PAINTRGN: { const EMRPAINTRGN *p = (const EMRPAINTRGN *)rec;