Commit 4dc64cc45c33e3772cc6729e91d4dc149e4cbef7
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
Showing
1 changed file
with
26 additions
and
10 deletions
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) | ... | ... |