gdiplus: Added GdipRotateMatrix.
This commit is contained in:
parent
477874797c
commit
eb478be84c
|
@ -466,7 +466,7 @@
|
|||
@ stdcall GdipRestoreGraphics(ptr long)
|
||||
@ stub GdipReversePath
|
||||
@ stub GdipRotateLineTransform
|
||||
@ stub GdipRotateMatrix
|
||||
@ stdcall GdipRotateMatrix(ptr long long)
|
||||
@ stub GdipRotatePathGradientTransform
|
||||
@ stub GdipRotatePenTransform
|
||||
@ stub GdipRotateTextureTransform
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
|
@ -93,6 +94,33 @@ GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix *matrix, GpMatrix* matrix2,
|
|||
return Ok;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, REAL angle,
|
||||
GpMatrixOrder order)
|
||||
{
|
||||
REAL cos_theta, sin_theta, rotate[6];
|
||||
|
||||
if(!matrix)
|
||||
return InvalidParameter;
|
||||
|
||||
angle = deg2rad(angle);
|
||||
cos_theta = cos(angle);
|
||||
sin_theta = sin(angle);
|
||||
|
||||
rotate[0] = cos_theta;
|
||||
rotate[1] = sin_theta;
|
||||
rotate[2] = -sin_theta;
|
||||
rotate[3] = cos_theta;
|
||||
rotate[4] = 0.0;
|
||||
rotate[5] = 0.0;
|
||||
|
||||
if(order == MatrixOrderAppend)
|
||||
matrix_multiply(matrix->matrix, rotate, matrix->matrix);
|
||||
else
|
||||
matrix_multiply(rotate, matrix->matrix, matrix->matrix);
|
||||
|
||||
return Ok;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY,
|
||||
GpMatrixOrder order)
|
||||
{
|
||||
|
|
|
@ -88,6 +88,7 @@ GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
|
|||
GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**);
|
||||
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*);
|
||||
GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder);
|
||||
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder);
|
||||
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
|
||||
GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
|
||||
GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
|
||||
|
|
Loading…
Reference in New Issue