Commit 8496db49 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

gdiplus: Some tests for LinearGradientBrush.

parent 17db41c3
...@@ -283,6 +283,67 @@ static void test_texturewrap(void) ...@@ -283,6 +283,67 @@ static void test_texturewrap(void)
ReleaseDC(0, hdc); ReleaseDC(0, hdc);
} }
static void test_gradientgetrect(void)
{
GpLineGradient *brush;
GpRectF rectf;
GpStatus status;
GpPointF pt1, pt2;
pt1.X = pt1.Y = 1.0;
pt2.X = pt2.Y = 100.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(1.0, rectf.X);
expectf(1.0, rectf.Y);
expectf(99.0, rectf.Width);
expectf(99.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* vertical gradient */
pt1.X = pt1.Y = pt2.X = 0.0;
pt2.Y = 10.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
todo_wine expectf(-5.0, rectf.X);
expectf(0.0, rectf.Y);
todo_wine expectf(10.0, rectf.Width);
expectf(10.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* horizontal gradient */
pt1.X = pt1.Y = pt2.Y = 0.0;
pt2.X = 10.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(0.0, rectf.X);
todo_wine expectf(-5.0, rectf.Y);
expectf(10.0, rectf.Width);
todo_wine expectf(10.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* from rect with LinearGradientModeHorizontal */
rectf.X = rectf.Y = 10.0;
rectf.Width = rectf.Height = 100.0;
status = GdipCreateLineBrushFromRect(&rectf, 0, 0, LinearGradientModeHorizontal,
WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(10.0, rectf.X);
expectf(10.0, rectf.Y);
expectf(100.0, rectf.Width);
expectf(100.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
}
START_TEST(brush) START_TEST(brush)
{ {
struct GdiplusStartupInput gdiplusStartupInput; struct GdiplusStartupInput gdiplusStartupInput;
...@@ -303,6 +364,7 @@ START_TEST(brush) ...@@ -303,6 +364,7 @@ START_TEST(brush)
test_getgamma(); test_getgamma();
test_transform(); test_transform();
test_texturewrap(); test_texturewrap();
test_gradientgetrect();
GdiplusShutdown(gdiplusToken); GdiplusShutdown(gdiplusToken);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment