From 5b2f2dbb9f47637c78b74579582a13c3c469467c Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 7 Jun 2025 01:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E5=91=BD=E5=90=8D=E5=92=8C?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/hgl/graph/RenderFramework.h | 2 +- inc/hgl/graph/VKCommandBuffer.h | 10 ++++++---- src/SceneGraph/RenderFramework.cpp | 2 ++ src/SceneGraph/render/RenderTask.cpp | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/inc/hgl/graph/RenderFramework.h b/inc/hgl/graph/RenderFramework.h index d902902a..2f291394 100644 --- a/inc/hgl/graph/RenderFramework.h +++ b/inc/hgl/graph/RenderFramework.h @@ -50,7 +50,7 @@ protected: CameraComponentManager *camera_component_manager=nullptr; LightComponentManager *light_component_manager =nullptr; -protected: +protected: //RenderContext,未来合并成一个RenderContext结构 Scene * default_scene =nullptr; Camera * default_camera =nullptr; diff --git a/inc/hgl/graph/VKCommandBuffer.h b/inc/hgl/graph/VKCommandBuffer.h index bba6b595..d84f76eb 100644 --- a/inc/hgl/graph/VKCommandBuffer.h +++ b/inc/hgl/graph/VKCommandBuffer.h @@ -50,8 +50,9 @@ public: };//class VulkanCmdBuffer class DescriptorBinding; + using DescriptorBindingPtr=DescriptorBinding *; -using DescriptorBindingArray=DescriptorBindingPtr[size_t(DescriptorSetType::RANGE_SIZE)]; +using DescriptorBindingPtrArray=DescriptorBindingPtr[size_t(DescriptorSetType::RANGE_SIZE)]; class RenderCmdBuffer:public VulkanCmdBuffer { @@ -66,10 +67,11 @@ class RenderCmdBuffer:public VulkanCmdBuffer /* * 绝大部分desc绑定会全部使用这些自动绑定器绑定 * 该数据在渲染前分别会有各自的模块设置进来 - * 比如DescriptSetType::RenderTarget即该由RenderTarget模块设置 - * ::Scene的自然由Scene模块设置 + * 比如 + * DescriptSetType::RenderTarget 即该由RenderTarget模块设置 + * DescriptSetType::Scene 的自然由Scene模块设置 */ - DescriptorBindingArray desc_binding{}; + DescriptorBindingPtrArray desc_binding{}; private: diff --git a/src/SceneGraph/RenderFramework.cpp b/src/SceneGraph/RenderFramework.cpp index 6e2bde18..b6a381f4 100644 --- a/src/SceneGraph/RenderFramework.cpp +++ b/src/SceneGraph/RenderFramework.cpp @@ -135,6 +135,8 @@ bool RenderFramework::Init(uint w,uint h) void RenderFramework::CreateDefaultRenderer() { + + SAFE_CLEAR(default_renderer) default_renderer=new Renderer(GetSwapchainRenderTarget()); diff --git a/src/SceneGraph/render/RenderTask.cpp b/src/SceneGraph/render/RenderTask.cpp index 3168e7b7..61a43cd0 100644 --- a/src/SceneGraph/render/RenderTask.cpp +++ b/src/SceneGraph/render/RenderTask.cpp @@ -50,8 +50,8 @@ namespace hgl::graph if(!render_list) return(false); - //记往不需要也千万不要手动render_list->Clear,因为那会完全释放掉所有数据 - //render_list->Expend会自己复位所有数据,但并不释放内存 + //记往不需要,也千万不要手动render_list->Clear,因为那会释放内存。再次使用时重新分配 + //render_list->Expend会自己复位所有数据,且并不会释放内存 render_list->Expend(root); return(true);