| 1654 | } |
| 1655 | |
| 1656 | static HContext VulkanNewContext(const ContextParams& params) |
| 1657 | { |
| 1658 | if (g_VulkanContext == 0x0) |
| 1659 | { |
| 1660 | if (!NativeInit(params)) |
| 1661 | { |
| 1662 | return 0x0; |
| 1663 | } |
| 1664 | |
| 1665 | uint16_t extension_names_count; |
| 1666 | const char** extension_names = GetExtensionNames(&extension_names_count); |
| 1667 | uint16_t validation_layers_count; |
| 1668 | const char** validation_layers = GetValidationLayers(&validation_layers_count, params.m_UseValidationLayers); |
| 1669 | uint16_t validation_layers_ext_count; |
| 1670 | const char** validation_layers_ext = GetValidationLayersExt(&validation_layers_ext_count); |
| 1671 | |
| 1672 | uint32_t vk_api_version = VK_MAKE_API_VERSION(0, params.m_GraphicsApiVersionMajorHint, params.m_GraphicsApiVersionMinorHint, 0); |
| 1673 | |
| 1674 | VkInstance vk_instance; |
| 1675 | if (CreateInstance(&vk_instance, |
| 1676 | vk_api_version, |
| 1677 | extension_names, extension_names_count, |
| 1678 | validation_layers, validation_layers_count, |
| 1679 | validation_layers_ext, validation_layers_ext_count) != VK_SUCCESS) |
| 1680 | { |
| 1681 | dmLogError("Could not create Vulkan instance"); |
| 1682 | return 0x0; |
| 1683 | } |
| 1684 | |
| 1685 | #if ANDROID |
| 1686 | LoadVulkanFunctions(vk_instance); |
| 1687 | #endif |
| 1688 | |
| 1689 | g_VulkanContext = new VulkanContext(params, vk_instance); |
| 1690 | |
| 1691 | if (NativeInitializeContext((HContext) g_VulkanContext)) |
| 1692 | { |
| 1693 | return (HContext) g_VulkanContext; |
| 1694 | } |
| 1695 | } |
| 1696 | return 0x0; |
| 1697 | } |
| 1698 | |
| 1699 | static void VulkanDeleteContext(HContext _context) |
| 1700 | { |
nothing calls this directly
no test coverage detected