Module: wine Branch: master Commit: 4c4c661bc0cb999a7c112f10bbb238792d8394c2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4c4c661bc0cb999a7c112f10bb...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Mon May 6 12:09:24 2013 +0900
gdiplus: Implement GdipEnumerateMetafileDestPoint and GdipEnumerateMetafileDestPointI.
---
dlls/gdiplus/gdiplus.spec | 4 ++-- dlls/gdiplus/metafile.c | 30 ++++++++++++++++++++++++++++++ include/gdiplusflat.h | 4 ++++ 3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 2fa1771..4f30ed1 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -190,8 +190,8 @@ 190 stdcall GdipDrawString(ptr wstr long ptr ptr ptr ptr) 191 stdcall GdipEmfToWmfBits(ptr long ptr long long) 192 stdcall GdipEndContainer(ptr ptr) -193 stub GdipEnumerateMetafileDestPoint -194 stub GdipEnumerateMetafileDestPointI +193 stdcall GdipEnumerateMetafileDestPoint(ptr ptr ptr ptr ptr ptr) +194 stdcall GdipEnumerateMetafileDestPointI(ptr ptr ptr ptr ptr ptr) 195 stub GdipEnumerateMetafileDestPoints 196 stub GdipEnumerateMetafileDestPointsI 197 stdcall GdipEnumerateMetafileDestRect(ptr ptr ptr ptr ptr ptr) diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c index 893fe6b..bcb5be7 100644 --- a/dlls/gdiplus/metafile.c +++ b/dlls/gdiplus/metafile.c @@ -584,6 +584,36 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics *graphics, return GdipEnumerateMetafileDestRect(graphics, metafile, &destf, callback, cb_data, attrs); }
+GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics *graphics, + GDIPCONST GpMetafile *metafile, GDIPCONST GpPointF *dest, + EnumerateMetafileProc callback, VOID *cb_data, GDIPCONST GpImageAttributes *attrs) +{ + GpRectF destf; + + if (!graphics || !metafile || !dest) return InvalidParameter; + + destf.X = dest->X; + destf.Y = dest->Y; + destf.Width = units_to_pixels(metafile->bounds.Width, metafile->unit, metafile->image.xres); + destf.Height = units_to_pixels(metafile->bounds.Height, metafile->unit, metafile->image.yres); + + return GdipEnumerateMetafileDestRect(graphics, metafile, &destf, callback, cb_data, attrs); +} + +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics *graphics, + GDIPCONST GpMetafile *metafile, GDIPCONST GpPoint *dest, + EnumerateMetafileProc callback, VOID *cb_data, GDIPCONST GpImageAttributes *attrs) +{ + GpPointF ptf; + + if (!graphics || !metafile || !dest) return InvalidParameter; + + ptf.X = dest->X; + ptf.Y = dest->Y; + + return GdipEnumerateMetafileDestPoint(graphics, metafile, &ptf, callback, cb_data, attrs); +} + static int CALLBACK get_metafile_type_proc(HDC hDC, HANDLETABLE *lpHTable, const ENHMETARECORD *lpEMFR, int nObj, LPARAM lpData) { diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 8e720f1..c622431 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -206,6 +206,10 @@ GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT, GDIPCONST GpFont*,GDIPCONST RectF*, GDIPCONST GpStringFormat*, GDIPCONST GpBrush*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*, + GDIPCONST GpPointF*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*, + GDIPCONST GpPoint*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*, GDIPCONST GpRectF*,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,