From e966330c991c5e3a605c8e0e9dc48e152a7cd9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 6 Feb 2014 17:13:08 +0100 Subject: [PATCH] Transformation: Added gradient test. --- src/tests/servers/app/transformation/main.cpp | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/tests/servers/app/transformation/main.cpp b/src/tests/servers/app/transformation/main.cpp index 09b3007bb9..610df0a65d 100644 --- a/src/tests/servers/app/transformation/main.cpp +++ b/src/tests/servers/app/transformation/main.cpp @@ -4,11 +4,13 @@ */ +#include #include #include #include #include +#include #include #include #include @@ -361,6 +363,43 @@ private: }; +// #pragma mark - Gradient + + +class GradientTest : public Test { +public: + GradientTest() + : + Test("Gradient") + { + } + + virtual void Draw(BView* view, BRect updateRect) + { + BRect rect(view->Bounds()); + rect.InsetBy(rect.Width() / 3, rect.Height() / 3); + BPoint center( + rect.left + rect.Width() / 2, + rect.top + rect.Height() / 2); + + BAffineTransform transform; + transform.RotateBy(center, 30.0 * M_PI / 180.0); + view->SetTransform(transform); + + rgb_color top = (rgb_color){ 255, 255, 0, 255 }; + rgb_color bottom = (rgb_color){ 0, 255, 255, 255 }; + + BGradientLinear gradient; + gradient.AddColor(top, 0.0f); + gradient.AddColor(bottom, 255.0f); + gradient.SetStart(rect.LeftTop()); + gradient.SetEnd(rect.LeftBottom()); + + float radius = std::min(rect.Width() / 5, rect.Height() / 5); + + view->FillRoundRect(rect, radius, radius, gradient); + } +}; // #pragma mark - @@ -375,8 +414,9 @@ main(int argc, char** argv) window->AddTest(new RectsTest()); window->AddTest(new BitmapTest()); + window->AddTest(new GradientTest()); - window->SetToTest(0); + window->SetToTest(2); window->Show(); app.Run();