diff --git a/examples/image_display_demo/main.cpp b/examples/image_display_demo/main.cpp index 2081a3f..bb2e2d6 100644 --- a/examples/image_display_demo/main.cpp +++ b/examples/image_display_demo/main.cpp @@ -1,5 +1,4 @@ #include -#include #include #include @@ -11,16 +10,18 @@ public: Scene::onEnter(); createCamera(); createImageSprite(); - onRenderBeginListener_.bind([this]() { trySetupTexture(); }); } - void onExit() override { - onRenderBeginListener_.reset(); - Scene::onExit(); + void update(float dt) override { + Scene::update(dt); + trySetupTexture(); } private: void trySetupTexture() { + if (textureLoaded_) { + return; + } auto *rhiModule = RHIModule::get(); if (!rhiModule || !rhiModule->getDevice()) { return; @@ -32,7 +33,7 @@ private: auto texture = assets->load("assets/test.png"); if (texture.isValid()) { spriteRenderer_->setTexture(texture); - onRenderBeginListener_.reset(); + textureLoaded_ = true; } } void createCamera() { @@ -56,7 +57,7 @@ private: addChild(spriteNode); } Ptr spriteRenderer_; - events::OnRenderBegin::Listener onRenderBeginListener_; + bool textureLoaded_ = false; }; int main(int argc, char **argv) {