Add vertex, index and uniform buffers

This commit is contained in:
Thraix
2023-01-11 19:18:16 +01:00
parent 0396318d2d
commit fa207c591c
13 changed files with 1208 additions and 687 deletions
+41
View File
@@ -0,0 +1,41 @@
#pragma once
#include <vulkan/vulkan.h>
#include <optional>
#include <vector>
struct QueueFamilies
{
std::optional<uint32_t> graphicsFamily;
std::optional<uint32_t> presentFamily;
QueueFamilies(VkSurfaceKHR surface, VkPhysicalDevice device)
{
uint32_t queueFamilyCount = 0;
vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr);
std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount);
vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data());
int i = 0;
for (auto&& queueFamily : queueFamilies)
{
if(queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT)
{
graphicsFamily = i;
}
VkBool32 presentSupport = false;
vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport);
if (presentSupport)
{
presentFamily = i;
}
i++;
}
}
bool AllRequiredFamiliesSupported()
{
return graphicsFamily.has_value() && presentFamily.has_value();
}
};