From 60ba3e4df2a4f602c030e2026b38f1648083bb0c Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 16 Mar 2024 00:41:20 +0800 Subject: [PATCH] improved safe. --- CMCore | 2 +- example/common/VulkanAppFramework.h | 1 + src/SceneGraph/Vulkan/VKCommandBufferRender.cpp | 9 +++------ src/SceneGraph/Vulkan/VKRenderResource.cpp | 2 ++ src/SceneGraph/font/FontSourceMulti.cpp | 6 +++++- src/ShaderGen/MaterialFileLoader.cpp | 2 ++ 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CMCore b/CMCore index 2f93a1bb..74caaea5 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit 2f93a1bb004cf0e99f51735dc2f65967a3ded1b8 +Subproject commit 74caaea5669441eb27dae3265803e352c008d065 diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index addc63a1..0c2a7b98 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -460,6 +460,7 @@ public: { camera=wc; cur_time=0; + last_time=0; } const Vector2f &GetMouseCoord()const{return mouse_pos;} diff --git a/src/SceneGraph/Vulkan/VKCommandBufferRender.cpp b/src/SceneGraph/Vulkan/VKCommandBufferRender.cpp index 88370e13..ee823705 100644 --- a/src/SceneGraph/Vulkan/VKCommandBufferRender.cpp +++ b/src/SceneGraph/Vulkan/VKCommandBufferRender.cpp @@ -38,13 +38,10 @@ void RenderCmdBuffer::SetFBO(Framebuffer *fb) clear_values[cv_count-1].depthStencil.depth = 1.0f; clear_values[cv_count-1].depthStencil.stencil = 0; } - else + else if(clear_values) { - if(clear_values) - { - hgl_free(clear_values); - clear_values=nullptr; - } + hgl_free(clear_values); + clear_values=nullptr; } render_area.offset.x=0; diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index a02274b1..d63a59d5 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -161,6 +161,8 @@ Texture2DArray *RenderResource::CreateTexture2DArray(const AnsiString &name,cons if(ta) Add(ta); + else + return nullptr; #ifdef _DEBUG DebugUtils *du=device->GetDebugUtils(); diff --git a/src/SceneGraph/font/FontSourceMulti.cpp b/src/SceneGraph/font/FontSourceMulti.cpp index b4a0fc2e..d054d69d 100644 --- a/src/SceneGraph/font/FontSourceMulti.cpp +++ b/src/SceneGraph/font/FontSourceMulti.cpp @@ -9,9 +9,13 @@ namespace hgl default_source=fs; if(fs) + { fs->RefAcquire(this); - max_char_height=fs->GetCharHeight(); + max_char_height=fs->GetCharHeight(); + } + else + max_char_height=0; } FontSourceMulti::~FontSourceMulti() diff --git a/src/ShaderGen/MaterialFileLoader.cpp b/src/ShaderGen/MaterialFileLoader.cpp index b52cf6fb..1080c64a 100644 --- a/src/ShaderGen/MaterialFileLoader.cpp +++ b/src/ShaderGen/MaterialFileLoader.cpp @@ -120,6 +120,8 @@ namespace public: + UBOParse()=default; + void Clear() { hgl_zero(ubo_data);