mirror of https://github.com/axmolengine/axmol.git
Merge pull request #13294 from dabingnn/v3_fixMaterialParsingTestWP8.1
V3 fix material parsing test wp8.1
This commit is contained in:
commit
06f57600d4
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
#include "../testResource.h"
|
#include "../testResource.h"
|
||||||
#include "cocos2d.h"
|
#include "cocos2d.h"
|
||||||
|
#include "ui/CocosGUI.h"
|
||||||
|
|
||||||
USING_NS_CC;
|
USING_NS_CC;
|
||||||
|
|
||||||
|
@ -361,13 +361,68 @@ std::string Material_clone::subtitle() const
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
const int SHOW_LEBAL_TAG = 114;
|
||||||
|
|
||||||
void Material_parsePerformance::onEnter()
|
void Material_parsePerformance::onEnter()
|
||||||
{
|
{
|
||||||
MaterialSystemBaseTest::onEnter();
|
MaterialSystemBaseTest::onEnter();
|
||||||
|
|
||||||
|
_maxParsingCoumt = 5e3;
|
||||||
|
|
||||||
|
auto screenSize = Director::getInstance()->getWinSize();
|
||||||
|
|
||||||
|
ui::Slider* slider = ui::Slider::create();
|
||||||
|
slider->loadBarTexture("cocosui/sliderTrack.png");
|
||||||
|
slider->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
|
||||||
|
slider->loadProgressBarTexture("cocosui/sliderProgress.png");
|
||||||
|
slider->setPercent(50);
|
||||||
|
|
||||||
|
slider->setPosition(Vec2(screenSize.width / 2.0f, screenSize.height / 3.0f));
|
||||||
|
slider->addEventListener([&](Ref* sender, ui::Slider::EventType type) {
|
||||||
|
|
||||||
|
if (type == ui::Slider::EventType::ON_SLIDEBALL_UP)
|
||||||
|
{
|
||||||
|
ui::Slider* slider = dynamic_cast<ui::Slider*>(sender);
|
||||||
|
float p = slider->getPercent() / 100.0f;
|
||||||
|
slider->setTouchEnabled(false);
|
||||||
|
CCLOG("Will parsing material %d times", (int)(p * _maxParsingCoumt));
|
||||||
|
Label* label = dynamic_cast<Label*>(this->getChildByTag(SHOW_LEBAL_TAG));
|
||||||
|
if(label)
|
||||||
|
{
|
||||||
|
label->setString("Testing start!");
|
||||||
|
}
|
||||||
|
this->scheduleOnce(
|
||||||
|
[this, p, slider](float)
|
||||||
|
{
|
||||||
|
this->parsingTesting(p * _maxParsingCoumt);
|
||||||
|
slider->setTouchEnabled(true);
|
||||||
|
},
|
||||||
|
1.0, "schedule test parsing");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
addChild(slider);
|
||||||
|
|
||||||
|
auto label = Label::createWithSystemFont("Max parsing count is 10000, which may crash because of high memory comsumption.", "Helvetica", 10);
|
||||||
|
label->setPosition(Vec2(screenSize.width / 2.0f, screenSize.height / 2.0f - 20));
|
||||||
|
addChild(label);
|
||||||
|
label = Label::createWithSystemFont("Slide to test parsing performance", "Helvetica", 10);
|
||||||
|
label->setPosition(Vec2(screenSize.width / 2.0f, screenSize.height / 2.0f));
|
||||||
|
addChild(label);
|
||||||
|
|
||||||
|
label = Label::createWithSystemFont("", "Helvetica", 10);
|
||||||
|
label->setPosition(Vec2(screenSize.width / 2.0f, screenSize.height / 2.0f + 20));
|
||||||
|
label->setTag(SHOW_LEBAL_TAG);
|
||||||
|
addChild(label);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Material_parsePerformance::parsingTesting(unsigned int count)
|
||||||
|
{
|
||||||
std::clock_t begin = std::clock();
|
std::clock_t begin = std::clock();
|
||||||
|
|
||||||
for(int i=0;i<5000;i++)
|
for(int i=0;i<count;i++)
|
||||||
{
|
{
|
||||||
Material::createWithFilename("Materials/2d_effects.material");
|
Material::createWithFilename("Materials/2d_effects.material");
|
||||||
Material::createWithFilename("Materials/3d_effects.material");
|
Material::createWithFilename("Materials/3d_effects.material");
|
||||||
|
@ -375,8 +430,14 @@ void Material_parsePerformance::onEnter()
|
||||||
|
|
||||||
std::clock_t end = std::clock();
|
std::clock_t end = std::clock();
|
||||||
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
|
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
|
||||||
|
Label* label = dynamic_cast<Label*>(this->getChildByTag(SHOW_LEBAL_TAG));
|
||||||
|
if(label)
|
||||||
|
{
|
||||||
|
std::string str = StringUtils::format("Testing completed! Took: %.3f seconds for parsing material %d times.", elapsed_secs, count);
|
||||||
|
label->setString(str);
|
||||||
|
|
||||||
log("Parsing took: %f", elapsed_secs);
|
CCLOG("Took: %.3f seconds for parsing material %d times.", elapsed_secs, count);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Material_parsePerformance::subtitle() const
|
std::string Material_parsePerformance::subtitle() const
|
||||||
|
|
|
@ -108,6 +108,9 @@ public:
|
||||||
|
|
||||||
virtual void onEnter() override;
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
void parsingTesting(unsigned int count);
|
||||||
|
protected:
|
||||||
|
unsigned int _maxParsingCoumt;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Material_invalidate : public MaterialSystemBaseTest
|
class Material_invalidate : public MaterialSystemBaseTest
|
||||||
|
|
Loading…
Reference in New Issue