| 793 | } |
| 794 | |
| 795 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 796 | QueueFamilyIndices indices; |
| 797 | |
| 798 | uint32_t queueFamilyCount = 0; |
| 799 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 800 | |
| 801 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 802 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 803 | |
| 804 | int i = 0; |
| 805 | for (const auto& queueFamily : queueFamilies) { |
| 806 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 807 | indices.graphicsFamily = i; |
| 808 | } |
| 809 | |
| 810 | VkBool32 presentSupport = false; |
| 811 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 812 | |
| 813 | if (presentSupport) { |
| 814 | indices.presentFamily = i; |
| 815 | } |
| 816 | |
| 817 | if (indices.isComplete()) { |
| 818 | break; |
| 819 | } |
| 820 | |
| 821 | i++; |
| 822 | } |
| 823 | |
| 824 | return indices; |
| 825 | } |
| 826 | |
| 827 | std::vector<const char*> getRequiredExtensions() { |
| 828 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected