[5/6] gdiplus: GdipMultiplyWorldTransform
Nikolay Sivov
bunglehead at gmail.com
Tue Apr 29 16:28:40 CDT 2008
Changelog:
- implemented GdipMultiplyWorldTransform
---
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphics.c | 18 ++++++++++++++++++
include/gdiplusflat.h | 1 +
3 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 056fde9..cc7704f 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -447,7 +447,7 @@
@ stub GdipMultiplyPathGradientTransform
@ stub GdipMultiplyPenTransform
@ stub GdipMultiplyTextureTransform
-@ stub GdipMultiplyWorldTransform
+@ stdcall GdipMultiplyWorldTransform(ptr ptr long)
@ stub GdipNewInstalledFontCollection
@ stub GdipNewPrivateFontCollection
@ stdcall GdipPathIterCopyData(ptr ptr ptr ptr long long)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 2646a46..c5d76bd 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2418,3 +2418,21 @@ GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics *graphics, REAL* dpi)
return Ok;
}
+
+GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST GpMatrix *matrix,
+ GpMatrixOrder order)
+{
+ GpMatrix m;
+ GpStatus ret;
+
+ if(!graphics || !matrix)
+ return InvalidParameter;
+
+ m = *(graphics->worldtrans);
+
+ ret = GdipMultiplyMatrix(&m, (GpMatrix*)matrix, order);
+ if(ret == Ok)
+ *(graphics->worldtrans) = m;
+
+ return ret;
+}
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 25ffe34..495c955 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -243,6 +243,7 @@ GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*, BOOL*);
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*);
GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*);
GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder);
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder);
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL);
--
1.4.4.4
More information about the wine-patches
mailing list