| 477 | } |
| 478 | |
| 479 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 480 | QueueFamilyIndices indices; |
| 481 | |
| 482 | uint32_t queueFamilyCount = 0; |
| 483 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 484 | |
| 485 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 486 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 487 | |
| 488 | int i = 0; |
| 489 | for (const auto& queueFamily : queueFamilies) { |
| 490 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 491 | indices.graphicsFamily = i; |
| 492 | } |
| 493 | |
| 494 | VkBool32 presentSupport = false; |
| 495 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 496 | |
| 497 | if (presentSupport) { |
| 498 | indices.presentFamily = i; |
| 499 | } |
| 500 | |
| 501 | if (indices.isComplete()) { |
| 502 | break; |
| 503 | } |
| 504 | |
| 505 | i++; |
| 506 | } |
| 507 | |
| 508 | return indices; |
| 509 | } |
| 510 | |
| 511 | std::vector<const char*> getRequiredExtensions() { |
| 512 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected