Commit a30fc3ac499a74f73937e9d8c4b01db8603b22c5
Committed by
Gerrit Code Review
Merge "Added option to benchmark physics 2d example" into devel/master
Showing
1 changed file
with
32 additions
and
6 deletions
examples/benchmark-2dphysics/benchmark-2d-physics-controller.cpp
| @@ -27,6 +27,7 @@ | @@ -27,6 +27,7 @@ | ||
| 27 | #include <cstdlib> | 27 | #include <cstdlib> |
| 28 | #include <iostream> | 28 | #include <iostream> |
| 29 | #include <string> | 29 | #include <string> |
| 30 | +#include <unistd.h> | ||
| 30 | 31 | ||
| 31 | using namespace Dali; | 32 | using namespace Dali; |
| 32 | using namespace Dali::Toolkit::Physics; | 33 | using namespace Dali::Toolkit::Physics; |
| @@ -74,8 +75,9 @@ enum BenchmarkType | @@ -74,8 +75,9 @@ enum BenchmarkType | ||
| 74 | class Physics2dBenchmarkController : public ConnectionTracker | 75 | class Physics2dBenchmarkController : public ConnectionTracker |
| 75 | { | 76 | { |
| 76 | public: | 77 | public: |
| 77 | - Physics2dBenchmarkController(Application& app, int numberOfBalls) | 78 | + Physics2dBenchmarkController(Application& app, BenchmarkType startType, int numberOfBalls) |
| 78 | : mApplication(app), | 79 | : mApplication(app), |
| 80 | + mType(startType), | ||
| 79 | mBallNumber(numberOfBalls) | 81 | mBallNumber(numberOfBalls) |
| 80 | { | 82 | { |
| 81 | app.InitSignal().Connect(this, &Physics2dBenchmarkController::OnInit); | 83 | app.InitSignal().Connect(this, &Physics2dBenchmarkController::OnInit); |
| @@ -92,8 +94,6 @@ public: | @@ -92,8 +94,6 @@ public: | ||
| 92 | mWindow.GetRootLayer().TouchedSignal().Connect(this, &Physics2dBenchmarkController::OnTouched); | 94 | mWindow.GetRootLayer().TouchedSignal().Connect(this, &Physics2dBenchmarkController::OnTouched); |
| 93 | mWindow.SetBackgroundColor(Color::DARK_SLATE_GRAY); | 95 | mWindow.SetBackgroundColor(Color::DARK_SLATE_GRAY); |
| 94 | 96 | ||
| 95 | - mType = BenchmarkType::ANIMATION; | ||
| 96 | - | ||
| 97 | CreateSimulation(); | 97 | CreateSimulation(); |
| 98 | 98 | ||
| 99 | mTimer = Timer::New(ANIMATION_TIME); | 99 | mTimer = Timer::New(ANIMATION_TIME); |
| @@ -201,6 +201,8 @@ public: | @@ -201,6 +201,8 @@ public: | ||
| 201 | 201 | ||
| 202 | void CreateAnimationSimulation() | 202 | void CreateAnimationSimulation() |
| 203 | { | 203 | { |
| 204 | + DALI_LOG_RELEASE_INFO("Creating animation simulation with %d balls\n", mBallNumber); | ||
| 205 | + | ||
| 204 | Window::WindowSize windowSize = mWindow.GetSize(); | 206 | Window::WindowSize windowSize = mWindow.GetSize(); |
| 205 | mBallActors.resize(mBallNumber); | 207 | mBallActors.resize(mBallNumber); |
| 206 | mBallVelocity.resize(mBallNumber); | 208 | mBallVelocity.resize(mBallNumber); |
| @@ -331,6 +333,8 @@ public: | @@ -331,6 +333,8 @@ public: | ||
| 331 | 333 | ||
| 332 | void CreatePhysicsSimulation() | 334 | void CreatePhysicsSimulation() |
| 333 | { | 335 | { |
| 336 | + DALI_LOG_RELEASE_INFO("Creating physics simulation with %d balls\n", mBallNumber); | ||
| 337 | + | ||
| 334 | Window::WindowSize windowSize = mWindow.GetSize(); | 338 | Window::WindowSize windowSize = mWindow.GetSize(); |
| 335 | 339 | ||
| 336 | // Map Physics space (origin bottom left, +ve Y up) | 340 | // Map Physics space (origin bottom left, +ve Y up) |
| @@ -466,14 +470,36 @@ int DALI_EXPORT_API main(int argc, char** argv) | @@ -466,14 +470,36 @@ int DALI_EXPORT_API main(int argc, char** argv) | ||
| 466 | { | 470 | { |
| 467 | setenv("DALI_FPS_TRACKING", "5", 1); | 471 | setenv("DALI_FPS_TRACKING", "5", 1); |
| 468 | Application application = Application::New(&argc, &argv); | 472 | Application application = Application::New(&argc, &argv); |
| 473 | + BenchmarkType startType = BenchmarkType::ANIMATION; | ||
| 469 | 474 | ||
| 470 | int numberOfBalls = DEFAULT_BALL_COUNT; | 475 | int numberOfBalls = DEFAULT_BALL_COUNT; |
| 471 | - if(argc > 1) | 476 | + int opt=0; |
| 477 | + optind=1; | ||
| 478 | + while((opt=getopt(argc, argv, "ap")) != -1) | ||
| 479 | + { | ||
| 480 | + switch(opt) | ||
| 481 | + { | ||
| 482 | + case 'a': | ||
| 483 | + startType = BenchmarkType::ANIMATION; | ||
| 484 | + break; | ||
| 485 | + case 'p': | ||
| 486 | + startType = BenchmarkType::PHYSICS_2D; | ||
| 487 | + break; | ||
| 488 | + case 1: | ||
| 489 | + // Should only trigger if optstring argument starts with "-", but check it anyway. | ||
| 490 | + numberOfBalls = atoi(optarg); | ||
| 491 | + break; | ||
| 492 | + default: | ||
| 493 | + fprintf(stderr, "Usage: %s [-p][-a] [n-balls]\n", argv[0]); | ||
| 494 | + exit(1); | ||
| 495 | + } | ||
| 496 | + } | ||
| 497 | + if(optind < argc) | ||
| 472 | { | 498 | { |
| 473 | - numberOfBalls = atoi(argv[1]); | 499 | + numberOfBalls = atoi(argv[optind]); |
| 474 | } | 500 | } |
| 475 | 501 | ||
| 476 | - Physics2dBenchmarkController controller(application, numberOfBalls); | 502 | + Physics2dBenchmarkController controller(application, startType, numberOfBalls); |
| 477 | application.MainLoop(); | 503 | application.MainLoop(); |
| 478 | return 0; | 504 | return 0; |
| 479 | } | 505 | } |