| 630 | } |
| 631 | |
| 632 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 633 | QueueFamilyIndices indices; |
| 634 | |
| 635 | uint32_t queueFamilyCount = 0; |
| 636 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 637 | |
| 638 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 639 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 640 | |
| 641 | int i = 0; |
| 642 | for (const auto& queueFamily : queueFamilies) { |
| 643 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 644 | indices.graphicsFamily = i; |
| 645 | } |
| 646 | |
| 647 | VkBool32 presentSupport = false; |
| 648 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 649 | |
| 650 | if (presentSupport) { |
| 651 | indices.presentFamily = i; |
| 652 | } |
| 653 | |
| 654 | if (indices.isComplete()) { |
| 655 | break; |
| 656 | } |
| 657 | |
| 658 | i++; |
| 659 | } |
| 660 | |
| 661 | return indices; |
| 662 | } |
| 663 | |
| 664 | std::vector<const char*> getRequiredExtensions() { |
| 665 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected