PuzzleSDK
SpritePolygonPerformance类 参考

#include <SpritePolygonTest.h>

+ 类 SpritePolygonPerformance 继承关系图:
+ SpritePolygonPerformance 的协作图:

Public 成员函数

 CREATE_FUNC (SpritePolygonPerformance)
 
 SpritePolygonPerformance ()
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

Protected 成员函数

void updateLabel ()
 
virtual void update (float dt) override
 
virtual bool init () override
 
virtual Node * makeSprite ()
 
void incrementStats ()
 
virtual void initIncrementStats ()
 
- Protected 成员函数 继承自 SpritePolygonTestCase
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
virtual void onEnter () override
 
virtual void onExit () override
 
 SpritePolygonTestCase ()
 
 ~SpritePolygonTestCase ()
 
void updateDrawNode ()
 

Protected 属性

int _spriteCount
 
int _vertCount
 
int _triCount
 
int _pixelCount
 
float _elapsedTime
 
cocos2d::Label * _perfLabel
 
int _continuousLowDt
 
float _continuousHighDtTime
 
float _waitingTime
 
int _posX
 
int _posY
 
int _leftX
 
int _rightX
 
bool goRight
 
bool ended
 
float prevDt
 
unsigned int _incVert
 
unsigned int _incTri
 
unsigned int _incPix
 
- Protected 属性 继承自 SpritePolygonTestCase
std::string _title
 
std::string _subtitle
 
bool _isDebugDraw
 
bool _isNeedDebugMenu
 
cocos2d::Vector< cocos2d::DrawNode * > _drawNodes
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 SpritePolygonTest.h122 行定义.

构造及析构函数说明

◆ SpritePolygonPerformance()

SpritePolygonPerformance::SpritePolygonPerformance ( )

在文件 SpritePolygonTest.cpp519 行定义.

520{
521 TTFConfig ttfConfig("fonts/arial.ttf", 10);
522 _perfLabel = Label::createWithTTF(ttfConfig, "performance test");
523 addChild(_perfLabel);
524 _perfLabel->setPosition(Director::getInstance()->getVisibleSize().width/2, 80);
525
527 auto size = Director::getInstance()->getVisibleSize();
528 _elapsedTime = 0;
529 _posX = _leftX = size.width*0.15;
530 _rightX = size.width*0.85;
531 _posY = size.height/2;
532 prevDt = 0.016f;
533 goRight = true;
534 ended = false;
536 _waitingTime = 0.0;
537
538 _isNeedDebugMenu = false;
539}

引用了 _continuousHighDtTime, _continuousLowDt, _elapsedTime, SpritePolygonTestCase::_isNeedDebugMenu, _leftX, _perfLabel, _pixelCount, _posX, _posY, _rightX, _spriteCount, _triCount, _vertCount, _waitingTime, ended, goRight , 以及 prevDt.

成员函数说明

◆ CREATE_FUNC()

SpritePolygonPerformance::CREATE_FUNC ( SpritePolygonPerformance  )

◆ incrementStats()

void SpritePolygonPerformance::incrementStats ( )
protected

在文件 SpritePolygonTest.cpp617 行定义.

引用了 _incPix, _incTri, _incVert, _pixelCount, _spriteCount, _triCount , 以及 _vertCount.

被这些函数引用 update().

+ 这是这个函数的调用关系图:

◆ init()

bool SpritePolygonPerformance::init ( )
overrideprotectedvirtual

重载 SpritePolygonTestCase .

在文件 SpritePolygonTest.cpp541 行定义.

542{
545 scheduleUpdate();
546 return true;
547 }
548 return false;
549}
virtual void initIncrementStats()
virtual bool init() override

引用了 SpritePolygonTestCase::init() , 以及 initIncrementStats().

+ 函数调用图:

◆ initIncrementStats()

virtual void SpritePolygonPerformance::initIncrementStats ( )
inlineprotectedvirtual

SpritePolygonPerformanceTestDynamic , 以及 SpritePerformanceTestDynamic 重载.

在文件 SpritePolygonTest.h156 行定义.

156{};

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ makeSprite()

Node * SpritePolygonPerformance::makeSprite ( )
protectedvirtual

SpritePolygonPerformanceTestDynamic , 以及 SpritePerformanceTestDynamic 重载.

在文件 SpritePolygonTest.cpp558 行定义.

559{
560 return nullptr;
561}

被这些函数引用 update().

+ 这是这个函数的调用关系图:

◆ update()

void SpritePolygonPerformance::update ( float  dt)
overrideprotectedvirtual

在文件 SpritePolygonTest.cpp563 行定义.

