| 1356 | } |
| 1357 | |
| 1358 | QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device) { |
| 1359 | QueueFamilyIndices indices; |
| 1360 | |
| 1361 | uint32_t queueFamilyCount = 0; |
| 1362 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr); |
| 1363 | |
| 1364 | std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); |
| 1365 | vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, queueFamilies.data()); |
| 1366 | |
| 1367 | int i = 0; |
| 1368 | for (const auto& queueFamily : queueFamilies) { |
| 1369 | if (queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) { |
| 1370 | indices.graphicsFamily = i; |
| 1371 | } |
| 1372 | |
| 1373 | VkBool32 presentSupport = false; |
| 1374 | vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport); |
| 1375 | |
| 1376 | if (presentSupport) { |
| 1377 | indices.presentFamily = i; |
| 1378 | } |
| 1379 | |
| 1380 | if (indices.isComplete()) { |
| 1381 | break; |
| 1382 | } |
| 1383 | |
| 1384 | i++; |
| 1385 | } |
| 1386 | |
| 1387 | return indices; |
| 1388 | } |
| 1389 | |
| 1390 | std::vector<const char*> getRequiredExtensions() { |
| 1391 | uint32_t glfwExtensionCount = 0; |
nothing calls this directly
no test coverage detected