diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-12 11:40:24 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-12 11:40:24 -0400 |
| commit | fc714fcd1d8d7b23abf0a42b2ab8d00a663bb279 (patch) | |
| tree | 92db69c85d293b10832fca4653399285cd91c6cb /src/window.cpp | |
| parent | 7cd40ea0dd3659ee599dc842739b9e68286ea213 (diff) | |
replace some std::vector instances
Diffstat (limited to 'src/window.cpp')
| -rw-r--r-- | src/window.cpp | 41 |
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 { |
