PuzzleSDK
SpriteBlur类 参考
+ 类 SpriteBlur 继承关系图:
+ SpriteBlur 的协作图:

Public 成员函数

 ~SpriteBlur ()
 
bool initWithTexture (Texture2D *texture, const Rect &rect)
 
void initProgram ()
 
void setBlurRadius (float radius)
 
void setBlurSampleNum (float num)
 

静态 Public 成员函数

static SpriteBlurcreate (const char *pszFileName)
 

Protected 属性

float _blurRadius
 
float _blurSampleNum
 

详细描述

在文件 ShaderTest.cpp409 行定义.

构造及析构函数说明

◆ ~SpriteBlur()

SpriteBlur::~SpriteBlur ( )

在文件 ShaderTest.cpp425 行定义.

426{
427}

成员函数说明

◆ create()

SpriteBlur * SpriteBlur::create ( const char *  pszFileName)
static

在文件 ShaderTest.cpp429 行定义.

430{
431 SpriteBlur* pRet = new (std::nothrow) SpriteBlur();
432 if (pRet)
433 {
434 bool result = pRet->initWithFile("");
435 log("Test call Sprite::initWithFile with bad file name result is : %s", result ? "true" : "false");
436 }
437
438 if (pRet && pRet->initWithFile(pszFileName))
439 {
440 pRet->autorelease();
441 }
442 else
443 {
444 CC_SAFE_DELETE(pRet);
445 }
446
447 return pRet;
448}

被这些函数引用 ShaderBlur::init().

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

◆ initProgram()

void SpriteBlur::initProgram ( )

在文件 ShaderTest.cpp471 行定义.

472{
473 std::string fragSource = FileUtils::getInstance()->getStringFromFile(
474 FileUtils::getInstance()->fullPathForFilename("Shaders/example_Blur.fsh"));
475
476 auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, fragSource.data());
477 auto programState = new backend::ProgramState(program);
478 setProgramState(programState);
479 CC_SAFE_RELEASE(programState);
480 CC_SAFE_RELEASE(program);
481
482 auto size = getTexture()->getContentSizeInPixels();
483
484 SET_UNIFORM(_programState, "resolution", size);
485 SET_UNIFORM(_programState, "blurRadius", _blurRadius);
486 SET_UNIFORM(_programState, "sampleNum", 7.0f);
487 SET_UNIFORM(_programState, "u_PMatrix", Director::getInstance()->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION));
488}
#define SET_UNIFORM(ps, name, value)
Definition: ShaderTest.cpp:34
float _blurRadius
Definition: ShaderTest.cpp:421

引用了 _blurRadius , 以及 SET_UNIFORM.

被这些函数引用 initWithTexture().

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

◆ initWithTexture()

bool SpriteBlur::initWithTexture ( Texture2D *  texture,
const Rect &  rect 
)

在文件 ShaderTest.cpp450 行定义.

451{
452 _blurRadius = 0;
453 if( Sprite::initWithTexture(texture, rect) )
454 {
455#if CC_ENABLE_CACHE_TEXTURE_DATA
456 auto listener = EventListenerCustom::create(EVENT_RENDERER_RECREATED, [this](EventCustom* event){
457 initProgram();
458 });
459
460 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
461#endif
462
463 initProgram();
464
465 return true;
466 }
467
468 return false;
469}
void initProgram()
Definition: ShaderTest.cpp:471

引用了 _blurRadius , 以及 initProgram().

+ 函数调用图:

◆ setBlurRadius()

void SpriteBlur::setBlurRadius ( float  radius)

在文件 ShaderTest.cpp490 行定义.

491{
492 _blurRadius = radius;
493 SET_UNIFORM(_programState, "blurRadius", _blurRadius);
494}

引用了 _blurRadius , 以及 SET_UNIFORM.

被这些函数引用 ShaderBlur::onRadiusChanged().

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

◆ setBlurSampleNum()

void SpriteBlur::setBlurSampleNum ( float  num)

在文件 ShaderTest.cpp496 行定义.

497{
498 _blurSampleNum = num;
499 SET_UNIFORM(_programState, "sampleNum", _blurSampleNum);
500}
float _blurSampleNum
Definition: ShaderTest.cpp:422

引用了 _blurSampleNum , 以及 SET_UNIFORM.

被这些函数引用 ShaderBlur::onSampleNumChanged().

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

类成员变量说明

◆ _blurRadius

float SpriteBlur::_blurRadius
protected

在文件 ShaderTest.cpp421 行定义.

被这些函数引用 initProgram(), initWithTexture() , 以及 setBlurRadius().

◆ _blurSampleNum

float SpriteBlur::_blurSampleNum
protected

在文件 ShaderTest.cpp422 行定义.

被这些函数引用 setBlurSampleNum().


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