PuzzleSDK
RendererUniformBatch2类 参考

#include <NewRendererTest.h>

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

Public 成员函数

 CREATE_FUNC (RendererUniformBatch2)
 
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 成员函数

 RendererUniformBatch2 ()
 
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.h233 行定义.

构造及析构函数说明

◆ RendererUniformBatch2()

RendererUniformBatch2::RendererUniformBatch2 ( )
protected

在文件 NewRendererTest.cpp916 行定义.

917{
918 Size s = Director::getInstance()->getWinSize();
919
920 auto blurState = createBlurProgramState();
921 auto sepiaState = createSepiaProgramState();
922
923 auto x_inc = s.width / 20;
924 auto y_inc = s.height / 6;
925
926 for (int y=0; y<6; ++y)
927 {
928 for (int x=0; x<20; ++x)
929 {
930 auto sprite = Sprite::create("Images/grossini.png");
931 sprite->setPosition(Vec2(x * x_inc, y * y_inc));
932 sprite->setScale(0.4);
933 addChild(sprite);
934
935 auto r = CCRANDOM_0_1();
936 if (r < 0.33)
937 sprite->setProgramState(sepiaState);
938 else if (r < 0.66)
939 sprite->setProgramState(blurState);
940 }
941 }
942}
cocos2d::backend::ProgramState * createSepiaProgramState()
cocos2d::backend::ProgramState * createBlurProgramState()

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

+ 函数调用图:

成员函数说明

◆ CREATE_FUNC()

RendererUniformBatch2::CREATE_FUNC ( RendererUniformBatch2  )

◆ createBlurProgramState()

backend::ProgramState * RendererUniformBatch2::createBlurProgramState ( )
protected

在文件 NewRendererTest.cpp944 行定义.

945{
946 const std::string shaderName("Shaders/example_Blur.fsh");
947
948 // outline shader
949 auto fileUtiles = FileUtils::getInstance();
950 auto fragmentFullPath = fileUtiles->fullPathForFilename(shaderName);
951 auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
952 auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, fragSource.c_str());
953 auto programState = new backend::ProgramState(program);
954 programState->autorelease();
955 CC_SAFE_RELEASE(program);
956
957 backend::UniformLocation loc = programState->getUniformLocation("resolution");
958 auto resolution = Vec2(85, 121);
959 programState->setUniform(loc, &resolution, sizeof(resolution));
960
961 loc = programState->getUniformLocation("blurRadius");
962 float blurRadius = 10.0f;
963 programState->setUniform(loc, &blurRadius, sizeof(blurRadius));
964
965 loc = programState->getUniformLocation("sampleNum");
966 float sampleNum = 5.0f;
967 programState->setUniform(loc, &sampleNum, sizeof(sampleNum));
968
969 return programState;
970}

被这些函数引用 RendererUniformBatch2().

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

◆ createSepiaProgramState()

backend::ProgramState * RendererUniformBatch2::createSepiaProgramState ( )
protected

在文件 NewRendererTest.cpp972 行定义.

973{
974 const std::string shaderName("Shaders/example_Sepia.fsh");
975
976 // outline shader
977 auto fileUtiles = FileUtils::getInstance();
978 auto fragmentFullPath = fileUtiles->fullPathForFilename(shaderName);
979 auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
980 auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, fragSource.c_str());
981 auto programState = new backend::ProgramState(program);
982 programState->autorelease();
983 CC_SAFE_RELEASE(program);
984 return programState;
985}

被这些函数引用 RendererUniformBatch2().

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

◆ subtitle()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp992 行定义.

993{
994 return "Mixing different shader states should work ok";
995}

◆ title()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp987 行定义.

988{
989 return "RendererUniformBatch 2";
990}

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