From 09054f7ae00aad0458de465a7f0b780a91c694dd Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 13 Oct 2022 14:07:26 -0700 Subject: Make `optimalClearValue` optional in `ITextureResource::Desc` (#2450) Co-authored-by: Yong He --- tools/gfx/vulkan/vk-framebuffer.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'tools/gfx/vulkan/vk-framebuffer.cpp') diff --git a/tools/gfx/vulkan/vk-framebuffer.cpp b/tools/gfx/vulkan/vk-framebuffer.cpp index 0cc2a7799..e3e28816e 100644 --- a/tools/gfx/vulkan/vk-framebuffer.cpp +++ b/tools/gfx/vulkan/vk-framebuffer.cpp @@ -164,20 +164,26 @@ Result FramebufferImpl::init(DeviceImpl* renderer, const IFramebuffer::Desc& des auto resourceView = static_cast(desc.renderTargetViews[i]); renderTargetViews[i] = resourceView; imageViews[i] = resourceView->m_view; - memcpy( - &m_clearValues[i], - &resourceView->m_texture->getDesc()->optimalClearValue.color, - sizeof(gfx::ColorClearValue)); + if (resourceView->m_texture->getDesc()->optimalClearValue) + { + memcpy( + &m_clearValues[i], + &resourceView->m_texture->getDesc()->optimalClearValue->color, + sizeof(gfx::ColorClearValue)); + } } if (dsv) { imageViews[desc.renderTargetCount] = dsv->m_view; depthStencilView = dsv; - memcpy( - &m_clearValues[desc.renderTargetCount], - &dsv->m_texture->getDesc()->optimalClearValue.depthStencil, - sizeof(gfx::DepthStencilClearValue)); + if (dsv->m_texture->getDesc()->optimalClearValue) + { + memcpy( + &m_clearValues[desc.renderTargetCount], + &dsv->m_texture->getDesc()->optimalClearValue->depthStencil, + sizeof(gfx::DepthStencilClearValue)); + } } // Create framebuffer. -- cgit v1.2.3