PuzzleSDK
Material_AutoBindings类 参考

#include <MaterialSystemTest.h>

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

Public 成员函数

 CREATE_FUNC (Material_AutoBindings)
 
 Material_AutoBindings ()
 
virtual ~Material_AutoBindings ()
 
virtual void onEnter () override
 
virtual std::string subtitle () const override
 
void updateUniformTime (float)
 
- Public 成员函数 继承自 MaterialSystemBaseTest
virtual std::string title () const override
 
- 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 属性

cocos2d::backend::UniformLocation _locationTime
 
EffectAutoBindingResolver_resolver = nullptr
 
cocos2d::backend::ProgramState * _noiseProgramState = nullptr
 

额外继承的成员函数

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

详细描述

在文件 MaterialSystemTest.h82 行定义.

构造及析构函数说明

◆ Material_AutoBindings()

Material_AutoBindings::Material_AutoBindings ( )

在文件 MaterialSystemTest.cpp226 行定义.

引用了 _resolver.

◆ ~Material_AutoBindings()

Material_AutoBindings::~Material_AutoBindings ( )
virtual

在文件 MaterialSystemTest.cpp231 行定义.

232{
233 delete _resolver;
234}

引用了 _resolver.

成员函数说明

◆ CREATE_FUNC()

Material_AutoBindings::CREATE_FUNC ( Material_AutoBindings  )

◆ onEnter()

void Material_AutoBindings::onEnter ( )
overridevirtual

重载 TestCase .

在文件 MaterialSystemTest.cpp237 行定义.

238{
240
241// auto properties = Properties::createNonRefCounted("Materials/2d_effects.material#sample");
242 auto properties = Properties::createNonRefCounted("Materials/auto_binding_test.material#sample");
243
244 // Print the properties of every namespace within this one.
245 printProperties(properties, 0);
246
247 Material *mat1 = Material::createWithProperties(properties);
248
249 auto spriteBlur = Sprite::create("Images/grossini.png");
250 spriteBlur->setPositionNormalized(Vec2(0.2f, 0.5f));
251 this->addChild(spriteBlur);
252 spriteBlur->setProgramState(mat1->getTechniqueByName("blur")->getPassByIndex(0)->getProgramState());
253
254 auto spriteOutline = Sprite::create("Images/grossini.png");
255 spriteOutline->setPositionNormalized(Vec2(0.4f, 0.5f));
256 this->addChild(spriteOutline);
257 spriteOutline->setProgramState(mat1->getTechniqueByName("outline")->getPassByIndex(0)->getProgramState());
258
259 auto spriteNoise = Sprite::create("Images/grossini.png");
260 spriteNoise->setPositionNormalized(Vec2(0.6f, 0.5f));
261 this->addChild(spriteNoise);
262 spriteNoise->setProgramState(mat1->getTechniqueByName("noise")->getPassByIndex(0)->getProgramState());
263
264 auto spriteEdgeDetect = Sprite::create("Images/grossini.png");
265 spriteEdgeDetect->setPositionNormalized(Vec2(0.8f, 0.5f));
266 this->addChild(spriteEdgeDetect);
267 spriteEdgeDetect->setProgramState(mat1->getTechniqueByName("edge_detect")->getPassByIndex(0)->getProgramState());
268
269 _noiseProgramState = spriteNoise->getProgramState();
270 _locationTime = _noiseProgramState->getUniformLocation("u_Time");
271
272 schedule(CC_SCHEDULE_SELECTOR(Material_AutoBindings::updateUniformTime));
273 // properties is not a "Ref" object
274 CC_SAFE_DELETE(properties);
275}
static void printProperties(Properties *properties, int indent)
cocos2d::backend::ProgramState * _noiseProgramState
cocos2d::backend::UniformLocation _locationTime
virtual void onEnter() override
Definition: BaseTest.cpp:430

引用了 _locationTime, _noiseProgramState, TestCase::onEnter(), printProperties() , 以及 updateUniformTime().

+ 函数调用图:

◆ subtitle()

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

重载 TestCase .

在文件 MaterialSystemTest.cpp277 行定义.

278{
279 return "Testing auto-bindings uniforms";
280}

◆ updateUniformTime()

void Material_AutoBindings::updateUniformTime ( float  dt)

在文件 MaterialSystemTest.cpp282 行定义.

283{
284 float time = Director::getInstance()->getTotalFrames() * Director::getInstance()->getAnimationInterval();
285 Vec4 random(time / 10.0f, time, time * 2.0f, time * 4.0f);
286 _noiseProgramState->setUniform(_locationTime, &random, sizeof(random));
287}

引用了 _locationTime , 以及 _noiseProgramState.

被这些函数引用 onEnter().

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

类成员变量说明

◆ _locationTime

cocos2d::backend::UniformLocation Material_AutoBindings::_locationTime
private

在文件 MaterialSystemTest.h96 行定义.

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

◆ _noiseProgramState

cocos2d::backend::ProgramState* Material_AutoBindings::_noiseProgramState = nullptr
private

在文件 MaterialSystemTest.h98 行定义.

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

◆ _resolver

EffectAutoBindingResolver* Material_AutoBindings::_resolver = nullptr
private

在文件 MaterialSystemTest.h97 行定义.

被这些函数引用 Material_AutoBindings() , 以及 ~Material_AutoBindings().


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