#include "type.h" namespace vkn { using api::ResourceState; using api::TextureBarrier; struct VkTextureTransitionDesc { VkAccessFlags srcAccessMask; VkAccessFlags dstAccessMask; VkPipelineStageFlags srcStage; VkPipelineStageFlags dstStage; VkImageLayout mSrcState; VkImageLayout mDstState; }; VkImageLayout vkApiGetAttachmentLayout(VkFormat format, bool includeStencilBit); VkImageLayout vkApiGetImageLayout(ResourceState layout); VkImageMemoryBarrier vkApiGetTextureTransition(VkPipelineStageFlags& mSrcStage, VkPipelineStageFlags& mDstStage, const TextureBarrier& barrier); VkImageAspectFlags vkApiGetImageAspectMask(VkFormat format, bool includeStencilBit); VkImageUsageFlags vkApiGetImageUsageFlags(ResourceState startState); VkImageViewType vkApiGetImageViewType(TextureDimension dimension, uint32_t arraySize); VkImageType vkApiGetImageType(TextureDimension dimension); VkImageCreateFlags vkApiGetImageCreateFlag(TextureDimension dimension, uint32_t arraySize); VkSampleCountFlagBits vkApiGetSmpleCountFlag(SampleCount sample); }