16#ifndef AEONGAMES_VULKANUTILITIES_HPP
17#define AEONGAMES_VULKANUTILITIES_HPP
18#include "vulkan/vulkan.h"
22#include "aeongames/Pipeline.hpp"
25 static_assert ( VK_SUCCESS == 0,
"VK_SUCCESS is NOT zero!" );
27 VKAPI_ATTR VkBool32 VKAPI_CALL
30 VkDebugUtilsMessageSeverityFlagBitsEXT aMessageSeverity,
31 VkDebugUtilsMessageTypeFlagsEXT aMessageTypes,
32 const VkDebugUtilsMessengerCallbackDataEXT* aCallbackData,
36 VkDescriptorPool
CreateDescriptorPool (
const VkDevice& aVkDevice,
const std::vector<VkDescriptorPoolSize>& aVkDescriptorPoolSizes );
38 VkDescriptorSet
CreateDescriptorSet (
const VkDevice& aVkDevice,
const VkDescriptorPool& aVkDescriptorPool,
const VkDescriptorSetLayout& aVkDescriptorSetLayout, uint32_t aDescriptorSetCount = 1 );
<- This is here just for the literals
VKAPI_ATTR VkBool32 VKAPI_CALL DebugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT aMessageSeverity, VkDebugUtilsMessageTypeFlagsEXT aMessageTypes, const VkDebugUtilsMessengerCallbackDataEXT *aCallbackData, void *aUserData)
Vulkan debug messenger callback.
VkDescriptorPool CreateDescriptorPool(const VkDevice &aVkDevice, const std::vector< VkDescriptorPoolSize > &aVkDescriptorPoolSizes)
Create a Vulkan descriptor pool from the given pool sizes.
void DestroyDescriptorPool(const VkDevice &aVkDevice, VkDescriptorPool aVkDescriptorPool)
Destroy a Vulkan descriptor pool.
const char * GetVulkanResultString(VkResult aResult)
Convert a VkResult code to a human-readable string.
VkDescriptorSet CreateDescriptorSet(const VkDevice &aVkDevice, const VkDescriptorPool &aVkDescriptorPool, const VkDescriptorSetLayout &aVkDescriptorSetLayout, uint32_t aDescriptorSetCount)
Allocate a Vulkan descriptor set from the given pool and layout.