Evan Stade : gdiplus: Added GdipTranslateMatrix.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 20 06:02:28 CDT 2007


Module: wine
Branch: master
Commit: 477874797c089172b322b1ba2a2184349645aa9a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=477874797c089172b322b1ba2a2184349645aa9a

Author: Evan Stade <estade at gmail.com>
Date:   Thu Jul 19 18:22:21 2007 -0700

gdiplus: Added GdipTranslateMatrix.

---

 dlls/gdiplus/gdiplus.spec |    2 +-
 dlls/gdiplus/matrix.c     |   23 +++++++++++++++++++++++
 include/gdiplusflat.h     |    1 +
 3 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index f081ad9..60e623c 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -591,7 +591,7 @@
 @ stub GdipTranslateClip
 @ stub GdipTranslateClipI
 @ stub GdipTranslateLineTransform
-@ stub GdipTranslateMatrix
+@ stdcall GdipTranslateMatrix(ptr long long long)
 @ stub GdipTranslatePathGradientTransform
 @ stub GdipTranslatePenTransform
 @ stub GdipTranslateRegion
diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c
index 8c90211..9d3a78f 100644
--- a/dlls/gdiplus/matrix.c
+++ b/dlls/gdiplus/matrix.c
@@ -136,3 +136,26 @@ GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts,
 
     return Ok;
 }
+
+GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX,
+    REAL offsetY, GpMatrixOrder order)
+{
+    REAL translate[6];
+
+    if(!matrix)
+        return InvalidParameter;
+
+    translate[0] = 1.0;
+    translate[1] = 0.0;
+    translate[2] = 0.0;
+    translate[3] = 1.0;
+    translate[4] = offsetX;
+    translate[5] = offsetY;
+
+    if(order == MatrixOrderAppend)
+        matrix_multiply(matrix->matrix, translate, matrix->matrix);
+    else
+        matrix_multiply(translate, matrix->matrix, matrix->matrix);
+
+    return Ok;
+}
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 16026dc..09e5a09 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -90,6 +90,7 @@ GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*);
 GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder);
 GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
 GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
+GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
 
 GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*);
 GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*);




More information about the wine-cvs mailing list