Is there any way i can export a go function to C then to get a pointer to it?
Like this
func SetupDebugMessenger() {
dbgMessengerCreateInfo := vk.DebugUtilsMessengerCreateInfoEXT{}
dbgMessengerCreateInfo.MessageSeverity = vk.DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | vk.DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | vk.DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | vk.DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT
dbgMessengerCreateInfo.MessageType = vk.DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | vk.DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | vk.DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
dbgMessengerCreateInfo.PfnUserCallback = (*[0]byte)(C.VkDebugCallback)
}
//export VkDebugCallback
func VkDebugCallback(severity vk.DebugUtilsMessageSeverityFlagsEXT,
messageType vk.DebugUtilsMessageTypeFlagsEXT,
pCallbackData vk.DebugUtilsMessengerCallbackDataEXT,
userData interface{}) vk.Bool32 {
switch {
case severity >= vk.DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT:
logger.Error("(VALIDATION LAYER): " + pCallbackData.PMessage)
case severity >= vk.DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT:
logger.Warning("(VALIDATION LAYER): " + pCallbackData.PMessage)
case severity >= vk.DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT:
logger.Info("(VALIDATION LAYER): " + pCallbackData.PMessage)
}
return vk.Bool32(vk.FALSE)
}```