Module: wine Branch: master Commit: 7b601148d5ca0e6185fb0602d3f517ce1872e756 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7b601148d5ca0e6185fb0602d3...
Author: Evan Stade estade@gmail.com Date: Tue Jul 31 19:15:44 2007 -0700
gdiplus: Added GdipCreateMatrix3.
---
dlls/gdiplus/gdiplus.spec | 2 +- dlls/gdiplus/matrix.c | 17 +++++++++++++++++ include/gdiplusflat.h | 2 ++ 3 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 37d7dff..0b57027 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -105,7 +105,7 @@ @ stub GdipCreateLineBrushFromRectWithAngleI @ stub GdipCreateLineBrushI @ stdcall GdipCreateMatrix2(long long long long long long ptr) -@ stub GdipCreateMatrix3 +@ stdcall GdipCreateMatrix3(ptr ptr ptr) @ stub GdipCreateMatrix3I @ stdcall GdipCreateMatrix(ptr) @ stdcall GdipCreateMetafileFromEmf(ptr long ptr) diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c index 3f96e4f..1c4738e 100644 --- a/dlls/gdiplus/matrix.c +++ b/dlls/gdiplus/matrix.c @@ -70,6 +70,23 @@ GpStatus WINGDIPAPI GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, return Ok; }
+GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *rect, + GDIPCONST GpPointF *pt, GpMatrix **matrix) +{ + if(!matrix) + return InvalidParameter; + + *matrix = GdipAlloc(sizeof(GpMatrix)); + if(!*matrix) return OutOfMemory; + + memcpy((*matrix)->matrix, rect, 4 * sizeof(REAL)); + + (*matrix)->matrix[4] = pt->X; + (*matrix)->matrix[5] = pt->Y; + + return Ok; +} + GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix *matrix, GpMatrix **clone) { if(!matrix || !clone) diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 2140550..4906160 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -114,6 +114,8 @@ GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *,GDIPCONST GpPointF*, + GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*);