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);