MCPcopy Create free account
hub / github.com/comaps/comaps / InitVulkan

Function InitVulkan

3party/vulkan_wrapper/vulkan_wrapper.cpp:35–580  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33#endif
34
35int InitVulkan(void) {
36#if defined(__APPLE__)
37 void* libvulkan = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL);
38 if (!libvulkan) {
39 libvulkan = dlopen("libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL);
40 }
41 if (!libvulkan) {
42 libvulkan = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL);
43 }
44#elif defined( _WIN32 )
45 HMODULE libvulkan = LoadLibraryA("vulkan-1.dll");
46 auto dlsym = [](HMODULE h, char const * name) { return GetProcAddress(h, name); };
47#else
48 void* libvulkan = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL);
49 if (!libvulkan) {
50 libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
51 }
52#endif
53 if (!libvulkan) return 0;
54
55 // Vulkan supported, set function addresses
56 vkCreateInstance = reinterpret_cast<PFN_vkCreateInstance>(dlsym(libvulkan, "vkCreateInstance"));
57 vkDestroyInstance = reinterpret_cast<PFN_vkDestroyInstance>(dlsym(libvulkan, "vkDestroyInstance"));
58 vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(dlsym(libvulkan, "vkEnumeratePhysicalDevices"));
59 vkGetPhysicalDeviceFeatures =
60 reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures"));
61 vkGetPhysicalDeviceFormatProperties =
62 reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties"));
63 vkGetPhysicalDeviceImageFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(
64 dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties"));
65 vkGetPhysicalDeviceProperties =
66 reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceProperties"));
67 vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(
68 dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties"));
69 vkGetPhysicalDeviceMemoryProperties =
70 reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties"));
71 vkGetInstanceProcAddr = reinterpret_cast<PFN_vkGetInstanceProcAddr>(dlsym(libvulkan, "vkGetInstanceProcAddr"));
72 vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libvulkan, "vkGetDeviceProcAddr"));
73 vkCreateDevice = reinterpret_cast<PFN_vkCreateDevice>(dlsym(libvulkan, "vkCreateDevice"));
74 vkDestroyDevice = reinterpret_cast<PFN_vkDestroyDevice>(dlsym(libvulkan, "vkDestroyDevice"));
75 vkEnumerateInstanceExtensionProperties =
76 reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(dlsym(libvulkan, "vkEnumerateInstanceExtensionProperties"));
77 vkEnumerateDeviceExtensionProperties =
78 reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(dlsym(libvulkan, "vkEnumerateDeviceExtensionProperties"));
79 vkEnumerateInstanceLayerProperties =
80 reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(dlsym(libvulkan, "vkEnumerateInstanceLayerProperties"));
81 vkEnumerateDeviceLayerProperties =
82 reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(dlsym(libvulkan, "vkEnumerateDeviceLayerProperties"));
83 vkGetDeviceQueue = reinterpret_cast<PFN_vkGetDeviceQueue>(dlsym(libvulkan, "vkGetDeviceQueue"));
84 vkQueueSubmit = reinterpret_cast<PFN_vkQueueSubmit>(dlsym(libvulkan, "vkQueueSubmit"));
85 vkQueueWaitIdle = reinterpret_cast<PFN_vkQueueWaitIdle>(dlsym(libvulkan, "vkQueueWaitIdle"));
86 vkDeviceWaitIdle = reinterpret_cast<PFN_vkDeviceWaitIdle>(dlsym(libvulkan, "vkDeviceWaitIdle"));
87 vkAllocateMemory = reinterpret_cast<PFN_vkAllocateMemory>(dlsym(libvulkan, "vkAllocateMemory"));
88 vkFreeMemory = reinterpret_cast<PFN_vkFreeMemory>(dlsym(libvulkan, "vkFreeMemory"));
89 vkMapMemory = reinterpret_cast<PFN_vkMapMemory>(dlsym(libvulkan, "vkMapMemory"));
90 vkUnmapMemory = reinterpret_cast<PFN_vkUnmapMemory>(dlsym(libvulkan, "vkUnmapMemory"));
91 vkFlushMappedMemoryRanges = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>(dlsym(libvulkan, "vkFlushMappedMemoryRanges"));
92 vkInvalidateMappedMemoryRanges =

Callers 1

VulkanContextFactoryMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected