PuzzleSDK
RenderTextureTestDepthStencil类 参考

#include <RenderTextureTest.h>

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

Public 成员函数

 CREATE_FUNC (RenderTextureTestDepthStencil)
 
 RenderTextureTestDepthStencil ()
 
virtual ~RenderTextureTestDepthStencil ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
virtual void draw (cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags) 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
 

Private 成员函数

void onBeforeClear ()
 
void onBeforeStencil ()
 
void onBeforeDraw ()
 
void onAfterDraw ()
 

Private 属性

cocos2d::CallbackCommand _renderCmds [4]
 
cocos2d::RenderTexture * _rend
 
cocos2d::Sprite * _spriteDS
 
cocos2d::Sprite * _spriteDraw
 

额外继承的成员函数

- 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
 

详细描述

在文件 RenderTextureTest.h94 行定义.

构造及析构函数说明

◆ RenderTextureTestDepthStencil()

RenderTextureTestDepthStencil::RenderTextureTestDepthStencil ( )

move sprite half width and height, and draw only where not marked

在文件 RenderTextureTest.cpp484 行定义.

485{
486 auto s = Director::getInstance()->getWinSize();
487
488 _spriteDS = Sprite::create("Images/fire.png");
489 _spriteDS->retain();
490 _spriteDS->setPosition(Vec2(s.width * 0.25f, 0.0f));
491 _spriteDS->setScale(10);
492
493 _spriteDraw = Sprite::create("Images/fire.png");
494 _spriteDraw->retain();
495 _spriteDraw->setPosition(Vec2(s.width * 0.25f, 0.0f));
496 _spriteDraw->setScale(10);
498 _spriteDraw->setPosition(_spriteDraw->getPosition() + Vec2(_spriteDraw->getContentSize().width * _spriteDraw->getScale() * 0.5f, _spriteDraw->getContentSize().height * _spriteDraw->getScale() * 0.5f));
499
500 _rend = RenderTexture::create(s.width, s.height, backend::PixelFormat::RGBA4444, PixelFormat::D24S8);
501
502 _rend->setPosition(Vec2(s.width * 0.5f, s.height * 0.5f));
503
504 this->addChild(_rend);
505}
cocos2d::RenderTexture * _rend

引用了 _rend, _spriteDraw , 以及 _spriteDS.

◆ ~RenderTextureTestDepthStencil()

RenderTextureTestDepthStencil::~RenderTextureTestDepthStencil ( )
virtual

在文件 RenderTextureTest.cpp507 行定义.

508{
509 CC_SAFE_RELEASE(_spriteDraw);
510 CC_SAFE_RELEASE(_spriteDS);
511}

引用了 _spriteDraw , 以及 _spriteDS.

成员函数说明

◆ CREATE_FUNC()

RenderTextureTestDepthStencil::CREATE_FUNC ( RenderTextureTestDepthStencil  )

◆ draw()

void RenderTextureTestDepthStencil::draw ( cocos2d::Renderer *  renderer,
const cocos2d::Mat4 &  transform,
uint32_t  flags 
)
overridevirtual

在文件 RenderTextureTest.cpp513 行定义.

514{
515 _renderCmds[0].init(_globalZOrder);
516 _renderCmds[0].func = CC_CALLBACK_0(RenderTextureTestDepthStencil::onBeforeClear, this);
517 renderer->addCommand(&_renderCmds[0]);
518
519 _rend->beginWithClear(0, 0, 0, 0, 0, 0);
520
521 _renderCmds[1].init(_globalZOrder);
522 _renderCmds[1].func = CC_CALLBACK_0(RenderTextureTestDepthStencil::onBeforeStencil, this);
523 renderer->addCommand(&_renderCmds[1]);
524
525 _spriteDS->visit();
526
527 _renderCmds[2].init(_globalZOrder);
528 _renderCmds[2].func = CC_CALLBACK_0(RenderTextureTestDepthStencil::onBeforeDraw, this);
529 renderer->addCommand(&_renderCmds[2]);
530
531 _spriteDraw->visit();
532
533 _rend->end();
534
535 _renderCmds[3].init(_globalZOrder);
536 _renderCmds[3].func = CC_CALLBACK_0(RenderTextureTestDepthStencil::onAfterDraw, this);
537 renderer->addCommand(&_renderCmds[3]);
538}
cocos2d::CallbackCommand _renderCmds[4]

引用了 _rend, _renderCmds, _spriteDraw, _spriteDS, onAfterDraw(), onBeforeClear(), onBeforeDraw() , 以及 onBeforeStencil().

+ 函数调用图:

◆ onAfterDraw()

void RenderTextureTestDepthStencil::onAfterDraw ( )
private

在文件 RenderTextureTest.cpp559 行定义.

560{
561 Director::getInstance()->getRenderer()->setStencilTest(false);
562}

被这些函数引用 draw().

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

◆ onBeforeClear()

void RenderTextureTestDepthStencil::onBeforeClear ( )
private

在文件 RenderTextureTest.cpp540 行定义.

541{
542 Director::getInstance()->getRenderer()->setStencilWriteMask(0xFF);
543}

被这些函数引用 draw().

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

◆ onBeforeDraw()

void RenderTextureTestDepthStencil::onBeforeDraw ( )
private

在文件 RenderTextureTest.cpp554 行定义.

555{
556 Director::getInstance()->getRenderer()->setStencilCompareFunction(backend::CompareFunction::NOT_EQUAL, 1, 0xFF);
557}

被这些函数引用 draw().

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

◆ onBeforeStencil()

void RenderTextureTestDepthStencil::onBeforeStencil ( )
private

mark sprite quad into stencil buffer

在文件 RenderTextureTest.cpp545 行定义.

546{
548 auto renderer = Director::getInstance()->getRenderer();
549 renderer->setStencilTest(true);
550 renderer->setStencilCompareFunction(backend::CompareFunction::NEVER, 1, 0xFF);
551 renderer->setStencilOperation(backend::StencilOperation::REPLACE, backend::StencilOperation::REPLACE, backend::StencilOperation::REPLACE);
552}

被这些函数引用 draw().

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

◆ subtitle()

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

重载 TestCase .

在文件 RenderTextureTest.cpp569 行定义.

570{
571 return "Circle should be missing 1/4 of its region";
572}

◆ title()

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

重载 TestCase .

在文件 RenderTextureTest.cpp564 行定义.

565{
566 return "Testing depthStencil attachment";
567}

类成员变量说明

◆ _rend

cocos2d::RenderTexture* RenderTextureTestDepthStencil::_rend
private

在文件 RenderTextureTest.h111 行定义.

被这些函数引用 draw() , 以及 RenderTextureTestDepthStencil().

◆ _renderCmds

cocos2d::CallbackCommand RenderTextureTestDepthStencil::_renderCmds[4]
private

在文件 RenderTextureTest.h104 行定义.

被这些函数引用 draw().

◆ _spriteDraw

cocos2d::Sprite* RenderTextureTestDepthStencil::_spriteDraw
private

在文件 RenderTextureTest.h113 行定义.

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

◆ _spriteDS

cocos2d::Sprite* RenderTextureTestDepthStencil::_spriteDS
private

在文件 RenderTextureTest.h112 行定义.

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


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