From 6dd720dcb5401fb352944b020f4ff7d4b06f9f8e Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Wed, 30 Apr 2008 01:28:30 +0400 Subject: [PATCH] gdiplus: Implemented GdipIsMatrixEqual. --- dlls/gdiplus/gdiplus.spec | 2 +- dlls/gdiplus/matrix.c | 11 +++++++++++ include/gdiplusflat.h | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index c6b785aaf9f..e1371caa78e 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -418,7 +418,7 @@ @ stub GdipIsEmptyRegion @ stub GdipIsEqualRegion @ stub GdipIsInfiniteRegion -@ stub GdipIsMatrixEqual +@ stdcall GdipIsMatrixEqual(ptr ptr ptr) @ stub GdipIsMatrixIdentity @ stub GdipIsMatrixInvertible @ stub GdipIsOutlineVisiblePathPoint diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c index e04e2cd6a4a..cc3507e3a0e 100644 --- a/dlls/gdiplus/matrix.c +++ b/dlls/gdiplus/matrix.c @@ -355,3 +355,14 @@ GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint * return ret; } + +GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, + BOOL *result) +{ + if(!matrix || !matrix2 || !result) + return InvalidParameter; + /* based on single array member of GpMatrix */ + *result = (memcmp(matrix->matrix, matrix2->matrix, sizeof(GpMatrix)) == 0); + + return Ok; +} diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 241948bc508..45dd47b7987 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -235,9 +235,9 @@ GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*); GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); -GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *,GDIPCONST GpPointF*, - GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *,GDIPCONST GpPointF*,GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**); +GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*, GDIPCONST GpMatrix*, BOOL*); GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*);