PuzzleSDK
PremultipliedAlphaTest类 参考

#include <ParticleTest.h>

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

Public 成员函数

 CREATE_FUNC (PremultipliedAlphaTest)
 
virtual void onEnter () override
 
void readdParticle (float delta)
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
- Public 成员函数 继承自 ParticleDemo
 ~ParticleDemo ()
 
void toggleCallback (cocos2d::Ref *sender)
 
void onTouchesBegan (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesMoved (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
virtual void update (float dt) override
 
void setEmitterPosition ()
 
- 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
 

Private 属性

bool _hasEmitter
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 ParticleDemo
cocos2d::ParticleSystemQuad * _emitter
 
cocos2d::Sprite * _background
 
cocos2d::LayerColor * _color
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 ParticleTest.h342 行定义.

成员函数说明

◆ CREATE_FUNC()

PremultipliedAlphaTest::CREATE_FUNC ( PremultipliedAlphaTest  )

◆ onEnter()

void PremultipliedAlphaTest::onEnter ( )
overridevirtual

重载 ParticleDemo .

在文件 ParticleTest.cpp1856 行定义.

1857{
1859
1860 _color->setColor(Color3B::BLUE);
1861 this->removeChild(_background, true);
1862 _background = nullptr;
1863
1864 _emitter = ParticleSystemQuad::create("Particles/BoilingFoam.plist");
1865 _emitter->retain();
1866 // Particle Designer "normal" blend func causes black halo on premul textures (ignores multiplication)
1867 //this->emitter.blendFunc = (BlendFunc){ BlendFactor::SRC_ALPHA, BlendFactor::ONE_MINUS_SRC_ALPHA };
1868
1869 // Cocos2d "normal" blend func for premul causes alpha to be ignored (oversaturates colors)
1870 _emitter->setBlendFunc( BlendFunc::ALPHA_PREMULTIPLIED );
1871
1872 CCASSERT(_emitter->isOpacityModifyRGB(), "Particle texture does not have premultiplied alpha, test is useless");
1873
1874 // Toggle next line to see old behavior
1875 // this->emitter.opacityModifyRGB = NO;
1876
1877 _emitter->setStartColor(Color4F(1.0f, 1.0f, 1.0f, 1.0f));
1878 _emitter->setEndColor(Color4F(1.0f, 1.0f, 1.0f, 0.0f));
1879 _emitter->setStartColorVar(Color4F(0.0f, 0.0f, 0.0f, 0.0f));
1880 _emitter->setEndColorVar(Color4F(0.0f, 0.0f, 0.0f, 0.0f));
1881
1882 this->addChild(_emitter, 10);
1883 _hasEmitter = true;
1884
1885 schedule(CC_SCHEDULE_SELECTOR(PremultipliedAlphaTest::readdParticle), 1.0f);
1886}
cocos2d::Sprite * _background
Definition: ParticleTest.h:36
virtual void onEnter() override
cocos2d::ParticleSystemQuad * _emitter
Definition: ParticleTest.h:35
cocos2d::LayerColor * _color
Definition: ParticleTest.h:37
void readdParticle(float delta)

引用了 ParticleDemo::_background, ParticleDemo::_color, ParticleDemo::_emitter, _hasEmitter, ParticleDemo::onEnter() , 以及 readdParticle().

+ 函数调用图:

◆ readdParticle()

void PremultipliedAlphaTest::readdParticle ( float  delta)

在文件 ParticleTest.cpp1842 行定义.

1843{
1844 if (_hasEmitter)
1845 {
1846 _emitter->removeFromParent();
1847 }
1848 else
1849 {
1850 this->addChild(_emitter);
1851 }
1852
1854}

引用了 ParticleDemo::_emitter , 以及 _hasEmitter.

被这些函数引用 onEnter().

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

◆ subtitle()

std::string PremultipliedAlphaTest::subtitle ( ) const
overridevirtual

重载 ParticleDemo .

在文件 ParticleTest.cpp1837 行定义.

1838{
1839 return "no black halo, particles should fade out\n animation should be normal";
1840}

◆ title()

std::string PremultipliedAlphaTest::title ( ) const
overridevirtual

重载 ParticleDemo .

在文件 ParticleTest.cpp1832 行定义.

1833{
1834 return "premultiplied alpha and readd child test";
1835}

类成员变量说明

◆ _hasEmitter

bool PremultipliedAlphaTest::_hasEmitter
private

在文件 ParticleTest.h344 行定义.

被这些函数引用 onEnter() , 以及 readdParticle().


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