gdiplus: Support playing back pen custom end line cap.

Fix Cafe Stella (SteamID: 1829980) Flowchart crashes once there are 2 things on it.
This commit is contained in:
Zhiyi Zhang 2023-05-14 15:23:04 +08:00 committed by Alexandre Julliard
parent fea3a7447a
commit f9e77ad77c
2 changed files with 6 additions and 2 deletions

View file

@ -2671,7 +2671,12 @@ static GpStatus METAFILE_PlaybackObject(GpMetafile *metafile, UINT flags, UINT d
if (pendata->PenDataFlags & PenDataCustomEndCap)
{
EmfPlusCustomEndCapData *endcap = (EmfPlusCustomEndCapData *)((BYTE *)pendata + offset);
FIXME("PenDataCustomEndCap is not supported.\n");
if ((status = metafile_deserialize_custom_line_cap((BYTE *)endcap, data_size, &custom_line_cap)) != Ok)
goto penfailed;
status = GdipSetPenCustomEndCap(pen, custom_line_cap);
GdipDeleteCustomLineCap(custom_line_cap);
if (status != Ok)
goto penfailed;
offset += FIELD_OFFSET(EmfPlusCustomEndCapData, data) + endcap->CustomEndCapSize;
}

View file

@ -3987,7 +3987,6 @@ static void test_pen(void)
stat = GdipBitmapGetPixel(bitmap, 40, 90, &color);
expect(Ok, stat);
todo_wine
expect(0xffff0000, color);
stat = GdipDisposeImage((GpImage *)clone_metafile);