Commit 4dc64cc45c33e3772cc6729e91d4dc149e4cbef7

Authored by JunsuChoi
1 parent 1be113cb

CanvasViewExample: Add DrawableGroup combination

An example that can be used to assemble and control Drawable objects
using the DrawableGroup class.

Change-Id: I08d72868882877b25e70fc9a0085853e1e5baf1a
examples/canvas-view/canvas-view-example.cpp
... ... @@ -17,6 +17,7 @@
17 17  
18 18 #include <dali-toolkit/dali-toolkit.h>
19 19 #include <dali-toolkit/devel-api/controls/canvas-view/canvas-view.h>
  20 +#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable-group.h>
20 21 #include <dali/devel-api/adaptor-framework/canvas-renderer-shape.h>
21 22  
22 23 using namespace Dali;
... ... @@ -75,8 +76,6 @@ public:
75 76 shape1.Rotate(Degree(45.0f));
76 77 shape1.Translate(Vector2(100.0f, 100.0f));
77 78  
78   - mCanvasView.AddDrawable(shape1);
79   -
80 79 mRoundedRect = Dali::CanvasRenderer::Shape::New();
81 80 mRoundedRect.AddRect(Rect<float>(10.0f, 350.0f, 200.0f, 140.0f), Vector2(40.0f, 40.0f));
82 81 mRoundedRect.SetFillColor(Vector4(0.0f, 0.0f, 1.0f, 1.0f));
... ... @@ -88,7 +87,6 @@ public:
88 87 dashPattern.PushBack(15.0f);
89 88 dashPattern.PushBack(30.0f);
90 89 mRoundedRect.SetStrokeDash(dashPattern);
91   - mCanvasView.AddDrawable(mRoundedRect);
92 90  
93 91 Dali::CanvasRenderer::Shape shape2 = Dali::CanvasRenderer::Shape::New();
94 92 shape2.AddMoveTo(Vector2(535.0f, 135.0f));
... ... @@ -104,7 +102,6 @@ public:
104 102 shape2.SetStrokeWidth(20.0f);
105 103 shape2.SetStrokeJoin(Dali::CanvasRenderer::Shape::StrokeJoin::ROUND);
106 104 shape2.Transform(Matrix3(0.6f, 0.0f, 20.0f, 0.0f, 0.6f, -50.0f, 0.0f, 0.0f, 1.0f));
107   - mCanvasView.AddDrawable(shape2);
108 105  
109 106 mArc = Dali::CanvasRenderer::Shape::New();
110 107 mArc.AddArc(Vector2(100.0f, 650.0f), 80.0f, 10.0f, 0.0f, true);
... ... @@ -139,6 +136,18 @@ public:
139 136  
140 137 mCanvasView.AddDrawable(mStar);
141 138  
  139 + mGroup1 = Dali::CanvasRenderer::DrawableGroup::New();
  140 +
  141 + mGroup1.AddDrawable(mRoundedRect);
  142 + mGroup1.AddDrawable(shape1);
  143 +
  144 + mGroup2 = Dali::CanvasRenderer::DrawableGroup::New();
  145 +
  146 + mGroup2.AddDrawable(mGroup1);
  147 + mGroup2.AddDrawable(shape2);
  148 +
  149 + mCanvasView.AddDrawable(mGroup2);
  150 +
142 151 mTimer = Timer::New(1000.0f / 32.0f);
143 152 mTimer.TickSignal().Connect(this, &CanvasViewController::tick);
144 153 mTimer.Start();
... ... @@ -162,6 +171,11 @@ public:
162 171  
163 172 mStar.Rotate(Degree(mCount * 2.0f));
164 173 mStar.Scale(float(mCount % 100) * 0.01f + 0.6f);
  174 +
  175 + mGroup1.Scale(float(mCount % 50) * 0.005f + 0.8f);
  176 +
  177 + mGroup2.SetOpacity(1.0f - float(mCount % 50) * 0.015f);
  178 +
165 179 mCount++;
166 180 return true;
167 181 }
... ... @@ -184,12 +198,14 @@ public:
184 198 }
185 199  
186 200 private:
187   - Application& mApplication;
188   - Dali::CanvasRenderer::Shape mRoundedRect;
189   - Dali::CanvasRenderer::Shape mArc;
190   - Dali::CanvasRenderer::Shape mStar;
191   - Timer mTimer;
192   - int mCount;
  201 + Application& mApplication;
  202 + Dali::CanvasRenderer::Shape mRoundedRect;
  203 + Dali::CanvasRenderer::Shape mArc;
  204 + Dali::CanvasRenderer::Shape mStar;
  205 + Dali::CanvasRenderer::DrawableGroup mGroup1;
  206 + Dali::CanvasRenderer::DrawableGroup mGroup2;
  207 + Timer mTimer;
  208 + int mCount;
193 209 };
194 210  
195 211 int DALI_EXPORT_API main(int argc, char** argv)
... ...