MCPcopy Create free account
hub / github.com/defold/defold / VulkanNewContext

Function VulkanNewContext

engine/graphics/src/vulkan/graphics_vulkan.cpp:1656–1697  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 7

NativeInitFunction · 0.85
GetExtensionNamesFunction · 0.85
GetValidationLayersFunction · 0.85
GetValidationLayersExtFunction · 0.85
LoadVulkanFunctionsFunction · 0.85
NativeInitializeContextFunction · 0.85
CreateInstanceFunction · 0.70

Tested by

no test coverage detected