Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
VulkanUtils.hpp
1#pragma once
2
3#include <Common/Graphics/Formats.hpp>
4#include <vulkan/vulkan.h>
5#include <stdint.h>
6
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(
11 uint32_t width,
12 uint32_t height,
13 uint32_t depth,
14 uint32_t mipLevels,
15 uint32_t layerCount,
16 VkFormat format,
17 VkImageTiling tiling,
18 VkImageUsageFlags usage,
19 VkMemoryPropertyFlags properties,
20 VkImage& image,
21 VkDeviceMemory& imageMemory,
22 VkImageCreateFlags flags
23 );
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(
31 VkBuffer buffer,
32 VkImage image,
33 VkImageAspectFlags aspect,
34 uint32_t width,
35 uint32_t height,
36 uint32_t depth,
37 uint32_t mipLevels,
38 uint32_t arrayLayers
39 );
40}