| 579 | } |
| 580 | |
| 581 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 582 | QueueFamilyIndices indices; |
| 583 | |
| 584 | uint32_t queueFamilyCount = 0; |
| 585 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 586 | |
| 587 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 588 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 589 | |
| 590 | int i = 0; |
| 591 | for (const auto& queueFamily : queueFamilies) { |
| 592 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 593 | indices.graphicsFamily = i; |
| 594 | } |
| 595 | |
| 596 | VkBool32 presentSupport = false; |
| 597 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 598 | |
| 599 | if (presentSupport) { |
| 600 | indices.presentFamily = i; |
| 601 | } |
| 602 | |
| 603 | if (indices.isComplete()) { |
| 604 | break; |
| 605 | } |
| 606 | |
| 607 | i++; |
| 608 | } |
| 609 | |
| 610 | return indices; |
| 611 | } |
| 612 | |
| 613 | std::vector<const char*> getRequiredExtensions() { |
| 614 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected