mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-03 02:22:18 +00:00
gdiplus: Add additional check to GdipSetPenTransform.
This commit is contained in:
parent
0430895479
commit
caec1c2493
|
@ -445,6 +445,7 @@ GpStatus WINGDIPAPI GdipResetPenTransform(GpPen *pen)
|
|||
GpStatus WINGDIPAPI GdipSetPenTransform(GpPen *pen, GpMatrix *matrix)
|
||||
{
|
||||
static int calls;
|
||||
BOOL result;
|
||||
|
||||
TRACE("(%p, %s)\n", pen, debugstr_matrix(matrix));
|
||||
|
||||
|
@ -454,6 +455,9 @@ GpStatus WINGDIPAPI GdipSetPenTransform(GpPen *pen, GpMatrix *matrix)
|
|||
if(!(calls++))
|
||||
FIXME("(%p,%p) Semi-stub\n", pen, matrix);
|
||||
|
||||
GdipIsMatrixInvertible(matrix, &result);
|
||||
if (!result)
|
||||
return InvalidParameter;
|
||||
pen->transform = *matrix;
|
||||
|
||||
return Ok;
|
||||
|
|
|
@ -472,7 +472,7 @@ static void test_transform(void)
|
|||
GdipCreateMatrix2(3.0, 3.0, 2.0, 2.0, 6.0, 3.0, ¬_invertible_matrix);
|
||||
|
||||
status = GdipSetPenTransform(pen, not_invertible_matrix);
|
||||
todo_wine expect(InvalidParameter, status);
|
||||
expect(InvalidParameter, status);
|
||||
GdipDeleteMatrix(not_invertible_matrix);
|
||||
|
||||
status = GdipGetPenTransform(pen, matrix);
|
||||
|
@ -480,12 +480,12 @@ static void test_transform(void)
|
|||
status = GdipGetMatrixElements(matrix, values);
|
||||
expect(Ok, status);
|
||||
|
||||
todo_wine expectf(1.0, values[0]);
|
||||
todo_wine expectf(0.0, values[1]);
|
||||
todo_wine expectf(0.0, values[2]);
|
||||
todo_wine expectf(1.0, values[3]);
|
||||
todo_wine expectf(0.0, values[4]);
|
||||
todo_wine expectf(0.0, values[5]);
|
||||
expectf(1.0, values[0]);
|
||||
expectf(0.0, values[1]);
|
||||
expectf(0.0, values[2]);
|
||||
expectf(1.0, values[3]);
|
||||
expectf(0.0, values[4]);
|
||||
expectf(0.0, values[5]);
|
||||
|
||||
/* Setting Pen Tranformation to invertible matrix, should be successfull */
|
||||
GdipCreateMatrix2(3.0, -2.0, 5.0, 2.0, 6.0, 3.0, &matrix2);
|
||||
|
|
Loading…
Reference in a new issue