lava/vulkan/ext/
vk_debug_utils_messenger_create_info.rs1use std::os::raw::c_char;
4use std::ffi::CString;
5use std::*;
6use utils::c_bindings::*;
7use utils::vk_traits::*;
8use utils::vk_convert::*;
9use utils::vk_ptr::*;
10use vulkan::vk::*;
11use vulkan::ext::*;
12
13type VkDebugUtilsMessengerCallback = fn(VkDebugUtilsMessageSeverityFlags, VkDebugUtilsMessageTypeFlags, VkDebugUtilsMessengerCallbackData);
14
15#[doc(hidden)]
16#[repr(C)]
17pub struct RawVkDebugUtilsMessengerCreateInfo {
18 s_type: i32,
19 p_next: *const c_void,
20 flags: u32,
21 message_severity: u32,
22 message_type: u32,
23 user_callback: unsafe extern fn(RawVkDebugUtilsMessageSeverityFlags, RawVkDebugUtilsMessageTypeFlags, *const RawVkDebugUtilsMessengerCallbackData, *mut c_void) -> u32,
24 user_data: *mut c_void
25}
26
27pub struct VkDebugUtilsMessengerCreateInfo {
29 pub flags: VkDebugUtilsMessengerCreateFlags,
30 pub message_severity: VkDebugUtilsMessageSeverityFlags,
31 pub message_type: VkDebugUtilsMessageTypeFlags,
32 pub user_callback: VkDebugUtilsMessengerCallback
33}
34
35unsafe extern fn raw_callback(message_severity: RawVkDebugUtilsMessageSeverityFlags, message_types: RawVkDebugUtilsMessageTypeFlags, callback_data: *const RawVkDebugUtilsMessengerCallbackData, user_data: *mut c_void) -> u32 {
36 let func : VkDebugUtilsMessengerCallback = mem::transmute(user_data);
37
38 func(
39 RawVkDebugUtilsMessageSeverityFlags::vk_to_wrapped(&message_severity),
40 RawVkDebugUtilsMessageSeverityFlags::vk_to_wrapped(&message_types),
41 RawVkDebugUtilsMessengerCallbackData::vk_to_wrapped(&*callback_data)
42 );
43
44 0
45}
46
47impl VkWrappedType<RawVkDebugUtilsMessengerCreateInfo> for VkDebugUtilsMessengerCreateInfo {
48 fn vk_to_raw(src: &VkDebugUtilsMessengerCreateInfo, dst: &mut RawVkDebugUtilsMessengerCreateInfo) {
49 unsafe {
50 dst.s_type = vk_to_raw_value(&VkStructureType::DebugUtilsMessengerCreateInfoExt);
51 dst.p_next = ptr::null();
52 dst.flags = vk_to_raw_value(&src.flags);
53 dst.message_severity = vk_to_raw_value(&src.message_severity);
54 dst.message_type = vk_to_raw_value(&src.message_type);
55 dst.user_callback = raw_callback;
56 dst.user_data = mem::transmute::<VkDebugUtilsMessengerCallback, *mut c_void>(src.user_callback);
57 }
58 }
59}
60
61impl VkFree for RawVkDebugUtilsMessengerCreateInfo {
62 fn vk_free(&self) {
63
64 }
65}