PuzzleSDK
Sprite3DPropertyTest类 参考

#include <Sprite3DTest.h>

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

Public 成员函数

 CREATE_FUNC (Sprite3DPropertyTest)
 
 Sprite3DPropertyTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
virtual void update (float delta) override
 
void printMeshName (cocos2d::Ref *sender)
 
void removeUsedTexture (cocos2d::Ref *sender)
 
void resetTexture (cocos2d::Ref *sender)
 
void refreshSpriteRender ()
 
- Public 成员函数 继承自 Sprite3DTestDemo
virtual ~Sprite3DTestDemo ()
 
- 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 属性

cocos2d::Sprite3D * _sprite
 
cocos2d::Texture2D * _meshTex
 
std::string _texFile
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 Sprite3DTest.h589 行定义.

构造及析构函数说明

◆ Sprite3DPropertyTest()

Sprite3DPropertyTest::Sprite3DPropertyTest ( )

在文件 Sprite3DTest.cpp2597 行定义.

2598{
2599 auto s = Director::getInstance()->getWinSize();
2600
2601 auto camera = Camera::createPerspective(40, s.width / s.height, 0.01f, 1000.f);
2602 camera->setCameraFlag(CameraFlag::USER1);
2603 camera->setPosition3D(Vec3(0.f, 50.f, 200.f));
2604 camera->lookAt(Vec3(0.f, 0.f, 0.f));
2605 addChild(camera);
2606
2607 _sprite = Sprite3D::create("Sprite3DTest/orc.c3b");
2608 _sprite->setPosition(20.f, 0.f);
2609 _sprite->setRotation3D(Vec3(0.0f, 180.0f, 0.0f));
2610 _meshTex = _sprite->getMesh()->getTexture();
2611 _texFile = _meshTex->getPath();
2612 addChild(_sprite);
2613
2614 setCameraMask(2);
2615
2616 //auto listener = EventListenerTouchAllAtOnce::create();
2618 //_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
2619
2620 TTFConfig ttfConfig("fonts/arial.ttf", 20);
2621
2622 auto label1 = Label::createWithTTF(ttfConfig, "Print Mesh Name");
2623 auto item1 = MenuItemLabel::create(label1, CC_CALLBACK_1(Sprite3DPropertyTest::printMeshName, this));
2624 auto label2 = Label::createWithTTF(ttfConfig, "Remove Used Texture");
2625 auto item2 = MenuItemLabel::create(label2, CC_CALLBACK_1(Sprite3DPropertyTest::removeUsedTexture, this));
2626 auto label3 = Label::createWithTTF(ttfConfig, "Reset");
2627 auto item3 = MenuItemLabel::create(label3, CC_CALLBACK_1(Sprite3DPropertyTest::resetTexture, this));
2628
2629 item1->setPosition(Vec2(VisibleRect::left().x + 100, VisibleRect::bottom().y + item1->getContentSize().height * 4));
2630 item2->setPosition(Vec2(VisibleRect::left().x + 100, VisibleRect::bottom().y + item1->getContentSize().height * 5));
2631 item3->setPosition(Vec2(VisibleRect::left().x + 100, VisibleRect::bottom().y + item1->getContentSize().height * 6));
2632
2633 auto pMenu1 = Menu::create(item1, item2, item3,nullptr);
2634 pMenu1->setPosition(Vec2(0.0f, 0.0f));
2635 this->addChild(pMenu1, 10);
2636
2637 scheduleUpdate();
2638}
std::string _texFile
Definition: Sprite3DTest.h:606
void resetTexture(cocos2d::Ref *sender)
void printMeshName(cocos2d::Ref *sender)
cocos2d::Texture2D * _meshTex
Definition: Sprite3DTest.h:605
cocos2d::Sprite3D * _sprite
Definition: Sprite3DTest.h:604
void removeUsedTexture(cocos2d::Ref *sender)
static cocos2d::Vec2 bottom()
Definition: VisibleRect.cpp:63
static cocos2d::Vec2 left()
Definition: VisibleRect.cpp:45

引用了 _meshTex, _sprite, _texFile, VisibleRect::bottom(), VisibleRect::left(), printMeshName(), removeUsedTexture() , 以及 resetTexture().

+ 函数调用图:

