| 1656 | } |
| 1657 | |
| 1658 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 1659 | QueueFamilyIndices indices; |
| 1660 | |
| 1661 | uint32_t queueFamilyCount = 0; |
| 1662 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 1663 | |
| 1664 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 1665 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 1666 | |
| 1667 | int i = 0; |
| 1668 | for (const auto& queueFamily : queueFamilies) { |
| 1669 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 1670 | indices.graphicsFamily = i; |
| 1671 | } |
| 1672 | |
| 1673 | VkBool32 presentSupport = false; |
| 1674 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 1675 | |
| 1676 | if (presentSupport) { |
| 1677 | indices.presentFamily = i; |
| 1678 | } |
| 1679 | |
| 1680 | if (indices.isComplete()) { |
| 1681 | break; |
| 1682 | } |
| 1683 | |
| 1684 | i++; |
| 1685 | } |
| 1686 | |
| 1687 | return indices; |
| 1688 | } |
| 1689 | |
| 1690 | std::vector<const char*> getRequiredExtensions() { |
| 1691 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected