summaryrefslogtreecommitdiff
path: root/src/window.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-08-12 11:40:24 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-08-12 11:40:24 -0400
commitfc714fcd1d8d7b23abf0a42b2ab8d00a663bb279 (patch)
tree92db69c85d293b10832fca4653399285cd91c6cb /src/window.cpp
parent7cd40ea0dd3659ee599dc842739b9e68286ea213 (diff)
replace some std::vector instances
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 4898d1a..8807d6f 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -72,10 +72,10 @@ unsigned int FindQueueFamilyIndex(VkPhysicalDevice device, short hasPresentSuppo
unsigned int queueFamilyPropertyCount = 0U;
vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyPropertyCount, nullptr);
- std::vector<VkQueueFamilyProperties> queueFamilyProperties(queueFamilyPropertyCount);
- vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyPropertyCount, queueFamilyProperties.data());
+ auto *queueFamilyProperties = pke::PkeNew<VkQueueFamilyProperties>(queueFamilyPropertyCount);
+ vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyPropertyCount, queueFamilyProperties);
- for (unsigned int i = 0; i < queueFamilyProperties.size(); i++) {
+ for (unsigned int i = 0; i < queueFamilyPropertyCount; i++) {
if (includeBits != 0 && (queueFamilyProperties[i].queueFlags & includeBits) == 0) {
continue;
}
@@ -92,6 +92,7 @@ unsigned int FindQueueFamilyIndex(VkPhysicalDevice device, short hasPresentSuppo
return i;
}
+ pke::PkeDelete<VkQueueFamilyProperties>(queueFamilyProperties, queueFamilyPropertyCount);
return 0xFFFFFFFF;
}
@@ -100,12 +101,13 @@ void InitVulkan() {
if (ENABLE_VALIDATION_LAYERS) {
unsigned int layerCount;
vkEnumerateInstanceLayerProperties(&layerCount, nullptr);
- std::vector<VkLayerProperties> availableLayers(layerCount);
- vkEnumerateInstanceLayerProperties(&layerCount, availableLayers.data());
+ VkLayerProperties *availableLayerProperties = pke::PkeNew<VkLayerProperties>(layerCount);
+ vkEnumerateInstanceLayerProperties(&layerCount, availableLayerProperties);
printf("Available Layers:\n");
- for (const auto &layerProperties : availableLayers) {
- printf("\t%s\n", layerProperties.layerName);
+ for (long i = 0; i < layerCount; ++i) {
+ printf("\t%s\n", availableLayerProperties[i].layerName);
}
+ pke::PkeDelete<VkLayerProperties>(availableLayerProperties, layerCount);
}
VkApplicationInfo appInfo{};
@@ -169,12 +171,13 @@ void InitVulkan() {
if (ENABLE_VALIDATION_LAYERS) {
unsigned int extensionCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
- std::vector<VkExtensionProperties> extensions(extensionCount);
- vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions.data());
+ auto *extensions = pke::PkeNew<VkExtensionProperties>(extensionCount);
+ vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions);
printf("Available Extensions:\n");
- for (const auto &extension : extensions) {
- printf("\t%s\n", extension.extensionName);
+ for (long i = 0; i < extensionCount; ++i) {
+ printf("\t%s\n", extensions[i].extensionName);
}
+ pke::PkeDelete<VkExtensionProperties>(extensions, extensionCount);
}
auto result = vkCreateInstance(&createInfo, nullptr, &vkInstance);
@@ -212,12 +215,13 @@ void InitVulkan() {
unsigned int physicalDeviceCount = 0;
vkEnumeratePhysicalDevices(vkInstance, &physicalDeviceCount, nullptr);
assert(physicalDeviceCount > 0);
- std::vector<VkPhysicalDevice> physicalDevices(physicalDeviceCount);
- vkEnumeratePhysicalDevices(vkInstance, &physicalDeviceCount, physicalDevices.data());
+ auto *physicalDevices = pke::PkeNew<VkPhysicalDevice>(physicalDeviceCount);
+ vkEnumeratePhysicalDevices(vkInstance, &physicalDeviceCount, physicalDevices);
graphicsFamilyIndex = 0;
presentFamilyIndex = 0;
- for (const auto &device : physicalDevices)
+ for (long i = 0; i < physicalDeviceCount; ++i)
{
+ const auto &device = physicalDevices[i];
// check queue families
graphicsFamilyIndex = FindQueueFamilyIndex(device, -1, VK_QUEUE_GRAPHICS_BIT);
presentFamilyIndex = FindQueueFamilyIndex(device, 1);
@@ -229,9 +233,10 @@ void InitVulkan() {
std::vector<const char *> requiredExtensions(REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end());
unsigned int extensionCount = 0;
vkEnumerateDeviceExtensionProperties(device, nullptr, &extensionCount, nullptr);
- std::vector<VkExtensionProperties> extensionProperties(extensionCount);
- vkEnumerateDeviceExtensionProperties(device, nullptr, &extensionCount, extensionProperties.data());
- for (const auto &property : extensionProperties) {
+ auto *extensionProperties = pke::PkeNew<VkExtensionProperties>(extensionCount);
+ vkEnumerateDeviceExtensionProperties(device, nullptr, &extensionCount, extensionProperties);
+ for (long k = 0; k < extensionCount; ++k) {
+ const auto &property = extensionProperties[k];
auto it = requiredExtensions.begin();
while (it != requiredExtensions.end()) {
if (strcmp(*it.base(), property.extensionName)) {
@@ -241,6 +246,7 @@ void InitVulkan() {
}
}
}
+ pke::PkeDelete<VkExtensionProperties>(extensionProperties, extensionCount);
if (requiredExtensions.empty() == false) {
continue;
}
@@ -263,6 +269,7 @@ void InitVulkan() {
break;
}
assert(vkPhysicalDevice != nullptr && "Failed to find suitable physical device");
+ pke::PkeDelete<VkPhysicalDevice>(physicalDevices, physicalDeviceCount);
// Create logical device
{