成员函数说明

◆ CREATE_FUNC()

Sprite3DPropertyTest::CREATE_FUNC ( Sprite3DPropertyTest  )

◆ printMeshName()

void Sprite3DPropertyTest::printMeshName ( cocos2d::Ref *  sender)

在文件 Sprite3DTest.cpp2652 行定义.

2653{
2654 CCLOG("MeshName Begin");
2655 Vector<Mesh*> meshes =_sprite->getMeshes();
2656 for(Mesh* mesh : meshes)
2657 {
2658 log("MeshName: %s ", mesh->getName().c_str());
2659 }
2660 CCLOG("MeshName End");
2661}

引用了 _sprite.

被这些函数引用 Sprite3DPropertyTest().

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

◆ refreshSpriteRender()

void Sprite3DPropertyTest::refreshSpriteRender ( )

在文件 Sprite3DTest.cpp2680 行定义.

2681{
2682 Vector<Mesh*> meshes = _sprite->getMeshes();
2683 for (Mesh* mesh : meshes)
2684 {
2685 std::string file = mesh->getTextureFileName();
2686 Texture2D* cacheTex = Director::getInstance()->getTextureCache()->getTextureForKey(file);
2687 if (cacheTex == nullptr)
2688 {
2689 unsigned char data[] = { 255, 0, 0, 255 };//1*1 red picture
2690 Image * image = new (std::nothrow) Image();
2691 image->initWithRawData(data, sizeof(data), 1, 1, sizeof(unsigned char));
2692 cacheTex = Director::getInstance()->getTextureCache()->addImage(image, "/dummyTexture");
2693 image->release();
2694 }
2695 mesh->setTexture(cacheTex, cocos2d::NTextureData::Usage::Diffuse, false);
2696 }
2697}

引用了 _sprite.

被这些函数引用 removeUsedTexture() , 以及 resetTexture().

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

◆ removeUsedTexture()

void Sprite3DPropertyTest::removeUsedTexture ( cocos2d::Ref *  sender)

在文件 Sprite3DTest.cpp2662 行定义.

2663{
2664 if (_meshTex != nullptr)
2665 {
2666 Director::getInstance()->getTextureCache()->removeTexture(_meshTex);
2667 this->refreshSpriteRender();
2668 }
2669}

引用了 _meshTex , 以及 refreshSpriteRender().

被这些函数引用 Sprite3DPropertyTest().

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

◆ resetTexture()

void Sprite3DPropertyTest::resetTexture ( cocos2d::Ref *  sender)

在文件 Sprite3DTest.cpp2671 行定义.

2672{
2673 if (_meshTex != nullptr)
2674 {
2675 _meshTex = Director::getInstance()->getTextureCache()->addImage(_texFile);
2676 this->refreshSpriteRender();
2677 }
2678}

引用了 _meshTex, _texFile , 以及 refreshSpriteRender().

被这些函数引用 Sprite3DPropertyTest().

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

◆ subtitle()

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

重载 TestCase .

在文件 Sprite3DTest.cpp2643 行定义.

2644{
2645 return "";
2646}

◆ title()

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

重载 Sprite3DTestDemo .

在文件 Sprite3DTest.cpp2639 行定义.

2640{
2641 return "Sprite3DPropertyTest Test";
2642}

◆ update()

void Sprite3DPropertyTest::update ( float  delta)
overridevirtual

在文件 Sprite3DTest.cpp2648 行定义.

2649{
2650
2651}

类成员变量说明

◆ _meshTex

cocos2d::Texture2D* Sprite3DPropertyTest::_meshTex
protected

在文件 Sprite3DTest.h605 行定义.

被这些函数引用 removeUsedTexture(), resetTexture() , 以及 Sprite3DPropertyTest().

◆ _sprite

cocos2d::Sprite3D* Sprite3DPropertyTest::_sprite
protected

在文件 Sprite3DTest.h604 行定义.

被这些函数引用 printMeshName(), refreshSpriteRender() , 以及 Sprite3DPropertyTest().

◆ _texFile

std::string Sprite3DPropertyTest::_texFile
protected

在文件 Sprite3DTest.h606 行定义.

被这些函数引用 resetTexture() , 以及 Sprite3DPropertyTest().


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