| 468 | } |
| 469 | |
| 470 | void SpriteCreation::doTest() |
| 471 | { |
| 472 | |
| 473 | DurationRecorder perf; |
| 474 | std::vector<std::string> predefineTextures = {"Images/concave.png", |
| 475 | "Images/atlastest.png", |
| 476 | "Images/grossini_dance_atlas-mono.png", |
| 477 | "Images/HelloWorld.png", |
| 478 | "Images/background1.png", |
| 479 | "Images/background2.png", |
| 480 | "Images/stone.png", |
| 481 | "Images/issue_17116.png", |
| 482 | "Images/sprite_polygon_crash.png", |
| 483 | "Images/bitmapFontTest3.png", |
| 484 | "Images/cocos-html5.png", |
| 485 | "Images/Fog.png", |
| 486 | "Images/poly_test_textures.png", |
| 487 | "Images/powered.png", |
| 488 | "Images/bug14017.png", |
| 489 | "Images/test-rgba1.png", |
| 490 | "Images/grossinis_heads.png", |
| 491 | "Images/cocos2dbanner.png"}; |
| 492 | |
| 493 | std::vector<Sprite*> spriteCache; |
| 494 | spriteCache.reserve(totalSprites); |
| 495 | |
| 496 | perf.startTick(KEY_CREATION); |
| 497 | |
| 498 | for (int i = 0; i < totalSprites; ++i) |
| 499 | { |
| 500 | auto* sprite = new Sprite(); |
| 501 | if (sprite == nullptr) |
| 502 | { |
| 503 | break; |
| 504 | } |
| 505 | if (!sprite->initWithFile(predefineTextures[i % predefineTextures.size()])) |
| 506 | { |
| 507 | delete sprite; |
| 508 | break; |
| 509 | } |
| 510 | spriteCache.emplace_back(sprite); |
| 511 | } |
| 512 | |
| 513 | auto creationDuration = perf.endTick(KEY_CREATION); |
| 514 | perf.startTick(KEY_DESTROYATION); |
| 515 | |
| 516 | for (int i = 0; i < totalSprites; ++i) |
| 517 | { |
| 518 | spriteCache[i]->release(); |
| 519 | } |
| 520 | auto destroyDuration = perf.endTick(KEY_DESTROYATION); |
| 521 | std::stringstream ss; |
| 522 | auto t1_ms = creationDuration * 1.0 / 1000000; |
| 523 | ss << "Create " << spriteCache.size() << " sprites takes " << t1_ms << " ms, " |
| 524 | << (int64_t)(spriteCache.size() * 1000 / t1_ms) << " sprites per second!"; |
| 525 | labelCreate->setString(ss.str()); |
| 526 | |
| 527 | if (t1_ms < 100) |
nothing calls this directly
no test coverage detected