3#include <Common/Graphics/Formats.hpp>
4#include <vulkan/vulkan.h>
7namespace Grindstone::GraphicsAPI::Vulkan {
8 VkImageView CreateImageView(VkImage image, VkImageViewType imageViewType, VkFormat format, VkImageAspectFlags aspectFlags, uint32_t mipLevels, uint32_t arrayLayers);
9 VkImageView CreateCubemapView(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, uint32_t mipLevels);
10 VkDeviceSize CreateImage(
18 VkImageUsageFlags usage,
19 VkMemoryPropertyFlags properties,
21 VkDeviceMemory& imageMemory,
22 VkImageCreateFlags flags
24 void CreateBuffer(
const char* debugName, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory);
25 VkCommandBuffer BeginSingleTimeCommands();
26 void EndSingleTimeCommands(VkCommandBuffer commandBuffer);
27 VkShaderStageFlags TranslateShaderStageBits(ShaderStageBit shaderStageBits);
28 void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size);
29 void TransitionImageLayout(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t mipLevels, uint32_t layerCount);
30 void CopyBufferToImage(
33 VkImageAspectFlags aspect,