564{
565 dt = dt*0.3 + prevDt*0.7;
566 prevDt = dt;
567 _elapsedTime += dt;
568 int loops = (0.025-dt)*1000;
569 if(dt < 0.025 && loops>0)
570 {
571 _continuousHighDtTime = clampf(_continuousHighDtTime-dt*2, 0.0, 1.0);
572 _waitingTime = clampf(_waitingTime-dt, 0.0, 5.0);
574 }
575 else
576 {
579 }
580 if (_continuousLowDt >= 5 && loops > 0) {
581 for(int i = 0; i < loops; i++)
582 {
583 if(_posX >= _rightX)
584 {
585 goRight = false;
586 }
587 else if(_posX <= _leftX)
588 {
589 goRight = true;
590 }
591 auto s = makeSprite();
592 addChild(s);
593 s->setPosition(_posX, _posY);
594 if(goRight)
595 _posX++;
596 else
597 _posX--;
598
600 }
601 updateLabel();
602 }
603
604 //if we have 10 continuous low dt, then we will start to create more sprites
605 else if(_continuousHighDtTime >= .5 || _waitingTime > 3.0){
606 // its now 1 seconds with high DT time, time to end
607 ended = true;
608 unscheduleUpdate();
609 _perfLabel->setString("Test ended in " + Value(_elapsedTime).asString() + " seconds\nNodes: " + Value(_spriteCount).asString() + " Triangles: " + Value(_triCount).asString() + "\nPixels: " + Value(_pixelCount).asString() + " Vertices: " + Value(_vertCount).asString());
610 _subtitleLabel->setString("Test ended");
611 }
612 else{
613 _waitingTime += dt;
614 }
615}
cocos2d::Label * _subtitleLabel
Definition: BaseTest.h:107

引用了 _continuousHighDtTime, _continuousLowDt, _elapsedTime, _leftX, _perfLabel, _pixelCount, _posX, _posY, _rightX, _spriteCount, TestCase::_subtitleLabel, _triCount, _vertCount, _waitingTime, ended, goRight, incrementStats(), makeSprite(), prevDt , 以及 updateLabel().

+ 函数调用图:

◆ updateLabel()

void SpritePolygonPerformance::updateLabel ( )
protected

在文件 SpritePolygonTest.cpp551 行定义.

552{
553 std::string temp = "Nodes: " + Value(_spriteCount).asString() + " Triangles: " + Value(_triCount).asString() + "\nPixels: " + Value(_pixelCount).asString() + " Vertices: " + Value(_vertCount).asString();
554 if(!ended)
555 _perfLabel->setString("Nodes: " + Value(_spriteCount).asString() + " Triangles: " + Value(_triCount).asString() + "\nPixels: " + Value(_pixelCount).asString() + " Vertices: " + Value(_vertCount).asString());
556}

引用了 _perfLabel, _pixelCount, _spriteCount, _triCount, _vertCount , 以及 ended.

被这些函数引用 update().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ _continuousHighDtTime

float SpritePolygonPerformance::_continuousHighDtTime
protected

在文件 SpritePolygonTest.h135 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _continuousLowDt

int SpritePolygonPerformance::_continuousLowDt
protected

在文件 SpritePolygonTest.h134 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _elapsedTime

float SpritePolygonPerformance::_elapsedTime
protected

在文件 SpritePolygonTest.h132 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _incPix

unsigned int SpritePolygonPerformance::_incPix
protected

◆ _incTri

unsigned int SpritePolygonPerformance::_incTri
protected

◆ _incVert

unsigned int SpritePolygonPerformance::_incVert
protected

◆ _leftX

int SpritePolygonPerformance::_leftX
protected

在文件 SpritePolygonTest.h140 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _perfLabel

cocos2d::Label* SpritePolygonPerformance::_perfLabel
protected

在文件 SpritePolygonTest.h133 行定义.

被这些函数引用 SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ _pixelCount

int SpritePolygonPerformance::_pixelCount
protected

在文件 SpritePolygonTest.h131 行定义.

被这些函数引用 incrementStats(), SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ _posX

int SpritePolygonPerformance::_posX
protected

在文件 SpritePolygonTest.h138 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _posY

int SpritePolygonPerformance::_posY
protected

在文件 SpritePolygonTest.h139 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _rightX

int SpritePolygonPerformance::_rightX
protected

在文件 SpritePolygonTest.h141 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ _spriteCount

int SpritePolygonPerformance::_spriteCount
protected

在文件 SpritePolygonTest.h128 行定义.

被这些函数引用 incrementStats(), SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ _triCount

int SpritePolygonPerformance::_triCount
protected

在文件 SpritePolygonTest.h130 行定义.

被这些函数引用 incrementStats(), SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ _vertCount

int SpritePolygonPerformance::_vertCount
protected

在文件 SpritePolygonTest.h129 行定义.

被这些函数引用 incrementStats(), SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ _waitingTime

float SpritePolygonPerformance::_waitingTime
protected

在文件 SpritePolygonTest.h136 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ ended

bool SpritePolygonPerformance::ended
protected

在文件 SpritePolygonTest.h143 行定义.

被这些函数引用 SpritePolygonPerformance(), update() , 以及 updateLabel().

◆ goRight

bool SpritePolygonPerformance::goRight
protected

在文件 SpritePolygonTest.h142 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().

◆ prevDt

float SpritePolygonPerformance::prevDt
protected

在文件 SpritePolygonTest.h145 行定义.

被这些函数引用 SpritePolygonPerformance() , 以及 update().


该类的文档由以下文件生成: