PuzzleSDK
RendererUniformBatch类 参考

#include <NewRendererTest.h>

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

Public 成员函数

 CREATE_FUNC (RendererUniformBatch)
 
virtual std::string title () const override
 
virtual std::string subtitle () 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
 
virtual void onEnter () override
 

Protected 成员函数

 RendererUniformBatch ()
 
cocos2d::backend::ProgramState * createBlurProgramState ()
 
cocos2d::backend::ProgramState * createSepiaProgramState ()
 

额外继承的成员函数

- 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
 

详细描述

在文件 NewRendererTest.h220 行定义.

构造及析构函数说明

◆ RendererUniformBatch()

RendererUniformBatch::RendererUniformBatch ( )
protected

在文件 NewRendererTest.cpp831 行定义.

832{
833 Size s = Director::getInstance()->getWinSize();
834
835 auto blurState = createBlurProgramState();
836 auto sepiaState = createSepiaProgramState();
837
838 auto x_inc = s.width / 20;
839 auto y_inc = s.height / 6;
840
841 for (int y=0; y<6; ++y)
842 {
843 for (int x=0; x<20; ++x)
844 {
845 auto sprite = Sprite::create("Images/grossini.png");
846 sprite->setPosition(Vec2(x * x_inc, y * y_inc));
847 sprite->setScale(0.4);
848 addChild(sprite);
849
850 if (y>=4) {
851 sprite->setProgramState(sepiaState);
852 } else if(y>=2) {
853 sprite->setProgramState(blurState);
854 }
855 }
856 }
857}
cocos2d::backend::ProgramState * createSepiaProgramState()
cocos2d::backend::ProgramState * createBlurProgramState()

引用了 createBlurProgramState() , 以及 createSepiaProgramState().

+ 函数调用图:

成员函数说明

◆ CREATE_FUNC()

RendererUniformBatch::CREATE_FUNC ( RendererUniformBatch  )

◆ createBlurProgramState()

cocos2d::backend::ProgramState * RendererUniformBatch::createBlurProgramState ( )
protected

在文件 NewRendererTest.cpp859 行定义.

860{
861 const std::string shaderName("Shaders/example_Blur.fsh");
862 // outline shader
863 auto fileUtiles = FileUtils::getInstance();
864 auto fragmentFullPath = fileUtiles->fullPathForFilename(shaderName);
865 auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
866 auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, fragSource.c_str());
867 auto programState = new backend::ProgramState(program);
868 programState->autorelease();
869 CC_SAFE_RELEASE(program);
870
871 backend::UniformLocation loc = programState->getUniformLocation("resolution");
872 auto resolution = Vec2(85, 121);
873 programState->setUniform(loc, &resolution, sizeof(resolution));
874
875 loc = programState->getUniformLocation("blurRadius");
876 float blurRadius = 10.0f;
877 programState->setUniform(loc, &blurRadius, sizeof(blurRadius));
878
879 loc = programState->getUniformLocation("sampleNum");
880 float sampleNum = 5.0f;
881 programState->setUniform(loc, &sampleNum, sizeof(sampleNum));
882
883 return programState;
884}

被这些函数引用 RendererUniformBatch().

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

◆ createSepiaProgramState()

cocos2d::backend::ProgramState * RendererUniformBatch::createSepiaProgramState ( )
protected

在文件 NewRendererTest.cpp886 行定义.

887{
888 const std::string shaderName("Shaders/example_Sepia.fsh");
889
890 // outline shader
891 auto fileUtiles = FileUtils::getInstance();
892 auto fragmentFullPath = fileUtiles->fullPathForFilename(shaderName);
893 auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
894 auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, fragSource.c_str());
895 auto programState = new backend::ProgramState(program);
896 programState->autorelease();
897 CC_SAFE_RELEASE(program);
898 return programState;
899}

被这些函数引用 RendererUniformBatch().

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

◆ subtitle()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp906 行定义.

907{
908 return "Only 9 draw calls should appear";
909}

◆ title()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp901 行定义.

902{
903 return "RendererUniformBatch";
904}

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