erupted.vulkan_lib_loader

Dlang vulkan lib loader retrieving vkGetInstanceProcAddr for windows, macos and posix systems

Members

Functions

freeVulkanLib
bool freeVulkanLib(FILE* log_stream)

tries to free / unload the previously loaded platform vulkan lib errors are reported to a specifiable stream which is standard error by default

loadGetInstanceProcAddr
PFN_vkGetInstanceProcAddr loadGetInstanceProcAddr(FILE* log_stream)

tries to load the vkGetInstanceProcAddr function from the module private lib handle / pointer if the lib was not loaded so far loadVulkanLib is called errors are reported to a specifiable stream which is standard error by default

loadGlobalLevelFunctions
bool loadGlobalLevelFunctions(FILE* log_stream)

Combines loadVulkanLib, loadGetInstanceProcAddr and loadGlobalLevelFunctions( PFN_vkGetInstanceProcAddr ) from module erupted.functions. If this function succeeds the function vkGetInstanceProcAddr from module erupted.functions can be used freely. Moreover the required functions to initialize a vulkan instance a vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceLayerProperties and vkCreateInstance are available as well. To get all the other functions an vulkan instance must be created and with it loadInstanceLevelFunctions be called from either erupted.functions or through a custom tailored module with mixed in extensions through the erupted.platform.mixin_extensions mechanism. Additional device based functions can then be loaded with loadDeviceLevelFunctions passing in the instance or with creating a vulkan device beforehand and calling the same function with it.

loadVulkanLib
bool loadVulkanLib(FILE* log_stream)

tries to load the platform vulkan dynamic link library the library handle / pointer is stored privately in this module errors are reported to a specifiable stream which is standard error by default

Meta

License

$(https://opensource.org/licenses/MIT, MIT License).

Authors

Copyright 2016 Alex Parrill, Peter Particle