1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-03 08:19:41 +00:00

gdiplus: Add additional check to GdipSetPenTransform.

This commit is contained in:
Bartosz Kosiorek 2023-10-28 19:51:19 +02:00 committed by Alexandre Julliard
parent 0430895479
commit caec1c2493
2 changed files with 12 additions and 8 deletions

View File

@ -445,8 +445,9 @@ 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));
TRACE("(%p, %s)\n", pen, debugstr_matrix(matrix));
if(!pen || !matrix)
return InvalidParameter;
@ -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;

View File

@ -472,7 +472,7 @@ static void test_transform(void)
GdipCreateMatrix2(3.0, 3.0, 2.0, 2.0, 6.0, 3.0, &not_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);