[PATCH] gdiplus: Switch to STRETCH_HALFTONE mode before playing a blit record.
Huw Davies
huw at codeweavers.com
Tue Oct 19 02:45:33 CDT 2021
This is done even if the emf contains a previous EMR_SETSTRETCHBLTMODE
record.
Thanks to Sebastián Aedo for some of the testing.
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/gdiplus/metafile.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
index d79c939218c..1b4bba18048 100644
--- a/dlls/gdiplus/metafile.c
+++ b/dlls/gdiplus/metafile.c
@@ -2486,6 +2486,9 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
record->nSize = dataSize + 8;
memcpy(record->dParm, data, dataSize);
+ if (record->iType == EMR_BITBLT || record->iType == EMR_STRETCHBLT)
+ SetStretchBltMode(metafile->playback_dc, STRETCH_HALFTONE);
+
if(PlayEnhMetaFileRecord(metafile->playback_dc, metafile->handle_table,
record, metafile->handle_count) == 0)
ERR("PlayEnhMetaFileRecord failed\n");
--
2.23.0
More information about the wine-devel
mailing list