VulkanRenderer: Improve ImageAspectFlags handling

This commit is contained in:
Jérôme Leclercq
2021-12-16 18:29:15 +01:00
parent 07bf924092
commit 38b143ce8f
4 changed files with 46 additions and 59 deletions

View File

@@ -30,6 +30,7 @@ namespace Nz
inline VkPipelineStageFlagBits ToVulkan(PipelineStage pipelineStage);
inline VkPipelineStageFlags ToVulkan(PipelineStageFlags pipelineStages);
inline VkFormat ToVulkan(PixelFormat pixelFormat);
inline VkImageAspectFlags ToVulkan(PixelFormatContent pixelFormatContent);
inline VkPrimitiveTopology ToVulkan(PrimitiveMode primitiveMode);
inline VkCompareOp ToVulkan(RendererComparison comparison);
inline VkFilter ToVulkan(SamplerFilter samplerFilter);

View File

@@ -272,6 +272,23 @@ namespace Nz
return {};
}
VkImageAspectFlags ToVulkan(PixelFormatContent pixelFormatContent)
{
switch (pixelFormatContent)
{
case PixelFormatContent::Undefined:
break;
case PixelFormatContent::ColorRGBA: return VK_IMAGE_ASPECT_COLOR_BIT;
case PixelFormatContent::Depth: return VK_IMAGE_ASPECT_DEPTH_BIT;
case PixelFormatContent::DepthStencil: return VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
case PixelFormatContent::Stencil: return VK_IMAGE_ASPECT_STENCIL_BIT;
}
NazaraError("Unhandled PixelFormatContent 0x" + NumberToString(UnderlyingCast(pixelFormatContent), 16));
return VK_IMAGE_ASPECT_COLOR_BIT;
}
inline VkPrimitiveTopology ToVulkan(PrimitiveMode primitiveMode)
{
switch (primitiveMode)