MCPcopy Create free account
hub / github.com/axmolengine/axmol / doTest

Method doTest

tests/cpp-tests/Source/RendererTest/RendererTest.cpp:470–549  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

468}
469
470void 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)

Callers

nothing calls this directly

Calls 10

startTickMethod · 0.80
endTickMethod · 0.80
reserveMethod · 0.45
initWithFileMethod · 0.45
sizeMethod · 0.45
emplace_backMethod · 0.45
releaseMethod · 0.45
setStringMethod · 0.45
strMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected