diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 8dd2e2aaa89..95a36187f06 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -313,7 +313,7 @@ @ stub GdipGetLineWrapMode @ stub GdipGetLogFontA @ stub GdipGetLogFontW -@ stub GdipGetMatrixElements +@ stdcall GdipGetMatrixElements(ptr ptr) @ stub GdipGetMetafileDownLevelRasterizationLimit @ stub GdipGetMetafileHeaderFromEmf @ stub GdipGetMetafileHeaderFromFile diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c index 50d511ad7e4..afb2efe575e 100644 --- a/dlls/gdiplus/matrix.c +++ b/dlls/gdiplus/matrix.c @@ -111,6 +111,17 @@ GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix) return Ok; } +GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix *matrix, + REAL *out) +{ + if(!matrix || !out) + return InvalidParameter; + + memcpy(out, matrix->matrix, sizeof(matrix->matrix)); + + return Ok; +} + GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix *matrix, GpMatrix* matrix2, GpMatrixOrder order) { diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 31b17f58264..b618dadf069 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -116,6 +116,7 @@ GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); +GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*); GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder); GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder); GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);