[PATCH 1/4] gdiplus/metafile: Support hatch brushes in playback
Nikolay Sivov
nsivov at codeweavers.com
Wed Nov 1 06:28:57 CDT 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/gdiplus/metafile.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
index e40487acff..6acebfb7cb 100644
--- a/dlls/gdiplus/metafile.c
+++ b/dlls/gdiplus/metafile.c
@@ -236,12 +236,20 @@ typedef struct EmfPlusSolidBrushData
EmfPlusARGB SolidColor;
} EmfPlusSolidBrushData;
+typedef struct EmfPlusHatchBrushData
+{
+ DWORD HatchStyle;
+ EmfPlusARGB ForeColor;
+ EmfPlusARGB BackColor;
+} EmfPlusHatchBrushData;
+
typedef struct EmfPlusBrush
{
DWORD Version;
DWORD Type;
union {
EmfPlusSolidBrushData solid;
+ EmfPlusHatchBrushData hatch;
} BrushData;
} EmfPlusBrush;
@@ -1839,6 +1847,13 @@ static GpStatus metafile_deserialize_brush(const BYTE *record_data, UINT data_si
status = GdipCreateSolidFill(*(ARGB *)&data->BrushData.solid.SolidColor, (GpSolidFill **)brush);
break;
+ case BrushTypeHatchFill:
+ if (data_size != header_size + sizeof(EmfPlusHatchBrushData))
+ return InvalidParameter;
+
+ status = GdipCreateHatchBrush(data->BrushData.hatch.HatchStyle, *(ARGB *)&data->BrushData.hatch.ForeColor,
+ *(ARGB *)&data->BrushData.hatch.BackColor, (GpHatch **)brush);
+ break;
default:
FIXME("brush type %u is not supported.\n", data->Type);
return NotImplemented;
--
2.14.2
More information about the wine-patches
mailing list