From fc714fcd1d8d7b23abf0a42b2ab8d00a663bb279 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Sat, 12 Aug 2023 11:40:24 -0400 Subject: replace some std::vector instances --- src/window.cpp | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'src/window.cpp') 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 queueFamilyProperties(queueFamilyPropertyCount); - vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyPropertyCount, queueFamilyProperties.data()); + auto *queueFamilyProperties = pke::PkeNew(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(queueFamilyProperties, queueFamilyPropertyCount); return 0xFFFFFFFF; } @@ -100,12 +101,13 @@ void InitVulkan() { if (ENABLE_VALIDATION_LAYERS) { unsigned int layerCount; vkEnumerateInstanceLayerProperties(&layerCount, nullptr); - std::vector availableLayers(layerCount); - vkEnumerateInstanceLayerProperties(&layerCount, availableLayers.data()); + VkLayerProperties *availableLayerProperties = pke::PkeNew(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(availableLayerProperties, layerCount); } VkApplicationInfo appInfo{}; @@ -169,12 +171,13 @@ void InitVulkan() { if (ENABLE_VALIDATION_LAYERS) { unsigned int extensionCount = 0; vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr); - std::vector extensions(extensionCount); - vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions.data()); + auto *extensions = pke::PkeNew(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(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 physicalDevices(physicalDeviceCount); - vkEnumeratePhysicalDevices(vkInstance, &physicalDeviceCount, physicalDevices.data()); + auto *physicalDevices = pke::PkeNew(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 requiredExtensions(REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end()); unsigned int extensionCount = 0; vkEnumerateDeviceExtensionProperties(device, nullptr, &extensionCount, nullptr); - std::vector extensionProperties(extensionCount); - vkEnumerateDeviceExtensionProperties(device, nullptr, &extensionCount, extensionProperties.data()); - for (const auto &property : extensionProperties) { + auto *extensionProperties = pke::PkeNew(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(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(physicalDevices, physicalDeviceCount); // Create logical device { -- cgit v1.2.3