From 31e856f397ee28cb85f13f2aaef2839ddfe3c4f4 Mon Sep 17 00:00:00 2001 From: ChestnutYueyue <952134128@qq.com> Date: Mon, 16 Mar 2026 21:25:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=E7=BA=B9=E7=90=86?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91=E4=BB=8Eupdate=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E7=A7=BB=E8=87=B3=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将纹理加载和设置操作从每帧执行的update方法移动到createImageSprite初始化方法中,避免每帧重复加载资源,提高运行效率。 --- examples/image_display_demo/main.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/examples/image_display_demo/main.cpp b/examples/image_display_demo/main.cpp index 3117abf..f01fed2 100644 --- a/examples/image_display_demo/main.cpp +++ b/examples/image_display_demo/main.cpp @@ -14,18 +14,6 @@ public: void update(float dt) override { Scene::update(dt); - auto *rhiModule = RHIModule::get(); - if (!rhiModule || !rhiModule->getDevice()) { - return; - } - auto assets = getAssets(); - if (!assets || !spriteRenderer_) { - return; - } - auto texture = assets->load("assets/test.png"); - if (texture.isValid()) { - spriteRenderer_->setTexture(texture); - } } private: @@ -41,6 +29,9 @@ private: } void createImageSprite() { + auto assets = getAssets(); + auto texture = assets->load("assets/test.png"); + auto spriteNode = makePtr(); spriteNode->setName("ImageSprite"); spriteNode->setPosition(640.0f, 360.0f); @@ -48,6 +39,9 @@ private: spriteRenderer_ = makePtr(); spriteNode->addComponent(spriteRenderer_); addChild(spriteNode); + if (texture.isValid()) { + spriteRenderer_->setTexture(texture); + } } Ptr spriteRenderer_; };