Hid Vulkan helper structs
This commit is contained in:
@@ -4,28 +4,6 @@
|
||||
|
||||
namespace PB::Renderer
|
||||
{
|
||||
struct QueueFamilyIndices
|
||||
{
|
||||
static constexpr uint32_t UNDEFINED_UINT32_VALUE = 0xFFFFFFFF;
|
||||
|
||||
uint32_t graphicsFamily = UNDEFINED_UINT32_VALUE;
|
||||
uint32_t presentFamily = UNDEFINED_UINT32_VALUE;
|
||||
|
||||
[[nodiscard]] bool Complete() const
|
||||
{
|
||||
return
|
||||
graphicsFamily != UNDEFINED_UINT32_VALUE &&
|
||||
presentFamily != UNDEFINED_UINT32_VALUE;
|
||||
}
|
||||
};
|
||||
|
||||
struct SwapChainSupportDetails
|
||||
{
|
||||
VkSurfaceCapabilitiesKHR capabilities;
|
||||
std::vector<VkSurfaceFormatKHR> formats;
|
||||
std::vector<VkPresentModeKHR> presentModes;
|
||||
};
|
||||
|
||||
class VulkanManager
|
||||
{
|
||||
public:
|
||||
@@ -111,6 +89,30 @@ namespace PB::Renderer
|
||||
static bool RenderPass(GLFWwindow* window);
|
||||
|
||||
private:
|
||||
// === Internal helper structs === //
|
||||
|
||||
struct QueueFamilyIndices
|
||||
{
|
||||
static constexpr uint32_t UNDEFINED_UINT32_VALUE = 0xFFFFFFFF;
|
||||
|
||||
uint32_t graphicsFamily = UNDEFINED_UINT32_VALUE;
|
||||
uint32_t presentFamily = UNDEFINED_UINT32_VALUE;
|
||||
|
||||
[[nodiscard]] bool Complete() const
|
||||
{
|
||||
return
|
||||
graphicsFamily != UNDEFINED_UINT32_VALUE &&
|
||||
presentFamily != UNDEFINED_UINT32_VALUE;
|
||||
}
|
||||
};
|
||||
|
||||
struct SwapChainSupportDetails
|
||||
{
|
||||
VkSurfaceCapabilitiesKHR capabilities;
|
||||
std::vector<VkSurfaceFormatKHR> formats;
|
||||
std::vector<VkPresentModeKHR> presentModes;
|
||||
};
|
||||
|
||||
// === Vulkan init helpers === //
|
||||
|
||||
static bool IsDeviceSuitable(const VkPhysicalDevice& device);
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace PB::Renderer
|
||||
VkSurfaceKHR VulkanManager::s_Surface = VK_NULL_HANDLE;
|
||||
|
||||
VkPhysicalDevice VulkanManager::s_PhysicalDevice = VK_NULL_HANDLE;
|
||||
QueueFamilyIndices VulkanManager::s_QueueIndices;
|
||||
VulkanManager::QueueFamilyIndices VulkanManager::s_QueueIndices;
|
||||
|
||||
VkDevice VulkanManager::s_Device = VK_NULL_HANDLE;
|
||||
|
||||
@@ -195,7 +195,7 @@ namespace PB::Renderer
|
||||
return indices.Complete() && swapChainAdequate && discreteGPU;
|
||||
}
|
||||
|
||||
QueueFamilyIndices VulkanManager::FindQueueFamilies(const VkPhysicalDevice& device)
|
||||
VulkanManager::QueueFamilyIndices VulkanManager::FindQueueFamilies(const VkPhysicalDevice& device)
|
||||
{
|
||||
QueueFamilyIndices indices;
|
||||
|
||||
@@ -361,7 +361,7 @@ namespace PB::Renderer
|
||||
return true;
|
||||
}
|
||||
|
||||
SwapChainSupportDetails VulkanManager::QuerySwapChainSupport()
|
||||
VulkanManager::SwapChainSupportDetails VulkanManager::QuerySwapChainSupport()
|
||||
{
|
||||
SwapChainSupportDetails details;
|
||||
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(s_PhysicalDevice, s_Surface, &details.capabilities);
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace PB::Renderer
|
||||
|
||||
void VulkanManager::CleanupSwapChain()
|
||||
{
|
||||
for (const VkFramebuffer framebuffer : s_Framebuffers)
|
||||
for (const VkFramebuffer& framebuffer : s_Framebuffers)
|
||||
{
|
||||
vkDestroyFramebuffer(s_Device, framebuffer, nullptr);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace PB::Renderer
|
||||
vkDestroyPipelineLayout(s_Device, s_PipelineLayout, nullptr);
|
||||
vkDestroyRenderPass(s_Device, s_RenderPass, nullptr);
|
||||
|
||||
for (const VkImageView view : s_SwapChainImageViews)
|
||||
for (const VkImageView& view : s_SwapChainImageViews)
|
||||
{
|
||||
vkDestroyImageView(s_Device, view, nullptr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user