diff options
Diffstat (limited to 'tools/gfx/vulkan/vk-framebuffer.cpp')
| -rw-r--r-- | tools/gfx/vulkan/vk-framebuffer.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
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<TextureResourceViewImpl*>(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. |
