[haiku-commits] haiku: hrev46830 - src/tests/servers/app/transformation

  • From: superstippi@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 6 Feb 2014 21:28:33 +0100 (CET)

hrev46830 adds 1 changeset to branch 'master'
old head: b9590dc919f70131fcbb1b064175b9e9b13350a6
new head: 9f44851e0aa5f3161256cb5ef37a574fcb2a699d
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=9f44851+%5Eb9590dc

----------------------------------------------------------------------------

9f44851: Transformation: Added test for nesting view states.
  
  The test shows that nesting view states seems to work as expected...

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev46830
Commit:      9f44851e0aa5f3161256cb5ef37a574fcb2a699d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9f44851
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Thu Feb  6 20:27:21 2014 UTC

----------------------------------------------------------------------------

1 file changed, 49 insertions(+), 1 deletion(-)
src/tests/servers/app/transformation/main.cpp | 50 ++++++++++++++++++++++-

----------------------------------------------------------------------------

diff --git a/src/tests/servers/app/transformation/main.cpp 
b/src/tests/servers/app/transformation/main.cpp
index 610df0a..fc22f96 100644
--- a/src/tests/servers/app/transformation/main.cpp
+++ b/src/tests/servers/app/transformation/main.cpp
@@ -402,6 +402,53 @@ public:
 };
 
 
+// #pragma mark - NestedStates
+
+
+class NestedStatesTest : public Test {
+public:
+       NestedStatesTest()
+               :
+               Test("Nested view states")
+       {
+       }
+       
+       virtual void Draw(BView* view, BRect updateRect)
+       {
+               BAffineTransform transform;
+               transform.RotateBy(BPoint(100, 100), 30.0 * M_PI / 180.0);
+               view->SetTransform(transform);
+
+               rgb_color top = (rgb_color){ 255, 0, 0, 255 };
+               rgb_color bottom = (rgb_color){ 255, 255, 0, 255 };
+
+               BRect rect(20, 20, 120, 120);
+
+               BGradientLinear gradient;
+               gradient.AddColor(top, 0.0f);
+               gradient.AddColor(bottom, 255.0f);
+               gradient.SetStart(rect.LeftTop());
+               gradient.SetEnd(rect.LeftBottom());
+
+               view->FillRoundRect(rect, 20, 20, gradient);
+
+               view->PushState();
+               // Should be in the same place!
+               view->StrokeRoundRect(rect, 20, 20);
+
+               // Now rotated by another 30 degree
+               view->SetTransform(transform);
+
+               view->SetDrawingMode(B_OP_ALPHA);
+               view->SetBlendingMode(B_PIXEL_ALPHA, B_ALPHA_COMPOSITE);
+               view->SetHighColor(0, 0, 255, 120);
+               view->FillRoundRect(rect, 20, 20);
+
+               view->PopState();
+       }
+};
+
+
 // #pragma mark -
 
 
@@ -415,8 +462,9 @@ main(int argc, char** argv)
        window->AddTest(new RectsTest());
        window->AddTest(new BitmapTest());
        window->AddTest(new GradientTest());
+       window->AddTest(new NestedStatesTest());
 
-       window->SetToTest(2);
+       window->SetToTest(3);
        window->Show();
 
        app.Run();


Other related posts:

  • » [haiku-commits] haiku: hrev46830 - src/tests/servers/app/transformation - superstippi