From dafcf9bfeff0866f78a395b4262260bbfecfca8e Mon Sep 17 00:00:00 2001 From: ChestnutYueyue <952134128@qq.com> Date: Mon, 16 Mar 2026 22:22:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E7=A4=BA=E4=BE=8B):=20=E5=B0=86?= =?UTF-8?q?=E7=BA=B9=E7=90=86=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91=E4=BB=8E?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=9B=91=E5=90=AC=E7=A7=BB=E8=87=B3=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=BE=AA=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 简化图像显示示例的纹理加载机制,移除对事件系统的依赖。 改为在每帧更新时检查纹理是否已加载,避免在渲染事件中设置纹理, 使代码更直观并减少不必要的监听器管理。 --- examples/image_display_demo/main.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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) {