[PATCH 1/4] gdiplus/metafile: Support hatch brushes in playback
Nikolay Sivov <[email protected]>
| Newsgroups | gmane.comp.emulators.wine.patches |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Nikolay Sivov <[email protected]> --- 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