| 247 | } |
| 248 | |
| 249 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 250 | QueueFamilyIndices indices; |
| 251 | |
| 252 | uint32_t queueFamilyCount = 0; |
| 253 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 254 | |
| 255 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 256 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 257 | |
| 258 | int i = 0; |
| 259 | for (const auto& queueFamily : queueFamilies) { |
| 260 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 261 | indices.graphicsFamily = i; |
| 262 | } |
| 263 | |
| 264 | VkBool32 presentSupport = false; |
| 265 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 266 | |
| 267 | if (presentSupport) { |
| 268 | indices.presentFamily = i; |
| 269 | } |
| 270 | |
| 271 | if (indices.isComplete()) { |
| 272 | break; |
| 273 | } |
| 274 | |
| 275 | i++; |
| 276 | } |
| 277 | |
| 278 | return indices; |
| 279 | } |
| 280 | |
| 281 | std::vector<const char*> getRequiredExtensions() { |
| 282 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected