/* automatically generated by rust-bindgen 0.72.1 */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
    storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage }
    }
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    fn extract_bit(byte: u8, index: usize) -> bool {
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        byte & mask == mask
    }
    #[inline]
    pub fn get_bit(&self, index: usize) -> bool {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = self.storage.as_ref()[byte_index];
        Self::extract_bit(byte, index)
    }
    #[inline]
    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
        let byte_index = index / 8;
        let byte = unsafe {
            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
        };
        Self::extract_bit(byte, index)
    }
    #[inline]
    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        if val {
            byte | mask
        } else {
            byte & !mask
        }
    }
    #[inline]
    pub fn set_bit(&mut self, index: usize, val: bool) {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = &mut self.storage.as_mut()[byte_index];
        *byte = Self::change_bit(*byte, index, val);
    }
    #[inline]
    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
        let byte_index = index / 8;
        let byte = unsafe {
            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
        };
        unsafe { *byte = Self::change_bit(*byte, index, val) };
    }
    #[inline]
    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if self.get_bit(i + bit_offset) {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            self.set_bit(index + bit_offset, val_bit_is_set);
        }
    }
    #[inline]
    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
        }
    }
}
pub type va_list = *mut ::std::os::raw::c_char;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct _iobuf {
    pub _Placeholder: *mut ::std::os::raw::c_void,
}
impl Default for _iobuf {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type FILE = _iobuf;
pub type ImU64 = ::std::os::raw::c_ulonglong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ImGuiDockRequest {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ImGuiDockNodeSettings {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ImGuiInputTextDeactivateData {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ImGuiTableColumnsSettings {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct STB_TexteditState {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct stbrp_node {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_const_charPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *const ::std::os::raw::c_char,
}
impl Default for ImVector_const_charPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImGuiID = ::std::os::raw::c_uint;
pub type ImS8 = ::std::os::raw::c_schar;
pub type ImU8 = ::std::os::raw::c_uchar;
pub type ImS16 = ::std::os::raw::c_short;
pub type ImU16 = ::std::os::raw::c_ushort;
pub type ImS32 = ::std::os::raw::c_int;
pub type ImU32 = ::std::os::raw::c_uint;
pub type ImS64 = ::std::os::raw::c_longlong;
pub type ImGuiCol = ::std::os::raw::c_int;
pub type ImGuiCond = ::std::os::raw::c_int;
pub type ImGuiDataType = ::std::os::raw::c_int;
pub type ImGuiMouseButton = ::std::os::raw::c_int;
pub type ImGuiMouseCursor = ::std::os::raw::c_int;
pub type ImGuiStyleVar = ::std::os::raw::c_int;
pub type ImGuiTableBgTarget = ::std::os::raw::c_int;
pub type ImDrawFlags = ::std::os::raw::c_int;
pub type ImDrawListFlags = ::std::os::raw::c_int;
pub type ImDrawTextFlags = ::std::os::raw::c_int;
pub type ImFontFlags = ::std::os::raw::c_int;
pub type ImFontAtlasFlags = ::std::os::raw::c_int;
pub type ImGuiBackendFlags = ::std::os::raw::c_int;
pub type ImGuiButtonFlags = ::std::os::raw::c_int;
pub type ImGuiChildFlags = ::std::os::raw::c_int;
pub type ImGuiColorEditFlags = ::std::os::raw::c_int;
pub type ImGuiConfigFlags = ::std::os::raw::c_int;
pub type ImGuiComboFlags = ::std::os::raw::c_int;
pub type ImGuiDockNodeFlags = ::std::os::raw::c_int;
pub type ImGuiDragDropFlags = ::std::os::raw::c_int;
pub type ImGuiFocusedFlags = ::std::os::raw::c_int;
pub type ImGuiHoveredFlags = ::std::os::raw::c_int;
pub type ImGuiInputFlags = ::std::os::raw::c_int;
pub type ImGuiInputTextFlags = ::std::os::raw::c_int;
pub type ImGuiItemFlags = ::std::os::raw::c_int;
pub type ImGuiKeyChord = ::std::os::raw::c_int;
pub type ImGuiListClipperFlags = ::std::os::raw::c_int;
pub type ImGuiPopupFlags = ::std::os::raw::c_int;
pub type ImGuiMultiSelectFlags = ::std::os::raw::c_int;
pub type ImGuiSelectableFlags = ::std::os::raw::c_int;
pub type ImGuiSliderFlags = ::std::os::raw::c_int;
pub type ImGuiTabBarFlags = ::std::os::raw::c_int;
pub type ImGuiTabItemFlags = ::std::os::raw::c_int;
pub type ImGuiTableFlags = ::std::os::raw::c_int;
pub type ImGuiTableColumnFlags = ::std::os::raw::c_int;
pub type ImGuiTableRowFlags = ::std::os::raw::c_int;
pub type ImGuiTreeNodeFlags = ::std::os::raw::c_int;
pub type ImGuiViewportFlags = ::std::os::raw::c_int;
pub type ImGuiWindowFlags = ::std::os::raw::c_int;
pub type ImWchar32 = ::std::os::raw::c_uint;
pub type ImWchar16 = ::std::os::raw::c_ushort;
pub type ImWchar = ImWchar32;
pub type ImGuiSelectionUserData = ImS64;
pub type ImGuiInputTextCallback = ::std::option::Option<
    unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> ::std::os::raw::c_int,
>;
pub type ImGuiSizeCallback =
    ::std::option::Option<unsafe extern "C" fn(data: *mut ImGuiSizeCallbackData)>;
pub type ImGuiMemAllocFunc = ::std::option::Option<
    unsafe extern "C" fn(
        sz: usize,
        user_data: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void,
>;
pub type ImGuiMemFreeFunc = ::std::option::Option<
    unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void, user_data: *mut ::std::os::raw::c_void),
>;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImVec2_c {
    pub x: f32,
    pub y: f32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImVec4_c {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub w: f32,
}
pub type ImTextureID = ImU64;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImTextureRef_c {
    pub _TexData: *mut ImTextureData,
    pub _TexID: ImTextureID,
}
impl Default for ImTextureRef_c {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiWindowFlags_None: ImGuiWindowFlags_ = 0;
pub const ImGuiWindowFlags_NoTitleBar: ImGuiWindowFlags_ = 1;
pub const ImGuiWindowFlags_NoResize: ImGuiWindowFlags_ = 2;
pub const ImGuiWindowFlags_NoMove: ImGuiWindowFlags_ = 4;
pub const ImGuiWindowFlags_NoScrollbar: ImGuiWindowFlags_ = 8;
pub const ImGuiWindowFlags_NoScrollWithMouse: ImGuiWindowFlags_ = 16;
pub const ImGuiWindowFlags_NoCollapse: ImGuiWindowFlags_ = 32;
pub const ImGuiWindowFlags_AlwaysAutoResize: ImGuiWindowFlags_ = 64;
pub const ImGuiWindowFlags_NoBackground: ImGuiWindowFlags_ = 128;
pub const ImGuiWindowFlags_NoSavedSettings: ImGuiWindowFlags_ = 256;
pub const ImGuiWindowFlags_NoMouseInputs: ImGuiWindowFlags_ = 512;
pub const ImGuiWindowFlags_MenuBar: ImGuiWindowFlags_ = 1024;
pub const ImGuiWindowFlags_HorizontalScrollbar: ImGuiWindowFlags_ = 2048;
pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096;
pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192;
pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384;
pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768;
pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536;
pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072;
pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144;
pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 524288;
pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608;
pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43;
pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120;
pub const ImGuiWindowFlags_DockNodeHost: ImGuiWindowFlags_ = 8388608;
pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216;
pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432;
pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864;
pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728;
pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456;
pub type ImGuiWindowFlags_ = ::std::os::raw::c_int;
pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0;
pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1;
pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2;
pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4;
pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8;
pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16;
pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32;
pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64;
pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128;
pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256;
pub type ImGuiChildFlags_ = ::std::os::raw::c_int;
pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0;
pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1;
pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2;
pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4;
pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8;
pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16;
pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32;
pub const ImGuiItemFlags_Disabled: ImGuiItemFlags_ = 64;
pub type ImGuiItemFlags_ = ::std::os::raw::c_int;
pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0;
pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1;
pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2;
pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4;
pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8;
pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16;
pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32;
pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64;
pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128;
pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256;
pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512;
pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024;
pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048;
pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096;
pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192;
pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384;
pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768;
pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536;
pub const ImGuiInputTextFlags_ElideLeft: ImGuiInputTextFlags_ = 131072;
pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 262144;
pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 524288;
pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 1048576;
pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 2097152;
pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 4194304;
pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 8388608;
pub const ImGuiInputTextFlags_WordWrap: ImGuiInputTextFlags_ = 16777216;
pub type ImGuiInputTextFlags_ = ::std::os::raw::c_int;
pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0;
pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1;
pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2;
pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4;
pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8;
pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16;
pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32;
pub const ImGuiTreeNodeFlags_OpenOnDoubleClick: ImGuiTreeNodeFlags_ = 64;
pub const ImGuiTreeNodeFlags_OpenOnArrow: ImGuiTreeNodeFlags_ = 128;
pub const ImGuiTreeNodeFlags_Leaf: ImGuiTreeNodeFlags_ = 256;
pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512;
pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024;
pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048;
pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096;
pub const ImGuiTreeNodeFlags_SpanLabelWidth: ImGuiTreeNodeFlags_ = 8192;
pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384;
pub const ImGuiTreeNodeFlags_LabelSpanAllColumns: ImGuiTreeNodeFlags_ = 32768;
pub const ImGuiTreeNodeFlags_NavLeftJumpsToParent: ImGuiTreeNodeFlags_ = 131072;
pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26;
pub const ImGuiTreeNodeFlags_DrawLinesNone: ImGuiTreeNodeFlags_ = 262144;
pub const ImGuiTreeNodeFlags_DrawLinesFull: ImGuiTreeNodeFlags_ = 524288;
pub const ImGuiTreeNodeFlags_DrawLinesToNodes: ImGuiTreeNodeFlags_ = 1048576;
pub type ImGuiTreeNodeFlags_ = ::std::os::raw::c_int;
pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0;
pub const ImGuiPopupFlags_MouseButtonLeft: ImGuiPopupFlags_ = 4;
pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 8;
pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 12;
pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32;
pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128;
pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256;
pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024;
pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048;
pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072;
pub const ImGuiPopupFlags_MouseButtonShift_: ImGuiPopupFlags_ = 2;
pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 12;
pub const ImGuiPopupFlags_InvalidMask_: ImGuiPopupFlags_ = 3;
pub type ImGuiPopupFlags_ = ::std::os::raw::c_int;
pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0;
pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1;
pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2;
pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4;
pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8;
pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16;
pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32;
pub const ImGuiSelectableFlags_SelectOnNav: ImGuiSelectableFlags_ = 64;
pub type ImGuiSelectableFlags_ = ::std::os::raw::c_int;
pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0;
pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1;
pub const ImGuiComboFlags_HeightSmall: ImGuiComboFlags_ = 2;
pub const ImGuiComboFlags_HeightRegular: ImGuiComboFlags_ = 4;
pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8;
pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16;
pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32;
pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64;
pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128;
pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30;
pub type ImGuiComboFlags_ = ::std::os::raw::c_int;
pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0;
pub const ImGuiTabBarFlags_Reorderable: ImGuiTabBarFlags_ = 1;
pub const ImGuiTabBarFlags_AutoSelectNewTabs: ImGuiTabBarFlags_ = 2;
pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4;
pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8;
pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16;
pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32;
pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64;
pub const ImGuiTabBarFlags_FittingPolicyMixed: ImGuiTabBarFlags_ = 128;
pub const ImGuiTabBarFlags_FittingPolicyShrink: ImGuiTabBarFlags_ = 256;
pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 512;
pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 896;
pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128;
pub type ImGuiTabBarFlags_ = ::std::os::raw::c_int;
pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0;
pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1;
pub const ImGuiTabItemFlags_SetSelected: ImGuiTabItemFlags_ = 2;
pub const ImGuiTabItemFlags_NoCloseWithMiddleMouseButton: ImGuiTabItemFlags_ = 4;
pub const ImGuiTabItemFlags_NoPushId: ImGuiTabItemFlags_ = 8;
pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16;
pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32;
pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64;
pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128;
pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256;
pub type ImGuiTabItemFlags_ = ::std::os::raw::c_int;
pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0;
pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1;
pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2;
pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4;
pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8;
pub const ImGuiFocusedFlags_DockHierarchy: ImGuiFocusedFlags_ = 16;
pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3;
pub type ImGuiFocusedFlags_ = ::std::os::raw::c_int;
pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0;
pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1;
pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2;
pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4;
pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8;
pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16;
pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32;
pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128;
pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256;
pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512;
pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024;
pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048;
pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768;
pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928;
pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3;
pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096;
pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192;
pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384;
pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768;
pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536;
pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072;
pub type ImGuiHoveredFlags_ = ::std::os::raw::c_int;
pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0;
pub const ImGuiDockNodeFlags_KeepAliveOnly: ImGuiDockNodeFlags_ = 1;
pub const ImGuiDockNodeFlags_NoDockingOverCentralNode: ImGuiDockNodeFlags_ = 4;
pub const ImGuiDockNodeFlags_PassthruCentralNode: ImGuiDockNodeFlags_ = 8;
pub const ImGuiDockNodeFlags_NoDockingSplit: ImGuiDockNodeFlags_ = 16;
pub const ImGuiDockNodeFlags_NoResize: ImGuiDockNodeFlags_ = 32;
pub const ImGuiDockNodeFlags_AutoHideTabBar: ImGuiDockNodeFlags_ = 64;
pub const ImGuiDockNodeFlags_NoUndocking: ImGuiDockNodeFlags_ = 128;
pub type ImGuiDockNodeFlags_ = ::std::os::raw::c_int;
pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0;
pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1;
pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2;
pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4;
pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8;
pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16;
pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32;
pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64;
pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128;
pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024;
pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048;
pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096;
pub const ImGuiDragDropFlags_AcceptDrawAsHovered: ImGuiDragDropFlags_ = 8192;
pub const ImGuiDragDropFlags_AcceptPeekOnly: ImGuiDragDropFlags_ = 3072;
pub type ImGuiDragDropFlags_ = ::std::os::raw::c_int;
pub const ImGuiDataType_S8: ImGuiDataType_ = 0;
pub const ImGuiDataType_U8: ImGuiDataType_ = 1;
pub const ImGuiDataType_S16: ImGuiDataType_ = 2;
pub const ImGuiDataType_U16: ImGuiDataType_ = 3;
pub const ImGuiDataType_S32: ImGuiDataType_ = 4;
pub const ImGuiDataType_U32: ImGuiDataType_ = 5;
pub const ImGuiDataType_S64: ImGuiDataType_ = 6;
pub const ImGuiDataType_U64: ImGuiDataType_ = 7;
pub const ImGuiDataType_Float: ImGuiDataType_ = 8;
pub const ImGuiDataType_Double: ImGuiDataType_ = 9;
pub const ImGuiDataType_Bool: ImGuiDataType_ = 10;
pub const ImGuiDataType_String: ImGuiDataType_ = 11;
pub const ImGuiDataType_COUNT: ImGuiDataType_ = 12;
pub type ImGuiDataType_ = ::std::os::raw::c_int;
pub const ImGuiDir_None: ImGuiDir = -1;
pub const ImGuiDir_Left: ImGuiDir = 0;
pub const ImGuiDir_Right: ImGuiDir = 1;
pub const ImGuiDir_Up: ImGuiDir = 2;
pub const ImGuiDir_Down: ImGuiDir = 3;
pub const ImGuiDir_COUNT: ImGuiDir = 4;
pub type ImGuiDir = ::std::os::raw::c_int;
pub const ImGuiSortDirection_None: ImGuiSortDirection = 0;
pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1;
pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2;
pub type ImGuiSortDirection = ::std::os::raw::c_int;
pub const ImGuiKey_None: ImGuiKey = 0;
pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512;
pub const ImGuiKey_Tab: ImGuiKey = 512;
pub const ImGuiKey_LeftArrow: ImGuiKey = 513;
pub const ImGuiKey_RightArrow: ImGuiKey = 514;
pub const ImGuiKey_UpArrow: ImGuiKey = 515;
pub const ImGuiKey_DownArrow: ImGuiKey = 516;
pub const ImGuiKey_PageUp: ImGuiKey = 517;
pub const ImGuiKey_PageDown: ImGuiKey = 518;
pub const ImGuiKey_Home: ImGuiKey = 519;
pub const ImGuiKey_End: ImGuiKey = 520;
pub const ImGuiKey_Insert: ImGuiKey = 521;
pub const ImGuiKey_Delete: ImGuiKey = 522;
pub const ImGuiKey_Backspace: ImGuiKey = 523;
pub const ImGuiKey_Space: ImGuiKey = 524;
pub const ImGuiKey_Enter: ImGuiKey = 525;
pub const ImGuiKey_Escape: ImGuiKey = 526;
pub const ImGuiKey_LeftCtrl: ImGuiKey = 527;
pub const ImGuiKey_LeftShift: ImGuiKey = 528;
pub const ImGuiKey_LeftAlt: ImGuiKey = 529;
pub const ImGuiKey_LeftSuper: ImGuiKey = 530;
pub const ImGuiKey_RightCtrl: ImGuiKey = 531;
pub const ImGuiKey_RightShift: ImGuiKey = 532;
pub const ImGuiKey_RightAlt: ImGuiKey = 533;
pub const ImGuiKey_RightSuper: ImGuiKey = 534;
pub const ImGuiKey_Menu: ImGuiKey = 535;
pub const ImGuiKey_0: ImGuiKey = 536;
pub const ImGuiKey_1: ImGuiKey = 537;
pub const ImGuiKey_2: ImGuiKey = 538;
pub const ImGuiKey_3: ImGuiKey = 539;
pub const ImGuiKey_4: ImGuiKey = 540;
pub const ImGuiKey_5: ImGuiKey = 541;
pub const ImGuiKey_6: ImGuiKey = 542;
pub const ImGuiKey_7: ImGuiKey = 543;
pub const ImGuiKey_8: ImGuiKey = 544;
pub const ImGuiKey_9: ImGuiKey = 545;
pub const ImGuiKey_A: ImGuiKey = 546;
pub const ImGuiKey_B: ImGuiKey = 547;
pub const ImGuiKey_C: ImGuiKey = 548;
pub const ImGuiKey_D: ImGuiKey = 549;
pub const ImGuiKey_E: ImGuiKey = 550;
pub const ImGuiKey_F: ImGuiKey = 551;
pub const ImGuiKey_G: ImGuiKey = 552;
pub const ImGuiKey_H: ImGuiKey = 553;
pub const ImGuiKey_I: ImGuiKey = 554;
pub const ImGuiKey_J: ImGuiKey = 555;
pub const ImGuiKey_K: ImGuiKey = 556;
pub const ImGuiKey_L: ImGuiKey = 557;
pub const ImGuiKey_M: ImGuiKey = 558;
pub const ImGuiKey_N: ImGuiKey = 559;
pub const ImGuiKey_O: ImGuiKey = 560;
pub const ImGuiKey_P: ImGuiKey = 561;
pub const ImGuiKey_Q: ImGuiKey = 562;
pub const ImGuiKey_R: ImGuiKey = 563;
pub const ImGuiKey_S: ImGuiKey = 564;
pub const ImGuiKey_T: ImGuiKey = 565;
pub const ImGuiKey_U: ImGuiKey = 566;
pub const ImGuiKey_V: ImGuiKey = 567;
pub const ImGuiKey_W: ImGuiKey = 568;
pub const ImGuiKey_X: ImGuiKey = 569;
pub const ImGuiKey_Y: ImGuiKey = 570;
pub const ImGuiKey_Z: ImGuiKey = 571;
pub const ImGuiKey_F1: ImGuiKey = 572;
pub const ImGuiKey_F2: ImGuiKey = 573;
pub const ImGuiKey_F3: ImGuiKey = 574;
pub const ImGuiKey_F4: ImGuiKey = 575;
pub const ImGuiKey_F5: ImGuiKey = 576;
pub const ImGuiKey_F6: ImGuiKey = 577;
pub const ImGuiKey_F7: ImGuiKey = 578;
pub const ImGuiKey_F8: ImGuiKey = 579;
pub const ImGuiKey_F9: ImGuiKey = 580;
pub const ImGuiKey_F10: ImGuiKey = 581;
pub const ImGuiKey_F11: ImGuiKey = 582;
pub const ImGuiKey_F12: ImGuiKey = 583;
pub const ImGuiKey_F13: ImGuiKey = 584;
pub const ImGuiKey_F14: ImGuiKey = 585;
pub const ImGuiKey_F15: ImGuiKey = 586;
pub const ImGuiKey_F16: ImGuiKey = 587;
pub const ImGuiKey_F17: ImGuiKey = 588;
pub const ImGuiKey_F18: ImGuiKey = 589;
pub const ImGuiKey_F19: ImGuiKey = 590;
pub const ImGuiKey_F20: ImGuiKey = 591;
pub const ImGuiKey_F21: ImGuiKey = 592;
pub const ImGuiKey_F22: ImGuiKey = 593;
pub const ImGuiKey_F23: ImGuiKey = 594;
pub const ImGuiKey_F24: ImGuiKey = 595;
pub const ImGuiKey_Apostrophe: ImGuiKey = 596;
pub const ImGuiKey_Comma: ImGuiKey = 597;
pub const ImGuiKey_Minus: ImGuiKey = 598;
pub const ImGuiKey_Period: ImGuiKey = 599;
pub const ImGuiKey_Slash: ImGuiKey = 600;
pub const ImGuiKey_Semicolon: ImGuiKey = 601;
pub const ImGuiKey_Equal: ImGuiKey = 602;
pub const ImGuiKey_LeftBracket: ImGuiKey = 603;
pub const ImGuiKey_Backslash: ImGuiKey = 604;
pub const ImGuiKey_RightBracket: ImGuiKey = 605;
pub const ImGuiKey_GraveAccent: ImGuiKey = 606;
pub const ImGuiKey_CapsLock: ImGuiKey = 607;
pub const ImGuiKey_ScrollLock: ImGuiKey = 608;
pub const ImGuiKey_NumLock: ImGuiKey = 609;
pub const ImGuiKey_PrintScreen: ImGuiKey = 610;
pub const ImGuiKey_Pause: ImGuiKey = 611;
pub const ImGuiKey_Keypad0: ImGuiKey = 612;
pub const ImGuiKey_Keypad1: ImGuiKey = 613;
pub const ImGuiKey_Keypad2: ImGuiKey = 614;
pub const ImGuiKey_Keypad3: ImGuiKey = 615;
pub const ImGuiKey_Keypad4: ImGuiKey = 616;
pub const ImGuiKey_Keypad5: ImGuiKey = 617;
pub const ImGuiKey_Keypad6: ImGuiKey = 618;
pub const ImGuiKey_Keypad7: ImGuiKey = 619;
pub const ImGuiKey_Keypad8: ImGuiKey = 620;
pub const ImGuiKey_Keypad9: ImGuiKey = 621;
pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622;
pub const ImGuiKey_KeypadDivide: ImGuiKey = 623;
pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624;
pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625;
pub const ImGuiKey_KeypadAdd: ImGuiKey = 626;
pub const ImGuiKey_KeypadEnter: ImGuiKey = 627;
pub const ImGuiKey_KeypadEqual: ImGuiKey = 628;
pub const ImGuiKey_AppBack: ImGuiKey = 629;
pub const ImGuiKey_AppForward: ImGuiKey = 630;
pub const ImGuiKey_Oem102: ImGuiKey = 631;
pub const ImGuiKey_GamepadStart: ImGuiKey = 632;
pub const ImGuiKey_GamepadBack: ImGuiKey = 633;
pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 634;
pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 635;
pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 636;
pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 637;
pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 638;
pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 639;
pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 640;
pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 641;
pub const ImGuiKey_GamepadL1: ImGuiKey = 642;
pub const ImGuiKey_GamepadR1: ImGuiKey = 643;
pub const ImGuiKey_GamepadL2: ImGuiKey = 644;
pub const ImGuiKey_GamepadR2: ImGuiKey = 645;
pub const ImGuiKey_GamepadL3: ImGuiKey = 646;
pub const ImGuiKey_GamepadR3: ImGuiKey = 647;
pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 648;
pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 649;
pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 650;
pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 651;
pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 652;
pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 653;
pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 654;
pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 655;
pub const ImGuiKey_MouseLeft: ImGuiKey = 656;
pub const ImGuiKey_MouseRight: ImGuiKey = 657;
pub const ImGuiKey_MouseMiddle: ImGuiKey = 658;
pub const ImGuiKey_MouseX1: ImGuiKey = 659;
pub const ImGuiKey_MouseX2: ImGuiKey = 660;
pub const ImGuiKey_MouseWheelX: ImGuiKey = 661;
pub const ImGuiKey_MouseWheelY: ImGuiKey = 662;
pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 663;
pub const ImGuiKey_ReservedForModShift: ImGuiKey = 664;
pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 665;
pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 666;
pub const ImGuiKey_NamedKey_END: ImGuiKey = 667;
pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 155;
pub const ImGuiMod_None: ImGuiKey = 0;
pub const ImGuiMod_Ctrl: ImGuiKey = 4096;
pub const ImGuiMod_Shift: ImGuiKey = 8192;
pub const ImGuiMod_Alt: ImGuiKey = 16384;
pub const ImGuiMod_Super: ImGuiKey = 32768;
pub const ImGuiMod_Mask_: ImGuiKey = 61440;
pub type ImGuiKey = ::std::os::raw::c_int;
pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0;
pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1;
pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024;
pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048;
pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096;
pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192;
pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384;
pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768;
pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536;
pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072;
pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144;
pub type ImGuiInputFlags_ = ::std::os::raw::c_int;
pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0;
pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1;
pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2;
pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16;
pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32;
pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64;
pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 128;
pub const ImGuiConfigFlags_ViewportsEnable: ImGuiConfigFlags_ = 1024;
pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576;
pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152;
pub type ImGuiConfigFlags_ = ::std::os::raw::c_int;
pub const ImGuiBackendFlags_None: ImGuiBackendFlags_ = 0;
pub const ImGuiBackendFlags_HasGamepad: ImGuiBackendFlags_ = 1;
pub const ImGuiBackendFlags_HasMouseCursors: ImGuiBackendFlags_ = 2;
pub const ImGuiBackendFlags_HasSetMousePos: ImGuiBackendFlags_ = 4;
pub const ImGuiBackendFlags_RendererHasVtxOffset: ImGuiBackendFlags_ = 8;
pub const ImGuiBackendFlags_RendererHasTextures: ImGuiBackendFlags_ = 16;
pub const ImGuiBackendFlags_RendererHasViewports: ImGuiBackendFlags_ = 1024;
pub const ImGuiBackendFlags_PlatformHasViewports: ImGuiBackendFlags_ = 2048;
pub const ImGuiBackendFlags_HasMouseHoveredViewport: ImGuiBackendFlags_ = 4096;
pub const ImGuiBackendFlags_HasParentViewport: ImGuiBackendFlags_ = 8192;
pub type ImGuiBackendFlags_ = ::std::os::raw::c_int;
pub const ImGuiCol_Text: ImGuiCol_ = 0;
pub const ImGuiCol_TextDisabled: ImGuiCol_ = 1;
pub const ImGuiCol_WindowBg: ImGuiCol_ = 2;
pub const ImGuiCol_ChildBg: ImGuiCol_ = 3;
pub const ImGuiCol_PopupBg: ImGuiCol_ = 4;
pub const ImGuiCol_Border: ImGuiCol_ = 5;
pub const ImGuiCol_BorderShadow: ImGuiCol_ = 6;
pub const ImGuiCol_FrameBg: ImGuiCol_ = 7;
pub const ImGuiCol_FrameBgHovered: ImGuiCol_ = 8;
pub const ImGuiCol_FrameBgActive: ImGuiCol_ = 9;
pub const ImGuiCol_TitleBg: ImGuiCol_ = 10;
pub const ImGuiCol_TitleBgActive: ImGuiCol_ = 11;
pub const ImGuiCol_TitleBgCollapsed: ImGuiCol_ = 12;
pub const ImGuiCol_MenuBarBg: ImGuiCol_ = 13;
pub const ImGuiCol_ScrollbarBg: ImGuiCol_ = 14;
pub const ImGuiCol_ScrollbarGrab: ImGuiCol_ = 15;
pub const ImGuiCol_ScrollbarGrabHovered: ImGuiCol_ = 16;
pub const ImGuiCol_ScrollbarGrabActive: ImGuiCol_ = 17;
pub const ImGuiCol_CheckMark: ImGuiCol_ = 18;
pub const ImGuiCol_CheckboxSelectedBg: ImGuiCol_ = 19;
pub const ImGuiCol_SliderGrab: ImGuiCol_ = 20;
pub const ImGuiCol_SliderGrabActive: ImGuiCol_ = 21;
pub const ImGuiCol_Button: ImGuiCol_ = 22;
pub const ImGuiCol_ButtonHovered: ImGuiCol_ = 23;
pub const ImGuiCol_ButtonActive: ImGuiCol_ = 24;
pub const ImGuiCol_Header: ImGuiCol_ = 25;
pub const ImGuiCol_HeaderHovered: ImGuiCol_ = 26;
pub const ImGuiCol_HeaderActive: ImGuiCol_ = 27;
pub const ImGuiCol_Separator: ImGuiCol_ = 28;
pub const ImGuiCol_SeparatorHovered: ImGuiCol_ = 29;
pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 30;
pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 31;
pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 32;
pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 33;
pub const ImGuiCol_InputTextCursor: ImGuiCol_ = 34;
pub const ImGuiCol_TabHovered: ImGuiCol_ = 35;
pub const ImGuiCol_Tab: ImGuiCol_ = 36;
pub const ImGuiCol_TabSelected: ImGuiCol_ = 37;
pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 38;
pub const ImGuiCol_TabDimmed: ImGuiCol_ = 39;
pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 40;
pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 41;
pub const ImGuiCol_DockingPreview: ImGuiCol_ = 42;
pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 43;
pub const ImGuiCol_PlotLines: ImGuiCol_ = 44;
pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 45;
pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 46;
pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 47;
pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 48;
pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 49;
pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 50;
pub const ImGuiCol_TableRowBg: ImGuiCol_ = 51;
pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 52;
pub const ImGuiCol_TextLink: ImGuiCol_ = 53;
pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 54;
pub const ImGuiCol_TreeLines: ImGuiCol_ = 55;
pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 56;
pub const ImGuiCol_DragDropTargetBg: ImGuiCol_ = 57;
pub const ImGuiCol_UnsavedMarker: ImGuiCol_ = 58;
pub const ImGuiCol_NavCursor: ImGuiCol_ = 59;
pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 60;
pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 61;
pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 62;
pub const ImGuiCol_COUNT: ImGuiCol_ = 63;
pub type ImGuiCol_ = ::std::os::raw::c_int;
pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0;
pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1;
pub const ImGuiStyleVar_WindowPadding: ImGuiStyleVar_ = 2;
pub const ImGuiStyleVar_WindowRounding: ImGuiStyleVar_ = 3;
pub const ImGuiStyleVar_WindowBorderSize: ImGuiStyleVar_ = 4;
pub const ImGuiStyleVar_WindowMinSize: ImGuiStyleVar_ = 5;
pub const ImGuiStyleVar_WindowTitleAlign: ImGuiStyleVar_ = 6;
pub const ImGuiStyleVar_ChildRounding: ImGuiStyleVar_ = 7;
pub const ImGuiStyleVar_ChildBorderSize: ImGuiStyleVar_ = 8;
pub const ImGuiStyleVar_PopupRounding: ImGuiStyleVar_ = 9;
pub const ImGuiStyleVar_PopupBorderSize: ImGuiStyleVar_ = 10;
pub const ImGuiStyleVar_FramePadding: ImGuiStyleVar_ = 11;
pub const ImGuiStyleVar_FrameRounding: ImGuiStyleVar_ = 12;
pub const ImGuiStyleVar_FrameBorderSize: ImGuiStyleVar_ = 13;
pub const ImGuiStyleVar_ItemSpacing: ImGuiStyleVar_ = 14;
pub const ImGuiStyleVar_ItemInnerSpacing: ImGuiStyleVar_ = 15;
pub const ImGuiStyleVar_IndentSpacing: ImGuiStyleVar_ = 16;
pub const ImGuiStyleVar_CellPadding: ImGuiStyleVar_ = 17;
pub const ImGuiStyleVar_ScrollbarSize: ImGuiStyleVar_ = 18;
pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19;
pub const ImGuiStyleVar_ScrollbarPadding: ImGuiStyleVar_ = 20;
pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 21;
pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 22;
pub const ImGuiStyleVar_ImageRounding: ImGuiStyleVar_ = 23;
pub const ImGuiStyleVar_ImageBorderSize: ImGuiStyleVar_ = 24;
pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 25;
pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 26;
pub const ImGuiStyleVar_TabMinWidthBase: ImGuiStyleVar_ = 27;
pub const ImGuiStyleVar_TabMinWidthShrink: ImGuiStyleVar_ = 28;
pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 29;
pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 30;
pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 31;
pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 32;
pub const ImGuiStyleVar_TreeLinesSize: ImGuiStyleVar_ = 33;
pub const ImGuiStyleVar_TreeLinesRounding: ImGuiStyleVar_ = 34;
pub const ImGuiStyleVar_DragDropTargetRounding: ImGuiStyleVar_ = 35;
pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 36;
pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 37;
pub const ImGuiStyleVar_SeparatorSize: ImGuiStyleVar_ = 38;
pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 39;
pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 40;
pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 41;
pub const ImGuiStyleVar_DockingSeparatorSize: ImGuiStyleVar_ = 42;
pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 43;
pub type ImGuiStyleVar_ = ::std::os::raw::c_int;
pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0;
pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1;
pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2;
pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4;
pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7;
pub const ImGuiButtonFlags_EnableNav: ImGuiButtonFlags_ = 8;
pub const ImGuiButtonFlags_AllowOverlap: ImGuiButtonFlags_ = 4096;
pub type ImGuiButtonFlags_ = ::std::os::raw::c_int;
pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0;
pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2;
pub const ImGuiColorEditFlags_NoPicker: ImGuiColorEditFlags_ = 4;
pub const ImGuiColorEditFlags_NoOptions: ImGuiColorEditFlags_ = 8;
pub const ImGuiColorEditFlags_NoSmallPreview: ImGuiColorEditFlags_ = 16;
pub const ImGuiColorEditFlags_NoInputs: ImGuiColorEditFlags_ = 32;
pub const ImGuiColorEditFlags_NoTooltip: ImGuiColorEditFlags_ = 64;
pub const ImGuiColorEditFlags_NoLabel: ImGuiColorEditFlags_ = 128;
pub const ImGuiColorEditFlags_NoSidePreview: ImGuiColorEditFlags_ = 256;
pub const ImGuiColorEditFlags_NoDragDrop: ImGuiColorEditFlags_ = 512;
pub const ImGuiColorEditFlags_NoBorder: ImGuiColorEditFlags_ = 1024;
pub const ImGuiColorEditFlags_NoColorMarkers: ImGuiColorEditFlags_ = 2048;
pub const ImGuiColorEditFlags_AlphaOpaque: ImGuiColorEditFlags_ = 4096;
pub const ImGuiColorEditFlags_AlphaNoBg: ImGuiColorEditFlags_ = 8192;
pub const ImGuiColorEditFlags_AlphaPreviewHalf: ImGuiColorEditFlags_ = 16384;
pub const ImGuiColorEditFlags_AlphaBar: ImGuiColorEditFlags_ = 262144;
pub const ImGuiColorEditFlags_HDR: ImGuiColorEditFlags_ = 524288;
pub const ImGuiColorEditFlags_DisplayRGB: ImGuiColorEditFlags_ = 1048576;
pub const ImGuiColorEditFlags_DisplayHSV: ImGuiColorEditFlags_ = 2097152;
pub const ImGuiColorEditFlags_DisplayHex: ImGuiColorEditFlags_ = 4194304;
pub const ImGuiColorEditFlags_Uint8: ImGuiColorEditFlags_ = 8388608;
pub const ImGuiColorEditFlags_Float: ImGuiColorEditFlags_ = 16777216;
pub const ImGuiColorEditFlags_PickerHueBar: ImGuiColorEditFlags_ = 33554432;
pub const ImGuiColorEditFlags_PickerHueWheel: ImGuiColorEditFlags_ = 67108864;
pub const ImGuiColorEditFlags_InputRGB: ImGuiColorEditFlags_ = 134217728;
pub const ImGuiColorEditFlags_InputHSV: ImGuiColorEditFlags_ = 268435456;
pub const ImGuiColorEditFlags_DefaultOptions_: ImGuiColorEditFlags_ = 177209344;
pub const ImGuiColorEditFlags_AlphaMask_: ImGuiColorEditFlags_ = 28674;
pub const ImGuiColorEditFlags_DisplayMask_: ImGuiColorEditFlags_ = 7340032;
pub const ImGuiColorEditFlags_DataTypeMask_: ImGuiColorEditFlags_ = 25165824;
pub const ImGuiColorEditFlags_PickerMask_: ImGuiColorEditFlags_ = 100663296;
pub const ImGuiColorEditFlags_InputMask_: ImGuiColorEditFlags_ = 402653184;
pub type ImGuiColorEditFlags_ = ::std::os::raw::c_int;
pub const ImGuiSliderFlags_None: ImGuiSliderFlags_ = 0;
pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32;
pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64;
pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128;
pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256;
pub const ImGuiSliderFlags_ClampOnInput: ImGuiSliderFlags_ = 512;
pub const ImGuiSliderFlags_ClampZeroRange: ImGuiSliderFlags_ = 1024;
pub const ImGuiSliderFlags_NoSpeedTweaks: ImGuiSliderFlags_ = 2048;
pub const ImGuiSliderFlags_ColorMarkers: ImGuiSliderFlags_ = 4096;
pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 1536;
pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207;
pub type ImGuiSliderFlags_ = ::std::os::raw::c_int;
pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0;
pub const ImGuiMouseButton_Right: ImGuiMouseButton_ = 1;
pub const ImGuiMouseButton_Middle: ImGuiMouseButton_ = 2;
pub const ImGuiMouseButton_COUNT: ImGuiMouseButton_ = 5;
pub type ImGuiMouseButton_ = ::std::os::raw::c_int;
pub const ImGuiMouseCursor_None: ImGuiMouseCursor_ = -1;
pub const ImGuiMouseCursor_Arrow: ImGuiMouseCursor_ = 0;
pub const ImGuiMouseCursor_TextInput: ImGuiMouseCursor_ = 1;
pub const ImGuiMouseCursor_ResizeAll: ImGuiMouseCursor_ = 2;
pub const ImGuiMouseCursor_ResizeNS: ImGuiMouseCursor_ = 3;
pub const ImGuiMouseCursor_ResizeEW: ImGuiMouseCursor_ = 4;
pub const ImGuiMouseCursor_ResizeNESW: ImGuiMouseCursor_ = 5;
pub const ImGuiMouseCursor_ResizeNWSE: ImGuiMouseCursor_ = 6;
pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7;
pub const ImGuiMouseCursor_Wait: ImGuiMouseCursor_ = 8;
pub const ImGuiMouseCursor_Progress: ImGuiMouseCursor_ = 9;
pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 10;
pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 11;
pub type ImGuiMouseCursor_ = ::std::os::raw::c_int;
pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0;
pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1;
pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2;
pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3;
pub type ImGuiMouseSource = ::std::os::raw::c_int;
pub const ImGuiCond_None: ImGuiCond_ = 0;
pub const ImGuiCond_Always: ImGuiCond_ = 1;
pub const ImGuiCond_Once: ImGuiCond_ = 2;
pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4;
pub const ImGuiCond_Appearing: ImGuiCond_ = 8;
pub type ImGuiCond_ = ::std::os::raw::c_int;
pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0;
pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1;
pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2;
pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4;
pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8;
pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16;
pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32;
pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64;
pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128;
pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256;
pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512;
pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024;
pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384;
pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536;
pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640;
pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280;
pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920;
pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048;
pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096;
pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192;
pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384;
pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576;
pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768;
pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536;
pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072;
pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144;
pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288;
pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576;
pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152;
pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304;
pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608;
pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216;
pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432;
pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864;
pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728;
pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456;
pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344;
pub type ImGuiTableFlags_ = ::std::os::raw::c_int;
pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0;
pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1;
pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2;
pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4;
pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8;
pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16;
pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32;
pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64;
pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128;
pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256;
pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512;
pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024;
pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048;
pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096;
pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192;
pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384;
pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768;
pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536;
pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072;
pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144;
pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216;
pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432;
pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864;
pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728;
pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24;
pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608;
pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240;
pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824;
pub type ImGuiTableColumnFlags_ = ::std::os::raw::c_int;
pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0;
pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1;
pub type ImGuiTableRowFlags_ = ::std::os::raw::c_int;
pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0;
pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1;
pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2;
pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3;
pub type ImGuiTableBgTarget_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTableSortSpecs {
    pub Specs: *const ImGuiTableColumnSortSpecs,
    pub SpecsCount: ::std::os::raw::c_int,
    pub SpecsDirty: bool,
}
impl Default for ImGuiTableSortSpecs {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTableColumnSortSpecs {
    pub ColumnUserID: ImGuiID,
    pub ColumnIndex: ImS16,
    pub SortOrder: ImS16,
    pub SortDirection: ImGuiSortDirection,
}
impl Default for ImGuiTableColumnSortSpecs {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiStyle {
    pub FontSizeBase: f32,
    pub FontScaleMain: f32,
    pub FontScaleDpi: f32,
    pub Alpha: f32,
    pub DisabledAlpha: f32,
    pub WindowPadding: ImVec2_c,
    pub WindowRounding: f32,
    pub WindowBorderSize: f32,
    pub WindowBorderHoverPadding: f32,
    pub WindowMinSize: ImVec2_c,
    pub WindowTitleAlign: ImVec2_c,
    pub WindowMenuButtonPosition: ImGuiDir,
    pub ChildRounding: f32,
    pub ChildBorderSize: f32,
    pub PopupRounding: f32,
    pub PopupBorderSize: f32,
    pub FramePadding: ImVec2_c,
    pub FrameRounding: f32,
    pub FrameBorderSize: f32,
    pub ItemSpacing: ImVec2_c,
    pub ItemInnerSpacing: ImVec2_c,
    pub CellPadding: ImVec2_c,
    pub TouchExtraPadding: ImVec2_c,
    pub IndentSpacing: f32,
    pub ColumnsMinSpacing: f32,
    pub ScrollbarSize: f32,
    pub ScrollbarRounding: f32,
    pub ScrollbarPadding: f32,
    pub GrabMinSize: f32,
    pub GrabRounding: f32,
    pub LogSliderDeadzone: f32,
    pub ImageRounding: f32,
    pub ImageBorderSize: f32,
    pub TabRounding: f32,
    pub TabBorderSize: f32,
    pub TabMinWidthBase: f32,
    pub TabMinWidthShrink: f32,
    pub TabCloseButtonMinWidthSelected: f32,
    pub TabCloseButtonMinWidthUnselected: f32,
    pub TabBarBorderSize: f32,
    pub TabBarOverlineSize: f32,
    pub TableAngledHeadersAngle: f32,
    pub TableAngledHeadersTextAlign: ImVec2_c,
    pub TreeLinesFlags: ImGuiTreeNodeFlags,
    pub TreeLinesSize: f32,
    pub TreeLinesRounding: f32,
    pub DragDropTargetRounding: f32,
    pub DragDropTargetBorderSize: f32,
    pub DragDropTargetPadding: f32,
    pub ColorMarkerSize: f32,
    pub ColorButtonPosition: ImGuiDir,
    pub ButtonTextAlign: ImVec2_c,
    pub SelectableTextAlign: ImVec2_c,
    pub SeparatorSize: f32,
    pub SeparatorTextBorderSize: f32,
    pub SeparatorTextAlign: ImVec2_c,
    pub SeparatorTextPadding: ImVec2_c,
    pub DisplayWindowPadding: ImVec2_c,
    pub DisplaySafeAreaPadding: ImVec2_c,
    pub DockingNodeHasCloseButton: bool,
    pub DockingSeparatorSize: f32,
    pub MouseCursorScale: f32,
    pub AntiAliasedLines: bool,
    pub AntiAliasedLinesUseTex: bool,
    pub AntiAliasedFill: bool,
    pub CurveTessellationTol: f32,
    pub CircleTessellationMaxError: f32,
    pub Colors: [ImVec4_c; 63usize],
    pub HoverStationaryDelay: f32,
    pub HoverDelayShort: f32,
    pub HoverDelayNormal: f32,
    pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags,
    pub HoverFlagsForTooltipNav: ImGuiHoveredFlags,
    pub _MainScale: f32,
    pub _NextFrameFontSizeBase: f32,
}
impl Default for ImGuiStyle {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiKeyData {
    pub Down: bool,
    pub DownDuration: f32,
    pub DownDurationPrev: f32,
    pub AnalogValue: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImWchar {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImWchar,
}
impl Default for ImVector_ImWchar {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiIO {
    pub ConfigFlags: ImGuiConfigFlags,
    pub BackendFlags: ImGuiBackendFlags,
    pub DisplaySize: ImVec2_c,
    pub DisplayFramebufferScale: ImVec2_c,
    pub DeltaTime: f32,
    pub IniSavingRate: f32,
    pub IniFilename: *const ::std::os::raw::c_char,
    pub LogFilename: *const ::std::os::raw::c_char,
    pub UserData: *mut ::std::os::raw::c_void,
    pub Fonts: *mut ImFontAtlas,
    pub FontDefault: *mut ImFont,
    pub FontAllowUserScaling: bool,
    pub ConfigNavSwapGamepadButtons: bool,
    pub ConfigNavMoveSetMousePos: bool,
    pub ConfigNavCaptureKeyboard: bool,
    pub ConfigNavEscapeClearFocusItem: bool,
    pub ConfigNavEscapeClearFocusWindow: bool,
    pub ConfigNavCursorVisibleAuto: bool,
    pub ConfigNavCursorVisibleAlways: bool,
    pub ConfigDockingNoSplit: bool,
    pub ConfigDockingNoDockingOver: bool,
    pub ConfigDockingWithShift: bool,
    pub ConfigDockingAlwaysTabBar: bool,
    pub ConfigDockingTransparentPayload: bool,
    pub ConfigViewportsNoAutoMerge: bool,
    pub ConfigViewportsNoTaskBarIcon: bool,
    pub ConfigViewportsNoDecoration: bool,
    pub ConfigViewportsNoDefaultParent: bool,
    pub ConfigViewportsPlatformFocusSetsImGuiFocus: bool,
    pub ConfigDpiScaleFonts: bool,
    pub ConfigDpiScaleViewports: bool,
    pub MouseDrawCursor: bool,
    pub ConfigMacOSXBehaviors: bool,
    pub ConfigInputTrickleEventQueue: bool,
    pub ConfigInputTextCursorBlink: bool,
    pub ConfigInputTextEnterKeepActive: bool,
    pub ConfigDragClickToInputText: bool,
    pub ConfigWindowsResizeFromEdges: bool,
    pub ConfigWindowsMoveFromTitleBarOnly: bool,
    pub ConfigWindowsCopyContentsWithCtrlC: bool,
    pub ConfigScrollbarScrollByPage: bool,
    pub ConfigMemoryCompactTimer: f32,
    pub MouseDoubleClickTime: f32,
    pub MouseDoubleClickMaxDist: f32,
    pub MouseDragThreshold: f32,
    pub KeyRepeatDelay: f32,
    pub KeyRepeatRate: f32,
    pub ConfigErrorRecovery: bool,
    pub ConfigErrorRecoveryEnableAssert: bool,
    pub ConfigErrorRecoveryEnableDebugLog: bool,
    pub ConfigErrorRecoveryEnableTooltip: bool,
    pub ConfigDebugIsDebuggerPresent: bool,
    pub ConfigDebugHighlightIdConflicts: bool,
    pub ConfigDebugHighlightIdConflictsShowItemPicker: bool,
    pub ConfigDebugBeginReturnValueOnce: bool,
    pub ConfigDebugBeginReturnValueLoop: bool,
    pub ConfigDebugIgnoreFocusLoss: bool,
    pub ConfigDebugIniSettings: bool,
    pub BackendPlatformName: *const ::std::os::raw::c_char,
    pub BackendRendererName: *const ::std::os::raw::c_char,
    pub BackendPlatformUserData: *mut ::std::os::raw::c_void,
    pub BackendRendererUserData: *mut ::std::os::raw::c_void,
    pub BackendLanguageUserData: *mut ::std::os::raw::c_void,
    pub WantCaptureMouse: bool,
    pub WantCaptureKeyboard: bool,
    pub WantTextInput: bool,
    pub WantSetMousePos: bool,
    pub WantSaveIniSettings: bool,
    pub NavActive: bool,
    pub NavVisible: bool,
    pub Framerate: f32,
    pub MetricsRenderVertices: ::std::os::raw::c_int,
    pub MetricsRenderIndices: ::std::os::raw::c_int,
    pub MetricsRenderWindows: ::std::os::raw::c_int,
    pub MetricsActiveWindows: ::std::os::raw::c_int,
    pub MouseDelta: ImVec2_c,
    pub Ctx: *mut ImGuiContext,
    pub MousePos: ImVec2_c,
    pub MouseDown: [bool; 5usize],
    pub MouseWheel: f32,
    pub MouseWheelH: f32,
    pub MouseSource: ImGuiMouseSource,
    pub MouseHoveredViewport: ImGuiID,
    pub KeyCtrl: bool,
    pub KeyShift: bool,
    pub KeyAlt: bool,
    pub KeySuper: bool,
    pub KeyMods: ImGuiKeyChord,
    pub KeysData: [ImGuiKeyData; 155usize],
    pub WantCaptureMouseUnlessPopupClose: bool,
    pub MousePosPrev: ImVec2_c,
    pub MouseClickedPos: [ImVec2_c; 5usize],
    pub MouseClickedTime: [f64; 5usize],
    pub MouseClicked: [bool; 5usize],
    pub MouseDoubleClicked: [bool; 5usize],
    pub MouseClickedCount: [ImU16; 5usize],
    pub MouseClickedLastCount: [ImU16; 5usize],
    pub MouseReleased: [bool; 5usize],
    pub MouseReleasedTime: [f64; 5usize],
    pub MouseDownOwned: [bool; 5usize],
    pub MouseDownOwnedUnlessPopupClose: [bool; 5usize],
    pub MouseWheelRequestAxisSwap: bool,
    pub MouseCtrlLeftAsRightClick: bool,
    pub MouseDownDuration: [f32; 5usize],
    pub MouseDownDurationPrev: [f32; 5usize],
    pub MouseDragMaxDistanceAbs: [ImVec2_c; 5usize],
    pub MouseDragMaxDistanceSqr: [f32; 5usize],
    pub PenPressure: f32,
    pub AppFocusLost: bool,
    pub AppAcceptingEvents: bool,
    pub InputQueueSurrogate: ImWchar16,
    pub InputQueueCharacters: ImVector_ImWchar,
}
impl Default for ImGuiIO {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputTextCallbackData {
    pub Ctx: *mut ImGuiContext,
    pub EventFlag: ImGuiInputTextFlags,
    pub Flags: ImGuiInputTextFlags,
    pub UserData: *mut ::std::os::raw::c_void,
    pub ID: ImGuiID,
    pub EventKey: ImGuiKey,
    pub EventChar: ImWchar,
    pub EventActivated: bool,
    pub BufDirty: bool,
    pub Buf: *mut ::std::os::raw::c_char,
    pub BufTextLen: ::std::os::raw::c_int,
    pub BufSize: ::std::os::raw::c_int,
    pub CursorPos: ::std::os::raw::c_int,
    pub SelectionStart: ::std::os::raw::c_int,
    pub SelectionEnd: ::std::os::raw::c_int,
}
impl Default for ImGuiInputTextCallbackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiSizeCallbackData {
    pub UserData: *mut ::std::os::raw::c_void,
    pub Pos: ImVec2_c,
    pub CurrentSize: ImVec2_c,
    pub DesiredSize: ImVec2_c,
}
impl Default for ImGuiSizeCallbackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiWindowClass {
    pub ClassId: ImGuiID,
    pub ParentViewportId: ImGuiID,
    pub FocusRouteParentWindowId: ImGuiID,
    pub ViewportFlagsOverrideSet: ImGuiViewportFlags,
    pub ViewportFlagsOverrideClear: ImGuiViewportFlags,
    pub TabItemFlagsOverrideSet: ImGuiTabItemFlags,
    pub DockNodeFlagsOverrideSet: ImGuiDockNodeFlags,
    pub DockingAlwaysTabBar: bool,
    pub DockingAllowUnclassed: bool,
    pub PlatformIconData: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiWindowClass {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiPayload {
    pub Data: *mut ::std::os::raw::c_void,
    pub DataSize: ::std::os::raw::c_int,
    pub SourceId: ImGuiID,
    pub SourceParentId: ImGuiID,
    pub DataFrameCount: ::std::os::raw::c_int,
    pub DataType: [::std::os::raw::c_char; 33usize],
    pub Preview: bool,
    pub Delivery: bool,
}
impl Default for ImGuiPayload {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiOnceUponAFrame {
    pub RefFrame: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTextRange {
    pub b: *const ::std::os::raw::c_char,
    pub e: *const ::std::os::raw::c_char,
}
impl Default for ImGuiTextRange {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTextRange {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTextRange,
}
impl Default for ImVector_ImGuiTextRange {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTextFilter {
    pub InputBuf: [::std::os::raw::c_char; 256usize],
    pub Filters: ImVector_ImGuiTextRange,
    pub CountGrep: ::std::os::raw::c_int,
}
impl Default for ImGuiTextFilter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_char {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ::std::os::raw::c_char,
}
impl Default for ImVector_char {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTextBuffer {
    pub Buf: ImVector_char,
}
impl Default for ImGuiTextBuffer {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ImGuiStoragePair {
    pub key: ImGuiID,
    pub __bindgen_anon_1: ImGuiStoragePair__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ImGuiStoragePair__bindgen_ty_1 {
    pub val_i: ::std::os::raw::c_int,
    pub val_f: f32,
    pub val_p: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiStoragePair__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl Default for ImGuiStoragePair {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiStoragePair {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiStoragePair,
}
impl Default for ImVector_ImGuiStoragePair {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiStorage {
    pub Data: ImVector_ImGuiStoragePair,
}
impl Default for ImGuiStorage {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiListClipperFlags_None: ImGuiListClipperFlags_ = 0;
pub const ImGuiListClipperFlags_NoSetTableRowCounters: ImGuiListClipperFlags_ = 1;
pub type ImGuiListClipperFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiListClipper {
    pub DisplayStart: ::std::os::raw::c_int,
    pub DisplayEnd: ::std::os::raw::c_int,
    pub UserIndex: ::std::os::raw::c_int,
    pub ItemsCount: ::std::os::raw::c_int,
    pub ItemsHeight: f32,
    pub Flags: ImGuiListClipperFlags,
    pub StartPosY: f64,
    pub StartSeekOffsetY: f64,
    pub Ctx: *mut ImGuiContext,
    pub TempData: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiListClipper {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImColor_c {
    pub Value: ImVec4_c,
}
pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0;
pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1;
pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2;
pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4;
pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8;
pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16;
pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32;
pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64;
pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128;
pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256;
pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512;
pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024;
pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048;
pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096;
pub const ImGuiMultiSelectFlags_SelectOnAuto: ImGuiMultiSelectFlags_ = 8192;
pub const ImGuiMultiSelectFlags_SelectOnClickAlways: ImGuiMultiSelectFlags_ = 16384;
pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 32768;
pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536;
pub const ImGuiMultiSelectFlags_NoSelectOnRightClick: ImGuiMultiSelectFlags_ = 131072;
pub const ImGuiMultiSelectFlags_SelectOnMask_: ImGuiMultiSelectFlags_ = 57344;
pub type ImGuiMultiSelectFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiSelectionRequest {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiSelectionRequest,
}
impl Default for ImVector_ImGuiSelectionRequest {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiMultiSelectIO {
    pub Requests: ImVector_ImGuiSelectionRequest,
    pub RangeSrcItem: ImGuiSelectionUserData,
    pub NavIdItem: ImGuiSelectionUserData,
    pub NavIdSelected: bool,
    pub RangeSrcReset: bool,
    pub ItemsCount: ::std::os::raw::c_int,
}
impl Default for ImGuiMultiSelectIO {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0;
pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1;
pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2;
pub type ImGuiSelectionRequestType = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiSelectionRequest {
    pub Type: ImGuiSelectionRequestType,
    pub Selected: bool,
    pub RangeDirection: ImS8,
    pub RangeFirstItem: ImGuiSelectionUserData,
    pub RangeLastItem: ImGuiSelectionUserData,
}
impl Default for ImGuiSelectionRequest {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiSelectionBasicStorage {
    pub Size: ::std::os::raw::c_int,
    pub PreserveOrder: bool,
    pub UserData: *mut ::std::os::raw::c_void,
    pub AdapterIndexToStorageId: ::std::option::Option<
        unsafe extern "C" fn(
            self_: *mut ImGuiSelectionBasicStorage,
            idx: ::std::os::raw::c_int,
        ) -> ImGuiID,
    >,
    pub _SelectionOrder: ::std::os::raw::c_int,
    pub _Storage: ImGuiStorage,
}
impl Default for ImGuiSelectionBasicStorage {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiSelectionExternalStorage {
    pub UserData: *mut ::std::os::raw::c_void,
    pub AdapterSetItemSelected: ::std::option::Option<
        unsafe extern "C" fn(
            self_: *mut ImGuiSelectionExternalStorage,
            idx: ::std::os::raw::c_int,
            selected: bool,
        ),
    >,
}
impl Default for ImGuiSelectionExternalStorage {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImDrawIdx = ::std::os::raw::c_ushort;
pub type ImDrawCallback = ::std::option::Option<
    unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImDrawCmd {
    pub ClipRect: ImVec4_c,
    pub TexRef: ImTextureRef_c,
    pub VtxOffset: ::std::os::raw::c_uint,
    pub IdxOffset: ::std::os::raw::c_uint,
    pub ElemCount: ::std::os::raw::c_uint,
    pub UserCallback: ImDrawCallback,
    pub UserCallbackData: *mut ::std::os::raw::c_void,
    pub UserCallbackDataSize: ::std::os::raw::c_int,
    pub UserCallbackDataOffset: ::std::os::raw::c_int,
}
impl Default for ImDrawCmd {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImDrawVert {
    pub pos: ImVec2_c,
    pub uv: ImVec2_c,
    pub col: ImU32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImDrawCmdHeader {
    pub ClipRect: ImVec4_c,
    pub TexRef: ImTextureRef_c,
    pub VtxOffset: ::std::os::raw::c_uint,
}
impl Default for ImDrawCmdHeader {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawCmd {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImDrawCmd,
}
impl Default for ImVector_ImDrawCmd {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawIdx {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImDrawIdx,
}
impl Default for ImVector_ImDrawIdx {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImDrawChannel {
    pub _CmdBuffer: ImVector_ImDrawCmd,
    pub _IdxBuffer: ImVector_ImDrawIdx,
}
impl Default for ImDrawChannel {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawChannel {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImDrawChannel,
}
impl Default for ImVector_ImDrawChannel {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImDrawListSplitter {
    pub _Current: ::std::os::raw::c_int,
    pub _Count: ::std::os::raw::c_int,
    pub _Channels: ImVector_ImDrawChannel,
}
impl Default for ImDrawListSplitter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImDrawFlags_None: ImDrawFlags_ = 0;
pub const ImDrawFlags_RoundCornersTopLeft: ImDrawFlags_ = 16;
pub const ImDrawFlags_RoundCornersTopRight: ImDrawFlags_ = 32;
pub const ImDrawFlags_RoundCornersBottomLeft: ImDrawFlags_ = 64;
pub const ImDrawFlags_RoundCornersBottomRight: ImDrawFlags_ = 128;
pub const ImDrawFlags_RoundCornersNone: ImDrawFlags_ = 256;
pub const ImDrawFlags_Closed: ImDrawFlags_ = 512;
pub const ImDrawFlags_RoundCornersTop: ImDrawFlags_ = 48;
pub const ImDrawFlags_RoundCornersBottom: ImDrawFlags_ = 192;
pub const ImDrawFlags_RoundCornersLeft: ImDrawFlags_ = 80;
pub const ImDrawFlags_RoundCornersRight: ImDrawFlags_ = 160;
pub const ImDrawFlags_RoundCornersAll: ImDrawFlags_ = 240;
pub const ImDrawFlags_RoundCornersDefault_: ImDrawFlags_ = 240;
pub const ImDrawFlags_RoundCornersMask_: ImDrawFlags_ = 496;
pub const ImDrawFlags_InvalidMask_: ImDrawFlags_ = -2147483633;
pub type ImDrawFlags_ = ::std::os::raw::c_int;
pub const ImDrawListFlags_None: ImDrawListFlags_ = 0;
pub const ImDrawListFlags_AntiAliasedLines: ImDrawListFlags_ = 1;
pub const ImDrawListFlags_AntiAliasedLinesUseTex: ImDrawListFlags_ = 2;
pub const ImDrawListFlags_AntiAliasedFill: ImDrawListFlags_ = 4;
pub const ImDrawListFlags_AllowVtxOffset: ImDrawListFlags_ = 8;
pub type ImDrawListFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawVert {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImDrawVert,
}
impl Default for ImVector_ImDrawVert {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImVec2 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImVec2_c,
}
impl Default for ImVector_ImVec2 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImVec4 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImVec4_c,
}
impl Default for ImVector_ImVec4 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImTextureRef {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImTextureRef_c,
}
impl Default for ImVector_ImTextureRef {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImU8 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImU8,
}
impl Default for ImVector_ImU8 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImDrawList {
    pub CmdBuffer: ImVector_ImDrawCmd,
    pub IdxBuffer: ImVector_ImDrawIdx,
    pub VtxBuffer: ImVector_ImDrawVert,
    pub Flags: ImDrawListFlags,
    pub _VtxCurrentIdx: ::std::os::raw::c_uint,
    pub _Data: *mut ImDrawListSharedData,
    pub _VtxWritePtr: *mut ImDrawVert,
    pub _IdxWritePtr: *mut ImDrawIdx,
    pub _Path: ImVector_ImVec2,
    pub _CmdHeader: ImDrawCmdHeader,
    pub _Splitter: ImDrawListSplitter,
    pub _ClipRectStack: ImVector_ImVec4,
    pub _TextureStack: ImVector_ImTextureRef,
    pub _CallbacksDataBuf: ImVector_ImU8,
    pub _FringeScale: f32,
    pub _OwnerName: *const ::std::os::raw::c_char,
}
impl Default for ImDrawList {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawListPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImDrawList,
}
impl Default for ImVector_ImDrawListPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImTextureDataPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImTextureData,
}
impl Default for ImVector_ImTextureDataPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImDrawData {
    pub Valid: bool,
    pub CmdListsCount: ::std::os::raw::c_int,
    pub TotalIdxCount: ::std::os::raw::c_int,
    pub TotalVtxCount: ::std::os::raw::c_int,
    pub CmdLists: ImVector_ImDrawListPtr,
    pub DisplayPos: ImVec2_c,
    pub DisplaySize: ImVec2_c,
    pub FramebufferScale: ImVec2_c,
    pub OwnerViewport: *mut ImGuiViewport,
    pub Textures: *mut ImVector_ImTextureDataPtr,
}
impl Default for ImDrawData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImTextureFormat_RGBA32: ImTextureFormat = 0;
pub const ImTextureFormat_Alpha8: ImTextureFormat = 1;
pub type ImTextureFormat = ::std::os::raw::c_int;
pub const ImTextureStatus_OK: ImTextureStatus = 0;
pub const ImTextureStatus_Destroyed: ImTextureStatus = 1;
pub const ImTextureStatus_WantCreate: ImTextureStatus = 2;
pub const ImTextureStatus_WantUpdates: ImTextureStatus = 3;
pub const ImTextureStatus_WantDestroy: ImTextureStatus = 4;
pub type ImTextureStatus = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImTextureRect {
    pub x: ::std::os::raw::c_ushort,
    pub y: ::std::os::raw::c_ushort,
    pub w: ::std::os::raw::c_ushort,
    pub h: ::std::os::raw::c_ushort,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImTextureRect {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImTextureRect,
}
impl Default for ImVector_ImTextureRect {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImTextureData {
    pub UniqueID: ::std::os::raw::c_int,
    pub Status: ImTextureStatus,
    pub BackendUserData: *mut ::std::os::raw::c_void,
    pub TexID: ImTextureID,
    pub Format: ImTextureFormat,
    pub Width: ::std::os::raw::c_int,
    pub Height: ::std::os::raw::c_int,
    pub BytesPerPixel: ::std::os::raw::c_int,
    pub Pixels: *mut ::std::os::raw::c_uchar,
    pub UsedRect: ImTextureRect,
    pub UpdateRect: ImTextureRect,
    pub Updates: ImVector_ImTextureRect,
    pub UnusedFrames: ::std::os::raw::c_int,
    pub RefCount: ::std::os::raw::c_ushort,
    pub UseColors: bool,
    pub WantDestroyNextFrame: bool,
}
impl Default for ImTextureData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImFontConfig {
    pub Name: [::std::os::raw::c_char; 40usize],
    pub FontData: *mut ::std::os::raw::c_void,
    pub FontDataSize: ::std::os::raw::c_int,
    pub FontDataOwnedByAtlas: bool,
    pub MergeMode: bool,
    pub PixelSnapH: bool,
    pub OversampleH: ImS8,
    pub OversampleV: ImS8,
    pub EllipsisChar: ImWchar,
    pub SizePixels: f32,
    pub GlyphRanges: *const ImWchar,
    pub GlyphExcludeRanges: *const ImWchar,
    pub GlyphOffset: ImVec2_c,
    pub GlyphMinAdvanceX: f32,
    pub GlyphMaxAdvanceX: f32,
    pub GlyphExtraAdvanceX: f32,
    pub FontNo: ImU32,
    pub FontLoaderFlags: ::std::os::raw::c_uint,
    pub RasterizerMultiply: f32,
    pub RasterizerDensity: f32,
    pub ExtraSizeScale: f32,
    pub Flags: ImFontFlags,
    pub DstFont: *mut ImFont,
    pub FontLoader: *const ImFontLoader,
    pub FontLoaderData: *mut ::std::os::raw::c_void,
}
impl Default for ImFontConfig {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImFontGlyph {
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub AdvanceX: f32,
    pub X0: f32,
    pub Y0: f32,
    pub X1: f32,
    pub Y1: f32,
    pub U0: f32,
    pub V0: f32,
    pub U1: f32,
    pub V1: f32,
    pub PackId: ::std::os::raw::c_int,
}
impl ImFontGlyph {
    #[inline]
    pub fn Colored(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Colored(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Colored_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Colored_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn Visible(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Visible(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Visible_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                1usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Visible_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                1usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SourceIdx(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_SourceIdx(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SourceIdx_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                2usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_SourceIdx_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                2usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn Codepoint(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) }
    }
    #[inline]
    pub fn set_Codepoint(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 26u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Codepoint_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                26u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Codepoint_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                26u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Colored: ::std::os::raw::c_uint,
        Visible: ::std::os::raw::c_uint,
        SourceIdx: ::std::os::raw::c_uint,
        Codepoint: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let Colored: u32 = unsafe { ::std::mem::transmute(Colored) };
            Colored as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let Visible: u32 = unsafe { ::std::mem::transmute(Visible) };
            Visible as u64
        });
        __bindgen_bitfield_unit.set(2usize, 4u8, {
            let SourceIdx: u32 = unsafe { ::std::mem::transmute(SourceIdx) };
            SourceIdx as u64
        });
        __bindgen_bitfield_unit.set(6usize, 26u8, {
            let Codepoint: u32 = unsafe { ::std::mem::transmute(Codepoint) };
            Codepoint as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImU32 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImU32,
}
impl Default for ImVector_ImU32 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImFontGlyphRangesBuilder {
    pub UsedChars: ImVector_ImU32,
}
impl Default for ImFontGlyphRangesBuilder {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImFontAtlasRectId = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImFontAtlasRect {
    pub x: ::std::os::raw::c_ushort,
    pub y: ::std::os::raw::c_ushort,
    pub w: ::std::os::raw::c_ushort,
    pub h: ::std::os::raw::c_ushort,
    pub uv0: ImVec2_c,
    pub uv1: ImVec2_c,
}
pub const ImFontAtlasFlags_None: ImFontAtlasFlags_ = 0;
pub const ImFontAtlasFlags_NoPowerOfTwoHeight: ImFontAtlasFlags_ = 1;
pub const ImFontAtlasFlags_NoMouseCursors: ImFontAtlasFlags_ = 2;
pub const ImFontAtlasFlags_NoBakedLines: ImFontAtlasFlags_ = 4;
pub type ImFontAtlasFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImFont,
}
impl Default for ImVector_ImFontPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontConfig {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImFontConfig,
}
impl Default for ImVector_ImFontConfig {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImDrawListSharedDataPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImDrawListSharedData,
}
impl Default for ImVector_ImDrawListSharedDataPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImFontAtlas {
    pub Flags: ImFontAtlasFlags,
    pub TexDesiredFormat: ImTextureFormat,
    pub TexGlyphPadding: ::std::os::raw::c_int,
    pub TexMinWidth: ::std::os::raw::c_int,
    pub TexMinHeight: ::std::os::raw::c_int,
    pub TexMaxWidth: ::std::os::raw::c_int,
    pub TexMaxHeight: ::std::os::raw::c_int,
    pub UserData: *mut ::std::os::raw::c_void,
    pub TexRef: ImTextureRef_c,
    pub TexData: *mut ImTextureData,
    pub TexList: ImVector_ImTextureDataPtr,
    pub Locked: bool,
    pub RendererHasTextures: bool,
    pub TexIsBuilt: bool,
    pub TexPixelsUseColors: bool,
    pub TexUvScale: ImVec2_c,
    pub TexUvWhitePixel: ImVec2_c,
    pub Fonts: ImVector_ImFontPtr,
    pub Sources: ImVector_ImFontConfig,
    pub TexUvLines: [ImVec4_c; 33usize],
    pub TexNextUniqueID: ::std::os::raw::c_int,
    pub FontNextUniqueID: ::std::os::raw::c_int,
    pub DrawListSharedDatas: ImVector_ImDrawListSharedDataPtr,
    pub Builder: *mut ImFontAtlasBuilder,
    pub FontLoader: *const ImFontLoader,
    pub FontLoaderName: *const ::std::os::raw::c_char,
    pub FontLoaderData: *mut ::std::os::raw::c_void,
    pub FontLoaderFlags: ::std::os::raw::c_uint,
    pub RefCount: ::std::os::raw::c_int,
    pub OwnerContext: *mut ImGuiContext,
}
impl Default for ImFontAtlas {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_float {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut f32,
}
impl Default for ImVector_float {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImU16 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImU16,
}
impl Default for ImVector_ImU16 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontGlyph {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImFontGlyph,
}
impl Default for ImVector_ImFontGlyph {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImFontBaked {
    pub IndexAdvanceX: ImVector_float,
    pub FallbackAdvanceX: f32,
    pub Size: f32,
    pub RasterizerDensity: f32,
    pub IndexLookup: ImVector_ImU16,
    pub Glyphs: ImVector_ImFontGlyph,
    pub FallbackGlyphIndex: ::std::os::raw::c_int,
    pub Ascent: f32,
    pub Descent: f32,
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub LastUsedFrame: ::std::os::raw::c_int,
    pub BakedId: ImGuiID,
    pub OwnerFont: *mut ImFont,
    pub FontLoaderDatas: *mut ::std::os::raw::c_void,
}
impl Default for ImFontBaked {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl ImFontBaked {
    #[inline]
    pub fn MetricsTotalSurface(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 26u8) as u32) }
    }
    #[inline]
    pub fn set_MetricsTotalSurface(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 26u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn MetricsTotalSurface_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                26u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_MetricsTotalSurface_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                26u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantDestroy(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_WantDestroy(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(26usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantDestroy_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                26usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_WantDestroy_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                26usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn LoadNoFallback(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_LoadNoFallback(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(27usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn LoadNoFallback_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                27usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_LoadNoFallback_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                27usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn LoadNoRenderOnLayout(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_LoadNoRenderOnLayout(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(28usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn LoadNoRenderOnLayout_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                28usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_LoadNoRenderOnLayout_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                28usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        MetricsTotalSurface: ::std::os::raw::c_uint,
        WantDestroy: ::std::os::raw::c_uint,
        LoadNoFallback: ::std::os::raw::c_uint,
        LoadNoRenderOnLayout: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 26u8, {
            let MetricsTotalSurface: u32 = unsafe { ::std::mem::transmute(MetricsTotalSurface) };
            MetricsTotalSurface as u64
        });
        __bindgen_bitfield_unit.set(26usize, 1u8, {
            let WantDestroy: u32 = unsafe { ::std::mem::transmute(WantDestroy) };
            WantDestroy as u64
        });
        __bindgen_bitfield_unit.set(27usize, 1u8, {
            let LoadNoFallback: u32 = unsafe { ::std::mem::transmute(LoadNoFallback) };
            LoadNoFallback as u64
        });
        __bindgen_bitfield_unit.set(28usize, 1u8, {
            let LoadNoRenderOnLayout: u32 = unsafe { ::std::mem::transmute(LoadNoRenderOnLayout) };
            LoadNoRenderOnLayout as u64
        });
        __bindgen_bitfield_unit
    }
}
pub const ImFontFlags_None: ImFontFlags_ = 0;
pub const ImFontFlags_NoLoadError: ImFontFlags_ = 2;
pub const ImFontFlags_NoLoadGlyphs: ImFontFlags_ = 4;
pub const ImFontFlags_LockBakedSizes: ImFontFlags_ = 8;
pub const ImFontFlags_ImplicitRefSize: ImFontFlags_ = 16;
pub type ImFontFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontConfigPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImFontConfig,
}
impl Default for ImVector_ImFontConfigPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImFont {
    pub LastBaked: *mut ImFontBaked,
    pub OwnerAtlas: *mut ImFontAtlas,
    pub Flags: ImFontFlags,
    pub CurrentRasterizerDensity: f32,
    pub FontId: ImGuiID,
    pub LegacySize: f32,
    pub Sources: ImVector_ImFontConfigPtr,
    pub EllipsisChar: ImWchar,
    pub FallbackChar: ImWchar,
    pub Used8kPagesMap: [ImU8; 17usize],
    pub EllipsisAutoBake: bool,
    pub RemapPairs: ImGuiStorage,
}
impl Default for ImFont {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiViewportFlags_None: ImGuiViewportFlags_ = 0;
pub const ImGuiViewportFlags_IsPlatformWindow: ImGuiViewportFlags_ = 1;
pub const ImGuiViewportFlags_IsPlatformMonitor: ImGuiViewportFlags_ = 2;
pub const ImGuiViewportFlags_OwnedByApp: ImGuiViewportFlags_ = 4;
pub const ImGuiViewportFlags_NoDecoration: ImGuiViewportFlags_ = 8;
pub const ImGuiViewportFlags_NoTaskBarIcon: ImGuiViewportFlags_ = 16;
pub const ImGuiViewportFlags_NoFocusOnAppearing: ImGuiViewportFlags_ = 32;
pub const ImGuiViewportFlags_NoFocusOnClick: ImGuiViewportFlags_ = 64;
pub const ImGuiViewportFlags_NoInputs: ImGuiViewportFlags_ = 128;
pub const ImGuiViewportFlags_NoRendererClear: ImGuiViewportFlags_ = 256;
pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 512;
pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 1024;
pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 2048;
pub const ImGuiViewportFlags_IsMinimized: ImGuiViewportFlags_ = 4096;
pub const ImGuiViewportFlags_IsFocused: ImGuiViewportFlags_ = 8192;
pub type ImGuiViewportFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiViewport {
    pub ID: ImGuiID,
    pub Flags: ImGuiViewportFlags,
    pub Pos: ImVec2_c,
    pub Size: ImVec2_c,
    pub FramebufferScale: ImVec2_c,
    pub WorkPos: ImVec2_c,
    pub WorkSize: ImVec2_c,
    pub DpiScale: f32,
    pub ParentViewportId: ImGuiID,
    pub ParentViewport: *mut ImGuiViewport,
    pub DrawData: *mut ImDrawData,
    pub RendererUserData: *mut ::std::os::raw::c_void,
    pub PlatformUserData: *mut ::std::os::raw::c_void,
    pub PlatformIconData: *mut ::std::os::raw::c_void,
    pub PlatformHandle: *mut ::std::os::raw::c_void,
    pub PlatformHandleRaw: *mut ::std::os::raw::c_void,
    pub PlatformWindowCreated: bool,
    pub PlatformRequestMove: bool,
    pub PlatformRequestResize: bool,
    pub PlatformRequestClose: bool,
}
impl Default for ImGuiViewport {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiPlatformMonitor {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiPlatformMonitor,
}
impl Default for ImVector_ImGuiPlatformMonitor {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiViewportPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImGuiViewport,
}
impl Default for ImVector_ImGuiViewportPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiPlatformIO {
    pub Platform_GetClipboardTextFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext) -> *const ::std::os::raw::c_char,
    >,
    pub Platform_SetClipboardTextFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const ::std::os::raw::c_char),
    >,
    pub Platform_ClipboardUserData: *mut ::std::os::raw::c_void,
    pub Platform_OpenInShellFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const ::std::os::raw::c_char) -> bool,
    >,
    pub Platform_OpenInShellUserData: *mut ::std::os::raw::c_void,
    pub Platform_SetImeDataFn: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ImGuiContext,
            viewport: *mut ImGuiViewport,
            data: *mut ImGuiPlatformImeData,
        ),
    >,
    pub Platform_ImeUserData: *mut ::std::os::raw::c_void,
    pub Platform_LocaleDecimalPoint: ImWchar,
    pub Renderer_TextureMaxWidth: ::std::os::raw::c_int,
    pub Renderer_TextureMaxHeight: ::std::os::raw::c_int,
    pub Renderer_RenderState: *mut ::std::os::raw::c_void,
    pub DrawCallback_ResetRenderState: ImDrawCallback,
    pub DrawCallback_SetSamplerLinear: ImDrawCallback,
    pub DrawCallback_SetSamplerNearest: ImDrawCallback,
    pub Platform_CreateWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_DestroyWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_ShowWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_SetWindowPos:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport, pos: ImVec2_c)>,
    pub Platform_GetWindowPos:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> ImVec2_c>,
    pub Platform_SetWindowSize:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport, size: ImVec2_c)>,
    pub Platform_GetWindowSize:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> ImVec2_c>,
    pub Platform_GetWindowFramebufferScale:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> ImVec2_c>,
    pub Platform_SetWindowFocus:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_GetWindowFocus:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> bool>,
    pub Platform_GetWindowMinimized:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> bool>,
    pub Platform_SetWindowTitle: ::std::option::Option<
        unsafe extern "C" fn(vp: *mut ImGuiViewport, str_: *const ::std::os::raw::c_char),
    >,
    pub Platform_SetWindowAlpha:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport, alpha: f32)>,
    pub Platform_UpdateWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_RenderWindow: ::std::option::Option<
        unsafe extern "C" fn(vp: *mut ImGuiViewport, render_arg: *mut ::std::os::raw::c_void),
    >,
    pub Platform_SwapBuffers: ::std::option::Option<
        unsafe extern "C" fn(vp: *mut ImGuiViewport, render_arg: *mut ::std::os::raw::c_void),
    >,
    pub Platform_GetWindowDpiScale:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> f32>,
    pub Platform_OnChangedViewport:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Platform_GetWindowWorkAreaInsets:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport) -> ImVec4_c>,
    pub Platform_CreateVkSurface: ::std::option::Option<
        unsafe extern "C" fn(
            vp: *mut ImGuiViewport,
            vk_inst: ImU64,
            vk_allocators: *const ::std::os::raw::c_void,
            out_vk_surface: *mut ImU64,
        ) -> ::std::os::raw::c_int,
    >,
    pub Renderer_CreateWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Renderer_DestroyWindow: ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport)>,
    pub Renderer_SetWindowSize:
        ::std::option::Option<unsafe extern "C" fn(vp: *mut ImGuiViewport, size: ImVec2_c)>,
    pub Renderer_RenderWindow: ::std::option::Option<
        unsafe extern "C" fn(vp: *mut ImGuiViewport, render_arg: *mut ::std::os::raw::c_void),
    >,
    pub Renderer_SwapBuffers: ::std::option::Option<
        unsafe extern "C" fn(vp: *mut ImGuiViewport, render_arg: *mut ::std::os::raw::c_void),
    >,
    pub Monitors: ImVector_ImGuiPlatformMonitor,
    pub Textures: ImVector_ImTextureDataPtr,
    pub Viewports: ImVector_ImGuiViewportPtr,
}
impl Default for ImGuiPlatformIO {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiPlatformMonitor {
    pub MainPos: ImVec2_c,
    pub MainSize: ImVec2_c,
    pub WorkPos: ImVec2_c,
    pub WorkSize: ImVec2_c,
    pub DpiScale: f32,
    pub PlatformHandle: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiPlatformMonitor {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiPlatformImeData {
    pub WantVisible: bool,
    pub WantTextInput: bool,
    pub InputPos: ImVec2_c,
    pub InputLineHeight: f32,
    pub ViewportId: ImGuiID,
}
pub type ImGuiDataAuthority = ::std::os::raw::c_int;
pub type ImGuiLayoutType = ::std::os::raw::c_int;
pub type ImGuiActivateFlags = ::std::os::raw::c_int;
pub type ImGuiDebugLogFlags = ::std::os::raw::c_int;
pub type ImGuiFocusRequestFlags = ::std::os::raw::c_int;
pub type ImGuiItemStatusFlags = ::std::os::raw::c_int;
pub type ImGuiOldColumnFlags = ::std::os::raw::c_int;
pub type ImGuiLogFlags = ::std::os::raw::c_int;
pub type ImGuiNavRenderCursorFlags = ::std::os::raw::c_int;
pub type ImGuiNavMoveFlags = ::std::os::raw::c_int;
pub type ImGuiNextItemDataFlags = ::std::os::raw::c_int;
pub type ImGuiNextWindowDataFlags = ::std::os::raw::c_int;
pub type ImGuiScrollFlags = ::std::os::raw::c_int;
pub type ImGuiSeparatorFlags = ::std::os::raw::c_int;
pub type ImGuiTextFlags = ::std::os::raw::c_int;
pub type ImGuiTooltipFlags = ::std::os::raw::c_int;
pub type ImGuiTypingSelectFlags = ::std::os::raw::c_int;
pub type ImGuiWindowBgClickFlags = ::std::os::raw::c_int;
pub type ImGuiWindowRefreshFlags = ::std::os::raw::c_int;
pub type ImGuiTableColumnIdx = ImS16;
pub type ImGuiTableDrawChannelIdx = ImU16;
pub const ImDrawTextFlags_None: ImDrawTextFlags_ = 0;
pub const ImDrawTextFlags_CpuFineClip: ImDrawTextFlags_ = 1;
pub const ImDrawTextFlags_WrapKeepBlanks: ImDrawTextFlags_ = 2;
pub const ImDrawTextFlags_StopOnNewLine: ImDrawTextFlags_ = 4;
pub type ImDrawTextFlags_ = ::std::os::raw::c_int;
pub const ImWcharClass_Blank: ImWcharClass = 0;
pub const ImWcharClass_Punct: ImWcharClass = 1;
pub const ImWcharClass_Other: ImWcharClass = 2;
pub type ImWcharClass = ::std::os::raw::c_int;
pub type ImFileHandle = *mut FILE;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImVec1 {
    pub x: f32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVec2i_c {
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVec2ih {
    pub x: ::std::os::raw::c_short,
    pub y: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImRect_c {
    pub Min: ImVec2_c,
    pub Max: ImVec2_c,
}
pub type ImBitArrayPtr = *mut ImU32;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImBitVector {
    pub Storage: ImVector_ImU32,
}
impl Default for ImBitVector {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImPoolIdx = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_int {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ::std::os::raw::c_int,
}
impl Default for ImVector_int {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTextIndex {
    pub Offsets: ImVector_int,
    pub EndOffset: ::std::os::raw::c_int,
}
impl Default for ImGuiTextIndex {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImDrawListSharedData {
    pub TexUvWhitePixel: ImVec2_c,
    pub TexUvLines: *const ImVec4_c,
    pub FontAtlas: *mut ImFontAtlas,
    pub Font: *mut ImFont,
    pub FontSize: f32,
    pub FontScale: f32,
    pub CurveTessellationTol: f32,
    pub CircleSegmentMaxError: f32,
    pub InitialFringeScale: f32,
    pub InitialFlags: ImDrawListFlags,
    pub ClipRectFullscreen: ImVec4_c,
    pub TempBuffer: ImVector_ImVec2,
    pub DrawLists: ImVector_ImDrawListPtr,
    pub Context: *mut ImGuiContext,
    pub ArcFastVtx: [ImVec2_c; 48usize],
    pub ArcFastRadiusCutoff: f32,
    pub CircleSegmentCounts: [ImU8; 64usize],
}
impl Default for ImDrawListSharedData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImDrawDataBuilder {
    pub Layers: [*mut ImVector_ImDrawListPtr; 2usize],
    pub LayerData1: ImVector_ImDrawListPtr,
}
impl Default for ImDrawDataBuilder {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImFontStackData {
    pub Font: *mut ImFont,
    pub FontSizeBeforeScaling: f32,
    pub FontSizeAfterScaling: f32,
}
impl Default for ImFontStackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiStyleVarInfo {
    pub _bitfield_align_1: [u16; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl ImGuiStyleVarInfo {
    #[inline]
    pub fn Count(&self) -> ImU32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_Count(&mut self, val: ImU32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Count_raw(this: *const Self) -> ImU32 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Count_raw(this: *mut Self, val: ImU32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn DataType(&self) -> ImGuiDataType {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_DataType(&mut self, val: ImGuiDataType) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn DataType_raw(this: *const Self) -> ImGuiDataType {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_DataType_raw(this: *mut Self, val: ImGuiDataType) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn Offset(&self) -> ImU32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_Offset(&mut self, val: ImU32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Offset_raw(this: *const Self) -> ImU32 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                16u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Offset_raw(this: *mut Self, val: ImU32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                16u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Count: ImU32,
        DataType: ImGuiDataType,
        Offset: ImU32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let Count: u32 = unsafe { ::std::mem::transmute(Count) };
            Count as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let DataType: u32 = unsafe { ::std::mem::transmute(DataType) };
            DataType as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let Offset: u32 = unsafe { ::std::mem::transmute(Offset) };
            Offset as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiColorMod {
    pub Col: ImGuiCol,
    pub BackupValue: ImVec4_c,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ImGuiStyleMod {
    pub VarIdx: ImGuiStyleVar,
    pub __bindgen_anon_1: ImGuiStyleMod__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ImGuiStyleMod__bindgen_ty_1 {
    pub BackupInt: [::std::os::raw::c_int; 2usize],
    pub BackupFloat: [f32; 2usize],
}
impl Default for ImGuiStyleMod__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl Default for ImGuiStyleMod {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDataTypeStorage {
    pub Data: [ImU8; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDataTypeInfo {
    pub Size: usize,
    pub Name: *const ::std::os::raw::c_char,
    pub PrintFmt: *const ::std::os::raw::c_char,
    pub ScanFmt: *const ::std::os::raw::c_char,
}
impl Default for ImGuiDataTypeInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 12;
pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 13;
pub type ImGuiDataTypePrivate_ = ::std::os::raw::c_int;
pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlagsPrivate_ = 2048;
pub const ImGuiItemFlags_MixedValue: ImGuiItemFlagsPrivate_ = 4096;
pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlagsPrivate_ = 8192;
pub const ImGuiItemFlags_AllowOverlap: ImGuiItemFlagsPrivate_ = 16384;
pub const ImGuiItemFlags_NoNavDisableMouseHover: ImGuiItemFlagsPrivate_ = 32768;
pub const ImGuiItemFlags_NoMarkEdited: ImGuiItemFlagsPrivate_ = 65536;
pub const ImGuiItemFlags_NoFocus: ImGuiItemFlagsPrivate_ = 131072;
pub const ImGuiItemFlags_Inputable: ImGuiItemFlagsPrivate_ = 1048576;
pub const ImGuiItemFlags_HasSelectionUserData: ImGuiItemFlagsPrivate_ = 2097152;
pub const ImGuiItemFlags_IsMultiSelect: ImGuiItemFlagsPrivate_ = 4194304;
pub const ImGuiItemFlags_Default_: ImGuiItemFlagsPrivate_ = 16;
pub type ImGuiItemFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0;
pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1;
pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2;
pub const ImGuiItemStatusFlags_Edited: ImGuiItemStatusFlags_ = 4;
pub const ImGuiItemStatusFlags_ToggledSelection: ImGuiItemStatusFlags_ = 8;
pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16;
pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32;
pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64;
pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128;
pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 256;
pub const ImGuiItemStatusFlags_HasClipRect: ImGuiItemStatusFlags_ = 512;
pub const ImGuiItemStatusFlags_HasShortcut: ImGuiItemStatusFlags_ = 1024;
pub const ImGuiItemStatusFlags_EditedInternal: ImGuiItemStatusFlags_ = 2048;
pub type ImGuiItemStatusFlags_ = ::std::os::raw::c_int;
pub const ImGuiHoveredFlags_DelayMask_: ImGuiHoveredFlagsPrivate_ = 245760;
pub const ImGuiHoveredFlags_AllowedMaskForIsWindowHovered: ImGuiHoveredFlagsPrivate_ = 12479;
pub const ImGuiHoveredFlags_AllowedMaskForIsItemHovered: ImGuiHoveredFlagsPrivate_ = 262048;
pub type ImGuiHoveredFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864;
pub const ImGuiInputTextFlags_TempInput: ImGuiInputTextFlagsPrivate_ = 134217728;
pub const ImGuiInputTextFlags_LocalizeDecimalPoint: ImGuiInputTextFlagsPrivate_ = 268435456;
pub type ImGuiInputTextFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiButtonFlags_PressedOnClick: ImGuiButtonFlagsPrivate_ = 16;
pub const ImGuiButtonFlags_PressedOnClickRelease: ImGuiButtonFlagsPrivate_ = 32;
pub const ImGuiButtonFlags_PressedOnClickReleaseAnywhere: ImGuiButtonFlagsPrivate_ = 64;
pub const ImGuiButtonFlags_PressedOnRelease: ImGuiButtonFlagsPrivate_ = 128;
pub const ImGuiButtonFlags_PressedOnDoubleClick: ImGuiButtonFlagsPrivate_ = 256;
pub const ImGuiButtonFlags_PressedOnDragDropHold: ImGuiButtonFlagsPrivate_ = 512;
pub const ImGuiButtonFlags_FlattenChildren: ImGuiButtonFlagsPrivate_ = 2048;
pub const ImGuiButtonFlags_AlignTextBaseLine: ImGuiButtonFlagsPrivate_ = 32768;
pub const ImGuiButtonFlags_NoKeyModsAllowed: ImGuiButtonFlagsPrivate_ = 65536;
pub const ImGuiButtonFlags_NoHoldingActiveId: ImGuiButtonFlagsPrivate_ = 131072;
pub const ImGuiButtonFlags_NoNavFocus: ImGuiButtonFlagsPrivate_ = 262144;
pub const ImGuiButtonFlags_NoHoveredOnFocus: ImGuiButtonFlagsPrivate_ = 524288;
pub const ImGuiButtonFlags_NoSetKeyOwner: ImGuiButtonFlagsPrivate_ = 1048576;
pub const ImGuiButtonFlags_NoTestKeyOwner: ImGuiButtonFlagsPrivate_ = 2097152;
pub const ImGuiButtonFlags_NoFocus: ImGuiButtonFlagsPrivate_ = 4194304;
pub const ImGuiButtonFlags_PressedOnMask_: ImGuiButtonFlagsPrivate_ = 1008;
pub const ImGuiButtonFlags_PressedOnDefault_: ImGuiButtonFlagsPrivate_ = 32;
pub type ImGuiButtonFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiComboFlags_CustomPreview: ImGuiComboFlagsPrivate_ = 1048576;
pub type ImGuiComboFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiSliderFlags_Vertical: ImGuiSliderFlagsPrivate_ = 1048576;
pub const ImGuiSliderFlags_ReadOnly: ImGuiSliderFlagsPrivate_ = 2097152;
pub type ImGuiSliderFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiSelectableFlags_NoHoldingActiveID: ImGuiSelectableFlagsPrivate_ = 1048576;
pub const ImGuiSelectableFlags_SelectOnClick: ImGuiSelectableFlagsPrivate_ = 4194304;
pub const ImGuiSelectableFlags_SelectOnRelease: ImGuiSelectableFlagsPrivate_ = 8388608;
pub const ImGuiSelectableFlags_SpanAvailWidth: ImGuiSelectableFlagsPrivate_ = 16777216;
pub const ImGuiSelectableFlags_SetNavIdOnHover: ImGuiSelectableFlagsPrivate_ = 33554432;
pub const ImGuiSelectableFlags_NoPadWithHalfSpacing: ImGuiSelectableFlagsPrivate_ = 67108864;
pub const ImGuiSelectableFlags_NoSetKeyOwner: ImGuiSelectableFlagsPrivate_ = 134217728;
pub type ImGuiSelectableFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiTreeNodeFlags_NoNavFocus: ImGuiTreeNodeFlagsPrivate_ = 134217728;
pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 268435456;
pub const ImGuiTreeNodeFlags_UpsideDownArrow: ImGuiTreeNodeFlagsPrivate_ = 536870912;
pub const ImGuiTreeNodeFlags_OpenOnMask_: ImGuiTreeNodeFlagsPrivate_ = 192;
pub const ImGuiTreeNodeFlags_DrawLinesMask_: ImGuiTreeNodeFlagsPrivate_ = 1835008;
pub type ImGuiTreeNodeFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiSeparatorFlags_None: ImGuiSeparatorFlags_ = 0;
pub const ImGuiSeparatorFlags_Horizontal: ImGuiSeparatorFlags_ = 1;
pub const ImGuiSeparatorFlags_Vertical: ImGuiSeparatorFlags_ = 2;
pub const ImGuiSeparatorFlags_SpanAllColumns: ImGuiSeparatorFlags_ = 4;
pub type ImGuiSeparatorFlags_ = ::std::os::raw::c_int;
pub const ImGuiFocusRequestFlags_None: ImGuiFocusRequestFlags_ = 0;
pub const ImGuiFocusRequestFlags_RestoreFocusedChild: ImGuiFocusRequestFlags_ = 1;
pub const ImGuiFocusRequestFlags_UnlessBelowModal: ImGuiFocusRequestFlags_ = 2;
pub type ImGuiFocusRequestFlags_ = ::std::os::raw::c_int;
pub const ImGuiTextFlags_None: ImGuiTextFlags_ = 0;
pub const ImGuiTextFlags_NoWidthForLargeClippedText: ImGuiTextFlags_ = 1;
pub type ImGuiTextFlags_ = ::std::os::raw::c_int;
pub const ImGuiTooltipFlags_None: ImGuiTooltipFlags_ = 0;
pub const ImGuiTooltipFlags_OverridePrevious: ImGuiTooltipFlags_ = 2;
pub type ImGuiTooltipFlags_ = ::std::os::raw::c_int;
pub const ImGuiLayoutType_Horizontal: ImGuiLayoutType_ = 0;
pub const ImGuiLayoutType_Vertical: ImGuiLayoutType_ = 1;
pub type ImGuiLayoutType_ = ::std::os::raw::c_int;
pub const ImGuiLogFlags_None: ImGuiLogFlags_ = 0;
pub const ImGuiLogFlags_OutputTTY: ImGuiLogFlags_ = 1;
pub const ImGuiLogFlags_OutputFile: ImGuiLogFlags_ = 2;
pub const ImGuiLogFlags_OutputBuffer: ImGuiLogFlags_ = 4;
pub const ImGuiLogFlags_OutputClipboard: ImGuiLogFlags_ = 8;
pub const ImGuiLogFlags_OutputMask_: ImGuiLogFlags_ = 15;
pub type ImGuiLogFlags_ = ::std::os::raw::c_int;
pub const ImGuiAxis_None: ImGuiAxis = -1;
pub const ImGuiAxis_X: ImGuiAxis = 0;
pub const ImGuiAxis_Y: ImGuiAxis = 1;
pub type ImGuiAxis = ::std::os::raw::c_int;
pub const ImGuiPlotType_Lines: ImGuiPlotType = 0;
pub const ImGuiPlotType_Histogram: ImGuiPlotType = 1;
pub type ImGuiPlotType = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiComboPreviewData {
    pub PreviewRect: ImRect_c,
    pub BackupCursorPos: ImVec2_c,
    pub BackupCursorMaxPos: ImVec2_c,
    pub BackupCursorPosPrevLine: ImVec2_c,
    pub BackupPrevLineTextBaseOffset: f32,
    pub BackupLayout: ImGuiLayoutType,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiGroupData {
    pub WindowID: ImGuiID,
    pub BackupCursorPos: ImVec2_c,
    pub BackupCursorMaxPos: ImVec2_c,
    pub BackupCursorPosPrevLine: ImVec2_c,
    pub BackupIndent: ImVec1,
    pub BackupGroupOffset: ImVec1,
    pub BackupCurrLineSize: ImVec2_c,
    pub BackupCurrLineTextBaseOffset: f32,
    pub BackupActiveIdIsAlive: ImGuiID,
    pub BackupActiveIdHasBeenEditedThisFrame: bool,
    pub BackupDeactivatedIdIsAlive: bool,
    pub BackupHoveredIdIsAlive: bool,
    pub BackupIsSameLine: bool,
    pub EmitItem: bool,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiMenuColumns {
    pub TotalWidth: ImU32,
    pub NextTotalWidth: ImU32,
    pub Spacing: ImU16,
    pub OffsetIcon: ImU16,
    pub OffsetLabel: ImU16,
    pub OffsetShortcut: ImU16,
    pub OffsetMark: ImU16,
    pub Widths: [ImU16; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputTextDeactivatedState {
    pub ID: ImGuiID,
    pub TextA: ImVector_char,
}
impl Default for ImGuiInputTextDeactivatedState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImStbTexteditState = STB_TexteditState;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiInputTextState {
    pub Ctx: *mut ImGuiContext,
    pub Stb: *mut ImStbTexteditState,
    pub Flags: ImGuiInputTextFlags,
    pub ID: ImGuiID,
    pub TextLen: ::std::os::raw::c_int,
    pub TextSrc: *const ::std::os::raw::c_char,
    pub TextA: ImVector_char,
    pub TextToRevertTo: ImVector_char,
    pub CallbackTextBackup: ImVector_char,
    pub BufCapacity: ::std::os::raw::c_int,
    pub Scroll: ImVec2_c,
    pub LineCount: ::std::os::raw::c_int,
    pub WrapWidth: f32,
    pub CursorAnim: f32,
    pub CursorFollow: bool,
    pub CursorCenterY: bool,
    pub SelectedAllMouseLock: bool,
    pub EditedBefore: bool,
    pub EditedThisFrame: bool,
    pub WantReloadUserBuf: bool,
    pub LastMoveDirectionLR: ImS8,
    pub ReloadSelectionStart: ::std::os::raw::c_int,
    pub ReloadSelectionEnd: ::std::os::raw::c_int,
}
impl Default for ImGuiInputTextState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiWindowRefreshFlags_None: ImGuiWindowRefreshFlags_ = 0;
pub const ImGuiWindowRefreshFlags_TryToAvoidRefresh: ImGuiWindowRefreshFlags_ = 1;
pub const ImGuiWindowRefreshFlags_RefreshOnHover: ImGuiWindowRefreshFlags_ = 2;
pub const ImGuiWindowRefreshFlags_RefreshOnFocus: ImGuiWindowRefreshFlags_ = 4;
pub type ImGuiWindowRefreshFlags_ = ::std::os::raw::c_int;
pub const ImGuiWindowBgClickFlags_None: ImGuiWindowBgClickFlags_ = 0;
pub const ImGuiWindowBgClickFlags_Move: ImGuiWindowBgClickFlags_ = 1;
pub type ImGuiWindowBgClickFlags_ = ::std::os::raw::c_int;
pub const ImGuiNextWindowDataFlags_None: ImGuiNextWindowDataFlags_ = 0;
pub const ImGuiNextWindowDataFlags_HasPos: ImGuiNextWindowDataFlags_ = 1;
pub const ImGuiNextWindowDataFlags_HasSize: ImGuiNextWindowDataFlags_ = 2;
pub const ImGuiNextWindowDataFlags_HasContentSize: ImGuiNextWindowDataFlags_ = 4;
pub const ImGuiNextWindowDataFlags_HasCollapsed: ImGuiNextWindowDataFlags_ = 8;
pub const ImGuiNextWindowDataFlags_HasSizeConstraint: ImGuiNextWindowDataFlags_ = 16;
pub const ImGuiNextWindowDataFlags_HasFocus: ImGuiNextWindowDataFlags_ = 32;
pub const ImGuiNextWindowDataFlags_HasBgAlpha: ImGuiNextWindowDataFlags_ = 64;
pub const ImGuiNextWindowDataFlags_HasScroll: ImGuiNextWindowDataFlags_ = 128;
pub const ImGuiNextWindowDataFlags_HasWindowFlags: ImGuiNextWindowDataFlags_ = 256;
pub const ImGuiNextWindowDataFlags_HasChildFlags: ImGuiNextWindowDataFlags_ = 512;
pub const ImGuiNextWindowDataFlags_HasRefreshPolicy: ImGuiNextWindowDataFlags_ = 1024;
pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 2048;
pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 4096;
pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 8192;
pub type ImGuiNextWindowDataFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiNextWindowData {
    pub HasFlags: ImGuiNextWindowDataFlags,
    pub PosCond: ImGuiCond,
    pub SizeCond: ImGuiCond,
    pub CollapsedCond: ImGuiCond,
    pub DockCond: ImGuiCond,
    pub PosVal: ImVec2_c,
    pub PosPivotVal: ImVec2_c,
    pub SizeVal: ImVec2_c,
    pub ContentSizeVal: ImVec2_c,
    pub ScrollVal: ImVec2_c,
    pub WindowFlags: ImGuiWindowFlags,
    pub ChildFlags: ImGuiChildFlags,
    pub PosUndock: bool,
    pub CollapsedVal: bool,
    pub SizeConstraintRect: ImRect_c,
    pub SizeCallback: ImGuiSizeCallback,
    pub SizeCallbackUserData: *mut ::std::os::raw::c_void,
    pub BgAlphaVal: f32,
    pub ViewportId: ImGuiID,
    pub DockId: ImGuiID,
    pub WindowClass: ImGuiWindowClass,
    pub MenuBarOffsetMinVal: ImVec2_c,
    pub RefreshFlagsVal: ImGuiWindowRefreshFlags,
}
impl Default for ImGuiNextWindowData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiNextItemDataFlags_None: ImGuiNextItemDataFlags_ = 0;
pub const ImGuiNextItemDataFlags_HasWidth: ImGuiNextItemDataFlags_ = 1;
pub const ImGuiNextItemDataFlags_HasOpen: ImGuiNextItemDataFlags_ = 2;
pub const ImGuiNextItemDataFlags_HasShortcut: ImGuiNextItemDataFlags_ = 4;
pub const ImGuiNextItemDataFlags_HasRefVal: ImGuiNextItemDataFlags_ = 8;
pub const ImGuiNextItemDataFlags_HasStorageID: ImGuiNextItemDataFlags_ = 16;
pub const ImGuiNextItemDataFlags_HasColorMarker: ImGuiNextItemDataFlags_ = 32;
pub type ImGuiNextItemDataFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiNextItemData {
    pub HasFlags: ImGuiNextItemDataFlags,
    pub ItemFlags: ImGuiItemFlags,
    pub FocusScopeId: ImGuiID,
    pub SelectionUserData: ImGuiSelectionUserData,
    pub Width: f32,
    pub Shortcut: ImGuiKeyChord,
    pub ShortcutFlags: ImGuiInputFlags,
    pub OpenVal: bool,
    pub OpenCond: ImU8,
    pub RefVal: ImGuiDataTypeStorage,
    pub StorageId: ImGuiID,
    pub ColorMarker: ImU32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiLastItemData {
    pub ID: ImGuiID,
    pub ItemFlags: ImGuiItemFlags,
    pub StatusFlags: ImGuiItemStatusFlags,
    pub Rect: ImRect_c,
    pub NavRect: ImRect_c,
    pub DisplayRect: ImRect_c,
    pub ClipRect: ImRect_c,
    pub Shortcut: ImGuiKeyChord,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiTreeNodeStackData {
    pub ID: ImGuiID,
    pub TreeFlags: ImGuiTreeNodeFlags,
    pub ItemFlags: ImGuiItemFlags,
    pub NavRect: ImRect_c,
    pub DrawLinesX1: f32,
    pub DrawLinesToNodesY2: f32,
    pub DrawLinesTableColumn: ImGuiTableColumnIdx,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiErrorRecoveryState {
    pub SizeOfWindowStack: ::std::os::raw::c_short,
    pub SizeOfIDStack: ::std::os::raw::c_short,
    pub SizeOfTreeStack: ::std::os::raw::c_short,
    pub SizeOfColorStack: ::std::os::raw::c_short,
    pub SizeOfStyleVarStack: ::std::os::raw::c_short,
    pub SizeOfFontStack: ::std::os::raw::c_short,
    pub SizeOfFocusScopeStack: ::std::os::raw::c_short,
    pub SizeOfGroupStack: ::std::os::raw::c_short,
    pub SizeOfItemFlagsStack: ::std::os::raw::c_short,
    pub SizeOfBeginPopupStack: ::std::os::raw::c_short,
    pub SizeOfDisabledStack: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiWindowStackData {
    pub Window: *mut ImGuiWindow,
    pub ParentLastItemDataBackup: ImGuiLastItemData,
    pub StackSizesInBegin: ImGuiErrorRecoveryState,
    pub DisabledOverrideReenable: bool,
    pub DisabledOverrideReenableAlphaBackup: f32,
}
impl Default for ImGuiWindowStackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiShrinkWidthItem {
    pub Index: ::std::os::raw::c_int,
    pub Width: f32,
    pub InitialWidth: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiPtrOrIndex {
    pub Ptr: *mut ::std::os::raw::c_void,
    pub Index: ::std::os::raw::c_int,
}
impl Default for ImGuiPtrOrIndex {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDeactivatedItemData {
    pub ID: ImGuiID,
    pub ElapseFrame: ::std::os::raw::c_int,
    pub HasBeenEditedBefore: bool,
    pub IsAlive: bool,
}
pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0;
pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1;
pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2;
pub type ImGuiPopupPositionPolicy = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiPopupData {
    pub PopupId: ImGuiID,
    pub Window: *mut ImGuiWindow,
    pub RestoreNavWindow: *mut ImGuiWindow,
    pub ParentNavLayer: ::std::os::raw::c_int,
    pub OpenFrameCount: ::std::os::raw::c_int,
    pub OpenParentId: ImGuiID,
    pub OpenPopupPos: ImVec2_c,
    pub OpenMousePos: ImVec2_c,
}
impl Default for ImGuiPopupData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN {
    pub Data: [ImU32; 5usize],
}
pub type ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN;
pub const ImGuiInputEventType_None: ImGuiInputEventType = 0;
pub const ImGuiInputEventType_MousePos: ImGuiInputEventType = 1;
pub const ImGuiInputEventType_MouseWheel: ImGuiInputEventType = 2;
pub const ImGuiInputEventType_MouseButton: ImGuiInputEventType = 3;
pub const ImGuiInputEventType_MouseViewport: ImGuiInputEventType = 4;
pub const ImGuiInputEventType_Key: ImGuiInputEventType = 5;
pub const ImGuiInputEventType_Text: ImGuiInputEventType = 6;
pub const ImGuiInputEventType_Focus: ImGuiInputEventType = 7;
pub const ImGuiInputEventType_COUNT: ImGuiInputEventType = 8;
pub type ImGuiInputEventType = ::std::os::raw::c_int;
pub const ImGuiInputSource_None: ImGuiInputSource = 0;
pub const ImGuiInputSource_Mouse: ImGuiInputSource = 1;
pub const ImGuiInputSource_Keyboard: ImGuiInputSource = 2;
pub const ImGuiInputSource_Gamepad: ImGuiInputSource = 3;
pub const ImGuiInputSource_COUNT: ImGuiInputSource = 4;
pub type ImGuiInputSource = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiInputEventMousePos {
    pub PosX: f32,
    pub PosY: f32,
    pub MouseSource: ImGuiMouseSource,
}
impl Default for ImGuiInputEventMousePos {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiInputEventMouseWheel {
    pub WheelX: f32,
    pub WheelY: f32,
    pub MouseSource: ImGuiMouseSource,
}
impl Default for ImGuiInputEventMouseWheel {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputEventMouseButton {
    pub Button: ::std::os::raw::c_int,
    pub Down: bool,
    pub MouseSource: ImGuiMouseSource,
}
impl Default for ImGuiInputEventMouseButton {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputEventMouseViewport {
    pub HoveredViewportID: ImGuiID,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiInputEventKey {
    pub Key: ImGuiKey,
    pub Down: bool,
    pub AnalogValue: f32,
}
impl Default for ImGuiInputEventKey {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputEventText {
    pub Char: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiInputEventAppFocused {
    pub Focused: bool,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ImGuiInputEvent {
    pub Type: ImGuiInputEventType,
    pub Source: ImGuiInputSource,
    pub EventId: ImU32,
    pub __bindgen_anon_1: ImGuiInputEvent__bindgen_ty_1,
    pub AddedByTestEngine: bool,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ImGuiInputEvent__bindgen_ty_1 {
    pub MousePos: ImGuiInputEventMousePos,
    pub MouseWheel: ImGuiInputEventMouseWheel,
    pub MouseButton: ImGuiInputEventMouseButton,
    pub MouseViewport: ImGuiInputEventMouseViewport,
    pub Key: ImGuiInputEventKey,
    pub Text: ImGuiInputEventText,
    pub AppFocused: ImGuiInputEventAppFocused,
}
impl Default for ImGuiInputEvent__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl Default for ImGuiInputEvent {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImGuiKeyRoutingIndex = ImS16;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiKeyRoutingData {
    pub NextEntryIndex: ImGuiKeyRoutingIndex,
    pub Mods: ImU16,
    pub RoutingCurrScore: ImU16,
    pub RoutingNextScore: ImU16,
    pub RoutingCurr: ImGuiID,
    pub RoutingNext: ImGuiID,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiKeyRoutingData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiKeyRoutingData,
}
impl Default for ImVector_ImGuiKeyRoutingData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiKeyRoutingTable {
    pub Index: [ImGuiKeyRoutingIndex; 155usize],
    pub Entries: ImVector_ImGuiKeyRoutingData,
    pub EntriesNext: ImVector_ImGuiKeyRoutingData,
}
impl Default for ImGuiKeyRoutingTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiKeyOwnerData {
    pub OwnerCurr: ImGuiID,
    pub OwnerNext: ImGuiID,
    pub LockThisFrame: bool,
    pub LockUntilRelease: bool,
}
pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlagsPrivate_ = 2;
pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlagsPrivate_ = 4;
pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlagsPrivate_ = 8;
pub const ImGuiInputFlags_RepeatUntilRelease: ImGuiInputFlagsPrivate_ = 16;
pub const ImGuiInputFlags_RepeatUntilKeyModsChange: ImGuiInputFlagsPrivate_ = 32;
pub const ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone: ImGuiInputFlagsPrivate_ = 64;
pub const ImGuiInputFlags_RepeatUntilOtherKeyPress: ImGuiInputFlagsPrivate_ = 128;
pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlagsPrivate_ = 1048576;
pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlagsPrivate_ = 2097152;
pub const ImGuiInputFlags_CondHovered: ImGuiInputFlagsPrivate_ = 4194304;
pub const ImGuiInputFlags_CondActive: ImGuiInputFlagsPrivate_ = 8388608;
pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlagsPrivate_ = 12582912;
pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlagsPrivate_ = 14;
pub const ImGuiInputFlags_RepeatUntilMask_: ImGuiInputFlagsPrivate_ = 240;
pub const ImGuiInputFlags_RepeatMask_: ImGuiInputFlagsPrivate_ = 255;
pub const ImGuiInputFlags_CondMask_: ImGuiInputFlagsPrivate_ = 12582912;
pub const ImGuiInputFlags_RouteTypeMask_: ImGuiInputFlagsPrivate_ = 15360;
pub const ImGuiInputFlags_RouteOptionsMask_: ImGuiInputFlagsPrivate_ = 245760;
pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlagsPrivate_ = 255;
pub const ImGuiInputFlags_SupportedByIsMouseClicked: ImGuiInputFlagsPrivate_ = 1;
pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlagsPrivate_ = 261375;
pub const ImGuiInputFlags_SupportedBySetNextItemShortcut: ImGuiInputFlagsPrivate_ = 523519;
pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlagsPrivate_ = 3145728;
pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlagsPrivate_ = 15728640;
pub type ImGuiInputFlagsPrivate_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiListClipperRange {
    pub Min: ::std::os::raw::c_int,
    pub Max: ::std::os::raw::c_int,
    pub PosToIndexConvert: bool,
    pub PosToIndexOffsetMin: ImS8,
    pub PosToIndexOffsetMax: ImS8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiListClipperRange {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiListClipperRange,
}
impl Default for ImVector_ImGuiListClipperRange {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiListClipperData {
    pub ListClipper: *mut ImGuiListClipper,
    pub LossynessOffset: f32,
    pub StepNo: ::std::os::raw::c_int,
    pub ItemsFrozen: ::std::os::raw::c_int,
    pub Ranges: ImVector_ImGuiListClipperRange,
}
impl Default for ImGuiListClipperData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0;
pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1;
pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2;
pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4;
pub const ImGuiActivateFlags_FromTabbing: ImGuiActivateFlags_ = 8;
pub const ImGuiActivateFlags_FromShortcut: ImGuiActivateFlags_ = 16;
pub const ImGuiActivateFlags_FromFocusApi: ImGuiActivateFlags_ = 32;
pub type ImGuiActivateFlags_ = ::std::os::raw::c_int;
pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0;
pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1;
pub const ImGuiScrollFlags_KeepVisibleEdgeY: ImGuiScrollFlags_ = 2;
pub const ImGuiScrollFlags_KeepVisibleCenterX: ImGuiScrollFlags_ = 4;
pub const ImGuiScrollFlags_KeepVisibleCenterY: ImGuiScrollFlags_ = 8;
pub const ImGuiScrollFlags_AlwaysCenterX: ImGuiScrollFlags_ = 16;
pub const ImGuiScrollFlags_AlwaysCenterY: ImGuiScrollFlags_ = 32;
pub const ImGuiScrollFlags_NoScrollParent: ImGuiScrollFlags_ = 64;
pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21;
pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42;
pub type ImGuiScrollFlags_ = ::std::os::raw::c_int;
pub const ImGuiNavRenderCursorFlags_None: ImGuiNavRenderCursorFlags_ = 0;
pub const ImGuiNavRenderCursorFlags_Compact: ImGuiNavRenderCursorFlags_ = 2;
pub const ImGuiNavRenderCursorFlags_AlwaysDraw: ImGuiNavRenderCursorFlags_ = 4;
pub const ImGuiNavRenderCursorFlags_NoRounding: ImGuiNavRenderCursorFlags_ = 8;
pub type ImGuiNavRenderCursorFlags_ = ::std::os::raw::c_int;
pub const ImGuiNavMoveFlags_None: ImGuiNavMoveFlags_ = 0;
pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1;
pub const ImGuiNavMoveFlags_LoopY: ImGuiNavMoveFlags_ = 2;
pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4;
pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8;
pub const ImGuiNavMoveFlags_WrapMask_: ImGuiNavMoveFlags_ = 15;
pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16;
pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32;
pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64;
pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128;
pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256;
pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512;
pub const ImGuiNavMoveFlags_IsTabbing: ImGuiNavMoveFlags_ = 1024;
pub const ImGuiNavMoveFlags_IsPageMove: ImGuiNavMoveFlags_ = 2048;
pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 4096;
pub const ImGuiNavMoveFlags_NoSelect: ImGuiNavMoveFlags_ = 8192;
pub const ImGuiNavMoveFlags_NoSetNavCursorVisible: ImGuiNavMoveFlags_ = 16384;
pub const ImGuiNavMoveFlags_NoClearActiveId: ImGuiNavMoveFlags_ = 32768;
pub type ImGuiNavMoveFlags_ = ::std::os::raw::c_int;
pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0;
pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1;
pub const ImGuiNavLayer_COUNT: ImGuiNavLayer = 2;
pub type ImGuiNavLayer = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiNavItemData {
    pub Window: *mut ImGuiWindow,
    pub ID: ImGuiID,
    pub FocusScopeId: ImGuiID,
    pub RectRel: ImRect_c,
    pub ItemFlags: ImGuiItemFlags,
    pub DistBox: f32,
    pub DistCenter: f32,
    pub DistAxial: f32,
    pub SelectionUserData: ImGuiSelectionUserData,
}
impl Default for ImGuiNavItemData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiFocusScopeData {
    pub ID: ImGuiID,
    pub WindowID: ImGuiID,
}
pub const ImGuiTypingSelectFlags_None: ImGuiTypingSelectFlags_ = 0;
pub const ImGuiTypingSelectFlags_AllowBackspace: ImGuiTypingSelectFlags_ = 1;
pub const ImGuiTypingSelectFlags_AllowSingleCharMode: ImGuiTypingSelectFlags_ = 2;
pub type ImGuiTypingSelectFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTypingSelectRequest {
    pub Flags: ImGuiTypingSelectFlags,
    pub SearchBufferLen: ::std::os::raw::c_int,
    pub SearchBuffer: *const ::std::os::raw::c_char,
    pub SelectRequest: bool,
    pub SingleCharMode: bool,
    pub SingleCharSize: ImS8,
}
impl Default for ImGuiTypingSelectRequest {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiTypingSelectState {
    pub Request: ImGuiTypingSelectRequest,
    pub SearchBuffer: [::std::os::raw::c_char; 64usize],
    pub FocusScope: ImGuiID,
    pub LastRequestFrame: ::std::os::raw::c_int,
    pub LastRequestTime: f32,
    pub SingleCharModeLock: bool,
}
impl Default for ImGuiTypingSelectState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiOldColumnFlags_None: ImGuiOldColumnFlags_ = 0;
pub const ImGuiOldColumnFlags_NoBorder: ImGuiOldColumnFlags_ = 1;
pub const ImGuiOldColumnFlags_NoResize: ImGuiOldColumnFlags_ = 2;
pub const ImGuiOldColumnFlags_NoPreserveWidths: ImGuiOldColumnFlags_ = 4;
pub const ImGuiOldColumnFlags_NoForceWithinWindow: ImGuiOldColumnFlags_ = 8;
pub const ImGuiOldColumnFlags_GrowParentContentsSize: ImGuiOldColumnFlags_ = 16;
pub type ImGuiOldColumnFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiOldColumnData {
    pub OffsetNorm: f32,
    pub OffsetNormBeforeResize: f32,
    pub Flags: ImGuiOldColumnFlags,
    pub ClipRect: ImRect_c,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiOldColumnData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiOldColumnData,
}
impl Default for ImVector_ImGuiOldColumnData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiOldColumns {
    pub ID: ImGuiID,
    pub Flags: ImGuiOldColumnFlags,
    pub IsFirstFrame: bool,
    pub IsBeingResized: bool,
    pub Current: ::std::os::raw::c_int,
    pub Count: ::std::os::raw::c_int,
    pub OffMinX: f32,
    pub OffMaxX: f32,
    pub LineMinY: f32,
    pub LineMaxY: f32,
    pub HostCursorPosY: f32,
    pub HostCursorMaxPosX: f32,
    pub HostInitialClipRect: ImRect_c,
    pub HostBackupClipRect: ImRect_c,
    pub HostBackupParentWorkRect: ImRect_c,
    pub Columns: ImVector_ImGuiOldColumnData,
    pub Splitter: ImDrawListSplitter,
}
impl Default for ImGuiOldColumns {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiBoxSelectState {
    pub ID: ImGuiID,
    pub IsActive: bool,
    pub IsStarting: bool,
    pub IsStartedFromVoid: bool,
    pub IsStartedSetNavIdOnce: bool,
    pub RequestClear: bool,
    pub _bitfield_align_1: [u16; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub __bindgen_padding_0: u32,
    pub StartPosRel: ImVec2_c,
    pub EndPosRel: ImVec2_c,
    pub ScrollAccum: ImVec2_c,
    pub Window: *mut ImGuiWindow,
    pub UnclipMode: bool,
    pub UnclipRect: ImRect_c,
    pub UnclipRects: [ImRect_c; 2usize],
    pub BoxSelectRectPrev: ImRect_c,
    pub BoxSelectRectCurr: ImRect_c,
}
impl Default for ImGuiBoxSelectState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl ImGuiBoxSelectState {
    #[inline]
    pub fn KeyMods(&self) -> ImGuiKeyChord {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_KeyMods(&mut self, val: ImGuiKeyChord) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn KeyMods_raw(this: *const Self) -> ImGuiKeyChord {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                16u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_KeyMods_raw(this: *mut Self, val: ImGuiKeyChord) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                16u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(KeyMods: ImGuiKeyChord) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let KeyMods: u32 = unsafe { ::std::mem::transmute(KeyMods) };
            KeyMods as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiMultiSelectTempData {
    pub IO: ImGuiMultiSelectIO,
    pub Storage: *mut ImGuiMultiSelectState,
    pub FocusScopeId: ImGuiID,
    pub Flags: ImGuiMultiSelectFlags,
    pub ScopeRectMin: ImVec2_c,
    pub BackupCursorMaxPos: ImVec2_c,
    pub BoxSelectId: ImGuiID,
    pub KeyMods: ImGuiKeyChord,
    pub LoopRequestSetAll: ImS8,
    pub IsEndIO: bool,
    pub IsFocused: bool,
    pub IsKeyboardSetRange: bool,
    pub NavIdPassedBy: bool,
    pub RangeSrcPassedBy: bool,
    pub RangeDstPassedBy: bool,
}
impl Default for ImGuiMultiSelectTempData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiMultiSelectState {
    pub Window: *mut ImGuiWindow,
    pub ID: ImGuiID,
    pub LastFrameActive: ::std::os::raw::c_int,
    pub LastSelectionSize: ::std::os::raw::c_int,
    pub RangeSelected: ImS8,
    pub NavIdSelected: ImS8,
    pub RangeSrcItem: ImGuiSelectionUserData,
    pub NavIdItem: ImGuiSelectionUserData,
}
impl Default for ImGuiMultiSelectState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiDockNodeFlags_DockSpace: ImGuiDockNodeFlagsPrivate_ = 1024;
pub const ImGuiDockNodeFlags_CentralNode: ImGuiDockNodeFlagsPrivate_ = 2048;
pub const ImGuiDockNodeFlags_NoTabBar: ImGuiDockNodeFlagsPrivate_ = 4096;
pub const ImGuiDockNodeFlags_HiddenTabBar: ImGuiDockNodeFlagsPrivate_ = 8192;
pub const ImGuiDockNodeFlags_NoWindowMenuButton: ImGuiDockNodeFlagsPrivate_ = 16384;
pub const ImGuiDockNodeFlags_NoCloseButton: ImGuiDockNodeFlagsPrivate_ = 32768;
pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 65536;
pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 131072;
pub const ImGuiDockNodeFlags_DockedWindowsInFocusRoute: ImGuiDockNodeFlagsPrivate_ = 262144;
pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 524288;
pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 1048576;
pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 2097152;
pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 4194304;
pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 7864336;
pub const ImGuiDockNodeFlags_SharedFlagsInheritMask_: ImGuiDockNodeFlagsPrivate_ = -1;
pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 196640;
pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 260208;
pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 261152;
pub type ImGuiDockNodeFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiDataAuthority_Auto: ImGuiDataAuthority_ = 0;
pub const ImGuiDataAuthority_DockNode: ImGuiDataAuthority_ = 1;
pub const ImGuiDataAuthority_Window: ImGuiDataAuthority_ = 2;
pub type ImGuiDataAuthority_ = ::std::os::raw::c_int;
pub const ImGuiDockNodeState_Unknown: ImGuiDockNodeState = 0;
pub const ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow: ImGuiDockNodeState = 1;
pub const ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing: ImGuiDockNodeState = 2;
pub const ImGuiDockNodeState_HostWindowVisible: ImGuiDockNodeState = 3;
pub type ImGuiDockNodeState = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiWindowPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImGuiWindow,
}
impl Default for ImVector_ImGuiWindowPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiDockNode {
    pub ID: ImGuiID,
    pub SharedFlags: ImGuiDockNodeFlags,
    pub LocalFlags: ImGuiDockNodeFlags,
    pub LocalFlagsInWindows: ImGuiDockNodeFlags,
    pub MergedFlags: ImGuiDockNodeFlags,
    pub State: ImGuiDockNodeState,
    pub ParentNode: *mut ImGuiDockNode,
    pub ChildNodes: [*mut ImGuiDockNode; 2usize],
    pub Windows: ImVector_ImGuiWindowPtr,
    pub TabBar: *mut ImGuiTabBar,
    pub Pos: ImVec2_c,
    pub Size: ImVec2_c,
    pub SizeRef: ImVec2_c,
    pub SplitAxis: ImGuiAxis,
    pub LastBgColor: ImU32,
    pub WindowClass: ImGuiWindowClass,
    pub HostWindow: *mut ImGuiWindow,
    pub VisibleWindow: *mut ImGuiWindow,
    pub CentralNode: *mut ImGuiDockNode,
    pub OnlyNodeWithWindows: *mut ImGuiDockNode,
    pub CountNodeWithWindows: ::std::os::raw::c_int,
    pub LastFrameAlive: ::std::os::raw::c_int,
    pub LastFrameActive: ::std::os::raw::c_int,
    pub LastFrameFocused: ::std::os::raw::c_int,
    pub LastFocusedNodeId: ImGuiID,
    pub SelectedTabId: ImGuiID,
    pub WantCloseTabId: ImGuiID,
    pub RefViewportId: ImGuiID,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
    pub __bindgen_padding_0: [u8; 5usize],
}
impl Default for ImGuiDockNode {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl ImGuiDockNode {
    #[inline]
    pub fn AuthorityForPos(&self) -> ImGuiDataAuthority {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_AuthorityForPos(&mut self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn AuthorityForPos_raw(this: *const Self) -> ImGuiDataAuthority {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                3u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_AuthorityForPos_raw(this: *mut Self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                3u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn AuthorityForSize(&self) -> ImGuiDataAuthority {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_AuthorityForSize(&mut self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn AuthorityForSize_raw(this: *const Self) -> ImGuiDataAuthority {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                3usize,
                3u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_AuthorityForSize_raw(this: *mut Self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                3usize,
                3u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn AuthorityForViewport(&self) -> ImGuiDataAuthority {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_AuthorityForViewport(&mut self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn AuthorityForViewport_raw(this: *const Self) -> ImGuiDataAuthority {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                3u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_AuthorityForViewport_raw(this: *mut Self, val: ImGuiDataAuthority) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                3u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsVisible(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_IsVisible(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(9usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsVisible_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                9usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_IsVisible_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                9usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsFocused(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_IsFocused(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsFocused_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                10usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_IsFocused_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                10usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsBgDrawnThisFrame(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_IsBgDrawnThisFrame(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsBgDrawnThisFrame_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                11usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_IsBgDrawnThisFrame_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                11usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn HasCloseButton(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_HasCloseButton(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn HasCloseButton_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_HasCloseButton_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn HasWindowMenuButton(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_HasWindowMenuButton(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn HasWindowMenuButton_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                13usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_HasWindowMenuButton_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                13usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn HasCentralNodeChild(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_HasCentralNodeChild(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn HasCentralNodeChild_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                14usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_HasCentralNodeChild_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                14usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantCloseAll(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_WantCloseAll(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantCloseAll_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                15usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_WantCloseAll_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                15usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantLockSizeOnce(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_WantLockSizeOnce(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantLockSizeOnce_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_WantLockSizeOnce_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantMouseMove(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_WantMouseMove(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(17usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantMouseMove_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                17usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_WantMouseMove_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                17usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantHiddenTabBarUpdate(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_WantHiddenTabBarUpdate(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(18usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantHiddenTabBarUpdate_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                18usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_WantHiddenTabBarUpdate_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                18usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn WantHiddenTabBarToggle(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_WantHiddenTabBarToggle(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(19usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn WantHiddenTabBarToggle_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                19usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_WantHiddenTabBarToggle_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                19usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AuthorityForPos: ImGuiDataAuthority,
        AuthorityForSize: ImGuiDataAuthority,
        AuthorityForViewport: ImGuiDataAuthority,
        IsVisible: bool,
        IsFocused: bool,
        IsBgDrawnThisFrame: bool,
        HasCloseButton: bool,
        HasWindowMenuButton: bool,
        HasCentralNodeChild: bool,
        WantCloseAll: bool,
        WantLockSizeOnce: bool,
        WantMouseMove: bool,
        WantHiddenTabBarUpdate: bool,
        WantHiddenTabBarToggle: bool,
    ) -> __BindgenBitfieldUnit<[u8; 3usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 3u8, {
            let AuthorityForPos: u32 = unsafe { ::std::mem::transmute(AuthorityForPos) };
            AuthorityForPos as u64
        });
        __bindgen_bitfield_unit.set(3usize, 3u8, {
            let AuthorityForSize: u32 = unsafe { ::std::mem::transmute(AuthorityForSize) };
            AuthorityForSize as u64
        });
        __bindgen_bitfield_unit.set(6usize, 3u8, {
            let AuthorityForViewport: u32 = unsafe { ::std::mem::transmute(AuthorityForViewport) };
            AuthorityForViewport as u64
        });
        __bindgen_bitfield_unit.set(9usize, 1u8, {
            let IsVisible: u8 = unsafe { ::std::mem::transmute(IsVisible) };
            IsVisible as u64
        });
        __bindgen_bitfield_unit.set(10usize, 1u8, {
            let IsFocused: u8 = unsafe { ::std::mem::transmute(IsFocused) };
            IsFocused as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let IsBgDrawnThisFrame: u8 = unsafe { ::std::mem::transmute(IsBgDrawnThisFrame) };
            IsBgDrawnThisFrame as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let HasCloseButton: u8 = unsafe { ::std::mem::transmute(HasCloseButton) };
            HasCloseButton as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let HasWindowMenuButton: u8 = unsafe { ::std::mem::transmute(HasWindowMenuButton) };
            HasWindowMenuButton as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let HasCentralNodeChild: u8 = unsafe { ::std::mem::transmute(HasCentralNodeChild) };
            HasCentralNodeChild as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let WantCloseAll: u8 = unsafe { ::std::mem::transmute(WantCloseAll) };
            WantCloseAll as u64
        });
        __bindgen_bitfield_unit.set(16usize, 1u8, {
            let WantLockSizeOnce: u8 = unsafe { ::std::mem::transmute(WantLockSizeOnce) };
            WantLockSizeOnce as u64
        });
        __bindgen_bitfield_unit.set(17usize, 1u8, {
            let WantMouseMove: u8 = unsafe { ::std::mem::transmute(WantMouseMove) };
            WantMouseMove as u64
        });
        __bindgen_bitfield_unit.set(18usize, 1u8, {
            let WantHiddenTabBarUpdate: u8 =
                unsafe { ::std::mem::transmute(WantHiddenTabBarUpdate) };
            WantHiddenTabBarUpdate as u64
        });
        __bindgen_bitfield_unit.set(19usize, 1u8, {
            let WantHiddenTabBarToggle: u8 =
                unsafe { ::std::mem::transmute(WantHiddenTabBarToggle) };
            WantHiddenTabBarToggle as u64
        });
        __bindgen_bitfield_unit
    }
}
pub const ImGuiWindowDockStyleCol_Text: ImGuiWindowDockStyleCol = 0;
pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 1;
pub const ImGuiWindowDockStyleCol_TabFocused: ImGuiWindowDockStyleCol = 2;
pub const ImGuiWindowDockStyleCol_TabSelected: ImGuiWindowDockStyleCol = 3;
pub const ImGuiWindowDockStyleCol_TabSelectedOverline: ImGuiWindowDockStyleCol = 4;
pub const ImGuiWindowDockStyleCol_TabDimmed: ImGuiWindowDockStyleCol = 5;
pub const ImGuiWindowDockStyleCol_TabDimmedSelected: ImGuiWindowDockStyleCol = 6;
pub const ImGuiWindowDockStyleCol_TabDimmedSelectedOverline: ImGuiWindowDockStyleCol = 7;
pub const ImGuiWindowDockStyleCol_UnsavedMarker: ImGuiWindowDockStyleCol = 8;
pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 9;
pub type ImGuiWindowDockStyleCol = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiWindowDockStyle {
    pub Colors: [ImU32; 9usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiDockRequest {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiDockRequest,
}
impl Default for ImVector_ImGuiDockRequest {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiDockNodeSettings {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiDockNodeSettings,
}
impl Default for ImVector_ImGuiDockNodeSettings {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDockContext {
    pub Nodes: ImGuiStorage,
    pub Requests: ImVector_ImGuiDockRequest,
    pub NodesSettings: ImVector_ImGuiDockNodeSettings,
    pub WantFullRebuild: bool,
}
impl Default for ImGuiDockContext {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiViewportP {
    pub _ImGuiViewport: ImGuiViewport,
    pub Window: *mut ImGuiWindow,
    pub Idx: ::std::os::raw::c_int,
    pub LastFrameActive: ::std::os::raw::c_int,
    pub LastFocusedStampCount: ::std::os::raw::c_int,
    pub LastNameHash: ImGuiID,
    pub LastPos: ImVec2_c,
    pub LastSize: ImVec2_c,
    pub Alpha: f32,
    pub LastAlpha: f32,
    pub LastFocusedHadNavWindow: bool,
    pub PlatformMonitor: ::std::os::raw::c_short,
    pub BgFgDrawListsLastTimeActive: [f32; 2usize],
    pub BgFgDrawLists: [*mut ImDrawList; 2usize],
    pub DrawDataP: ImDrawData,
    pub DrawDataBuilder: ImDrawDataBuilder,
    pub LastPlatformPos: ImVec2_c,
    pub LastPlatformSize: ImVec2_c,
    pub LastRendererSize: ImVec2_c,
    pub WorkInsetMin: ImVec2_c,
    pub WorkInsetMax: ImVec2_c,
    pub BuildWorkInsetMin: ImVec2_c,
    pub BuildWorkInsetMax: ImVec2_c,
}
impl Default for ImGuiViewportP {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiWindowSettings {
    pub ID: ImGuiID,
    pub Pos: ImVec2ih,
    pub Size: ImVec2ih,
    pub ViewportPos: ImVec2ih,
    pub ViewportId: ImGuiID,
    pub DockId: ImGuiID,
    pub ClassId: ImGuiID,
    pub DockOrder: ::std::os::raw::c_short,
    pub Collapsed: bool,
    pub IsChild: bool,
    pub WantApply: bool,
    pub WantDelete: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiSettingsHandler {
    pub TypeName: *const ::std::os::raw::c_char,
    pub TypeHash: ImGuiID,
    pub ClearAllFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext, handler: *mut ImGuiSettingsHandler),
    >,
    pub ReadInitFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext, handler: *mut ImGuiSettingsHandler),
    >,
    pub ReadOpenFn: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ImGuiContext,
            handler: *mut ImGuiSettingsHandler,
            name: *const ::std::os::raw::c_char,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub ReadLineFn: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ImGuiContext,
            handler: *mut ImGuiSettingsHandler,
            entry: *mut ::std::os::raw::c_void,
            line: *const ::std::os::raw::c_char,
        ),
    >,
    pub ApplyAllFn: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut ImGuiContext, handler: *mut ImGuiSettingsHandler),
    >,
    pub WriteAllFn: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ImGuiContext,
            handler: *mut ImGuiSettingsHandler,
            out_buf: *mut ImGuiTextBuffer,
        ),
    >,
    pub UserData: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiSettingsHandler {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ImGuiLocKey_VersionStr: ImGuiLocKey = 0;
pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 1;
pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 2;
pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 3;
pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 4;
pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 5;
pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 6;
pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 7;
pub const ImGuiLocKey_OpenLink_s: ImGuiLocKey = 8;
pub const ImGuiLocKey_CopyLink: ImGuiLocKey = 9;
pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 10;
pub const ImGuiLocKey_DockingHoldShiftToDock: ImGuiLocKey = 11;
pub const ImGuiLocKey_DockingDragToUndockOrMoveNode: ImGuiLocKey = 12;
pub const ImGuiLocKey_COUNT: ImGuiLocKey = 13;
pub type ImGuiLocKey = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiLocEntry {
    pub Key: ImGuiLocKey,
    pub Text: *const ::std::os::raw::c_char,
}
impl Default for ImGuiLocEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImGuiErrorCallback = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut ImGuiContext,
        user_data: *mut ::std::os::raw::c_void,
        msg: *const ::std::os::raw::c_char,
    ),
>;
pub const ImGuiDebugLogFlags_None: ImGuiDebugLogFlags_ = 0;
pub const ImGuiDebugLogFlags_EventError: ImGuiDebugLogFlags_ = 1;
pub const ImGuiDebugLogFlags_EventActiveId: ImGuiDebugLogFlags_ = 2;
pub const ImGuiDebugLogFlags_EventFocus: ImGuiDebugLogFlags_ = 4;
pub const ImGuiDebugLogFlags_EventPopup: ImGuiDebugLogFlags_ = 8;
pub const ImGuiDebugLogFlags_EventNav: ImGuiDebugLogFlags_ = 16;
pub const ImGuiDebugLogFlags_EventClipper: ImGuiDebugLogFlags_ = 32;
pub const ImGuiDebugLogFlags_EventSelection: ImGuiDebugLogFlags_ = 64;
pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 128;
pub const ImGuiDebugLogFlags_EventFont: ImGuiDebugLogFlags_ = 256;
pub const ImGuiDebugLogFlags_EventInputRouting: ImGuiDebugLogFlags_ = 512;
pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 1024;
pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 2048;
pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 4095;
pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1048576;
pub const ImGuiDebugLogFlags_OutputToDebugger: ImGuiDebugLogFlags_ = 2097152;
pub const ImGuiDebugLogFlags_OutputToTestEngine: ImGuiDebugLogFlags_ = 4194304;
pub type ImGuiDebugLogFlags_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDebugAllocEntry {
    pub FrameCount: ::std::os::raw::c_int,
    pub AllocCount: ImS16,
    pub FreeCount: ImS16,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDebugAllocInfo {
    pub TotalAllocCount: ::std::os::raw::c_int,
    pub TotalFreeCount: ::std::os::raw::c_int,
    pub LastEntriesIdx: ImS16,
    pub LastEntriesBuf: [ImGuiDebugAllocEntry; 6usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiMetricsConfig {
    pub ShowDebugLog: bool,
    pub ShowIDStackTool: bool,
    pub ShowWindowsRects: bool,
    pub ShowWindowsBeginOrder: bool,
    pub ShowTablesRects: bool,
    pub ShowDrawCmdMesh: bool,
    pub ShowDrawCmdBoundingBoxes: bool,
    pub ShowTextEncodingViewer: bool,
    pub ShowTextureUsedRect: bool,
    pub ShowDockingNodes: bool,
    pub ShowWindowsRectsType: ::std::os::raw::c_int,
    pub ShowTablesRectsType: ::std::os::raw::c_int,
    pub HighlightMonitorIdx: ::std::os::raw::c_int,
    pub HighlightViewportID: ImGuiID,
    pub ShowFontPreview: bool,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiStackLevelInfo {
    pub ID: ImGuiID,
    pub QueryFrameCount: ImS8,
    pub QuerySuccess: bool,
    pub DataType: ImS8,
    pub DescOffset: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiStackLevelInfo {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiStackLevelInfo,
}
impl Default for ImVector_ImGuiStackLevelInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiDebugItemPathQuery {
    pub MainID: ImGuiID,
    pub Active: bool,
    pub Complete: bool,
    pub Step: ImS8,
    pub Results: ImVector_ImGuiStackLevelInfo,
    pub ResultsDescBuf: ImGuiTextBuffer,
    pub ResultPathBuf: ImGuiTextBuffer,
}
impl Default for ImGuiDebugItemPathQuery {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiIDStackTool {
    pub OptHexEncodeNonAsciiChars: bool,
    pub OptCopyToClipboardOnCtrlC: bool,
    pub LastActiveFrame: ::std::os::raw::c_int,
    pub CopyToClipboardLastTime: f32,
}
pub type ImGuiContextHookCallback = ::std::option::Option<
    unsafe extern "C" fn(ctx: *mut ImGuiContext, hook: *mut ImGuiContextHook),
>;
pub const ImGuiContextHookType_NewFramePre: ImGuiContextHookType = 0;
pub const ImGuiContextHookType_NewFramePost: ImGuiContextHookType = 1;
pub const ImGuiContextHookType_EndFramePre: ImGuiContextHookType = 2;
pub const ImGuiContextHookType_EndFramePost: ImGuiContextHookType = 3;
pub const ImGuiContextHookType_RenderPre: ImGuiContextHookType = 4;
pub const ImGuiContextHookType_RenderPost: ImGuiContextHookType = 5;
pub const ImGuiContextHookType_Shutdown: ImGuiContextHookType = 6;
pub const ImGuiContextHookType_PendingRemoval_: ImGuiContextHookType = 7;
pub type ImGuiContextHookType = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiContextHook {
    pub HookId: ImGuiID,
    pub Type: ImGuiContextHookType,
    pub Owner: ImGuiID,
    pub Callback: ImGuiContextHookCallback,
    pub UserData: *mut ::std::os::raw::c_void,
}
impl Default for ImGuiContextHook {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImGuiDemoMarkerCallback = ::std::option::Option<
    unsafe extern "C" fn(
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        section: *const ::std::os::raw::c_char,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontAtlasPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImFontAtlas,
}
impl Default for ImVector_ImFontAtlasPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiInputEvent {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiInputEvent,
}
impl Default for ImVector_ImGuiInputEvent {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiWindowStackData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiWindowStackData,
}
impl Default for ImVector_ImGuiWindowStackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiColorMod {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiColorMod,
}
impl Default for ImVector_ImGuiColorMod {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiStyleMod {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiStyleMod,
}
impl Default for ImVector_ImGuiStyleMod {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontStackData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImFontStackData,
}
impl Default for ImVector_ImFontStackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiFocusScopeData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiFocusScopeData,
}
impl Default for ImVector_ImGuiFocusScopeData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiItemFlags {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiItemFlags,
}
impl Default for ImVector_ImGuiItemFlags {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiGroupData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiGroupData,
}
impl Default for ImVector_ImGuiGroupData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiPopupData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiPopupData,
}
impl Default for ImVector_ImGuiPopupData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTreeNodeStackData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTreeNodeStackData,
}
impl Default for ImVector_ImGuiTreeNodeStackData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiViewportPPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImGuiViewportP,
}
impl Default for ImVector_ImGuiViewportPPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_unsigned_char {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ::std::os::raw::c_uchar,
}
impl Default for ImVector_unsigned_char {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiListClipperData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiListClipperData,
}
impl Default for ImVector_ImGuiListClipperData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTableTempData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTableTempData,
}
impl Default for ImVector_ImGuiTableTempData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTable {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTable,
}
impl Default for ImVector_ImGuiTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImPool_ImGuiTable {
    pub Buf: ImVector_ImGuiTable,
    pub Map: ImGuiStorage,
    pub FreeIdx: ImPoolIdx,
    pub AliveCount: ImPoolIdx,
}
impl Default for ImPool_ImGuiTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTabBar {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTabBar,
}
impl Default for ImVector_ImGuiTabBar {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImPool_ImGuiTabBar {
    pub Buf: ImVector_ImGuiTabBar,
    pub Map: ImGuiStorage,
    pub FreeIdx: ImPoolIdx,
    pub AliveCount: ImPoolIdx,
}
impl Default for ImPool_ImGuiTabBar {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiPtrOrIndex {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiPtrOrIndex,
}
impl Default for ImVector_ImGuiPtrOrIndex {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiShrinkWidthItem {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiShrinkWidthItem,
}
impl Default for ImVector_ImGuiShrinkWidthItem {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiMultiSelectTempData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiMultiSelectTempData,
}
impl Default for ImVector_ImGuiMultiSelectTempData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiMultiSelectState {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiMultiSelectState,
}
impl Default for ImVector_ImGuiMultiSelectState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImPool_ImGuiMultiSelectState {
    pub Buf: ImVector_ImGuiMultiSelectState,
    pub Map: ImGuiStorage,
    pub FreeIdx: ImPoolIdx,
    pub AliveCount: ImPoolIdx,
}
impl Default for ImPool_ImGuiMultiSelectState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiID {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiID,
}
impl Default for ImVector_ImGuiID {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiSettingsHandler {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiSettingsHandler,
}
impl Default for ImVector_ImGuiSettingsHandler {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImChunkStream_ImGuiWindowSettings {
    pub Buf: ImVector_char,
}
impl Default for ImChunkStream_ImGuiWindowSettings {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImChunkStream_ImGuiTableSettings {
    pub Buf: ImVector_char,
}
impl Default for ImChunkStream_ImGuiTableSettings {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiContextHook {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiContextHook,
}
impl Default for ImVector_ImGuiContextHook {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiContext {
    pub Initialized: bool,
    pub WithinFrameScope: bool,
    pub WithinFrameScopeWithImplicitWindow: bool,
    pub TestEngineHookItems: bool,
    pub FrameCount: ::std::os::raw::c_int,
    pub FrameCountEnded: ::std::os::raw::c_int,
    pub FrameCountPlatformEnded: ::std::os::raw::c_int,
    pub FrameCountRendered: ::std::os::raw::c_int,
    pub Time: f64,
    pub ContextName: [::std::os::raw::c_char; 16usize],
    pub IO: ImGuiIO,
    pub PlatformIO: ImGuiPlatformIO,
    pub Style: ImGuiStyle,
    pub ConfigFlagsCurrFrame: ImGuiConfigFlags,
    pub ConfigFlagsLastFrame: ImGuiConfigFlags,
    pub FontAtlases: ImVector_ImFontAtlasPtr,
    pub Font: *mut ImFont,
    pub FontBaked: *mut ImFontBaked,
    pub FontSize: f32,
    pub FontSizeBase: f32,
    pub FontBakedScale: f32,
    pub FontRasterizerDensity: f32,
    pub CurrentDpiScale: f32,
    pub DrawListSharedData: ImDrawListSharedData,
    pub WithinEndChildID: ImGuiID,
    pub WithinEndPopupID: ImGuiID,
    pub TestEngine: *mut ::std::os::raw::c_void,
    pub InputEventsQueue: ImVector_ImGuiInputEvent,
    pub InputEventsTrail: ImVector_ImGuiInputEvent,
    pub InputEventsNextMouseSource: ImGuiMouseSource,
    pub InputEventsNextEventId: ImU32,
    pub Windows: ImVector_ImGuiWindowPtr,
    pub WindowsFocusOrder: ImVector_ImGuiWindowPtr,
    pub WindowsTempSortBuffer: ImVector_ImGuiWindowPtr,
    pub CurrentWindowStack: ImVector_ImGuiWindowStackData,
    pub WindowsById: ImGuiStorage,
    pub WindowsActiveCount: ::std::os::raw::c_int,
    pub WindowsBorderHoverPadding: f32,
    pub DebugBreakInWindow: ImGuiID,
    pub CurrentWindow: *mut ImGuiWindow,
    pub HoveredWindow: *mut ImGuiWindow,
    pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow,
    pub HoveredWindowBeforeClear: *mut ImGuiWindow,
    pub MovingWindow: *mut ImGuiWindow,
    pub WheelingWindow: *mut ImGuiWindow,
    pub WheelingWindowRefMousePos: ImVec2_c,
    pub WheelingWindowStartFrame: ::std::os::raw::c_int,
    pub WheelingWindowScrolledFrame: ::std::os::raw::c_int,
    pub WheelingWindowReleaseTimer: f32,
    pub WheelingWindowWheelRemainder: ImVec2_c,
    pub WheelingAxisAvg: ImVec2_c,
    pub DebugDrawIdConflictsId: ImGuiID,
    pub DebugHookIdInfoId: ImGuiID,
    pub HoveredId: ImGuiID,
    pub HoveredIdPreviousFrame: ImGuiID,
    pub HoveredIdPreviousFrameItemCount: ::std::os::raw::c_int,
    pub HoveredIdTimer: f32,
    pub HoveredIdNotActiveTimer: f32,
    pub HoveredIdAllowOverlap: bool,
    pub HoveredIdIsDisabled: bool,
    pub ItemUnclipByLog: bool,
    pub ActiveId: ImGuiID,
    pub ActiveIdIsAlive: ImGuiID,
    pub ActiveIdTimer: f32,
    pub ActiveIdIsJustActivated: bool,
    pub ActiveIdAllowOverlap: bool,
    pub ActiveIdNoClearOnFocusLoss: bool,
    pub ActiveIdHasBeenPressedBefore: bool,
    pub ActiveIdHasBeenEditedBefore: bool,
    pub ActiveIdHasBeenEditedThisFrame: bool,
    pub ActiveIdFromShortcut: bool,
    pub ActiveIdMouseButton: ImS8,
    pub ActiveIdDisabledId: ImGuiID,
    pub ActiveIdClickOffset: ImVec2_c,
    pub ActiveIdSource: ImGuiInputSource,
    pub ActiveIdWindow: *mut ImGuiWindow,
    pub ActiveIdPreviousFrame: ImGuiID,
    pub DeactivatedItemData: ImGuiDeactivatedItemData,
    pub ActiveIdValueOnActivation: ImGuiDataTypeStorage,
    pub LastActiveId: ImGuiID,
    pub LastActiveIdTimer: f32,
    pub LastKeyModsChangeTime: f64,
    pub LastKeyModsChangeFromNoneTime: f64,
    pub LastKeyboardKeyPressTime: f64,
    pub KeysMayBeCharInput: ImBitArrayForNamedKeys,
    pub KeysOwnerData: [ImGuiKeyOwnerData; 155usize],
    pub KeysRoutingTable: ImGuiKeyRoutingTable,
    pub ActiveIdUsingNavDirMask: ImU32,
    pub ActiveIdUsingAllKeyboardKeys: bool,
    pub DebugBreakInShortcutRouting: ImGuiKeyChord,
    pub CurrentFocusScopeId: ImGuiID,
    pub CurrentItemFlags: ImGuiItemFlags,
    pub DebugLocateId: ImGuiID,
    pub NextItemData: ImGuiNextItemData,
    pub LastItemData: ImGuiLastItemData,
    pub NextWindowData: ImGuiNextWindowData,
    pub DebugShowGroupRects: bool,
    pub GcCompactAll: bool,
    pub DebugFlashStyleColorIdx: ImGuiCol,
    pub ColorStack: ImVector_ImGuiColorMod,
    pub StyleVarStack: ImVector_ImGuiStyleMod,
    pub FontStack: ImVector_ImFontStackData,
    pub FocusScopeStack: ImVector_ImGuiFocusScopeData,
    pub ItemFlagsStack: ImVector_ImGuiItemFlags,
    pub GroupStack: ImVector_ImGuiGroupData,
    pub OpenPopupStack: ImVector_ImGuiPopupData,
    pub BeginPopupStack: ImVector_ImGuiPopupData,
    pub TreeNodeStack: ImVector_ImGuiTreeNodeStackData,
    pub Viewports: ImVector_ImGuiViewportPPtr,
    pub CurrentViewport: *mut ImGuiViewportP,
    pub MouseViewport: *mut ImGuiViewportP,
    pub MouseLastHoveredViewport: *mut ImGuiViewportP,
    pub PlatformLastFocusedViewportId: ImGuiID,
    pub FallbackMonitor: ImGuiPlatformMonitor,
    pub PlatformMonitorsFullWorkRect: ImRect_c,
    pub ViewportCreatedCount: ::std::os::raw::c_int,
    pub PlatformWindowsCreatedCount: ::std::os::raw::c_int,
    pub ViewportFocusedStampCount: ::std::os::raw::c_int,
    pub NavCursorVisible: bool,
    pub NavHighlightItemUnderNav: bool,
    pub NavMousePosDirty: bool,
    pub NavIdIsAlive: bool,
    pub NavId: ImGuiID,
    pub NavWindow: *mut ImGuiWindow,
    pub NavFocusScopeId: ImGuiID,
    pub NavLayer: ImGuiNavLayer,
    pub NavIdItemFlags: ImGuiItemFlags,
    pub NavActivateId: ImGuiID,
    pub NavActivateDownId: ImGuiID,
    pub NavActivatePressedId: ImGuiID,
    pub NavActivateFlags: ImGuiActivateFlags,
    pub NavFocusRoute: ImVector_ImGuiFocusScopeData,
    pub NavHighlightActivatedId: ImGuiID,
    pub NavHighlightActivatedTimer: f32,
    pub NavOpenContextMenuItemId: ImGuiID,
    pub NavOpenContextMenuWindowId: ImGuiID,
    pub NavNextActivateId: ImGuiID,
    pub NavNextActivateFlags: ImGuiActivateFlags,
    pub NavInputSource: ImGuiInputSource,
    pub NavLastValidSelectionUserData: ImGuiSelectionUserData,
    pub NavCursorHideFrames: ImS8,
    pub NavAnyRequest: bool,
    pub NavInitRequest: bool,
    pub NavInitRequestFromMove: bool,
    pub NavInitResult: ImGuiNavItemData,
    pub NavMoveSubmitted: bool,
    pub NavMoveScoringItems: bool,
    pub NavMoveForwardToNextFrame: bool,
    pub NavMoveFlags: ImGuiNavMoveFlags,
    pub NavMoveScrollFlags: ImGuiScrollFlags,
    pub NavMoveKeyMods: ImGuiKeyChord,
    pub NavMoveDir: ImGuiDir,
    pub NavMoveDirForDebug: ImGuiDir,
    pub NavMoveClipDir: ImGuiDir,
    pub NavScoringRect: ImRect_c,
    pub NavScoringNoClipRect: ImRect_c,
    pub NavScoringDebugCount: ::std::os::raw::c_int,
    pub NavTabbingDir: ::std::os::raw::c_int,
    pub NavTabbingCounter: ::std::os::raw::c_int,
    pub NavMoveResultLocal: ImGuiNavItemData,
    pub NavMoveResultLocalVisible: ImGuiNavItemData,
    pub NavMoveResultOther: ImGuiNavItemData,
    pub NavTabbingResultFirst: ImGuiNavItemData,
    pub NavJustMovedFromFocusScopeId: ImGuiID,
    pub NavJustMovedToId: ImGuiID,
    pub NavJustMovedToFocusScopeId: ImGuiID,
    pub NavJustMovedToKeyMods: ImGuiKeyChord,
    pub NavJustMovedToIsTabbing: bool,
    pub NavJustMovedToHasSelectionData: bool,
    pub ConfigNavEnableTabbing: bool,
    pub ConfigNavWindowingWithGamepad: bool,
    pub ConfigNavWindowingKeyNext: ImGuiKeyChord,
    pub ConfigNavWindowingKeyPrev: ImGuiKeyChord,
    pub NavWindowingTarget: *mut ImGuiWindow,
    pub NavWindowingTargetAnim: *mut ImGuiWindow,
    pub NavWindowingListWindow: *mut ImGuiWindow,
    pub NavWindowingTimer: f32,
    pub NavWindowingHighlightAlpha: f32,
    pub NavWindowingInputSource: ImGuiInputSource,
    pub NavWindowingToggleLayer: bool,
    pub NavWindowingToggleKey: ImGuiKey,
    pub NavWindowingAccumDeltaPos: ImVec2_c,
    pub NavWindowingAccumDeltaSize: ImVec2_c,
    pub DimBgRatio: f32,
    pub DragDropActive: bool,
    pub DragDropWithinSource: bool,
    pub DragDropWithinTarget: bool,
    pub DragDropSourceFlags: ImGuiDragDropFlags,
    pub DragDropSourceFrameCount: ::std::os::raw::c_int,
    pub DragDropMouseButton: ::std::os::raw::c_int,
    pub DragDropPayload: ImGuiPayload,
    pub DragDropTargetRect: ImRect_c,
    pub DragDropTargetClipRect: ImRect_c,
    pub DragDropTargetId: ImGuiID,
    pub DragDropTargetFullViewport: ImGuiID,
    pub DragDropAcceptFlagsCurr: ImGuiDragDropFlags,
    pub DragDropAcceptFlagsPrev: ImGuiDragDropFlags,
    pub DragDropAcceptIdCurrRectSurface: f32,
    pub DragDropAcceptIdCurr: ImGuiID,
    pub DragDropAcceptIdPrev: ImGuiID,
    pub DragDropAcceptFrameCount: ::std::os::raw::c_int,
    pub DragDropHoldJustPressedId: ImGuiID,
    pub DragDropPayloadBufHeap: ImVector_unsigned_char,
    pub DragDropPayloadBufLocal: [::std::os::raw::c_uchar; 16usize],
    pub ClipperTempDataStacked: ::std::os::raw::c_int,
    pub ClipperTempData: ImVector_ImGuiListClipperData,
    pub CurrentTable: *mut ImGuiTable,
    pub DebugBreakInTable: ImGuiID,
    pub TablesTempDataStacked: ::std::os::raw::c_int,
    pub TablesTempData: ImVector_ImGuiTableTempData,
    pub Tables: ImPool_ImGuiTable,
    pub TablesLastTimeActive: ImVector_float,
    pub DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel,
    pub CurrentTabBar: *mut ImGuiTabBar,
    pub TabBars: ImPool_ImGuiTabBar,
    pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex,
    pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem,
    pub BoxSelectState: ImGuiBoxSelectState,
    pub CurrentMultiSelect: *mut ImGuiMultiSelectTempData,
    pub MultiSelectTempDataStacked: ::std::os::raw::c_int,
    pub MultiSelectTempData: ImVector_ImGuiMultiSelectTempData,
    pub MultiSelectStorage: ImPool_ImGuiMultiSelectState,
    pub HoverItemDelayId: ImGuiID,
    pub HoverItemDelayIdPreviousFrame: ImGuiID,
    pub HoverItemDelayTimer: f32,
    pub HoverItemDelayClearTimer: f32,
    pub HoverItemUnlockedStationaryId: ImGuiID,
    pub HoverWindowUnlockedStationaryId: ImGuiID,
    pub MouseCursor: ImGuiMouseCursor,
    pub MouseStationaryTimer: f32,
    pub MouseLastValidPos: ImVec2_c,
    pub InputTextState: ImGuiInputTextState,
    pub InputTextLineIndex: ImGuiTextIndex,
    pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState,
    pub InputTextPasswordFontBackupBaked: ImFontBaked,
    pub InputTextPasswordFontBackupFlags: ImFontFlags,
    pub InputTextReactivateId: ImGuiID,
    pub TempInputId: ImGuiID,
    pub DataTypeZeroValue: ImGuiDataTypeStorage,
    pub BeginMenuDepth: ::std::os::raw::c_int,
    pub BeginComboDepth: ::std::os::raw::c_int,
    pub ColorEditOptions: ImGuiColorEditFlags,
    pub ColorEditCurrentID: ImGuiID,
    pub ColorEditSavedID: ImGuiID,
    pub ColorEditSavedHue: f32,
    pub ColorEditSavedSat: f32,
    pub ColorEditSavedColor: ImU32,
    pub ColorPickerRef: ImVec4_c,
    pub ComboPreviewData: ImGuiComboPreviewData,
    pub WindowResizeBorderExpectedRect: ImRect_c,
    pub WindowResizeRelativeMode: bool,
    pub ScrollbarSeekMode: ::std::os::raw::c_short,
    pub ScrollbarClickDeltaToGrabCenter: f32,
    pub SliderGrabClickOffset: f32,
    pub SliderCurrentAccum: f32,
    pub SliderCurrentAccumDirty: bool,
    pub DragCurrentAccumDirty: bool,
    pub DragCurrentAccum: f32,
    pub DragSpeedDefaultRatio: f32,
    pub DisabledAlphaBackup: f32,
    pub DisabledStackSize: ::std::os::raw::c_short,
    pub TooltipOverrideCount: ::std::os::raw::c_short,
    pub TooltipPreviousWindow: *mut ImGuiWindow,
    pub ClipboardHandlerData: ImVector_char,
    pub MenusIdSubmittedThisFrame: ImVector_ImGuiID,
    pub TypingSelectState: ImGuiTypingSelectState,
    pub PlatformImeData: ImGuiPlatformImeData,
    pub PlatformImeDataPrev: ImGuiPlatformImeData,
    pub UserTextures: ImVector_ImTextureDataPtr,
    pub DockContext: ImGuiDockContext,
    pub DockNodeWindowMenuHandler: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ImGuiContext,
            node: *mut ImGuiDockNode,
            tab_bar: *mut ImGuiTabBar,
        ),
    >,
    pub SettingsLoaded: bool,
    pub SettingsDirtyTimer: f32,
    pub SettingsIniData: ImGuiTextBuffer,
    pub SettingsHandlers: ImVector_ImGuiSettingsHandler,
    pub SettingsWindows: ImChunkStream_ImGuiWindowSettings,
    pub SettingsTables: ImChunkStream_ImGuiTableSettings,
    pub Hooks: ImVector_ImGuiContextHook,
    pub HookIdNext: ImGuiID,
    pub DemoMarkerCallback: ImGuiDemoMarkerCallback,
    pub LocalizationTable: [*const ::std::os::raw::c_char; 13usize],
    pub LogEnabled: bool,
    pub LogLineFirstItem: bool,
    pub LogFlags: ImGuiLogFlags,
    pub LogWindow: *mut ImGuiWindow,
    pub LogFile: ImFileHandle,
    pub LogBuffer: ImGuiTextBuffer,
    pub LogNextPrefix: *const ::std::os::raw::c_char,
    pub LogNextSuffix: *const ::std::os::raw::c_char,
    pub LogLinePosY: f32,
    pub LogDepthRef: ::std::os::raw::c_int,
    pub LogDepthToExpand: ::std::os::raw::c_int,
    pub LogDepthToExpandDefault: ::std::os::raw::c_int,
    pub ErrorCallback: ImGuiErrorCallback,
    pub ErrorCallbackUserData: *mut ::std::os::raw::c_void,
    pub ErrorTooltipLockedPos: ImVec2_c,
    pub ErrorFirst: bool,
    pub ErrorCountCurrentFrame: ::std::os::raw::c_int,
    pub StackSizesInNewFrame: ImGuiErrorRecoveryState,
    pub StackSizesInBeginForCurrentWindow: *mut ImGuiErrorRecoveryState,
    pub DebugDrawIdConflictsCount: ::std::os::raw::c_int,
    pub DebugLogFlags: ImGuiDebugLogFlags,
    pub DebugLogBuf: ImGuiTextBuffer,
    pub DebugLogIndex: ImGuiTextIndex,
    pub DebugLogSkippedErrors: ::std::os::raw::c_int,
    pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags,
    pub DebugLogAutoDisableFrames: ImU8,
    pub DebugLocateFrames: ImU8,
    pub DebugBreakInLocateId: bool,
    pub DebugBreakKeyChord: ImGuiKeyChord,
    pub DebugBeginReturnValueCullDepth: ImS8,
    pub DebugItemPickerActive: bool,
    pub DebugItemPickerMouseButton: ImU8,
    pub DebugItemPickerBreakId: ImGuiID,
    pub DebugFlashStyleColorTime: f32,
    pub DebugFlashStyleColorBackup: ImVec4_c,
    pub DebugMetricsConfig: ImGuiMetricsConfig,
    pub DebugItemPathQuery: ImGuiDebugItemPathQuery,
    pub DebugIDStackTool: ImGuiIDStackTool,
    pub DebugAllocInfo: ImGuiDebugAllocInfo,
    pub DebugHoveredDockNode: *mut ImGuiDockNode,
    pub FramerateSecPerFrame: [f32; 60usize],
    pub FramerateSecPerFrameIdx: ::std::os::raw::c_int,
    pub FramerateSecPerFrameCount: ::std::os::raw::c_int,
    pub FramerateSecPerFrameAccum: f32,
    pub WantCaptureMouseNextFrame: ::std::os::raw::c_int,
    pub WantCaptureKeyboardNextFrame: ::std::os::raw::c_int,
    pub WantTextInputNextFrame: ::std::os::raw::c_int,
    pub TempBuffer: ImVector_char,
    pub TempKeychordName: [::std::os::raw::c_char; 64usize],
}
impl Default for ImGuiContext {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiWindowTempData {
    pub CursorPos: ImVec2_c,
    pub CursorPosPrevLine: ImVec2_c,
    pub CursorStartPos: ImVec2_c,
    pub CursorMaxPos: ImVec2_c,
    pub IdealMaxPos: ImVec2_c,
    pub CurrLineSize: ImVec2_c,
    pub PrevLineSize: ImVec2_c,
    pub CurrLineTextBaseOffset: f32,
    pub PrevLineTextBaseOffset: f32,
    pub IsSameLine: bool,
    pub IsSetPos: bool,
    pub Indent: ImVec1,
    pub ColumnsOffset: ImVec1,
    pub GroupOffset: ImVec1,
    pub CursorStartPosLossyness: ImVec2_c,
    pub NavLayerCurrent: ImGuiNavLayer,
    pub NavLayersActiveMask: ::std::os::raw::c_short,
    pub NavLayersActiveMaskNext: ::std::os::raw::c_short,
    pub NavIsScrollPushableX: bool,
    pub NavHideHighlightOneFrame: bool,
    pub NavWindowHasScrollY: bool,
    pub MenuBarAppending: bool,
    pub MenuBarOffset: ImVec2_c,
    pub MenuColumns: ImGuiMenuColumns,
    pub TreeDepth: ::std::os::raw::c_int,
    pub TreeHasStackDataDepthMask: ImU32,
    pub TreeRecordsClippedNodesY2Mask: ImU32,
    pub ChildWindows: ImVector_ImGuiWindowPtr,
    pub StateStorage: *mut ImGuiStorage,
    pub CurrentColumns: *mut ImGuiOldColumns,
    pub CurrentTableIdx: ::std::os::raw::c_int,
    pub LayoutType: ImGuiLayoutType,
    pub ParentLayoutType: ImGuiLayoutType,
    pub ModalDimBgColor: ImU32,
    pub WindowItemStatusFlags: ImGuiItemStatusFlags,
    pub ChildItemStatusFlags: ImGuiItemStatusFlags,
    pub DockTabItemStatusFlags: ImGuiItemStatusFlags,
    pub DockTabItemRect: ImRect_c,
    pub ItemWidth: f32,
    pub ItemWidthDefault: f32,
    pub TextWrapPos: f32,
    pub ItemWidthStack: ImVector_float,
    pub TextWrapPosStack: ImVector_float,
}
impl Default for ImGuiWindowTempData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiOldColumns {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiOldColumns,
}
impl Default for ImVector_ImGuiOldColumns {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiWindow {
    pub Ctx: *mut ImGuiContext,
    pub Name: *mut ::std::os::raw::c_char,
    pub ID: ImGuiID,
    pub Flags: ImGuiWindowFlags,
    pub FlagsPreviousFrame: ImGuiWindowFlags,
    pub ChildFlags: ImGuiChildFlags,
    pub WindowClass: ImGuiWindowClass,
    pub Viewport: *mut ImGuiViewportP,
    pub ViewportId: ImGuiID,
    pub ViewportPos: ImVec2_c,
    pub ViewportAllowPlatformMonitorExtend: ::std::os::raw::c_int,
    pub Pos: ImVec2_c,
    pub Size: ImVec2_c,
    pub SizeFull: ImVec2_c,
    pub ContentSize: ImVec2_c,
    pub ContentSizeIdeal: ImVec2_c,
    pub ContentSizeExplicit: ImVec2_c,
    pub WindowPadding: ImVec2_c,
    pub WindowRounding: f32,
    pub WindowBorderSize: f32,
    pub TitleBarHeight: f32,
    pub MenuBarHeight: f32,
    pub DecoOuterSizeX1: f32,
    pub DecoOuterSizeY1: f32,
    pub DecoOuterSizeX2: f32,
    pub DecoOuterSizeY2: f32,
    pub DecoInnerSizeX1: f32,
    pub DecoInnerSizeY1: f32,
    pub NameBufLen: ::std::os::raw::c_int,
    pub MoveId: ImGuiID,
    pub TabId: ImGuiID,
    pub ChildId: ImGuiID,
    pub PopupId: ImGuiID,
    pub Scroll: ImVec2_c,
    pub ScrollMax: ImVec2_c,
    pub ScrollTarget: ImVec2_c,
    pub ScrollTargetCenterRatio: ImVec2_c,
    pub ScrollTargetEdgeSnapDist: ImVec2_c,
    pub ScrollbarSizes: ImVec2_c,
    pub ScrollbarX: bool,
    pub ScrollbarY: bool,
    pub ScrollbarXStabilizeEnabled: bool,
    pub ScrollbarXStabilizeToggledHistory: ImU8,
    pub ViewportOwned: bool,
    pub Active: bool,
    pub WasActive: bool,
    pub WriteAccessed: bool,
    pub Collapsed: bool,
    pub WantCollapseToggle: bool,
    pub SkipItems: bool,
    pub SkipRefresh: bool,
    pub Appearing: bool,
    pub Hidden: bool,
    pub IsFallbackWindow: bool,
    pub IsExplicitChild: bool,
    pub HasCloseButton: bool,
    pub ResizeBorderHovered: ::std::os::raw::c_schar,
    pub ResizeBorderHeld: ::std::os::raw::c_schar,
    pub BeginCount: ::std::os::raw::c_short,
    pub BeginCountPreviousFrame: ::std::os::raw::c_short,
    pub BeginOrderWithinParent: ::std::os::raw::c_short,
    pub BeginOrderWithinContext: ::std::os::raw::c_short,
    pub FocusOrder: ::std::os::raw::c_short,
    pub AutoPosLastDirection: ImGuiDir,
    pub AutoFitFramesX: ImS8,
    pub AutoFitFramesY: ImS8,
    pub AutoFitOnlyGrows: bool,
    pub HiddenFramesCanSkipItems: ImS8,
    pub HiddenFramesCannotSkipItems: ImS8,
    pub HiddenFramesForRenderOnly: ImS8,
    pub DisableInputsFrames: ImS8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 5usize]>,
    pub __bindgen_padding_0: u32,
    pub SetWindowPosVal: ImVec2_c,
    pub SetWindowPosPivot: ImVec2_c,
    pub IDStack: ImVector_ImGuiID,
    pub DC: ImGuiWindowTempData,
    pub OuterRectClipped: ImRect_c,
    pub InnerRect: ImRect_c,
    pub InnerClipRect: ImRect_c,
    pub WorkRect: ImRect_c,
    pub ParentWorkRect: ImRect_c,
    pub ClipRect: ImRect_c,
    pub ContentRegionRect: ImRect_c,
    pub HitTestHoleSize: ImVec2ih,
    pub HitTestHoleOffset: ImVec2ih,
    pub LastFrameActive: ::std::os::raw::c_int,
    pub LastFrameJustFocused: ::std::os::raw::c_int,
    pub LastTimeActive: f32,
    pub StateStorage: ImGuiStorage,
    pub ColumnsStorage: ImVector_ImGuiOldColumns,
    pub FontWindowScale: f32,
    pub FontWindowScaleParents: f32,
    pub FontRefSize: f32,
    pub SettingsOffset: ::std::os::raw::c_int,
    pub DrawList: *mut ImDrawList,
    pub DrawListInst: ImDrawList,
    pub ParentWindow: *mut ImGuiWindow,
    pub ParentWindowInBeginStack: *mut ImGuiWindow,
    pub RootWindow: *mut ImGuiWindow,
    pub RootWindowPopupTree: *mut ImGuiWindow,
    pub RootWindowDockTree: *mut ImGuiWindow,
    pub RootWindowForTitleBarHighlight: *mut ImGuiWindow,
    pub RootWindowForNav: *mut ImGuiWindow,
    pub ParentWindowForFocusRoute: *mut ImGuiWindow,
    pub NavLastChildNavWindow: *mut ImGuiWindow,
    pub NavLastIds: [ImGuiID; 2usize],
    pub NavRectRel: [ImRect_c; 2usize],
    pub NavPreferredScoringPosRel: [ImVec2_c; 2usize],
    pub NavRootFocusScopeId: ImGuiID,
    pub MemoryDrawListIdxCapacity: ::std::os::raw::c_int,
    pub MemoryDrawListVtxCapacity: ::std::os::raw::c_int,
    pub MemoryCompacted: bool,
    pub _bitfield_align_2: [u8; 0],
    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub DockOrder: ::std::os::raw::c_short,
    pub DockStyle: ImGuiWindowDockStyle,
    pub DockNode: *mut ImGuiDockNode,
    pub DockNodeAsHost: *mut ImGuiDockNode,
    pub DockId: ImGuiID,
}
impl Default for ImGuiWindow {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl ImGuiWindow {
    #[inline]
    pub fn BgClickFlags(&self) -> ImGuiWindowBgClickFlags {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_BgClickFlags(&mut self, val: ImGuiWindowBgClickFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn BgClickFlags_raw(this: *const Self) -> ImGuiWindowBgClickFlags {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_BgClickFlags_raw(this: *mut Self, val: ImGuiWindowBgClickFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SetWindowPosAllowFlags(&self) -> ImGuiCond {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_SetWindowPosAllowFlags(&mut self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SetWindowPosAllowFlags_raw(this: *const Self) -> ImGuiCond {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_SetWindowPosAllowFlags_raw(this: *mut Self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SetWindowSizeAllowFlags(&self) -> ImGuiCond {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_SetWindowSizeAllowFlags(&mut self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SetWindowSizeAllowFlags_raw(this: *const Self) -> ImGuiCond {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_SetWindowSizeAllowFlags_raw(this: *mut Self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SetWindowCollapsedAllowFlags(&self) -> ImGuiCond {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_SetWindowCollapsedAllowFlags(&mut self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(24usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SetWindowCollapsedAllowFlags_raw(this: *const Self) -> ImGuiCond {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                24usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_SetWindowCollapsedAllowFlags_raw(this: *mut Self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                24usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SetWindowDockAllowFlags(&self) -> ImGuiCond {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_SetWindowDockAllowFlags(&mut self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(32usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SetWindowDockAllowFlags_raw(this: *const Self) -> ImGuiCond {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                32usize,
                8u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_SetWindowDockAllowFlags_raw(this: *mut Self, val: ImGuiCond) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                32usize,
                8u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        BgClickFlags: ImGuiWindowBgClickFlags,
        SetWindowPosAllowFlags: ImGuiCond,
        SetWindowSizeAllowFlags: ImGuiCond,
        SetWindowCollapsedAllowFlags: ImGuiCond,
        SetWindowDockAllowFlags: ImGuiCond,
    ) -> __BindgenBitfieldUnit<[u8; 5usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 5usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let BgClickFlags: u32 = unsafe { ::std::mem::transmute(BgClickFlags) };
            BgClickFlags as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let SetWindowPosAllowFlags: u32 =
                unsafe { ::std::mem::transmute(SetWindowPosAllowFlags) };
            SetWindowPosAllowFlags as u64
        });
        __bindgen_bitfield_unit.set(16usize, 8u8, {
            let SetWindowSizeAllowFlags: u32 =
                unsafe { ::std::mem::transmute(SetWindowSizeAllowFlags) };
            SetWindowSizeAllowFlags as u64
        });
        __bindgen_bitfield_unit.set(24usize, 8u8, {
            let SetWindowCollapsedAllowFlags: u32 =
                unsafe { ::std::mem::transmute(SetWindowCollapsedAllowFlags) };
            SetWindowCollapsedAllowFlags as u64
        });
        __bindgen_bitfield_unit.set(32usize, 8u8, {
            let SetWindowDockAllowFlags: u32 =
                unsafe { ::std::mem::transmute(SetWindowDockAllowFlags) };
            SetWindowDockAllowFlags as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn DockIsActive(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_DockIsActive(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn DockIsActive_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_2),
                0usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_DockIsActive_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
                0usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn DockNodeIsVisible(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_DockNodeIsVisible(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn DockNodeIsVisible_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_2),
                1usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_DockNodeIsVisible_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
                1usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn DockTabIsVisible(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_DockTabIsVisible(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn DockTabIsVisible_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_2),
                2usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_DockTabIsVisible_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
                2usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn DockTabWantClose(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_DockTabWantClose(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn DockTabWantClose_raw(this: *const Self) -> bool {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_2),
                3usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_DockTabWantClose_raw(this: *mut Self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
                3usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_2(
        DockIsActive: bool,
        DockNodeIsVisible: bool,
        DockTabIsVisible: bool,
        DockTabWantClose: bool,
    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let DockIsActive: u8 = unsafe { ::std::mem::transmute(DockIsActive) };
            DockIsActive as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let DockNodeIsVisible: u8 = unsafe { ::std::mem::transmute(DockNodeIsVisible) };
            DockNodeIsVisible as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let DockTabIsVisible: u8 = unsafe { ::std::mem::transmute(DockTabIsVisible) };
            DockTabIsVisible as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let DockTabWantClose: u8 = unsafe { ::std::mem::transmute(DockTabWantClose) };
            DockTabWantClose as u64
        });
        __bindgen_bitfield_unit
    }
}
pub const ImGuiTabBarFlags_DockNode: ImGuiTabBarFlagsPrivate_ = 1048576;
pub const ImGuiTabBarFlags_IsFocused: ImGuiTabBarFlagsPrivate_ = 2097152;
pub const ImGuiTabBarFlags_SaveSettings: ImGuiTabBarFlagsPrivate_ = 4194304;
pub type ImGuiTabBarFlagsPrivate_ = ::std::os::raw::c_int;
pub const ImGuiTabItemFlags_SectionMask_: ImGuiTabItemFlagsPrivate_ = 192;
pub const ImGuiTabItemFlags_NoCloseButton: ImGuiTabItemFlagsPrivate_ = 1048576;
pub const ImGuiTabItemFlags_Button: ImGuiTabItemFlagsPrivate_ = 2097152;
pub const ImGuiTabItemFlags_Invisible: ImGuiTabItemFlagsPrivate_ = 4194304;
pub const ImGuiTabItemFlags_Unsorted: ImGuiTabItemFlagsPrivate_ = 8388608;
pub type ImGuiTabItemFlagsPrivate_ = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiTabItem {
    pub ID: ImGuiID,
    pub Flags: ImGuiTabItemFlags,
    pub Window: *mut ImGuiWindow,
    pub LastFrameVisible: ::std::os::raw::c_int,
    pub LastFrameSelected: ::std::os::raw::c_int,
    pub Offset: f32,
    pub Width: f32,
    pub ContentWidth: f32,
    pub RequestedWidth: f32,
    pub NameOffset: ImS32,
    pub BeginOrder: ImS16,
    pub IndexDuringLayout: ImS16,
    pub WantClose: bool,
}
impl Default for ImGuiTabItem {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTabItem {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTabItem,
}
impl Default for ImVector_ImGuiTabItem {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiTabBar {
    pub Window: *mut ImGuiWindow,
    pub Tabs: ImVector_ImGuiTabItem,
    pub Flags: ImGuiTabBarFlags,
    pub ID: ImGuiID,
    pub SelectedTabId: ImGuiID,
    pub NextSelectedTabId: ImGuiID,
    pub NextScrollToTabId: ImGuiID,
    pub VisibleTabId: ImGuiID,
    pub CurrFrameVisible: ::std::os::raw::c_int,
    pub PrevFrameVisible: ::std::os::raw::c_int,
    pub BarRect: ImRect_c,
    pub BarRectPrevWidth: f32,
    pub CurrTabsContentsHeight: f32,
    pub PrevTabsContentsHeight: f32,
    pub WidthAllTabs: f32,
    pub WidthAllTabsIdeal: f32,
    pub ScrollingAnim: f32,
    pub ScrollingTarget: f32,
    pub ScrollingTargetDistToVisibility: f32,
    pub ScrollingSpeed: f32,
    pub ScrollingRectMinX: f32,
    pub ScrollingRectMaxX: f32,
    pub SeparatorMinX: f32,
    pub SeparatorMaxX: f32,
    pub ReorderRequestTabId: ImGuiID,
    pub ReorderRequestOffset: ImS16,
    pub BeginCount: ImS8,
    pub WantLayout: bool,
    pub VisibleTabWasSubmitted: bool,
    pub TabsAddedNew: bool,
    pub ScrollButtonEnabled: bool,
    pub TabsActiveCount: ImS16,
    pub LastTabItemIdx: ImS16,
    pub ItemSpacingY: f32,
    pub FramePadding: ImVec2_c,
    pub BackupCursorPos: ImVec2_c,
    pub TabsNames: ImGuiTextBuffer,
}
impl Default for ImGuiTabBar {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiTableColumn {
    pub Flags: ImGuiTableColumnFlags,
    pub WidthGiven: f32,
    pub MinX: f32,
    pub MaxX: f32,
    pub WidthRequest: f32,
    pub WidthAuto: f32,
    pub WidthMax: f32,
    pub StretchWeight: f32,
    pub InitStretchWeightOrWidth: f32,
    pub ClipRect: ImRect_c,
    pub UserID: ImGuiID,
    pub WorkMinX: f32,
    pub WorkMaxX: f32,
    pub ItemWidth: f32,
    pub ContentMaxXFrozen: f32,
    pub ContentMaxXUnfrozen: f32,
    pub ContentMaxXHeadersUsed: f32,
    pub ContentMaxXHeadersIdeal: f32,
    pub NameOffset: ImS16,
    pub DisplayOrder: ImGuiTableColumnIdx,
    pub IndexWithinEnabledSet: ImGuiTableColumnIdx,
    pub PrevEnabledColumn: ImGuiTableColumnIdx,
    pub NextEnabledColumn: ImGuiTableColumnIdx,
    pub SortOrder: ImGuiTableColumnIdx,
    pub DrawChannelCurrent: ImGuiTableDrawChannelIdx,
    pub DrawChannelFrozen: ImGuiTableDrawChannelIdx,
    pub DrawChannelUnfrozen: ImGuiTableDrawChannelIdx,
    pub IsEnabled: bool,
    pub IsUserEnabled: bool,
    pub IsUserEnabledNextFrame: bool,
    pub IsVisibleX: bool,
    pub IsVisibleY: bool,
    pub IsRequestOutput: bool,
    pub IsSkipItems: bool,
    pub IsPreserveWidthAuto: bool,
    pub NavLayerCurrent: ImS8,
    pub AutoFitQueue: ImU8,
    pub CannotSkipItemsQueue: ImU8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub SortDirectionsAvailList: ImU8,
}
impl ImGuiTableColumn {
    #[inline]
    pub fn SortDirection(&self) -> ImU8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_SortDirection(&mut self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SortDirection_raw(this: *const Self) -> ImU8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_SortDirection_raw(this: *mut Self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SortDirectionsAvailCount(&self) -> ImU8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_SortDirectionsAvailCount(&mut self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SortDirectionsAvailCount_raw(this: *const Self) -> ImU8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                2usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_SortDirectionsAvailCount_raw(this: *mut Self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                2usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn SortDirectionsAvailMask(&self) -> ImU8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_SortDirectionsAvailMask(&mut self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SortDirectionsAvailMask_raw(this: *const Self) -> ImU8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_SortDirectionsAvailMask_raw(this: *mut Self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        SortDirection: ImU8,
        SortDirectionsAvailCount: ImU8,
        SortDirectionsAvailMask: ImU8,
    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let SortDirection: u8 = unsafe { ::std::mem::transmute(SortDirection) };
            SortDirection as u64
        });
        __bindgen_bitfield_unit.set(2usize, 2u8, {
            let SortDirectionsAvailCount: u8 =
                unsafe { ::std::mem::transmute(SortDirectionsAvailCount) };
            SortDirectionsAvailCount as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let SortDirectionsAvailMask: u8 =
                unsafe { ::std::mem::transmute(SortDirectionsAvailMask) };
            SortDirectionsAvailMask as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTableCellData {
    pub BgColor: ImU32,
    pub Column: ImGuiTableColumnIdx,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImGuiTableHeaderData {
    pub Index: ImGuiTableColumnIdx,
    pub TextColor: ImU32,
    pub BgColor0: ImU32,
    pub BgColor1: ImU32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiTableInstanceData {
    pub TableInstanceID: ImGuiID,
    pub LastOuterHeight: f32,
    pub LastTopHeadersRowHeight: f32,
    pub LastFrozenHeight: f32,
    pub HoveredRowLast: ::std::os::raw::c_int,
    pub HoveredRowNext: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImSpan_ImGuiTableColumn {
    pub Data: *mut ImGuiTableColumn,
    pub DataEnd: *mut ImGuiTableColumn,
}
impl Default for ImSpan_ImGuiTableColumn {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImSpan_ImGuiTableColumnIdx {
    pub Data: *mut ImGuiTableColumnIdx,
    pub DataEnd: *mut ImGuiTableColumnIdx,
}
impl Default for ImSpan_ImGuiTableColumnIdx {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImSpan_ImGuiTableCellData {
    pub Data: *mut ImGuiTableCellData,
    pub DataEnd: *mut ImGuiTableCellData,
}
impl Default for ImSpan_ImGuiTableCellData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTableInstanceData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTableInstanceData,
}
impl Default for ImVector_ImGuiTableInstanceData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTableColumnSortSpecs {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTableColumnSortSpecs,
}
impl Default for ImVector_ImGuiTableColumnSortSpecs {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiTable {
    pub ID: ImGuiID,
    pub Flags: ImGuiTableFlags,
    pub RawData: *mut ::std::os::raw::c_void,
    pub TempData: *mut ImGuiTableTempData,
    pub Columns: ImSpan_ImGuiTableColumn,
    pub DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx,
    pub RowCellData: ImSpan_ImGuiTableCellData,
    pub EnabledMaskByDisplayOrder: ImBitArrayPtr,
    pub EnabledMaskByIndex: ImBitArrayPtr,
    pub VisibleMaskByIndex: ImBitArrayPtr,
    pub SettingsLoadedFlags: ImGuiTableFlags,
    pub SettingsOffset: ::std::os::raw::c_int,
    pub LastFrameActive: ::std::os::raw::c_int,
    pub ColumnsCount: ::std::os::raw::c_int,
    pub CurrentRow: ::std::os::raw::c_int,
    pub CurrentColumn: ::std::os::raw::c_int,
    pub InstanceCurrent: ImS16,
    pub InstanceInteracted: ImS16,
    pub RowPosY1: f32,
    pub RowPosY2: f32,
    pub RowMinHeight: f32,
    pub RowCellPaddingY: f32,
    pub RowTextBaseline: f32,
    pub RowIndentOffsetX: f32,
    pub _bitfield_align_1: [u16; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub RowBgColorCounter: ::std::os::raw::c_int,
    pub RowBgColor: [ImU32; 2usize],
    pub BorderColorStrong: ImU32,
    pub BorderColorLight: ImU32,
    pub BorderX1: f32,
    pub BorderX2: f32,
    pub HostIndentX: f32,
    pub MinColumnWidth: f32,
    pub OuterPaddingX: f32,
    pub CellPaddingX: f32,
    pub CellSpacingX1: f32,
    pub CellSpacingX2: f32,
    pub InnerWidth: f32,
    pub ColumnsGivenWidth: f32,
    pub ColumnsAutoFitWidth: f32,
    pub ColumnsStretchSumWeights: f32,
    pub ResizedColumnNextWidth: f32,
    pub ResizeLockMinContentsX2: f32,
    pub RefScale: f32,
    pub AngledHeadersHeight: f32,
    pub AngledHeadersSlope: f32,
    pub OuterRect: ImRect_c,
    pub InnerRect: ImRect_c,
    pub WorkRect: ImRect_c,
    pub InnerClipRect: ImRect_c,
    pub BgClipRect: ImRect_c,
    pub Bg0ClipRectForDrawCmd: ImRect_c,
    pub Bg2ClipRectForDrawCmd: ImRect_c,
    pub HostClipRect: ImRect_c,
    pub HostBackupInnerClipRect: ImRect_c,
    pub OuterWindow: *mut ImGuiWindow,
    pub InnerWindow: *mut ImGuiWindow,
    pub ColumnsNames: ImGuiTextBuffer,
    pub DrawSplitter: *mut ImDrawListSplitter,
    pub InstanceDataFirst: ImGuiTableInstanceData,
    pub InstanceDataExtra: ImVector_ImGuiTableInstanceData,
    pub SortSpecsSingle: ImGuiTableColumnSortSpecs,
    pub SortSpecsMulti: ImVector_ImGuiTableColumnSortSpecs,
    pub SortSpecs: ImGuiTableSortSpecs,
    pub SortSpecsCount: ImGuiTableColumnIdx,
    pub ColumnsEnabledCount: ImGuiTableColumnIdx,
    pub ColumnsEnabledFixedCount: ImGuiTableColumnIdx,
    pub DeclColumnsCount: ImGuiTableColumnIdx,
    pub AngledHeadersCount: ImGuiTableColumnIdx,
    pub HoveredColumnBody: ImGuiTableColumnIdx,
    pub HoveredColumnBorder: ImGuiTableColumnIdx,
    pub HighlightColumnHeader: ImGuiTableColumnIdx,
    pub AutoFitSingleColumn: ImGuiTableColumnIdx,
    pub ResizedColumn: ImGuiTableColumnIdx,
    pub LastResizedColumn: ImGuiTableColumnIdx,
    pub HeldHeaderColumn: ImGuiTableColumnIdx,
    pub LastHeldHeaderColumn: ImGuiTableColumnIdx,
    pub ReorderColumn: ImGuiTableColumnIdx,
    pub ReorderColumnDstOrder: ImGuiTableColumnIdx,
    pub LeftMostEnabledColumn: ImGuiTableColumnIdx,
    pub RightMostEnabledColumn: ImGuiTableColumnIdx,
    pub LeftMostStretchedColumn: ImGuiTableColumnIdx,
    pub RightMostStretchedColumn: ImGuiTableColumnIdx,
    pub ContextPopupColumn: ImGuiTableColumnIdx,
    pub FreezeRowsRequest: ImGuiTableColumnIdx,
    pub FreezeRowsCount: ImGuiTableColumnIdx,
    pub FreezeColumnsRequest: ImGuiTableColumnIdx,
    pub FreezeColumnsCount: ImGuiTableColumnIdx,
    pub RowCellDataCurrent: ImGuiTableColumnIdx,
    pub DummyDrawChannel: ImGuiTableDrawChannelIdx,
    pub Bg2DrawChannelCurrent: ImGuiTableDrawChannelIdx,
    pub Bg2DrawChannelUnfrozen: ImGuiTableDrawChannelIdx,
    pub NavLayer: ImS8,
    pub IsLayoutLocked: bool,
    pub IsInsideRow: bool,
    pub IsInitializing: bool,
    pub IsSortSpecsDirty: bool,
    pub IsUsingHeaders: bool,
    pub IsContextPopupOpen: bool,
    pub DisableDefaultContextMenu: bool,
    pub IsSettingsRequestLoad: bool,
    pub IsSettingsDirty: bool,
    pub IsDefaultDisplayOrder: bool,
    pub IsResetAllRequest: bool,
    pub IsResetDisplayOrderRequest: bool,
    pub IsUnfrozenRows: bool,
    pub IsDefaultSizingPolicy: bool,
    pub IsActiveIdAliveBeforeTable: bool,
    pub IsActiveIdInTable: bool,
    pub HasScrollbarYCurr: bool,
    pub HasScrollbarYPrev: bool,
    pub MemoryCompacted: bool,
    pub HostSkipItems: bool,
}
impl Default for ImGuiTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl ImGuiTable {
    #[inline]
    pub fn RowFlags(&self) -> ImGuiTableRowFlags {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_RowFlags(&mut self, val: ImGuiTableRowFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn RowFlags_raw(this: *const Self) -> ImGuiTableRowFlags {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                16u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_RowFlags_raw(this: *mut Self, val: ImGuiTableRowFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                16u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn LastRowFlags(&self) -> ImGuiTableRowFlags {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_LastRowFlags(&mut self, val: ImGuiTableRowFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn LastRowFlags_raw(this: *const Self) -> ImGuiTableRowFlags {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                16u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_LastRowFlags_raw(this: *mut Self, val: ImGuiTableRowFlags) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                16u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        RowFlags: ImGuiTableRowFlags,
        LastRowFlags: ImGuiTableRowFlags,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let RowFlags: u32 = unsafe { ::std::mem::transmute(RowFlags) };
            RowFlags as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let LastRowFlags: u32 = unsafe { ::std::mem::transmute(LastRowFlags) };
            LastRowFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImGuiTableHeaderData {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImGuiTableHeaderData,
}
impl Default for ImVector_ImGuiTableHeaderData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImGuiTableTempData {
    pub WindowID: ImGuiID,
    pub TableIndex: ::std::os::raw::c_int,
    pub LastTimeActive: f32,
    pub AngledHeadersExtraWidth: f32,
    pub AngledHeadersRequests: ImVector_ImGuiTableHeaderData,
    pub UserOuterSize: ImVec2_c,
    pub DrawSplitter: ImDrawListSplitter,
    pub HostBackupWorkRect: ImRect_c,
    pub HostBackupParentWorkRect: ImRect_c,
    pub HostBackupPrevLineSize: ImVec2_c,
    pub HostBackupCurrLineSize: ImVec2_c,
    pub HostBackupCursorMaxPos: ImVec2_c,
    pub HostBackupColumnsOffset: ImVec1,
    pub HostBackupItemWidth: f32,
    pub HostBackupItemWidthStackSize: ::std::os::raw::c_int,
}
impl Default for ImGuiTableTempData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiTableColumnSettings {
    pub WidthOrWeight: f32,
    pub UserID: ImGuiID,
    pub Index: ImGuiTableColumnIdx,
    pub DisplayOrder: ImGuiTableColumnIdx,
    pub SortOrder: ImGuiTableColumnIdx,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub __bindgen_padding_0: u8,
}
impl ImGuiTableColumnSettings {
    #[inline]
    pub fn SortDirection(&self) -> ImU8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_SortDirection(&mut self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn SortDirection_raw(this: *const Self) -> ImU8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_SortDirection_raw(this: *mut Self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsEnabled(&self) -> ImS8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_IsEnabled(&mut self, val: ImS8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsEnabled_raw(this: *const Self) -> ImS8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                2usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_IsEnabled_raw(this: *mut Self, val: ImS8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                2usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsStretch(&self) -> ImU8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_IsStretch(&mut self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsStretch_raw(this: *const Self) -> ImU8 {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                1u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_IsStretch_raw(this: *mut Self, val: ImU8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        SortDirection: ImU8,
        IsEnabled: ImS8,
        IsStretch: ImU8,
    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let SortDirection: u8 = unsafe { ::std::mem::transmute(SortDirection) };
            SortDirection as u64
        });
        __bindgen_bitfield_unit.set(2usize, 2u8, {
            let IsEnabled: u8 = unsafe { ::std::mem::transmute(IsEnabled) };
            IsEnabled as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let IsStretch: u8 = unsafe { ::std::mem::transmute(IsStretch) };
            IsStretch as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct ImGuiTableSettings {
    pub ID: ImGuiID,
    pub SaveFlags: ImGuiTableFlags,
    pub RefScale: f32,
    pub ColumnsCount: ImGuiTableColumnIdx,
    pub ColumnsCountMax: ImGuiTableColumnIdx,
    pub WantApply: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImFontLoader {
    pub Name: *const ::std::os::raw::c_char,
    pub LoaderInit: ::std::option::Option<unsafe extern "C" fn(atlas: *mut ImFontAtlas) -> bool>,
    pub LoaderShutdown: ::std::option::Option<unsafe extern "C" fn(atlas: *mut ImFontAtlas)>,
    pub FontSrcInit: ::std::option::Option<
        unsafe extern "C" fn(atlas: *mut ImFontAtlas, src: *mut ImFontConfig) -> bool,
    >,
    pub FontSrcDestroy: ::std::option::Option<
        unsafe extern "C" fn(atlas: *mut ImFontAtlas, src: *mut ImFontConfig),
    >,
    pub FontSrcContainsGlyph: ::std::option::Option<
        unsafe extern "C" fn(
            atlas: *mut ImFontAtlas,
            src: *mut ImFontConfig,
            codepoint: ImWchar,
        ) -> bool,
    >,
    pub FontBakedInit: ::std::option::Option<
        unsafe extern "C" fn(
            atlas: *mut ImFontAtlas,
            src: *mut ImFontConfig,
            baked: *mut ImFontBaked,
            loader_data_for_baked_src: *mut ::std::os::raw::c_void,
        ) -> bool,
    >,
    pub FontBakedDestroy: ::std::option::Option<
        unsafe extern "C" fn(
            atlas: *mut ImFontAtlas,
            src: *mut ImFontConfig,
            baked: *mut ImFontBaked,
            loader_data_for_baked_src: *mut ::std::os::raw::c_void,
        ),
    >,
    pub FontBakedLoadGlyph: ::std::option::Option<
        unsafe extern "C" fn(
            atlas: *mut ImFontAtlas,
            src: *mut ImFontConfig,
            baked: *mut ImFontBaked,
            loader_data_for_baked_src: *mut ::std::os::raw::c_void,
            codepoint: ImWchar,
            out_glyph: *mut ImFontGlyph,
            out_advance_x: *mut f32,
        ) -> bool,
    >,
    pub FontBakedSrcLoaderDataSize: usize,
}
impl Default for ImFontLoader {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImFontAtlasRectEntry {
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl ImFontAtlasRectEntry {
    #[inline]
    pub fn TargetIndex(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
    }
    #[inline]
    pub fn set_TargetIndex(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 20u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn TargetIndex_raw(this: *const Self) -> ::std::os::raw::c_int {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                20u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_TargetIndex_raw(this: *mut Self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                20u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn Generation(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 10u8) as u32) }
    }
    #[inline]
    pub fn set_Generation(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 10u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn Generation_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                20usize,
                10u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_Generation_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                20usize,
                10u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn IsUsed(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IsUsed(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(30usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn IsUsed_raw(this: *const Self) -> ::std::os::raw::c_uint {
        unsafe {
            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::std::ptr::addr_of!((*this)._bitfield_1),
                30usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_IsUsed_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
                30usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        TargetIndex: ::std::os::raw::c_int,
        Generation: ::std::os::raw::c_uint,
        IsUsed: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 20u8, {
            let TargetIndex: u32 = unsafe { ::std::mem::transmute(TargetIndex) };
            TargetIndex as u64
        });
        __bindgen_bitfield_unit.set(20usize, 10u8, {
            let Generation: u32 = unsafe { ::std::mem::transmute(Generation) };
            Generation as u64
        });
        __bindgen_bitfield_unit.set(30usize, 1u8, {
            let IsUsed: u32 = unsafe { ::std::mem::transmute(IsUsed) };
            IsUsed as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImFontAtlasPostProcessData {
    pub FontAtlas: *mut ImFontAtlas,
    pub Font: *mut ImFont,
    pub FontSrc: *mut ImFontConfig,
    pub FontBaked: *mut ImFontBaked,
    pub Glyph: *mut ImFontGlyph,
    pub Pixels: *mut ::std::os::raw::c_void,
    pub Format: ImTextureFormat,
    pub Pitch: ::std::os::raw::c_int,
    pub Width: ::std::os::raw::c_int,
    pub Height: ::std::os::raw::c_int,
}
impl Default for ImFontAtlasPostProcessData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type stbrp_node_im = stbrp_node;
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct stbrp_context_opaque {
    pub data: [::std::os::raw::c_char; 80usize],
}
impl Default for stbrp_context_opaque {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_stbrp_node_im {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut stbrp_node_im,
}
impl Default for ImVector_stbrp_node_im {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontAtlasRectEntry {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut ImFontAtlasRectEntry,
}
impl Default for ImVector_ImFontAtlasRectEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImVector_ImFontBakedPtr {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Data: *mut *mut ImFontBaked,
}
impl Default for ImVector_ImFontBakedPtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImStableVector_ImFontBaked__32 {
    pub Size: ::std::os::raw::c_int,
    pub Capacity: ::std::os::raw::c_int,
    pub Blocks: ImVector_ImFontBakedPtr,
}
impl Default for ImStableVector_ImFontBaked__32 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct ImFontAtlasBuilder {
    pub PackContext: stbrp_context_opaque,
    pub PackNodes: ImVector_stbrp_node_im,
    pub Rects: ImVector_ImTextureRect,
    pub RectsIndex: ImVector_ImFontAtlasRectEntry,
    pub TempBuffer: ImVector_unsigned_char,
    pub RectsIndexFreeListStart: ::std::os::raw::c_int,
    pub RectsPackedCount: ::std::os::raw::c_int,
    pub RectsPackedSurface: ::std::os::raw::c_int,
    pub RectsDiscardedCount: ::std::os::raw::c_int,
    pub RectsDiscardedSurface: ::std::os::raw::c_int,
    pub FrameCount: ::std::os::raw::c_int,
    pub MaxRectSize: ImVec2i_c,
    pub MaxRectBounds: ImVec2i_c,
    pub LockDisableResize: bool,
    pub PreloadedAllGlyphsRanges: bool,
    pub BakedPool: ImStableVector_ImFontBaked__32,
    pub BakedMap: ImGuiStorage,
    pub BakedDiscardedCount: ::std::os::raw::c_int,
    pub PackIdMouseCursors: ImFontAtlasRectId,
    pub PackIdLinesTexData: ImFontAtlasRectId,
}
impl Default for ImFontAtlasBuilder {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ImTextureRef = ImTextureRef_c;
pub type ImVec2 = ImVec2_c;
pub type ImVec2i = ImVec2i_c;
pub type ImVec4 = ImVec4_c;
pub type ImColor = ImColor_c;
pub type ImRect = ImRect_c;
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2_ImVec2_Nil() -> *mut ImVec2;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2_destroy(self_: *mut ImVec2);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2_ImVec2_Float(_x: f32, _y: f32) -> *mut ImVec2;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec4_ImVec4_Nil() -> *mut ImVec4;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec4_destroy(self_: *mut ImVec4);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec4_ImVec4_Float(_x: f32, _y: f32, _z: f32, _w: f32) -> *mut ImVec4;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureRef_ImTextureRef_Nil() -> *mut ImTextureRef;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureRef_destroy(self_: *mut ImTextureRef);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureRef_ImTextureRef_TextureID(tex_id: ImTextureID) -> *mut ImTextureRef;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureRef_GetTexID(self_: *mut ImTextureRef) -> ImTextureID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCreateContext(shared_font_atlas: *mut ImFontAtlas) -> *mut ImGuiContext;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDestroyContext(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentContext() -> *mut ImGuiContext;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCurrentContext(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetIO_Nil() -> *mut ImGuiIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetPlatformIO_Nil() -> *mut ImGuiPlatformIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetStyle() -> *mut ImGuiStyle;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNewFrame();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndFrame();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRender();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetDrawData() -> *mut ImDrawData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowDemoWindow(p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowMetricsWindow(p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowDebugLogWindow(p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowIDStackToolWindow(p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowAboutWindow(p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowStyleEditor(ref_: *mut ImGuiStyle);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowStyleSelector(label: *const ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowFontSelector(label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowUserGuide();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetVersion() -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStyleColorsDark(dst: *mut ImGuiStyle);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStyleColorsLight(dst: *mut ImGuiStyle);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStyleColorsClassic(dst: *mut ImGuiStyle);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBegin(
        name: *const ::std::os::raw::c_char,
        p_open: *mut bool,
        flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEnd();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginChild_Str(
        str_id: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        child_flags: ImGuiChildFlags,
        window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginChild_ID(
        id: ImGuiID,
        size: ImVec2_c,
        child_flags: ImGuiChildFlags,
        window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndChild();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowAppearing() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowCollapsed() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowFocused(flags: ImGuiFocusedFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowHovered(flags: ImGuiHoveredFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowDrawList() -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowDpiScale() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowPos() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowSize() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowWidth() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowHeight() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowViewport() -> *mut ImGuiViewport;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowPos(pos: ImVec2_c, cond: ImGuiCond, pivot: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowSize(size: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowSizeConstraints(
        size_min: ImVec2_c,
        size_max: ImVec2_c,
        custom_callback: ImGuiSizeCallback,
        custom_callback_data: *mut ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowContentSize(size: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowCollapsed(collapsed: bool, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowFocus();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowScroll(scroll: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowBgAlpha(alpha: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowViewport(viewport_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowPos_Vec2(pos: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowSize_Vec2(size: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowCollapsed_Bool(collapsed: bool, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowFocus_Nil();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowPos_Str(name: *const ::std::os::raw::c_char, pos: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowSize_Str(
        name: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        cond: ImGuiCond,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowCollapsed_Str(
        name: *const ::std::os::raw::c_char,
        collapsed: bool,
        cond: ImGuiCond,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowFocus_Str(name: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetScrollX() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetScrollY() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollX_Float(scroll_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollY_Float(scroll_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetScrollMaxX() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetScrollMaxY() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollHereX(center_x_ratio: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollHereY(center_y_ratio: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollFromPosX_Float(local_x: f32, center_x_ratio: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollFromPosY_Float(local_y: f32, center_y_ratio: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushFont(font: *mut ImFont, font_size_base_unscaled: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopFont();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFont() -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFontSize() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFontBaked() -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleColor_U32(idx: ImGuiCol, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleColor_Vec4(idx: ImGuiCol, col: ImVec4_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopStyleColor(count: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleVar_Float(idx: ImGuiStyleVar, val: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopStyleVar(count: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopItemFlag();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushItemWidth(item_width: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopItemWidth();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemWidth(item_width: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcItemWidth() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushTextWrapPos(wrap_local_pos_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopTextWrapPos();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFontTexUvWhitePixel() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColorU32_Col(idx: ImGuiCol, alpha_mul: f32) -> ImU32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColorU32_Vec4(col: ImVec4_c) -> ImU32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCursorScreenPos() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCursorScreenPos(pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetContentRegionAvail() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCursorPos() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCursorPosX() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCursorPosY() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCursorPos(local_pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCursorPosX(local_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCursorPosY(local_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCursorStartPos() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSeparator();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSameLine(offset_from_start_x: f32, spacing: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNewLine();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSpacing();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDummy(size: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIndent(indent_w: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUnindent(indent_w: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginGroup();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndGroup();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igAlignTextToFramePadding();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTextLineHeight() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTextLineHeightWithSpacing() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFrameHeight() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFrameHeightWithSpacing() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushID_Str(str_id: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushID_StrStr(
        str_id_begin: *const ::std::os::raw::c_char,
        str_id_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushID_Ptr(ptr_id: *const ::std::os::raw::c_void);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushID_Int(int_id: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopID();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetID_Str(str_id: *const ::std::os::raw::c_char) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetID_StrStr(
        str_id_begin: *const ::std::os::raw::c_char,
        str_id_end: *const ::std::os::raw::c_char,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetID_Ptr(ptr_id: *const ::std::os::raw::c_void) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetID_Int(int_id: ::std::os::raw::c_int) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextUnformatted(
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igText(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextColored(col: ImVec4_c, fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextColoredV(col: ImVec4_c, fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextDisabled(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextDisabledV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextWrapped(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextWrappedV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLabelText(
        label: *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        ...
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLabelTextV(
        label: *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBulletText(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBulletTextV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSeparatorText(label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igButton(label: *const ::std::os::raw::c_char, size: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSmallButton(label: *const ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInvisibleButton(
        str_id: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        flags: ImGuiButtonFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igArrowButton(str_id: *const ::std::os::raw::c_char, dir: ImGuiDir) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCheckbox(label: *const ::std::os::raw::c_char, v: *mut bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCheckboxFlags_IntPtr(
        label: *const ::std::os::raw::c_char,
        flags: *mut ::std::os::raw::c_int,
        flags_value: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCheckboxFlags_UintPtr(
        label: *const ::std::os::raw::c_char,
        flags: *mut ::std::os::raw::c_uint,
        flags_value: ::std::os::raw::c_uint,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRadioButton_Bool(label: *const ::std::os::raw::c_char, active: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRadioButton_IntPtr(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_button: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igProgressBar(fraction: f32, size_arg: ImVec2_c, overlay: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBullet();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextLink(label: *const ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextLinkOpenURL(
        label: *const ::std::os::raw::c_char,
        url: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImage(tex_ref: ImTextureRef_c, image_size: ImVec2_c, uv0: ImVec2_c, uv1: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImageWithBg(
        tex_ref: ImTextureRef_c,
        image_size: ImVec2_c,
        uv0: ImVec2_c,
        uv1: ImVec2_c,
        bg_col: ImVec4_c,
        tint_col: ImVec4_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImageButton(
        str_id: *const ::std::os::raw::c_char,
        tex_ref: ImTextureRef_c,
        image_size: ImVec2_c,
        uv0: ImVec2_c,
        uv1: ImVec2_c,
        bg_col: ImVec4_c,
        tint_col: ImVec4_c,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginCombo(
        label: *const ::std::os::raw::c_char,
        preview_value: *const ::std::os::raw::c_char,
        flags: ImGuiComboFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndCombo();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCombo_Str_arr(
        label: *const ::std::os::raw::c_char,
        current_item: *mut ::std::os::raw::c_int,
        items: *const *const ::std::os::raw::c_char,
        items_count: ::std::os::raw::c_int,
        popup_max_height_in_items: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCombo_Str(
        label: *const ::std::os::raw::c_char,
        current_item: *mut ::std::os::raw::c_int,
        items_separated_by_zeros: *const ::std::os::raw::c_char,
        popup_max_height_in_items: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCombo_FnStrPtr(
        label: *const ::std::os::raw::c_char,
        current_item: *mut ::std::os::raw::c_int,
        getter: ::std::option::Option<
            unsafe extern "C" fn(
                user_data: *mut ::std::os::raw::c_void,
                idx: ::std::os::raw::c_int,
            ) -> *const ::std::os::raw::c_char,
        >,
        user_data: *mut ::std::os::raw::c_void,
        items_count: ::std::os::raw::c_int,
        popup_max_height_in_items: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragFloat(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_speed: f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragFloat2(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_speed: f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragFloat3(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_speed: f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragFloat4(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_speed: f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragFloatRange2(
        label: *const ::std::os::raw::c_char,
        v_current_min: *mut f32,
        v_current_max: *mut f32,
        v_speed: f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        format_max: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragInt(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_speed: f32,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragInt2(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_speed: f32,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragInt3(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_speed: f32,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragInt4(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_speed: f32,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragIntRange2(
        label: *const ::std::os::raw::c_char,
        v_current_min: *mut ::std::os::raw::c_int,
        v_current_max: *mut ::std::os::raw::c_int,
        v_speed: f32,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        format_max: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragScalar(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        v_speed: f32,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragScalarN(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        components: ::std::os::raw::c_int,
        v_speed: f32,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderFloat(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderFloat2(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderFloat3(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderFloat4(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderAngle(
        label: *const ::std::os::raw::c_char,
        v_rad: *mut f32,
        v_degrees_min: f32,
        v_degrees_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderInt(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderInt2(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderInt3(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderInt4(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderScalar(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderScalarN(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        components: ::std::os::raw::c_int,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igVSliderFloat(
        label: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        v: *mut f32,
        v_min: f32,
        v_max: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igVSliderInt(
        label: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        v: *mut ::std::os::raw::c_int,
        v_min: ::std::os::raw::c_int,
        v_max: ::std::os::raw::c_int,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igVSliderScalar(
        label: *const ::std::os::raw::c_char,
        size: ImVec2_c,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputText(
        label: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        flags: ImGuiInputTextFlags,
        callback: ImGuiInputTextCallback,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputTextMultiline(
        label: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        size: ImVec2_c,
        flags: ImGuiInputTextFlags,
        callback: ImGuiInputTextCallback,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputTextWithHint(
        label: *const ::std::os::raw::c_char,
        hint: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        flags: ImGuiInputTextFlags,
        callback: ImGuiInputTextCallback,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputFloat(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        step: f32,
        step_fast: f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputFloat2(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputFloat3(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputFloat4(
        label: *const ::std::os::raw::c_char,
        v: *mut f32,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputInt(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        step: ::std::os::raw::c_int,
        step_fast: ::std::os::raw::c_int,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputInt2(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputInt3(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputInt4(
        label: *const ::std::os::raw::c_char,
        v: *mut ::std::os::raw::c_int,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputDouble(
        label: *const ::std::os::raw::c_char,
        v: *mut f64,
        step: f64,
        step_fast: f64,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputScalar(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        p_step: *const ::std::os::raw::c_void,
        p_step_fast: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputScalarN(
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        components: ::std::os::raw::c_int,
        p_step: *const ::std::os::raw::c_void,
        p_step_fast: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiInputTextFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorEdit3(
        label: *const ::std::os::raw::c_char,
        col: *mut f32,
        flags: ImGuiColorEditFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorEdit4(
        label: *const ::std::os::raw::c_char,
        col: *mut f32,
        flags: ImGuiColorEditFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorPicker3(
        label: *const ::std::os::raw::c_char,
        col: *mut f32,
        flags: ImGuiColorEditFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorPicker4(
        label: *const ::std::os::raw::c_char,
        col: *mut f32,
        flags: ImGuiColorEditFlags,
        ref_col: *const f32,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorButton(
        desc_id: *const ::std::os::raw::c_char,
        col: ImVec4_c,
        flags: ImGuiColorEditFlags,
        size: ImVec2_c,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetColorEditOptions(flags: ImGuiColorEditFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNode_Str(label: *const ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNode_StrStr(
        str_id: *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNode_Ptr(
        ptr_id: *const ::std::os::raw::c_void,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeV_Str(
        str_id: *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeV_Ptr(
        ptr_id: *const ::std::os::raw::c_void,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeEx_Str(
        label: *const ::std::os::raw::c_char,
        flags: ImGuiTreeNodeFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeEx_StrStr(
        str_id: *const ::std::os::raw::c_char,
        flags: ImGuiTreeNodeFlags,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeEx_Ptr(
        ptr_id: *const ::std::os::raw::c_void,
        flags: ImGuiTreeNodeFlags,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeExV_Str(
        str_id: *const ::std::os::raw::c_char,
        flags: ImGuiTreeNodeFlags,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeExV_Ptr(
        ptr_id: *const ::std::os::raw::c_void,
        flags: ImGuiTreeNodeFlags,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreePush_Str(str_id: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreePush_Ptr(ptr_id: *const ::std::os::raw::c_void);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreePop();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTreeNodeToLabelSpacing() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCollapsingHeader_TreeNodeFlags(
        label: *const ::std::os::raw::c_char,
        flags: ImGuiTreeNodeFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCollapsingHeader_BoolPtr(
        label: *const ::std::os::raw::c_char,
        p_visible: *mut bool,
        flags: ImGuiTreeNodeFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemStorageID(storage_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeGetOpen(storage_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSelectable_Bool(
        label: *const ::std::os::raw::c_char,
        selected: bool,
        flags: ImGuiSelectableFlags,
        size: ImVec2_c,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSelectable_BoolPtr(
        label: *const ::std::os::raw::c_char,
        p_selected: *mut bool,
        flags: ImGuiSelectableFlags,
        size: ImVec2_c,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginMultiSelect(
        flags: ImGuiMultiSelectFlags,
        selection_size: ::std::os::raw::c_int,
        items_count: ::std::os::raw::c_int,
    ) -> *mut ImGuiMultiSelectIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemToggledSelection() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginListBox(label: *const ::std::os::raw::c_char, size: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndListBox();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igListBox_Str_arr(
        label: *const ::std::os::raw::c_char,
        current_item: *mut ::std::os::raw::c_int,
        items: *const *const ::std::os::raw::c_char,
        items_count: ::std::os::raw::c_int,
        height_in_items: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igListBox_FnStrPtr(
        label: *const ::std::os::raw::c_char,
        current_item: *mut ::std::os::raw::c_int,
        getter: ::std::option::Option<
            unsafe extern "C" fn(
                user_data: *mut ::std::os::raw::c_void,
                idx: ::std::os::raw::c_int,
            ) -> *const ::std::os::raw::c_char,
        >,
        user_data: *mut ::std::os::raw::c_void,
        items_count: ::std::os::raw::c_int,
        height_in_items: ::std::os::raw::c_int,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPlotLines_FloatPtr(
        label: *const ::std::os::raw::c_char,
        values: *const f32,
        values_count: ::std::os::raw::c_int,
        values_offset: ::std::os::raw::c_int,
        overlay_text: *const ::std::os::raw::c_char,
        scale_min: f32,
        scale_max: f32,
        graph_size: ImVec2_c,
        stride: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPlotLines_FnFloatPtr(
        label: *const ::std::os::raw::c_char,
        values_getter: ::std::option::Option<
            unsafe extern "C" fn(
                data: *mut ::std::os::raw::c_void,
                idx: ::std::os::raw::c_int,
            ) -> f32,
        >,
        data: *mut ::std::os::raw::c_void,
        values_count: ::std::os::raw::c_int,
        values_offset: ::std::os::raw::c_int,
        overlay_text: *const ::std::os::raw::c_char,
        scale_min: f32,
        scale_max: f32,
        graph_size: ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPlotHistogram_FloatPtr(
        label: *const ::std::os::raw::c_char,
        values: *const f32,
        values_count: ::std::os::raw::c_int,
        values_offset: ::std::os::raw::c_int,
        overlay_text: *const ::std::os::raw::c_char,
        scale_min: f32,
        scale_max: f32,
        graph_size: ImVec2_c,
        stride: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPlotHistogram_FnFloatPtr(
        label: *const ::std::os::raw::c_char,
        values_getter: ::std::option::Option<
            unsafe extern "C" fn(
                data: *mut ::std::os::raw::c_void,
                idx: ::std::os::raw::c_int,
            ) -> f32,
        >,
        data: *mut ::std::os::raw::c_void,
        values_count: ::std::os::raw::c_int,
        values_offset: ::std::os::raw::c_int,
        overlay_text: *const ::std::os::raw::c_char,
        scale_min: f32,
        scale_max: f32,
        graph_size: ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igValue_Bool(prefix: *const ::std::os::raw::c_char, b: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igValue_Int(prefix: *const ::std::os::raw::c_char, v: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igValue_Uint(prefix: *const ::std::os::raw::c_char, v: ::std::os::raw::c_uint);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igValue_Float(
        prefix: *const ::std::os::raw::c_char,
        v: f32,
        float_format: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginMenuBar() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndMenuBar();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginMainMenuBar() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndMainMenuBar();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginMenu(label: *const ::std::os::raw::c_char, enabled: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndMenu();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMenuItem_Bool(
        label: *const ::std::os::raw::c_char,
        shortcut: *const ::std::os::raw::c_char,
        selected: bool,
        enabled: bool,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMenuItem_BoolPtr(
        label: *const ::std::os::raw::c_char,
        shortcut: *const ::std::os::raw::c_char,
        p_selected: *mut bool,
        enabled: bool,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTooltip() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndTooltip();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetTooltip(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetTooltipV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginItemTooltip() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetItemTooltip(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetItemTooltipV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopup(str_id: *const ::std::os::raw::c_char, flags: ImGuiWindowFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupModal(
        name: *const ::std::os::raw::c_char,
        p_open: *mut bool,
        flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndPopup();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igOpenPopup_Str(str_id: *const ::std::os::raw::c_char, popup_flags: ImGuiPopupFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igOpenPopup_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igOpenPopupOnItemClick(
        str_id: *const ::std::os::raw::c_char,
        popup_flags: ImGuiPopupFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCloseCurrentPopup();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupContextItem(
        str_id: *const ::std::os::raw::c_char,
        popup_flags: ImGuiPopupFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupContextWindow(
        str_id: *const ::std::os::raw::c_char,
        popup_flags: ImGuiPopupFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupContextVoid(
        str_id: *const ::std::os::raw::c_char,
        popup_flags: ImGuiPopupFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsPopupOpen_Str(str_id: *const ::std::os::raw::c_char, flags: ImGuiPopupFlags)
        -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTable(
        str_id: *const ::std::os::raw::c_char,
        columns: ::std::os::raw::c_int,
        flags: ImGuiTableFlags,
        outer_size: ImVec2_c,
        inner_width: f32,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndTable();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableNextRow(row_flags: ImGuiTableRowFlags, min_row_height: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableNextColumn() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnIndex(column_n: ::std::os::raw::c_int) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetupColumn(
        label: *const ::std::os::raw::c_char,
        flags: ImGuiTableColumnFlags,
        init_width_or_weight: f32,
        user_id: ImGuiID,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetupScrollFreeze(cols: ::std::os::raw::c_int, rows: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableHeader(label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableHeadersRow();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableAngledHeadersRow();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnCount() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnIndex() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetRowIndex() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnName_Int(
        column_n: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnFlags(column_n: ::std::os::raw::c_int) -> ImGuiTableColumnFlags;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnEnabled(column_n: ::std::os::raw::c_int, v: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetHoveredColumn() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetBgColor(
        target: ImGuiTableBgTarget,
        color: ImU32,
        column_n: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColumns(
        count: ::std::os::raw::c_int,
        id: *const ::std::os::raw::c_char,
        borders: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNextColumn();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnIndex() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnWidth(column_index: ::std::os::raw::c_int) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetColumnWidth(column_index: ::std::os::raw::c_int, width: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnOffset(column_index: ::std::os::raw::c_int) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetColumnOffset(column_index: ::std::os::raw::c_int, offset_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnsCount() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTabBar(str_id: *const ::std::os::raw::c_char, flags: ImGuiTabBarFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndTabBar();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTabItem(
        label: *const ::std::os::raw::c_char,
        p_open: *mut bool,
        flags: ImGuiTabItemFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndTabItem();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemButton(label: *const ::std::os::raw::c_char, flags: ImGuiTabItemFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetTabItemClosed(tab_or_docked_window_label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockSpace(
        dockspace_id: ImGuiID,
        size: ImVec2_c,
        flags: ImGuiDockNodeFlags,
        window_class: *const ImGuiWindowClass,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockSpaceOverViewport(
        dockspace_id: ImGuiID,
        viewport: *const ImGuiViewport,
        flags: ImGuiDockNodeFlags,
        window_class: *const ImGuiWindowClass,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowDockID(dock_id: ImGuiID, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowClass(window_class: *const ImGuiWindowClass);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowDockID() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowDocked() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogToTTY(auto_open_depth: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogToFile(
        auto_open_depth: ::std::os::raw::c_int,
        filename: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogToClipboard(auto_open_depth: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogFinish();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogButtons();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogText(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogTextV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDragDropSource(flags: ImGuiDragDropFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetDragDropPayload(
        type_: *const ::std::os::raw::c_char,
        data: *const ::std::os::raw::c_void,
        sz: usize,
        cond: ImGuiCond,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndDragDropSource();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDragDropTarget() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igAcceptDragDropPayload(
        type_: *const ::std::os::raw::c_char,
        flags: ImGuiDragDropFlags,
    ) -> *const ImGuiPayload;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndDragDropTarget();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetDragDropPayload() -> *const ImGuiPayload;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDisabled(disabled: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndDisabled();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushClipRect(
        clip_rect_min: ImVec2_c,
        clip_rect_max: ImVec2_c,
        intersect_with_current_clip_rect: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopClipRect();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetItemDefaultFocus();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetKeyboardFocusHere(offset: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNavCursorVisible(visible: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemAllowOverlap();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemActive() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemFocused() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemClicked(mouse_button: ImGuiMouseButton) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemVisible() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemEdited() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemActivated() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemDeactivated() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemDeactivatedAfterEdit() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemToggledOpen() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsAnyItemHovered() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsAnyItemActive() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsAnyItemFocused() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemID() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemRectMin() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemRectMax() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemRectSize() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemFlags() -> ImGuiItemFlags;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMainViewport() -> *mut ImGuiViewport;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetBackgroundDrawList(viewport: *mut ImGuiViewport) -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetForegroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsRectVisible_Nil(size: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsRectVisible_Vec2(rect_min: ImVec2_c, rect_max: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTime() -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFrameCount() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetDrawListSharedData() -> *mut ImDrawListSharedData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetStyleColorName(idx: ImGuiCol) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetStateStorage(storage: *mut ImGuiStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetStateStorage() -> *mut ImGuiStorage;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcTextSize(
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        hide_text_after_double_hash: bool,
        wrap_width: f32,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorConvertU32ToFloat4(in_: ImU32) -> ImVec4_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorConvertFloat4ToU32(in_: ImVec4_c) -> ImU32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorConvertRGBtoHSV(
        r: f32,
        g: f32,
        b: f32,
        out_h: *mut f32,
        out_s: *mut f32,
        out_v: *mut f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorConvertHSVtoRGB(
        h: f32,
        s: f32,
        v: f32,
        out_r: *mut f32,
        out_g: *mut f32,
        out_b: *mut f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyDown_Nil(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyPressed_Bool(key: ImGuiKey, repeat: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyReleased_Nil(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyPressedAmount(
        key: ImGuiKey,
        repeat_delay: f32,
        rate: f32,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyName(key: ImGuiKey) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShortcut_Nil(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetItemKeyOwner_Nil(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDown_Nil(button: ImGuiMouseButton) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseClicked_Bool(button: ImGuiMouseButton, repeat: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseReleased_Nil(button: ImGuiMouseButton) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseReleasedWithDelay(button: ImGuiMouseButton, delay: f32) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseHoveringRect(r_min: ImVec2_c, r_max: ImVec2_c, clip: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMousePosValid(mouse_pos: *const ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsAnyMouseDown() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMousePos() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMousePosOnOpeningCurrentPopup() -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDragging(button: ImGuiMouseButton, lock_threshold: f32) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMouseDragDelta(button: ImGuiMouseButton, lock_threshold: f32) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igResetMouseDragDelta(button: ImGuiMouseButton);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMouseCursor() -> ImGuiMouseCursor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetMouseCursor(cursor_type: ImGuiMouseCursor);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextFrameWantCaptureMouse(want_capture_mouse: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetClipboardText() -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetClipboardText(text: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLoadIniSettingsFromDisk(ini_filename: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLoadIniSettingsFromMemory(ini_data: *const ::std::os::raw::c_char, ini_size: usize);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSaveIniSettingsToDisk(ini_filename: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSaveIniSettingsToMemory(out_ini_size: *mut usize) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugTextEncoding(text: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugFlashStyleColor(idx: ImGuiCol);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugStartItemPicker();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugCheckVersionAndDataLayout(
        version_str: *const ::std::os::raw::c_char,
        sz_io: usize,
        sz_style: usize,
        sz_vec2: usize,
        sz_vec4: usize,
        sz_drawvert: usize,
        sz_drawidx: usize,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugLog(fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugLogV(fmt: *const ::std::os::raw::c_char, args: va_list);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetAllocatorFunctions(
        alloc_func: ImGuiMemAllocFunc,
        free_func: ImGuiMemFreeFunc,
        user_data: *mut ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetAllocatorFunctions(
        p_alloc_func: *mut ImGuiMemAllocFunc,
        p_free_func: *mut ImGuiMemFreeFunc,
        p_user_data: *mut *mut ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMemAlloc(size: usize) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMemFree(ptr: *mut ::std::os::raw::c_void);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdatePlatformWindows();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderPlatformWindowsDefault(
        platform_render_arg: *mut ::std::os::raw::c_void,
        renderer_render_arg: *mut ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDestroyPlatformWindows();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindViewportByID(viewport_id: ImGuiID) -> *mut ImGuiViewport;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindViewportByPlatformHandle(
        platform_handle: *mut ::std::os::raw::c_void,
    ) -> *mut ImGuiViewport;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyle_destroy(self_: *mut ImGuiStyle);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyle_ScaleAllSizes(self_: *mut ImGuiStyle, scale_factor: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddKeyEvent(self_: *mut ImGuiIO, key: ImGuiKey, down: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddKeyAnalogEvent(self_: *mut ImGuiIO, key: ImGuiKey, down: bool, v: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddMousePosEvent(self_: *mut ImGuiIO, x: f32, y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddMouseButtonEvent(
        self_: *mut ImGuiIO,
        button: ::std::os::raw::c_int,
        down: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddMouseViewportEvent(self_: *mut ImGuiIO, id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddInputCharacter(self_: *mut ImGuiIO, c: ::std::os::raw::c_uint);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddInputCharacterUTF16(self_: *mut ImGuiIO, c: ImWchar16);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_AddInputCharactersUTF8(self_: *mut ImGuiIO, str_: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_SetKeyEventNativeData(
        self_: *mut ImGuiIO,
        key: ImGuiKey,
        native_keycode: ::std::os::raw::c_int,
        native_scancode: ::std::os::raw::c_int,
        native_legacy_index: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIO_destroy(self_: *mut ImGuiIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_ImGuiInputTextCallbackData() -> *mut ImGuiInputTextCallbackData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_destroy(self_: *mut ImGuiInputTextCallbackData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_DeleteChars(
        self_: *mut ImGuiInputTextCallbackData,
        pos: ::std::os::raw::c_int,
        bytes_count: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_InsertChars(
        self_: *mut ImGuiInputTextCallbackData,
        pos: ::std::os::raw::c_int,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_SelectAll(self_: *mut ImGuiInputTextCallbackData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_SetSelection(
        self_: *mut ImGuiInputTextCallbackData,
        s: ::std::os::raw::c_int,
        e: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_ClearSelection(self_: *mut ImGuiInputTextCallbackData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextCallbackData_HasSelection(self_: *mut ImGuiInputTextCallbackData) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindowClass_ImGuiWindowClass() -> *mut ImGuiWindowClass;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindowClass_destroy(self_: *mut ImGuiWindowClass);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_ImGuiPayload() -> *mut ImGuiPayload;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_destroy(self_: *mut ImGuiPayload);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_Clear(self_: *mut ImGuiPayload);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_IsDataType(
        self_: *mut ImGuiPayload,
        type_: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_IsPreview(self_: *mut ImGuiPayload) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOnceUponAFrame_destroy(self_: *mut ImGuiOnceUponAFrame);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_ImGuiTextFilter(
        default_filter: *const ::std::os::raw::c_char,
    ) -> *mut ImGuiTextFilter;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_destroy(self_: *mut ImGuiTextFilter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_Draw(
        self_: *mut ImGuiTextFilter,
        label: *const ::std::os::raw::c_char,
        width: f32,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_PassFilter(
        self_: *mut ImGuiTextFilter,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_Build(self_: *mut ImGuiTextFilter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_Clear(self_: *mut ImGuiTextFilter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextFilter_IsActive(self_: *mut ImGuiTextFilter) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextRange_ImGuiTextRange_Nil() -> *mut ImGuiTextRange;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextRange_destroy(self_: *mut ImGuiTextRange);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextRange_ImGuiTextRange_Str(
        _b: *const ::std::os::raw::c_char,
        _e: *const ::std::os::raw::c_char,
    ) -> *mut ImGuiTextRange;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextRange_empty(self_: *mut ImGuiTextRange) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextRange_split(
        self_: *mut ImGuiTextRange,
        separator: ::std::os::raw::c_char,
        out: *mut ImVector_ImGuiTextRange,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_ImGuiTextBuffer() -> *mut ImGuiTextBuffer;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_destroy(self_: *mut ImGuiTextBuffer);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_begin(self_: *mut ImGuiTextBuffer) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_end(self_: *mut ImGuiTextBuffer) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_size(self_: *mut ImGuiTextBuffer) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_empty(self_: *mut ImGuiTextBuffer) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_clear(self_: *mut ImGuiTextBuffer);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_resize(self_: *mut ImGuiTextBuffer, size: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_reserve(self_: *mut ImGuiTextBuffer, capacity: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_c_str(self_: *mut ImGuiTextBuffer) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_append(
        self_: *mut ImGuiTextBuffer,
        str_: *const ::std::os::raw::c_char,
        str_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextBuffer_appendfv(
        self_: *mut ImGuiTextBuffer,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStoragePair_ImGuiStoragePair_Int(
        _key: ImGuiID,
        _val: ::std::os::raw::c_int,
    ) -> *mut ImGuiStoragePair;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStoragePair_destroy(self_: *mut ImGuiStoragePair);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStoragePair_ImGuiStoragePair_Float(
        _key: ImGuiID,
        _val: f32,
    ) -> *mut ImGuiStoragePair;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr(
        _key: ImGuiID,
        _val: *mut ::std::os::raw::c_void,
    ) -> *mut ImGuiStoragePair;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_Clear(self_: *mut ImGuiStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetInt(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        default_val: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_SetInt(self_: *mut ImGuiStorage, key: ImGuiID, val: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetBool(self_: *mut ImGuiStorage, key: ImGuiID, default_val: bool) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_SetBool(self_: *mut ImGuiStorage, key: ImGuiID, val: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetFloat(self_: *mut ImGuiStorage, key: ImGuiID, default_val: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_SetFloat(self_: *mut ImGuiStorage, key: ImGuiID, val: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetVoidPtr(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
    ) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_SetVoidPtr(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        val: *mut ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetIntRef(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        default_val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetBoolRef(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        default_val: bool,
    ) -> *mut bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetFloatRef(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        default_val: f32,
    ) -> *mut f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_GetVoidPtrRef(
        self_: *mut ImGuiStorage,
        key: ImGuiID,
        default_val: *mut ::std::os::raw::c_void,
    ) -> *mut *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_destroy(self_: *mut ImGuiListClipper);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_Begin(
        self_: *mut ImGuiListClipper,
        items_count: ::std::os::raw::c_int,
        items_height: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_End(self_: *mut ImGuiListClipper);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_IncludeItemByIndex(
        self_: *mut ImGuiListClipper,
        item_index: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_IncludeItemsByIndex(
        self_: *mut ImGuiListClipper,
        item_begin: ::std::os::raw::c_int,
        item_end: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipper_SeekCursorForItem(
        self_: *mut ImGuiListClipper,
        item_index: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_ImColor_Nil() -> *mut ImColor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_destroy(self_: *mut ImColor);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_ImColor_Float(r: f32, g: f32, b: f32, a: f32) -> *mut ImColor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_ImColor_Vec4(col: ImVec4_c) -> *mut ImColor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_ImColor_Int(
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> *mut ImColor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_ImColor_U32(rgba: ImU32) -> *mut ImColor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_SetHSV(self_: *mut ImColor, h: f32, s: f32, v: f32, a: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImColor_HSV(h: f32, s: f32, v: f32, a: f32) -> ImColor_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_ApplyRequests(
        self_: *mut ImGuiSelectionBasicStorage,
        ms_io: *mut ImGuiMultiSelectIO,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_Contains(
        self_: *mut ImGuiSelectionBasicStorage,
        id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_Swap(
        self_: *mut ImGuiSelectionBasicStorage,
        r: *mut ImGuiSelectionBasicStorage,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_SetItemSelected(
        self_: *mut ImGuiSelectionBasicStorage,
        id: ImGuiID,
        selected: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem(
        self_: *mut ImGuiSelectionBasicStorage,
        opaque_it: *mut *mut ::std::os::raw::c_void,
        out_id: *mut ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex(
        self_: *mut ImGuiSelectionBasicStorage,
        idx: ::std::os::raw::c_int,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage(
    ) -> *mut ImGuiSelectionExternalStorage;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSelectionExternalStorage_ApplyRequests(
        self_: *mut ImGuiSelectionExternalStorage,
        ms_io: *mut ImGuiMultiSelectIO,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawCmd_destroy(self_: *mut ImDrawCmd);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawCmd_GetTexID(self_: *mut ImDrawCmd) -> ImTextureID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_ImDrawListSplitter() -> *mut ImDrawListSplitter;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_destroy(self_: *mut ImDrawListSplitter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_Clear(self_: *mut ImDrawListSplitter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_ClearFreeMemory(self_: *mut ImDrawListSplitter);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_Split(
        self_: *mut ImDrawListSplitter,
        draw_list: *mut ImDrawList,
        count: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_Merge(self_: *mut ImDrawListSplitter, draw_list: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSplitter_SetCurrentChannel(
        self_: *mut ImDrawListSplitter,
        draw_list: *mut ImDrawList,
        channel_idx: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_ImDrawList(shared_data: *mut ImDrawListSharedData) -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_destroy(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PushClipRect(
        self_: *mut ImDrawList,
        clip_rect_min: ImVec2_c,
        clip_rect_max: ImVec2_c,
        intersect_with_current_clip_rect: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PushClipRectFullScreen(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PopClipRect(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PushTexture(self_: *mut ImDrawList, tex_ref: ImTextureRef_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PopTexture(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_GetClipRectMin(self_: *mut ImDrawList) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_GetClipRectMax(self_: *mut ImDrawList) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddLine(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        col: ImU32,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddLineH(
        self_: *mut ImDrawList,
        min_x: f32,
        max_x: f32,
        y: f32,
        col: ImU32,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddLineV(
        self_: *mut ImDrawList,
        x: f32,
        min_y: f32,
        max_y: f32,
        col: ImU32,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddRect(
        self_: *mut ImDrawList,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        col: ImU32,
        rounding: f32,
        thickness: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddRectFilled(
        self_: *mut ImDrawList,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        col: ImU32,
        rounding: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddRectFilledMultiColor(
        self_: *mut ImDrawList,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        col_upr_left: ImU32,
        col_upr_right: ImU32,
        col_bot_right: ImU32,
        col_bot_left: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddQuad(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        col: ImU32,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddQuadFilled(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddTriangle(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        col: ImU32,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddTriangleFilled(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddCircle(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        col: ImU32,
        num_segments: ::std::os::raw::c_int,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddCircleFilled(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        col: ImU32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddNgon(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        col: ImU32,
        num_segments: ::std::os::raw::c_int,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddNgonFilled(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        col: ImU32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddEllipse(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: ImVec2_c,
        col: ImU32,
        rot: f32,
        num_segments: ::std::os::raw::c_int,
        thickness: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddEllipseFilled(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: ImVec2_c,
        col: ImU32,
        rot: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddText_Vec2(
        self_: *mut ImDrawList,
        pos: ImVec2_c,
        col: ImU32,
        text_begin: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddText_FontPtr(
        self_: *mut ImDrawList,
        font: *mut ImFont,
        font_size: f32,
        pos: ImVec2_c,
        col: ImU32,
        text_begin: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        wrap_width: f32,
        cpu_fine_clip_rect: *const ImVec4,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddBezierCubic(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        col: ImU32,
        thickness: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddBezierQuadratic(
        self_: *mut ImDrawList,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        col: ImU32,
        thickness: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddPolyline(
        self_: *mut ImDrawList,
        points: *const ImVec2_c,
        num_points: ::std::os::raw::c_int,
        col: ImU32,
        thickness: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddConvexPolyFilled(
        self_: *mut ImDrawList,
        points: *const ImVec2_c,
        num_points: ::std::os::raw::c_int,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddConcavePolyFilled(
        self_: *mut ImDrawList,
        points: *const ImVec2_c,
        num_points: ::std::os::raw::c_int,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddImage(
        self_: *mut ImDrawList,
        tex_ref: ImTextureRef_c,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        uv_min: ImVec2_c,
        uv_max: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddImageQuad(
        self_: *mut ImDrawList,
        tex_ref: ImTextureRef_c,
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        uv1: ImVec2_c,
        uv2: ImVec2_c,
        uv3: ImVec2_c,
        uv4: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddImageRounded(
        self_: *mut ImDrawList,
        tex_ref: ImTextureRef_c,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        uv_min: ImVec2_c,
        uv_max: ImVec2_c,
        col: ImU32,
        rounding: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathClear(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathLineTo(self_: *mut ImDrawList, pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathLineToMergeDuplicate(self_: *mut ImDrawList, pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathStroke(
        self_: *mut ImDrawList,
        col: ImU32,
        thickness: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathArcTo(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        a_min: f32,
        a_max: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathArcToFast(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        a_min_of_12: ::std::os::raw::c_int,
        a_max_of_12: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathEllipticalArcTo(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: ImVec2_c,
        rot: f32,
        a_min: f32,
        a_max: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathBezierCubicCurveTo(
        self_: *mut ImDrawList,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathBezierQuadraticCurveTo(
        self_: *mut ImDrawList,
        p2: ImVec2_c,
        p3: ImVec2_c,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PathRect(
        self_: *mut ImDrawList,
        rect_min: ImVec2_c,
        rect_max: ImVec2_c,
        rounding: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddCallback(
        self_: *mut ImDrawList,
        callback: ImDrawCallback,
        userdata: *mut ::std::os::raw::c_void,
        userdata_size: usize,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_AddDrawCmd(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_CloneOutput(self_: *mut ImDrawList) -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_ChannelsSplit(self_: *mut ImDrawList, count: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_ChannelsMerge(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_ChannelsSetCurrent(self_: *mut ImDrawList, n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimReserve(
        self_: *mut ImDrawList,
        idx_count: ::std::os::raw::c_int,
        vtx_count: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimUnreserve(
        self_: *mut ImDrawList,
        idx_count: ::std::os::raw::c_int,
        vtx_count: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimRect(self_: *mut ImDrawList, a: ImVec2_c, b: ImVec2_c, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimRectUV(
        self_: *mut ImDrawList,
        a: ImVec2_c,
        b: ImVec2_c,
        uv_a: ImVec2_c,
        uv_b: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimQuadUV(
        self_: *mut ImDrawList,
        a: ImVec2_c,
        b: ImVec2_c,
        c: ImVec2_c,
        d: ImVec2_c,
        uv_a: ImVec2_c,
        uv_b: ImVec2_c,
        uv_c: ImVec2_c,
        uv_d: ImVec2_c,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimWriteVtx(self_: *mut ImDrawList, pos: ImVec2_c, uv: ImVec2_c, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimWriteIdx(self_: *mut ImDrawList, idx: ImDrawIdx);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList_PrimVtx(self_: *mut ImDrawList, pos: ImVec2_c, uv: ImVec2_c, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__SetDrawListSharedData(
        self_: *mut ImDrawList,
        data: *mut ImDrawListSharedData,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__ResetForNewFrame(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__ClearFreeMemory(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__PopUnusedDrawCmd(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__TryMergeDrawCmds(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__OnChangedClipRect(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__OnChangedTexture(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__SetTexture(self_: *mut ImDrawList, tex_ref: ImTextureRef_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__CalcCircleAutoSegmentCount(
        self_: *mut ImDrawList,
        radius: f32,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__PathArcToFastEx(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        a_min_sample: ::std::os::raw::c_int,
        a_max_sample: ::std::os::raw::c_int,
        a_step: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawList__PathArcToN(
        self_: *mut ImDrawList,
        center: ImVec2_c,
        radius: f32,
        a_min: f32,
        a_max: f32,
        num_segments: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_ImDrawData() -> *mut ImDrawData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_destroy(self_: *mut ImDrawData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_Clear(self_: *mut ImDrawData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawData_ScaleClipRects(self_: *mut ImDrawData, fb_scale: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_ImTextureData() -> *mut ImTextureData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_destroy(self_: *mut ImTextureData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_Create(
        self_: *mut ImTextureData,
        format: ImTextureFormat,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_DestroyPixels(self_: *mut ImTextureData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetPixels(self_: *mut ImTextureData) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetPixelsAt(
        self_: *mut ImTextureData,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetSizeInBytes(self_: *mut ImTextureData) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetPitch(self_: *mut ImTextureData) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetTexRef(self_: *mut ImTextureData) -> ImTextureRef_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_GetTexID(self_: *mut ImTextureData) -> ImTextureID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_SetTexID(self_: *mut ImTextureData, tex_id: ImTextureID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImTextureData_SetStatus(self_: *mut ImTextureData, status: ImTextureStatus);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontConfig_ImFontConfig() -> *mut ImFontConfig;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontConfig_destroy(self_: *mut ImFontConfig);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyph_ImFontGlyph() -> *mut ImFontGlyph;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyph_destroy(self_: *mut ImFontGlyph);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder() -> *mut ImFontGlyphRangesBuilder;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_destroy(self_: *mut ImFontGlyphRangesBuilder);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_Clear(self_: *mut ImFontGlyphRangesBuilder);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_GetBit(self_: *mut ImFontGlyphRangesBuilder, n: usize) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_SetBit(self_: *mut ImFontGlyphRangesBuilder, n: usize);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_AddChar(self_: *mut ImFontGlyphRangesBuilder, c: ImWchar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_AddText(
        self_: *mut ImFontGlyphRangesBuilder,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_AddRanges(
        self_: *mut ImFontGlyphRangesBuilder,
        ranges: *const ImWchar,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontGlyphRangesBuilder_BuildRanges(
        self_: *mut ImFontGlyphRangesBuilder,
        out_ranges: *mut ImVector_ImWchar,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlasRect_ImFontAtlasRect() -> *mut ImFontAtlasRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlasRect_destroy(self_: *mut ImFontAtlasRect);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_ImFontAtlas() -> *mut ImFontAtlas;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_destroy(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFont(
        self_: *mut ImFontAtlas,
        font_cfg: *const ImFontConfig,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontDefault(
        self_: *mut ImFontAtlas,
        font_cfg: *const ImFontConfig,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontDefaultVector(
        self_: *mut ImFontAtlas,
        font_cfg: *const ImFontConfig,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontDefaultBitmap(
        self_: *mut ImFontAtlas,
        font_cfg: *const ImFontConfig,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontFromFileTTF(
        self_: *mut ImFontAtlas,
        filename: *const ::std::os::raw::c_char,
        size_pixels: f32,
        font_cfg: *const ImFontConfig,
        glyph_ranges: *const ImWchar,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontFromMemoryTTF(
        self_: *mut ImFontAtlas,
        font_data: *mut ::std::os::raw::c_void,
        font_data_size: ::std::os::raw::c_int,
        size_pixels: f32,
        font_cfg: *const ImFontConfig,
        glyph_ranges: *const ImWchar,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF(
        self_: *mut ImFontAtlas,
        compressed_font_data: *const ::std::os::raw::c_void,
        compressed_font_data_size: ::std::os::raw::c_int,
        size_pixels: f32,
        font_cfg: *const ImFontConfig,
        glyph_ranges: *const ImWchar,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(
        self_: *mut ImFontAtlas,
        compressed_font_data_base85: *const ::std::os::raw::c_char,
        size_pixels: f32,
        font_cfg: *const ImFontConfig,
        glyph_ranges: *const ImWchar,
    ) -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_RemoveFont(self_: *mut ImFontAtlas, font: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_Clear(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_ClearFonts(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_CompactCache(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_SetFontLoader(self_: *mut ImFontAtlas, font_loader: *const ImFontLoader);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_ClearInputData(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_ClearTexData(self_: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_GetGlyphRangesDefault(self_: *mut ImFontAtlas) -> *const ImWchar;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_AddCustomRect(
        self_: *mut ImFontAtlas,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        out_r: *mut ImFontAtlasRect,
    ) -> ImFontAtlasRectId;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_RemoveCustomRect(self_: *mut ImFontAtlas, id: ImFontAtlasRectId);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlas_GetCustomRect(
        self_: *mut ImFontAtlas,
        id: ImFontAtlasRectId,
        out_r: *mut ImFontAtlasRect,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_ImFontBaked() -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_destroy(self_: *mut ImFontBaked);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_ClearOutputData(self_: *mut ImFontBaked);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_FindGlyph(self_: *mut ImFontBaked, c: ImWchar) -> *mut ImFontGlyph;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_FindGlyphNoFallback(self_: *mut ImFontBaked, c: ImWchar)
        -> *mut ImFontGlyph;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_GetCharAdvance(self_: *mut ImFontBaked, c: ImWchar) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontBaked_IsGlyphLoaded(self_: *mut ImFontBaked, c: ImWchar) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_ImFont() -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_destroy(self_: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_IsGlyphInFont(self_: *mut ImFont, c: ImWchar) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_IsLoaded(self_: *mut ImFont) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_GetDebugName(self_: *mut ImFont) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_GetFontBaked(
        self_: *mut ImFont,
        font_size: f32,
        density: f32,
    ) -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_CalcTextSizeA(
        self_: *mut ImFont,
        size: f32,
        max_width: f32,
        wrap_width: f32,
        text_begin: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        out_remaining: *mut *const ::std::os::raw::c_char,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_CalcWordWrapPosition(
        self_: *mut ImFont,
        size: f32,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        wrap_width: f32,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_RenderChar(
        self_: *mut ImFont,
        draw_list: *mut ImDrawList,
        size: f32,
        pos: ImVec2_c,
        col: ImU32,
        c: ImWchar,
        cpu_fine_clip: *const ImVec4,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_RenderText(
        self_: *mut ImFont,
        draw_list: *mut ImDrawList,
        size: f32,
        pos: ImVec2_c,
        col: ImU32,
        clip_rect: ImVec4_c,
        text_begin: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        wrap_width: f32,
        flags: ImDrawTextFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_ClearOutputData(self_: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_AddRemapChar(self_: *mut ImFont, from_codepoint: ImWchar, to_codepoint: ImWchar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFont_IsGlyphRangeUnused(
        self_: *mut ImFont,
        c_begin: ::std::os::raw::c_uint,
        c_last: ::std::os::raw::c_uint,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewport_ImGuiViewport() -> *mut ImGuiViewport;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewport_destroy(self_: *mut ImGuiViewport);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewport_GetCenter(self_: *mut ImGuiViewport) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewport_GetWorkCenter(self_: *mut ImGuiViewport) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewport_GetDebugName(self_: *mut ImGuiViewport) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_ImGuiPlatformIO() -> *mut ImGuiPlatformIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_destroy(self_: *mut ImGuiPlatformIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_ClearPlatformHandlers(self_: *mut ImGuiPlatformIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_ClearRendererHandlers(self_: *mut ImGuiPlatformIO);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformMonitor_ImGuiPlatformMonitor() -> *mut ImGuiPlatformMonitor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformMonitor_destroy(self_: *mut ImGuiPlatformMonitor);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImHashData(
        data: *const ::std::os::raw::c_void,
        data_size: usize,
        seed: ImGuiID,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImHashStr(
        data: *const ::std::os::raw::c_char,
        data_size: usize,
        seed: ImGuiID,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImHashSkipUncontributingPrefix(
        label: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImQsort(
        base: *mut ::std::os::raw::c_void,
        count: usize,
        size_of_element: usize,
        compare_func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *const ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImAlphaBlendColors(col_a: ImU32, col_b: ImU32) -> ImU32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImIsPowerOfTwo_Int(v: ::std::os::raw::c_int) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImIsPowerOfTwo_U64(v: ImU64) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImUpperPowerOfTwo(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImCountSetBits(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStricmp(
        str1: *const ::std::os::raw::c_char,
        str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrnicmp(
        str1: *const ::std::os::raw::c_char,
        str2: *const ::std::os::raw::c_char,
        count: usize,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrncpy(
        dst: *mut ::std::os::raw::c_char,
        src: *const ::std::os::raw::c_char,
        count: usize,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImMemdup(
        src: *const ::std::os::raw::c_void,
        size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrdupcpy(
        dst: *mut ::std::os::raw::c_char,
        p_dst_size: *mut usize,
        str_: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrchrRange(
        str_begin: *const ::std::os::raw::c_char,
        str_end: *const ::std::os::raw::c_char,
        c: ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStreolRange(
        str_: *const ::std::os::raw::c_char,
        str_end: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStristr(
        haystack: *const ::std::os::raw::c_char,
        haystack_end: *const ::std::os::raw::c_char,
        needle: *const ::std::os::raw::c_char,
        needle_end: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrTrimBlanks(str_: *mut ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrSkipBlank(str_: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrlenW(str_: *const ImWchar) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImStrbol(
        buf_mid_line: *const ::std::os::raw::c_char,
        buf_begin: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImToUpper(c: ::std::os::raw::c_char) -> ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImCharIsBlankA(c: ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImCharIsBlankW(c: ::std::os::raw::c_uint) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImCharIsXdigitA(c: ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFormatString(
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFormatStringV(
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFormatStringToTempBuffer(
        out_buf: *mut *const ::std::os::raw::c_char,
        out_buf_end: *mut *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        ...
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFormatStringToTempBufferV(
        out_buf: *mut *const ::std::os::raw::c_char,
        out_buf_end: *mut *const ::std::os::raw::c_char,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatFindStart(
        format: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatFindEnd(
        format: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatTrimDecorations(
        format: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatSanitizeForPrinting(
        fmt_in: *const ::std::os::raw::c_char,
        fmt_out: *mut ::std::os::raw::c_char,
        fmt_out_size: usize,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatSanitizeForScanning(
        fmt_in: *const ::std::os::raw::c_char,
        fmt_out: *mut ::std::os::raw::c_char,
        fmt_out_size: usize,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImParseFormatPrecision(
        format: *const ::std::os::raw::c_char,
        default_value: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCharToUtf8(
        out_buf: *mut ::std::os::raw::c_char,
        c: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextStrToUtf8(
        out_buf: *mut ::std::os::raw::c_char,
        out_buf_size: ::std::os::raw::c_int,
        in_text: *const ImWchar,
        in_text_end: *const ImWchar,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCharFromUtf8(
        out_char: *mut ::std::os::raw::c_uint,
        in_text: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextStrFromUtf8(
        out_buf: *mut ImWchar,
        out_buf_size: ::std::os::raw::c_int,
        in_text: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
        in_remaining: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCountCharsFromUtf8(
        in_text: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCountUtf8BytesFromChar(
        in_text: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCountUtf8BytesFromStr(
        in_text: *const ImWchar,
        in_text_end: *const ImWchar,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextFindPreviousUtf8Codepoint(
        in_text_start: *const ::std::os::raw::c_char,
        in_p: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextFindValidUtf8CodepointEnd(
        in_text_start: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
        in_p: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCountLines(
        in_text: *const ::std::os::raw::c_char,
        in_text_end: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontCalcTextSizeEx(
        font: *mut ImFont,
        size: f32,
        max_width: f32,
        wrap_width: f32,
        text_begin: *const ::std::os::raw::c_char,
        text_end_display: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        out_remaining: *mut *const ::std::os::raw::c_char,
        out_offset: *mut ImVec2_c,
        flags: ImDrawTextFlags,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontCalcWordWrapPositionEx(
        font: *mut ImFont,
        size: f32,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        wrap_width: f32,
        flags: ImDrawTextFlags,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextCalcWordWrapNextLineStart(
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        flags: ImDrawTextFlags,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextInitClassifiers();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextClassifierClear(
        bits: *mut ImU32,
        codepoint_min: ::std::os::raw::c_uint,
        codepoint_end: ::std::os::raw::c_uint,
        char_class: ImWcharClass,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextClassifierSetCharClass(
        bits: *mut ImU32,
        codepoint_min: ::std::os::raw::c_uint,
        codepoint_end: ::std::os::raw::c_uint,
        char_class: ImWcharClass,
        c: ::std::os::raw::c_uint,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextClassifierSetCharClassFromStr(
        bits: *mut ImU32,
        codepoint_min: ::std::os::raw::c_uint,
        codepoint_end: ::std::os::raw::c_uint,
        char_class: ImWcharClass,
        s: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileOpen(
        filename: *const ::std::os::raw::c_char,
        mode: *const ::std::os::raw::c_char,
    ) -> ImFileHandle;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileClose(file: ImFileHandle) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileGetSize(file: ImFileHandle) -> ImU64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileRead(
        data: *mut ::std::os::raw::c_void,
        size: ImU64,
        count: ImU64,
        file: ImFileHandle,
    ) -> ImU64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileWrite(
        data: *const ::std::os::raw::c_void,
        size: ImU64,
        count: ImU64,
        file: ImFileHandle,
    ) -> ImU64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFileLoadToMemory(
        filename: *const ::std::os::raw::c_char,
        mode: *const ::std::os::raw::c_char,
        out_file_size: *mut usize,
        padding_bytes: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImPow_Float(x: f32, y: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImPow_double(x: f64, y: f64) -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLog_Float(x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLog_double(x: f64) -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImAbs_Int(x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImAbs_Float(x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImAbs_double(x: f64) -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImSign_Float(x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImSign_double(x: f64) -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImRsqrt_Float(x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImRsqrt_double(x: f64) -> f64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImMin(lhs: ImVec2_c, rhs: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImMax(lhs: ImVec2_c, rhs: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImClamp(v: ImVec2_c, mn: ImVec2_c, mx: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLerp_Vec2Float(a: ImVec2_c, b: ImVec2_c, t: f32) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLerp_Vec2Vec2(a: ImVec2_c, b: ImVec2_c, t: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLerp_Vec4(a: ImVec4_c, b: ImVec4_c, t: f32) -> ImVec4_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImSaturate(f: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLengthSqr_Vec2(lhs: ImVec2_c) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLengthSqr_Vec4(lhs: ImVec4_c) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImInvLength(lhs: ImVec2_c, fail_value: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTrunc_Float(f: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTrunc_Vec2(v: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFloor_Float(f: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFloor_Vec2(v: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTrunc64(f: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImRound64(f: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImModPositive(
        a: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImDot(a: ImVec2_c, b: ImVec2_c) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImRotate(v: ImVec2_c, cos_a: f32, sin_a: f32) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLinearSweep(current: f32, target: f32, speed: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLinearRemapClamp(s0: f32, s1: f32, d0: f32, d1: f32, x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImMul(lhs: ImVec2_c, rhs: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImIsFloatAboveGuaranteedIntegerPrecision(f: f32) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImExponentialMovingAverage(avg: f32, sample: f32, n: ::std::os::raw::c_int) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBezierCubicCalc(
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        t: f32,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBezierCubicClosestPoint(
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        p: ImVec2_c,
        num_segments: ::std::os::raw::c_int,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBezierCubicClosestPointCasteljau(
        p1: ImVec2_c,
        p2: ImVec2_c,
        p3: ImVec2_c,
        p4: ImVec2_c,
        p: ImVec2_c,
        tess_tol: f32,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBezierQuadraticCalc(p1: ImVec2_c, p2: ImVec2_c, p3: ImVec2_c, t: f32) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLineClosestPoint(a: ImVec2_c, b: ImVec2_c, p: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTriangleContainsPoint(a: ImVec2_c, b: ImVec2_c, c: ImVec2_c, p: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTriangleClosestPoint(a: ImVec2_c, b: ImVec2_c, c: ImVec2_c, p: ImVec2_c)
        -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTriangleBarycentricCoords(
        a: ImVec2_c,
        b: ImVec2_c,
        c: ImVec2_c,
        p: ImVec2_c,
        out_u: *mut f32,
        out_v: *mut f32,
        out_w: *mut f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTriangleArea(a: ImVec2_c, b: ImVec2_c, c: ImVec2_c) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTriangleIsClockwise(a: ImVec2_c, b: ImVec2_c, c: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec1_ImVec1_Nil() -> *mut ImVec1;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec1_destroy(self_: *mut ImVec1);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec1_ImVec1_Float(_x: f32) -> *mut ImVec1;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2i_ImVec2i_Nil() -> *mut ImVec2i;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2i_destroy(self_: *mut ImVec2i);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2i_ImVec2i_Int(
        _x: ::std::os::raw::c_int,
        _y: ::std::os::raw::c_int,
    ) -> *mut ImVec2i;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2ih_ImVec2ih_Nil() -> *mut ImVec2ih;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2ih_destroy(self_: *mut ImVec2ih);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2ih_ImVec2ih_short(
        _x: ::std::os::raw::c_short,
        _y: ::std::os::raw::c_short,
    ) -> *mut ImVec2ih;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVec2ih_ImVec2ih_Vec2(rhs: ImVec2_c) -> *mut ImVec2ih;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ImRect_Nil() -> *mut ImRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_destroy(self_: *mut ImRect);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ImRect_Vec2(min: ImVec2_c, max: ImVec2_c) -> *mut ImRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ImRect_Vec4(v: ImVec4_c) -> *mut ImRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ImRect_Float(x1: f32, y1: f32, x2: f32, y2: f32) -> *mut ImRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetCenter(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetSize(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetWidth(self_: *mut ImRect) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetHeight(self_: *mut ImRect) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetArea(self_: *mut ImRect) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetTL(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetTR(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetBL(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_GetBR(self_: *mut ImRect) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Contains_Vec2(self_: *mut ImRect, p: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Contains_Rect(self_: *mut ImRect, r: ImRect_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ContainsWithPad(self_: *mut ImRect, p: ImVec2_c, pad: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Overlaps(self_: *mut ImRect, r: ImRect_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Add_Vec2(self_: *mut ImRect, p: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Add_Rect(self_: *mut ImRect, r: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_AddX(self_: *mut ImRect, x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_AddY(self_: *mut ImRect, y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Expand_Float(self_: *mut ImRect, amount: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Expand_Vec2(self_: *mut ImRect, amount: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_Translate(self_: *mut ImRect, d: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_TranslateX(self_: *mut ImRect, dx: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_TranslateY(self_: *mut ImRect, dy: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ClipWith(self_: *mut ImRect, r: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ClipWithFull(self_: *mut ImRect, r: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_IsInverted(self_: *mut ImRect) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_ToVec4(self_: *mut ImRect) -> ImVec4_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImRect_AsVec4(self_: *mut ImRect) -> *const ImVec4_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArrayGetStorageSizeInBytes(bitcount: ::std::os::raw::c_int) -> usize;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArrayClearAllBits(arr: *mut ImU32, bitcount: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArrayTestBit(arr: *const ImU32, n: ::std::os::raw::c_int) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArrayClearBit(arr: *mut ImU32, n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArraySetBit(arr: *mut ImU32, n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImBitArraySetBitRange(
        arr: *mut ImU32,
        n: ::std::os::raw::c_int,
        n2: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImBitVector_Create(self_: *mut ImBitVector, sz: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImBitVector_Clear(self_: *mut ImBitVector);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImBitVector_TestBit(self_: *mut ImBitVector, n: ::std::os::raw::c_int) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImBitVector_SetBit(self_: *mut ImBitVector, n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImBitVector_ClearBit(self_: *mut ImBitVector, n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextIndex_clear(self_: *mut ImGuiTextIndex);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextIndex_size(self_: *mut ImGuiTextIndex) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextIndex_get_line_begin(
        self_: *mut ImGuiTextIndex,
        base: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextIndex_get_line_end(
        self_: *mut ImGuiTextIndex,
        base: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTextIndex_append(
        self_: *mut ImGuiTextIndex,
        base: *const ::std::os::raw::c_char,
        old_size: ::std::os::raw::c_int,
        new_size: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImLowerBound(
        in_begin: *mut ImGuiStoragePair,
        in_end: *mut ImGuiStoragePair,
        key: ImGuiID,
    ) -> *mut ImGuiStoragePair;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSharedData_ImDrawListSharedData() -> *mut ImDrawListSharedData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSharedData_destroy(self_: *mut ImDrawListSharedData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawListSharedData_SetCircleTessellationMaxError(
        self_: *mut ImDrawListSharedData,
        max_error: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawDataBuilder_ImDrawDataBuilder() -> *mut ImDrawDataBuilder;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImDrawDataBuilder_destroy(self_: *mut ImDrawDataBuilder);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyleVarInfo_GetVarPtr(
        self_: *mut ImGuiStyleVarInfo,
        parent: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyleMod_ImGuiStyleMod_Int(
        idx: ImGuiStyleVar,
        v: ::std::os::raw::c_int,
    ) -> *mut ImGuiStyleMod;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyleMod_destroy(self_: *mut ImGuiStyleMod);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyleMod_ImGuiStyleMod_Float(idx: ImGuiStyleVar, v: f32) -> *mut ImGuiStyleMod;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStyleMod_ImGuiStyleMod_Vec2(idx: ImGuiStyleVar, v: ImVec2_c) -> *mut ImGuiStyleMod;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiComboPreviewData_ImGuiComboPreviewData() -> *mut ImGuiComboPreviewData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiComboPreviewData_destroy(self_: *mut ImGuiComboPreviewData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMenuColumns_ImGuiMenuColumns() -> *mut ImGuiMenuColumns;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMenuColumns_destroy(self_: *mut ImGuiMenuColumns);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMenuColumns_Update(
        self_: *mut ImGuiMenuColumns,
        spacing: f32,
        window_reappearing: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMenuColumns_DeclColumns(
        self_: *mut ImGuiMenuColumns,
        w_icon: f32,
        w_label: f32,
        w_shortcut: f32,
        w_mark: f32,
    ) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMenuColumns_CalcNextTotalWidth(self_: *mut ImGuiMenuColumns, update_offsets: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState(
    ) -> *mut ImGuiInputTextDeactivatedState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextDeactivatedState_destroy(self_: *mut ImGuiInputTextDeactivatedState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextDeactivatedState_ClearFreeMemory(
        self_: *mut ImGuiInputTextDeactivatedState,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ImGuiInputTextState() -> *mut ImGuiInputTextState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_destroy(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ClearText(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ClearFreeMemory(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_OnKeyPressed(
        self_: *mut ImGuiInputTextState,
        key: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_OnCharPressed(
        self_: *mut ImGuiInputTextState,
        c: ::std::os::raw::c_uint,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_GetPreferredOffsetX(self_: *mut ImGuiInputTextState) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_GetText(
        self_: *mut ImGuiInputTextState,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_CursorAnimReset(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_CursorClamp(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_HasSelection(self_: *mut ImGuiInputTextState) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ClearSelection(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_GetCursorPos(
        self_: *mut ImGuiInputTextState,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_GetSelectionStart(
        self_: *mut ImGuiInputTextState,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_GetSelectionEnd(
        self_: *mut ImGuiInputTextState,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_SetSelection(
        self_: *mut ImGuiInputTextState,
        start: ::std::os::raw::c_int,
        end: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_SelectAll(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ReloadUserBufAndSelectAll(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ReloadUserBufAndKeepSelection(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self_: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextWindowData_ImGuiNextWindowData() -> *mut ImGuiNextWindowData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextWindowData_destroy(self_: *mut ImGuiNextWindowData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextWindowData_ClearFlags(self_: *mut ImGuiNextWindowData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextItemData_ImGuiNextItemData() -> *mut ImGuiNextItemData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextItemData_destroy(self_: *mut ImGuiNextItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNextItemData_ClearFlags(self_: *mut ImGuiNextItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiLastItemData_ImGuiLastItemData() -> *mut ImGuiLastItemData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiLastItemData_destroy(self_: *mut ImGuiLastItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiErrorRecoveryState_ImGuiErrorRecoveryState() -> *mut ImGuiErrorRecoveryState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiErrorRecoveryState_destroy(self_: *mut ImGuiErrorRecoveryState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(
        ptr: *mut ::std::os::raw::c_void,
    ) -> *mut ImGuiPtrOrIndex;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPtrOrIndex_destroy(self_: *mut ImGuiPtrOrIndex);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(
        index: ::std::os::raw::c_int,
    ) -> *mut ImGuiPtrOrIndex;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputEvent_ImGuiInputEvent() -> *mut ImGuiInputEvent;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiInputEvent_destroy(self_: *mut ImGuiInputEvent);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyRoutingData_ImGuiKeyRoutingData() -> *mut ImGuiKeyRoutingData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyRoutingData_destroy(self_: *mut ImGuiKeyRoutingData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyRoutingTable_ImGuiKeyRoutingTable() -> *mut ImGuiKeyRoutingTable;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyRoutingTable_destroy(self_: *mut ImGuiKeyRoutingTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyRoutingTable_Clear(self_: *mut ImGuiKeyRoutingTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyOwnerData_ImGuiKeyOwnerData() -> *mut ImGuiKeyOwnerData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiKeyOwnerData_destroy(self_: *mut ImGuiKeyOwnerData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipperRange_FromIndices(
        min: ::std::os::raw::c_int,
        max: ::std::os::raw::c_int,
    ) -> ImGuiListClipperRange;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipperRange_FromPositions(
        y1: f32,
        y2: f32,
        off_min: ::std::os::raw::c_int,
        off_max: ::std::os::raw::c_int,
    ) -> ImGuiListClipperRange;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipperData_ImGuiListClipperData() -> *mut ImGuiListClipperData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipperData_destroy(self_: *mut ImGuiListClipperData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiListClipperData_Reset(
        self_: *mut ImGuiListClipperData,
        clipper: *mut ImGuiListClipper,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNavItemData_ImGuiNavItemData() -> *mut ImGuiNavItemData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNavItemData_destroy(self_: *mut ImGuiNavItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiNavItemData_Clear(self_: *mut ImGuiNavItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTypingSelectState_ImGuiTypingSelectState() -> *mut ImGuiTypingSelectState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTypingSelectState_destroy(self_: *mut ImGuiTypingSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTypingSelectState_Clear(self_: *mut ImGuiTypingSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOldColumnData_ImGuiOldColumnData() -> *mut ImGuiOldColumnData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOldColumnData_destroy(self_: *mut ImGuiOldColumnData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOldColumns_ImGuiOldColumns() -> *mut ImGuiOldColumns;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiOldColumns_destroy(self_: *mut ImGuiOldColumns);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiBoxSelectState_ImGuiBoxSelectState() -> *mut ImGuiBoxSelectState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiBoxSelectState_destroy(self_: *mut ImGuiBoxSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectTempData_ImGuiMultiSelectTempData() -> *mut ImGuiMultiSelectTempData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectTempData_destroy(self_: *mut ImGuiMultiSelectTempData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectTempData_Clear(self_: *mut ImGuiMultiSelectTempData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectTempData_ClearIO(self_: *mut ImGuiMultiSelectTempData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectState_ImGuiMultiSelectState() -> *mut ImGuiMultiSelectState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiMultiSelectState_destroy(self_: *mut ImGuiMultiSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_ImGuiDockNode(id: ImGuiID) -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_destroy(self_: *mut ImGuiDockNode);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsRootNode(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsDockSpace(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsFloatingNode(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsCentralNode(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsHiddenTabBar(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsNoTabBar(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsSplitNode(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsLeafNode(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_IsEmpty(self_: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_Rect(self_: *mut ImGuiDockNode) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_SetLocalFlags(self_: *mut ImGuiDockNode, flags: ImGuiDockNodeFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockNode_UpdateMergedFlags(self_: *mut ImGuiDockNode);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockContext_ImGuiDockContext() -> *mut ImGuiDockContext;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDockContext_destroy(self_: *mut ImGuiDockContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_ImGuiViewportP() -> *mut ImGuiViewportP;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_destroy(self_: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_ClearRequestFlags(self_: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_CalcWorkRectPos(
        self_: *mut ImGuiViewportP,
        inset_min: ImVec2_c,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_CalcWorkRectSize(
        self_: *mut ImGuiViewportP,
        inset_min: ImVec2_c,
        inset_max: ImVec2_c,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_UpdateWorkRect(self_: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_GetMainRect(self_: *mut ImGuiViewportP) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_GetWorkRect(self_: *mut ImGuiViewportP) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiViewportP_GetBuildWorkRect(self_: *mut ImGuiViewportP) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindowSettings_ImGuiWindowSettings() -> *mut ImGuiWindowSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindowSettings_destroy(self_: *mut ImGuiWindowSettings);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindowSettings_GetName(
        self_: *mut ImGuiWindowSettings,
    ) -> *mut ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSettingsHandler_ImGuiSettingsHandler() -> *mut ImGuiSettingsHandler;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiSettingsHandler_destroy(self_: *mut ImGuiSettingsHandler);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDebugAllocInfo_ImGuiDebugAllocInfo() -> *mut ImGuiDebugAllocInfo;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDebugAllocInfo_destroy(self_: *mut ImGuiDebugAllocInfo);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStackLevelInfo_ImGuiStackLevelInfo() -> *mut ImGuiStackLevelInfo;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiStackLevelInfo_destroy(self_: *mut ImGuiStackLevelInfo);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDebugItemPathQuery_ImGuiDebugItemPathQuery() -> *mut ImGuiDebugItemPathQuery;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiDebugItemPathQuery_destroy(self_: *mut ImGuiDebugItemPathQuery);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIDStackTool_ImGuiIDStackTool() -> *mut ImGuiIDStackTool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiIDStackTool_destroy(self_: *mut ImGuiIDStackTool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiContextHook_ImGuiContextHook() -> *mut ImGuiContextHook;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiContextHook_destroy(self_: *mut ImGuiContextHook);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiContext_ImGuiContext(shared_font_atlas: *mut ImFontAtlas) -> *mut ImGuiContext;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiContext_destroy(self_: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_ImGuiWindow(
        context: *mut ImGuiContext,
        name: *const ::std::os::raw::c_char,
    ) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_destroy(self_: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_GetID_Str(
        self_: *mut ImGuiWindow,
        str_: *const ::std::os::raw::c_char,
        str_end: *const ::std::os::raw::c_char,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_GetID_Ptr(
        self_: *mut ImGuiWindow,
        ptr: *const ::std::os::raw::c_void,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_GetID_Int(self_: *mut ImGuiWindow, n: ::std::os::raw::c_int) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_GetIDFromPos(self_: *mut ImGuiWindow, p_abs: ImVec2_c) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_GetIDFromRectangle(self_: *mut ImGuiWindow, r_abs: ImRect_c) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_Rect(self_: *mut ImGuiWindow) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_TitleBarRect(self_: *mut ImGuiWindow) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiWindow_MenuBarRect(self_: *mut ImGuiWindow) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTabItem_ImGuiTabItem() -> *mut ImGuiTabItem;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTabItem_destroy(self_: *mut ImGuiTabItem);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTabBar_ImGuiTabBar() -> *mut ImGuiTabBar;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTabBar_destroy(self_: *mut ImGuiTabBar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumn_ImGuiTableColumn() -> *mut ImGuiTableColumn;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumn_destroy(self_: *mut ImGuiTableColumn);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableInstanceData_ImGuiTableInstanceData() -> *mut ImGuiTableInstanceData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableInstanceData_destroy(self_: *mut ImGuiTableInstanceData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTable_ImGuiTable() -> *mut ImGuiTable;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTable_destroy(self_: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableTempData_ImGuiTableTempData() -> *mut ImGuiTableTempData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableTempData_destroy(self_: *mut ImGuiTableTempData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumnSettings_ImGuiTableColumnSettings() -> *mut ImGuiTableColumnSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableColumnSettings_destroy(self_: *mut ImGuiTableColumnSettings);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableSettings_ImGuiTableSettings() -> *mut ImGuiTableSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableSettings_destroy(self_: *mut ImGuiTableSettings);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiTableSettings_GetColumnSettings(
        self_: *mut ImGuiTableSettings,
    ) -> *mut ImGuiTableColumnSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetIO_ContextPtr(ctx: *mut ImGuiContext) -> *mut ImGuiIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetPlatformIO_ContextPtr(ctx: *mut ImGuiContext) -> *mut ImGuiPlatformIO;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetScale() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentWindowRead() -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentWindow() -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindWindowByID(id: ImGuiID) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindWindowByName(name: *const ::std::os::raw::c_char) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateWindowParentAndRootLinks(
        window: *mut ImGuiWindow,
        flags: ImGuiWindowFlags,
        parent_window: *mut ImGuiWindow,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateWindowSkipRefresh(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcWindowNextAutoFitSize(window: *mut ImGuiWindow) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowChildOf(
        window: *mut ImGuiWindow,
        potential_parent: *mut ImGuiWindow,
        popup_hierarchy: bool,
        dock_hierarchy: bool,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowInBeginStack(window: *mut ImGuiWindow) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowWithinBeginStackOf(
        window: *mut ImGuiWindow,
        potential_parent: *mut ImGuiWindow,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowAbove(
        potential_above: *mut ImGuiWindow,
        potential_below: *mut ImGuiWindow,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowNavFocusable(window: *mut ImGuiWindow) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowPos_WindowPtr(window: *mut ImGuiWindow, pos: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowSize_WindowPtr(window: *mut ImGuiWindow, size: ImVec2_c, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowCollapsed_WindowPtr(
        window: *mut ImGuiWindow,
        collapsed: bool,
        cond: ImGuiCond,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2_c, size: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowHiddenAndSkipItemsForCurrentFrame(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowParentWindowForFocusRoute(
        window: *mut ImGuiWindow,
        parent_window: *mut ImGuiWindow,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igWindowRectAbsToRel(window: *mut ImGuiWindow, r: ImRect_c) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igWindowRectRelToAbs(window: *mut ImGuiWindow, r: ImRect_c) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igWindowPosAbsToRel(window: *mut ImGuiWindow, p: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igWindowPosRelToAbs(window: *mut ImGuiWindow, p: ImVec2_c) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFocusWindow(window: *mut ImGuiWindow, flags: ImGuiFocusRequestFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFocusTopMostWindowUnderOne(
        under_this_window: *mut ImGuiWindow,
        ignore_window: *mut ImGuiWindow,
        filter_viewport: *mut ImGuiViewport,
        flags: ImGuiFocusRequestFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBringWindowToFocusFront(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBringWindowToDisplayFront(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBringWindowToDisplayBack(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBringWindowToDisplayBehind(window: *mut ImGuiWindow, above_window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindWindowDisplayIndex(window: *mut ImGuiWindow) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindBottomMostVisibleWindowWithinBeginStack(
        window: *mut ImGuiWindow,
    ) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRegisterUserTexture(tex: *mut ImTextureData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUnregisterUserTexture(tex: *mut ImTextureData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRegisterFontAtlas(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUnregisterFontAtlas(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCurrentFont(
        font: *mut ImFont,
        font_size_before_scaling: f32,
        font_size_after_scaling: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateCurrentFontSize(restore_font_size_after_scaling: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetFontRasterizerDensity(rasterizer_density: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFontRasterizerDensity() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetRoundedFontSize(size: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetDefaultFont() -> *mut ImFont;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushPasswordFont();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopPasswordFont();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetForegroundDrawList_WindowPtr(window: *mut ImGuiWindow) -> *mut ImDrawList;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igAddDrawListToDrawDataEx(
        draw_data: *mut ImDrawData,
        out_list: *mut ImVector_ImDrawListPtr,
        draw_list: *mut ImDrawList,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInitialize();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShutdown();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetContextName(ctx: *mut ImGuiContext, name: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igAddContextHook(ctx: *mut ImGuiContext, hook: *const ImGuiContextHook) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRemoveContextHook(ctx: *mut ImGuiContext, hook_to_remove: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCallContextHooks(ctx: *mut ImGuiContext, type_: ImGuiContextHookType);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateInputEvents(trickle_fast_inputs: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateHoveredWindowAndCaptureFlags(mouse_pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindHoveredWindowEx(
        pos: ImVec2_c,
        find_first_and_in_any_viewport: bool,
        out_hovered_window: *mut *mut ImGuiWindow,
        out_hovered_window_under_moving_window: *mut *mut ImGuiWindow,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStartMouseMovingWindow(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStartMouseMovingWindowOrNode(
        window: *mut ImGuiWindow,
        node: *mut ImGuiDockNode,
        undock: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igStopMouseMovingWindow();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateMouseMovingWindowNewFrame();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igUpdateMouseMovingWindowEndFrame();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTranslateWindowsInViewport(
        viewport: *mut ImGuiViewportP,
        old_pos: ImVec2_c,
        new_pos: ImVec2_c,
        old_size: ImVec2_c,
        new_size: ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScaleWindowsInViewport(viewport: *mut ImGuiViewportP, scale: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDestroyPlatformWindow(viewport: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowViewport(window: *mut ImGuiWindow, viewport: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetCurrentViewport(window: *mut ImGuiWindow, viewport: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetViewportPlatformMonitor(
        viewport: *mut ImGuiViewport,
    ) -> *const ImGuiPlatformMonitor;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindHoveredViewportFromPlatformWindowStack(
        mouse_platform_pos: ImVec2_c,
    ) -> *mut ImGuiViewportP;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMarkIniSettingsDirty_Nil();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMarkIniSettingsDirty_WindowPtr(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClearIniSettings();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igAddSettingsHandler(handler: *const ImGuiSettingsHandler);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRemoveSettingsHandler(type_name: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindSettingsHandler(
        type_name: *const ::std::os::raw::c_char,
    ) -> *mut ImGuiSettingsHandler;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCreateNewWindowSettings(
        name: *const ::std::os::raw::c_char,
    ) -> *mut ImGuiWindowSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindWindowSettingsByID(id: ImGuiID) -> *mut ImGuiWindowSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindWindowSettingsByWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindowSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClearWindowSettings(name: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLocalizeRegisterEntries(entries: *const ImGuiLocEntry, count: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLocalizeGetMsg(key: ImGuiLocKey) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollX_WindowPtr(window: *mut ImGuiWindow, scroll_x: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollY_WindowPtr(window: *mut ImGuiWindow, scroll_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollFromPosX_WindowPtr(
        window: *mut ImGuiWindow,
        local_x: f32,
        center_x_ratio: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetScrollFromPosY_WindowPtr(
        window: *mut ImGuiWindow,
        local_y: f32,
        center_y_ratio: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollToItem(flags: ImGuiScrollFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollToRect(window: *mut ImGuiWindow, rect: ImRect_c, flags: ImGuiScrollFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollToRectEx(
        window: *mut ImGuiWindow,
        rect: ImRect_c,
        flags: ImGuiScrollFlags,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollToBringRectIntoView(window: *mut ImGuiWindow, rect: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetItemStatusFlags() -> ImGuiItemStatusFlags;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetActiveID() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetFocusID() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetActiveID(id: ImGuiID, window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetFocusID(id: ImGuiID, window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClearActiveID();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetHoveredID() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetHoveredID(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igKeepAliveID(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMarkItemEdited(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushOverrideID(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetIDWithSeed_Str(
        str_id_begin: *const ::std::os::raw::c_char,
        str_id_end: *const ::std::os::raw::c_char,
        seed: ImGuiID,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetIDWithSeed_Int(n: ::std::os::raw::c_int, seed: ImGuiID) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igItemSize_Vec2(size: ImVec2_c, text_baseline_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igItemSize_Rect(bb: ImRect_c, text_baseline_y: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igItemAdd(
        bb: ImRect_c,
        id: ImGuiID,
        nav_bb: *const ImRect,
        extra_flags: ImGuiItemFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igItemHoverable(bb: ImRect_c, id: ImGuiID, item_flags: ImGuiItemFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsWindowContentHoverable(window: *mut ImGuiWindow, flags: ImGuiHoveredFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsClippedEx(bb: ImRect_c, id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetLastItemData(
        item_id: ImGuiID,
        item_flags: ImGuiItemFlags,
        status_flags: ImGuiItemStatusFlags,
        item_rect: ImRect_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcItemSize(size: ImVec2_c, default_w: f32, default_h: f32) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcWrapWidthForPos(pos: ImVec2_c, wrap_pos_x: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushMultiItemsWidths(components: ::std::os::raw::c_int, width_full: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShrinkWidths(
        items: *mut ImGuiShrinkWidthItem,
        count: ::std::os::raw::c_int,
        width_excess: f32,
        width_min: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcClipRectVisibleItemsY(
        clip_rect: ImRect_c,
        pos: ImVec2_c,
        items_height: f32,
        out_visible_start: *mut ::std::os::raw::c_int,
        out_visible_end: *mut ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetStyleVarInfo(idx: ImGuiStyleVar) -> *const ImGuiStyleVarInfo;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDisabledOverrideReenable();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndDisabledOverrideReenable();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogBegin(flags: ImGuiLogFlags, auto_open_depth: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogToBuffer(auto_open_depth: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogRenderedText(
        ref_pos: *const ImVec2_c,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igLogSetNextTextDecoration(
        prefix: *const ::std::os::raw::c_char,
        suffix: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginChildEx(
        name: *const ::std::os::raw::c_char,
        id: ImGuiID,
        size_arg: ImVec2_c,
        child_flags: ImGuiChildFlags,
        window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindFrontMostVisibleChildWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupEx(id: ImGuiID, extra_window_flags: ImGuiWindowFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginPopupMenuEx(
        id: ImGuiID,
        label: *const ::std::os::raw::c_char,
        extra_window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igOpenPopupEx(id: ImGuiID, popup_flags: ImGuiPopupFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClosePopupToLevel(
        remaining: ::std::os::raw::c_int,
        restore_focus_to_window_under_popup: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClosePopupsOverWindow(
        ref_window: *mut ImGuiWindow,
        restore_focus_to_window_under_popup: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClosePopupsExceptModals();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsPopupOpen_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetPopupAllowedExtentRect(window: *mut ImGuiWindow) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTopMostPopupModal() -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindBlockingModal(window: *mut ImGuiWindow) -> *mut ImGuiWindow;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindBestWindowPosForPopup(window: *mut ImGuiWindow) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindBestWindowPosForPopupEx(
        ref_pos: ImVec2_c,
        size: ImVec2_c,
        last_dir: *mut ImGuiDir,
        r_outer: ImRect_c,
        r_avoid: ImRect_c,
        policy: ImGuiPopupPositionPolicy,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMouseButtonFromPopupFlags(flags: ImGuiPopupFlags) -> ImGuiMouseButton;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsPopupOpenRequestForItem(flags: ImGuiPopupFlags, id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsPopupOpenRequestForWindow(flags: ImGuiPopupFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTooltipEx(
        tooltip_flags: ImGuiTooltipFlags,
        extra_window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTooltipHidden() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginViewportSideBar(
        name: *const ::std::os::raw::c_char,
        viewport: *mut ImGuiViewport,
        dir: ImGuiDir,
        size: f32,
        window_flags: ImGuiWindowFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginMenuEx(
        label: *const ::std::os::raw::c_char,
        icon: *const ::std::os::raw::c_char,
        enabled: bool,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMenuItemEx(
        label: *const ::std::os::raw::c_char,
        icon: *const ::std::os::raw::c_char,
        shortcut: *const ::std::os::raw::c_char,
        selected: bool,
        enabled: bool,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginComboPopup(popup_id: ImGuiID, bb: ImRect_c, flags: ImGuiComboFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginComboPreview() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndComboPreview();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavInitWindow(window: *mut ImGuiWindow, force_reinit: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavInitRequestApplyResult();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestButNoResultYet() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestSubmit(
        move_dir: ImGuiDir,
        clip_dir: ImGuiDir,
        move_flags: ImGuiNavMoveFlags,
        scroll_flags: ImGuiScrollFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestForward(
        move_dir: ImGuiDir,
        clip_dir: ImGuiDir,
        move_flags: ImGuiNavMoveFlags,
        scroll_flags: ImGuiScrollFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestResolveWithPastTreeNode(
        result: *mut ImGuiNavItemData,
        tree_node_data: *const ImGuiTreeNodeStackData,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestCancel();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestApplyResult();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavMoveRequestTryWrapping(window: *mut ImGuiWindow, move_flags: ImGuiNavMoveFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavHighlightActivated(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavClearPreferredPosForAxis(axis: ImGuiAxis);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNavCursorVisibleAfterMove();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igNavUpdateCurrentWindowIsScrollPushableX();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNavWindow(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNavID(
        id: ImGuiID,
        nav_layer: ImGuiNavLayer,
        focus_scope_id: ImGuiID,
        rect_rel: ImRect_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNavFocusScope(focus_scope_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFocusItem();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igActivateItemByID(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsNamedKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsNamedKeyOrMod(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsLegacyKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyboardKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsGamepadKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsAliasKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsLRModKey(key: ImGuiKey) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFixupKeyChord(key_chord: ImGuiKeyChord) -> ImGuiKeyChord;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igConvertSingleModFlagToKey(key: ImGuiKey) -> ImGuiKey;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyData_ContextPtr(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyData_Key(key: ImGuiKey) -> *mut ImGuiKeyData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyChordName(key_chord: ImGuiKeyChord) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMouseButtonToKey(button: ImGuiMouseButton) -> ImGuiKey;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDragPastThreshold(button: ImGuiMouseButton, lock_threshold: f32) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyMagnitude2d(
        key_left: ImGuiKey,
        key_right: ImGuiKey,
        key_up: ImGuiKey,
        key_down: ImGuiKey,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetNavTweakPressedAmount(axis: ImGuiAxis) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcTypematicRepeatAmount(
        t0: f32,
        t1: f32,
        repeat_delay: f32,
        repeat_rate: f32,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTypematicRepeatRate(
        flags: ImGuiInputFlags,
        repeat_delay: *mut f32,
        repeat_rate: *mut f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTeleportMousePos(pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetActiveIdUsingAllKeyboardKeys();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsActiveIdUsingNavDir(dir: ImGuiDir) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyOwner(key: ImGuiKey) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetKeyOwner(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetKeyOwnersForKeyChord(key: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetItemKeyOwner_InputFlags(key: ImGuiKey, flags: ImGuiInputFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTestKeyOwner(key: ImGuiKey, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetKeyOwnerData(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyOwnerData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyDown_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyPressed_InputFlags(
        key: ImGuiKey,
        flags: ImGuiInputFlags,
        owner_id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyReleased_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsKeyChordPressed_InputFlags(
        key_chord: ImGuiKeyChord,
        flags: ImGuiInputFlags,
        owner_id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDown_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseClicked_InputFlags(
        button: ImGuiMouseButton,
        flags: ImGuiInputFlags,
        owner_id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseReleased_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsMouseDoubleClicked_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShortcut_ID(
        key_chord: ImGuiKeyChord,
        flags: ImGuiInputFlags,
        owner_id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetShortcutRouting(
        key_chord: ImGuiKeyChord,
        flags: ImGuiInputFlags,
        owner_id: ImGuiID,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTestShortcutRouting(key_chord: ImGuiKeyChord, owner_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetShortcutRoutingData(key_chord: ImGuiKeyChord) -> *mut ImGuiKeyRoutingData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextInitialize(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextShutdown(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextClearNodes(
        ctx: *mut ImGuiContext,
        root_id: ImGuiID,
        clear_settings_refs: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextRebuildNodes(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextNewFrameUpdateUndocking(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextNewFrameUpdateDocking(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextEndFrame(ctx: *mut ImGuiContext);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextGenNodeID(ctx: *mut ImGuiContext) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextQueueDock(
        ctx: *mut ImGuiContext,
        target: *mut ImGuiWindow,
        target_node: *mut ImGuiDockNode,
        payload: *mut ImGuiWindow,
        split_dir: ImGuiDir,
        split_ratio: f32,
        split_outer: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextQueueUndockWindow(ctx: *mut ImGuiContext, window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextQueueUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextProcessUndockWindow(
        ctx: *mut ImGuiContext,
        window: *mut ImGuiWindow,
        clear_persistent_docking_ref: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextProcessUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextCalcDropPosForDocking(
        target: *mut ImGuiWindow,
        target_node: *mut ImGuiDockNode,
        payload_window: *mut ImGuiWindow,
        payload_node: *mut ImGuiDockNode,
        split_dir: ImGuiDir,
        split_outer: bool,
        out_pos: *mut ImVec2_c,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockContextFindNodeByID(ctx: *mut ImGuiContext, id: ImGuiID) -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeWindowMenuHandler_Default(
        ctx: *mut ImGuiContext,
        node: *mut ImGuiDockNode,
        tab_bar: *mut ImGuiTabBar,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeBeginAmendTabBar(node: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeEndAmendTabBar();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeGetRootNode(node: *mut ImGuiDockNode) -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeIsInHierarchyOf(node: *mut ImGuiDockNode, parent: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeGetDepth(node: *const ImGuiDockNode) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockNodeGetWindowMenuButtonId(node: *const ImGuiDockNode) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowDockNode() -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowAlwaysWantOwnTabBar(window: *mut ImGuiWindow) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDocked(window: *mut ImGuiWindow, p_open: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDockableDragDropSource(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDockableDragDropTarget(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowDock(window: *mut ImGuiWindow, dock_id: ImGuiID, cond: ImGuiCond);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderDockWindow(window_name: *const ::std::os::raw::c_char, node_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderGetNode(node_id: ImGuiID) -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderGetCentralNode(node_id: ImGuiID) -> *mut ImGuiDockNode;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderAddNode(node_id: ImGuiID, flags: ImGuiDockNodeFlags) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderRemoveNode(node_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderRemoveNodeDockedWindows(node_id: ImGuiID, clear_settings_refs: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderRemoveNodeChildNodes(node_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderSetNodePos(node_id: ImGuiID, pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderSetNodeSize(node_id: ImGuiID, size: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderSplitNode(
        node_id: ImGuiID,
        split_dir: ImGuiDir,
        size_ratio_for_node_at_dir: f32,
        out_id_at_dir: *mut ImGuiID,
        out_id_at_opposite_dir: *mut ImGuiID,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderCopyDockSpace(
        src_dockspace_id: ImGuiID,
        dst_dockspace_id: ImGuiID,
        in_window_remap_pairs: *mut ImVector_const_charPtr,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderCopyNode(
        src_node_id: ImGuiID,
        dst_node_id: ImGuiID,
        out_node_remap_pairs: *mut ImVector_ImGuiID,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderCopyWindowSettings(
        src_name: *const ::std::os::raw::c_char,
        dst_name: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDockBuilderFinish(node_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushFocusScope(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopFocusScope();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsInNavFocusRoute(focus_scope_id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentFocusScope() -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsDragDropActive() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDragDropTargetCustom(bb: ImRect_c, id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginDragDropTargetViewport(viewport: *mut ImGuiViewport, p_bb: *const ImRect)
        -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igClearDragDrop();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsDragDropPayloadBeingAccepted() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderDragDropTargetRectForItem(bb: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderDragDropTargetRectEx(draw_list: *mut ImDrawList, bb: ImRect_c, rounding: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags)
        -> *mut ImGuiTypingSelectRequest;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTypingSelectFindMatch(
        req: *mut ImGuiTypingSelectRequest,
        items_count: ::std::os::raw::c_int,
        get_item_name_func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
            ) -> *const ::std::os::raw::c_char,
        >,
        user_data: *mut ::std::os::raw::c_void,
        nav_item_idx: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTypingSelectFindNextSingleCharMatch(
        req: *mut ImGuiTypingSelectRequest,
        items_count: ::std::os::raw::c_int,
        get_item_name_func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
            ) -> *const ::std::os::raw::c_char,
        >,
        user_data: *mut ::std::os::raw::c_void,
        nav_item_idx: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTypingSelectFindBestLeadingMatch(
        req: *mut ImGuiTypingSelectRequest,
        items_count: ::std::os::raw::c_int,
        get_item_name_func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
            ) -> *const ::std::os::raw::c_char,
        >,
        user_data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginBoxSelect(
        scope_rect: ImRect_c,
        window: *mut ImGuiWindow,
        box_select_id: ImGuiID,
        ms_flags: ImGuiMultiSelectFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndBoxSelect(scope_rect: ImRect_c, ms_flags: ImGuiMultiSelectFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMultiSelectItemHeader(
        id: ImGuiID,
        p_selected: *mut bool,
        p_button_flags: *mut ImGuiButtonFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMultiSelectItemFooter(id: ImGuiID, p_selected: *mut bool, p_pressed: *mut bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMultiSelectAddSetAll(ms: *mut ImGuiMultiSelectTempData, selected: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igMultiSelectAddSetRange(
        ms: *mut ImGuiMultiSelectTempData,
        selected: bool,
        range_dir: ::std::os::raw::c_int,
        first_item: ImGuiSelectionUserData,
        last_item: ImGuiSelectionUserData,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetBoxSelectState(id: ImGuiID) -> *mut ImGuiBoxSelectState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetMultiSelectState(id: ImGuiID) -> *mut ImGuiMultiSelectState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetWindowClipRectBeforeSetChannel(window: *mut ImGuiWindow, clip_rect: ImRect_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginColumns(
        str_id: *const ::std::os::raw::c_char,
        count: ::std::os::raw::c_int,
        flags: ImGuiOldColumnFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndColumns();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushColumnClipRect(column_index: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPushColumnsBackground();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPopColumnsBackground();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnsID(
        str_id: *const ::std::os::raw::c_char,
        count: ::std::os::raw::c_int,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindOrCreateColumns(window: *mut ImGuiWindow, id: ImGuiID) -> *mut ImGuiOldColumns;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnOffsetFromNorm(columns: *const ImGuiOldColumns, offset_norm: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetColumnNormFromOffset(columns: *const ImGuiOldColumns, offset: f32) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableOpenContextMenu(column_n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnWidth(column_n: ::std::os::raw::c_int, width: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnSortDirection(
        column_n: ::std::os::raw::c_int,
        sort_direction: ImGuiSortDirection,
        append_to_sort_specs: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetHoveredRow() -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetHeaderRowHeight() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetHeaderAngledMaxLabelWidth() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTablePushBackgroundChannel();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTablePopBackgroundChannel();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTablePushColumnChannel(column_n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTablePopColumnChannel();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableAngledHeadersRowEx(
        row_id: ImGuiID,
        angle: f32,
        max_label_width: f32,
        data: *const ImGuiTableHeaderData,
        data_count: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentTable() -> *mut ImGuiTable;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableFindByID(id: ImGuiID) -> *mut ImGuiTable;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTableEx(
        name: *const ::std::os::raw::c_char,
        id: ImGuiID,
        columns_count: ::std::os::raw::c_int,
        flags: ImGuiTableFlags,
        outer_size: ImVec2_c,
        inner_width: f32,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableBeginInitMemory(table: *mut ImGuiTable, columns_count: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableBeginApplyRequests(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetupDrawChannels(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableUpdateLayout(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableUpdateBorders(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableUpdateColumnsWeightFromWidth(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableApplyExternalUnclipRect(table: *mut ImGuiTable, rect: *mut ImRect);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableDrawBorders(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableDrawDefaultContextMenu(
        table: *mut ImGuiTable,
        flags_for_section_to_display: ImGuiTableFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableBeginContextMenuPopup(table: *mut ImGuiTable) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableMergeDrawChannels(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetInstanceData(
        table: *mut ImGuiTable,
        instance_no: ::std::os::raw::c_int,
    ) -> *mut ImGuiTableInstanceData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetInstanceID(
        table: *mut ImGuiTable,
        instance_no: ::std::os::raw::c_int,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableFixDisplayOrder(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSortSpecsSanitize(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSortSpecsBuild(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnNextSortDirection(column: *mut ImGuiTableColumn) -> ImGuiSortDirection;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableFixColumnSortDirection(table: *mut ImGuiTable, column: *mut ImGuiTableColumn);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnWidthAuto(table: *mut ImGuiTable, column: *mut ImGuiTableColumn) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableBeginRow(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableEndRow(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableBeginCell(table: *mut ImGuiTable, column_n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableEndCell(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetCellBgRect(
        table: *const ImGuiTable,
        column_n: ::std::os::raw::c_int,
    ) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnName_TablePtr(
        table: *const ImGuiTable,
        column_n: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetColumnResizeID(
        table: *mut ImGuiTable,
        column_n: ::std::os::raw::c_int,
        instance_no: ::std::os::raw::c_int,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableCalcMaxColumnWidth(
        table: *const ImGuiTable,
        column_n: ::std::os::raw::c_int,
    ) -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnWidthAutoSingle(table: *mut ImGuiTable, column_n: ::std::os::raw::c_int);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnWidthAutoAll(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSetColumnDisplayOrder(
        table: *mut ImGuiTable,
        column_n: ::std::os::raw::c_int,
        dst_order: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableQueueSetColumnDisplayOrder(
        table: *mut ImGuiTable,
        column_n: ::std::os::raw::c_int,
        dst_order: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableRemove(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGcCompactTransientBuffers_TablePtr(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGcCompactTransientBuffers_TableTempDataPtr(table: *mut ImGuiTableTempData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGcCompactSettings();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableLoadSettings(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSaveSettings(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableResetSettings(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableGetBoundSettings(table: *mut ImGuiTable) -> *mut ImGuiTableSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSettingsAddSettingsHandler();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSettingsCreate(
        id: ImGuiID,
        columns_count: ::std::os::raw::c_int,
    ) -> *mut ImGuiTableSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTableSettingsFindByID(id: ImGuiID) -> *mut ImGuiTableSettings;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetCurrentTabBar() -> *mut ImGuiTabBar;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarFindByID(id: ImGuiID) -> *mut ImGuiTabBar;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarRemove(tab_bar: *mut ImGuiTabBar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginTabBarEx(
        tab_bar: *mut ImGuiTabBar,
        bb: ImRect_c,
        flags: ImGuiTabBarFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarFindTabByID(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID) -> *mut ImGuiTabItem;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarFindTabByOrder(
        tab_bar: *mut ImGuiTabBar,
        order: ::std::os::raw::c_int,
    ) -> *mut ImGuiTabItem;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarFindMostRecentlySelectedTabForActiveWindow(
        tab_bar: *mut ImGuiTabBar,
    ) -> *mut ImGuiTabItem;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarGetCurrentTab(tab_bar: *mut ImGuiTabBar) -> *mut ImGuiTabItem;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarGetTabOrder(
        tab_bar: *mut ImGuiTabBar,
        tab: *mut ImGuiTabItem,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarGetTabName(
        tab_bar: *mut ImGuiTabBar,
        tab: *mut ImGuiTabItem,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarAddTab(
        tab_bar: *mut ImGuiTabBar,
        tab_flags: ImGuiTabItemFlags,
        window: *mut ImGuiWindow,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarRemoveTab(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarCloseTab(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarQueueFocus_TabItemPtr(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarQueueFocus_Str(
        tab_bar: *mut ImGuiTabBar,
        tab_name: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarQueueReorder(
        tab_bar: *mut ImGuiTabBar,
        tab: *mut ImGuiTabItem,
        offset: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarQueueReorderFromMousePos(
        tab_bar: *mut ImGuiTabBar,
        tab: *mut ImGuiTabItem,
        mouse_pos: ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabBarProcessReorder(tab_bar: *mut ImGuiTabBar) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemEx(
        tab_bar: *mut ImGuiTabBar,
        label: *const ::std::os::raw::c_char,
        p_open: *mut bool,
        flags: ImGuiTabItemFlags,
        docked_window: *mut ImGuiWindow,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemSpacing(
        str_id: *const ::std::os::raw::c_char,
        flags: ImGuiTabItemFlags,
        width: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemCalcSize_Str(
        label: *const ::std::os::raw::c_char,
        has_close_button_or_unsaved_marker: bool,
    ) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemCalcSize_WindowPtr(window: *mut ImGuiWindow) -> ImVec2_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemBackground(
        draw_list: *mut ImDrawList,
        bb: ImRect_c,
        flags: ImGuiTabItemFlags,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTabItemLabelAndCloseButton(
        draw_list: *mut ImDrawList,
        bb: ImRect_c,
        flags: ImGuiTabItemFlags,
        frame_padding: ImVec2_c,
        label: *const ::std::os::raw::c_char,
        tab_id: ImGuiID,
        close_button_id: ImGuiID,
        is_contents_visible: bool,
        out_just_closed: *mut bool,
        out_text_clipped: *mut bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderText(
        pos: ImVec2_c,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        hide_text_after_hash: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderTextWrapped(
        pos: ImVec2_c,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        wrap_width: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderTextClipped(
        pos_min: ImVec2_c,
        pos_max: ImVec2_c,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        text_size_if_known: *const ImVec2_c,
        align: ImVec2_c,
        clip_rect: *const ImRect,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderTextClippedEx(
        draw_list: *mut ImDrawList,
        pos_min: ImVec2_c,
        pos_max: ImVec2_c,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        text_size_if_known: *const ImVec2_c,
        align: ImVec2_c,
        clip_rect: *const ImRect,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderTextEllipsis(
        draw_list: *mut ImDrawList,
        pos_min: ImVec2_c,
        pos_max: ImVec2_c,
        ellipsis_max_x: f32,
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        text_size_if_known: *const ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderFrame(
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        fill_col: ImU32,
        borders: bool,
        rounding: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderFrameBorder(p_min: ImVec2_c, p_max: ImVec2_c, rounding: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderColorComponentMarker(bb: ImRect_c, col: ImU32, rounding: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderColorRectWithAlphaCheckerboard(
        draw_list: *mut ImDrawList,
        p_min: ImVec2_c,
        p_max: ImVec2_c,
        fill_col: ImU32,
        grid_step: f32,
        grid_off: ImVec2_c,
        rounding: f32,
        flags: ImDrawFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderNavCursor(bb: ImRect_c, id: ImGuiID, flags: ImGuiNavRenderCursorFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igFindRenderedTextEnd(
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderMouseCursor(
        pos: ImVec2_c,
        scale: f32,
        mouse_cursor: ImGuiMouseCursor,
        col_fill: ImU32,
        col_border: ImU32,
        col_shadow: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderArrow(
        draw_list: *mut ImDrawList,
        pos: ImVec2_c,
        col: ImU32,
        dir: ImGuiDir,
        scale: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderBullet(draw_list: *mut ImDrawList, pos: ImVec2_c, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderCheckMark(draw_list: *mut ImDrawList, pos: ImVec2_c, col: ImU32, sz: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderArrowPointingAt(
        draw_list: *mut ImDrawList,
        pos: ImVec2_c,
        half_sz: ImVec2_c,
        direction: ImGuiDir,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderArrowDockMenu(draw_list: *mut ImDrawList, p_min: ImVec2_c, sz: f32, col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderRectFilledInRangeH(
        draw_list: *mut ImDrawList,
        rect: ImRect_c,
        col: ImU32,
        fill_x0: f32,
        fill_x1: f32,
        rounding: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igRenderRectFilledWithHole(
        draw_list: *mut ImDrawList,
        outer: ImRect_c,
        inner: ImRect_c,
        col: ImU32,
        rounding: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCalcRoundingFlagsForRectInRect(
        r_in: ImRect_c,
        r_outer: ImRect_c,
        threshold: f32,
    ) -> ImDrawFlags;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextEx(
        text: *const ::std::os::raw::c_char,
        text_end: *const ::std::os::raw::c_char,
        flags: ImGuiTextFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextAligned(align_x: f32, size_x: f32, fmt: *const ::std::os::raw::c_char, ...);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTextAlignedV(
        align_x: f32,
        size_x: f32,
        fmt: *const ::std::os::raw::c_char,
        args: va_list,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igButtonEx(
        label: *const ::std::os::raw::c_char,
        size_arg: ImVec2_c,
        flags: ImGuiButtonFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igArrowButtonEx(
        str_id: *const ::std::os::raw::c_char,
        dir: ImGuiDir,
        size_arg: ImVec2_c,
        flags: ImGuiButtonFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImageButtonEx(
        id: ImGuiID,
        tex_ref: ImTextureRef_c,
        image_size: ImVec2_c,
        uv0: ImVec2_c,
        uv1: ImVec2_c,
        bg_col: ImVec4_c,
        tint_col: ImVec4_c,
        flags: ImGuiButtonFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSeparatorEx(flags: ImGuiSeparatorFlags, thickness: f32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSeparatorTextEx(
        id: ImGuiID,
        label: *const ::std::os::raw::c_char,
        label_end: *const ::std::os::raw::c_char,
        extra_width: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCheckboxFlags_S64Ptr(
        label: *const ::std::os::raw::c_char,
        flags: *mut ImS64,
        flags_value: ImS64,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCheckboxFlags_U64Ptr(
        label: *const ::std::os::raw::c_char,
        flags: *mut ImU64,
        flags_value: ImU64,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCloseButton(id: ImGuiID, pos: ImVec2_c) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igCollapseButton(id: ImGuiID, pos: ImVec2_c, dock_node: *mut ImGuiDockNode) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollbar(axis: ImGuiAxis);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igScrollbarEx(
        bb: ImRect_c,
        id: ImGuiID,
        axis: ImGuiAxis,
        p_scroll_v: *mut ImS64,
        avail_v: ImS64,
        contents_v: ImS64,
        draw_rounding_flags: ImDrawFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowScrollbarRect(window: *mut ImGuiWindow, axis: ImGuiAxis) -> ImRect_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowScrollbarID(window: *mut ImGuiWindow, axis: ImGuiAxis) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowResizeCornerID(window: *mut ImGuiWindow, n: ::std::os::raw::c_int)
        -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetWindowResizeBorderID(window: *mut ImGuiWindow, dir: ImGuiDir) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igExtendHitBoxWhenNearViewportEdge(
        window: *mut ImGuiWindow,
        bb: *mut ImRect,
        threshold: f32,
        axis: ImGuiAxis,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igButtonBehavior(
        bb: ImRect_c,
        id: ImGuiID,
        out_hovered: *mut bool,
        out_held: *mut bool,
        flags: ImGuiButtonFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDragBehavior(
        id: ImGuiID,
        data_type: ImGuiDataType,
        p_v: *mut ::std::os::raw::c_void,
        v_speed: f32,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSliderBehavior(
        bb: ImRect_c,
        id: ImGuiID,
        data_type: ImGuiDataType,
        p_v: *mut ::std::os::raw::c_void,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        flags: ImGuiSliderFlags,
        out_grab_bb: *mut ImRect,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSplitterBehavior(
        bb: ImRect_c,
        id: ImGuiID,
        axis: ImGuiAxis,
        size1: *mut f32,
        size2: *mut f32,
        min_size1: f32,
        min_size2: f32,
        hover_extend: f32,
        hover_visibility_delay: f32,
        bg_col: ImU32,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeBehavior(
        id: ImGuiID,
        flags: ImGuiTreeNodeFlags,
        label: *const ::std::os::raw::c_char,
        label_end: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeDrawLineToChildNode(target_pos: ImVec2_c);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeDrawLineToTreePop(data: *const ImGuiTreeNodeStackData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreePushOverrideID(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeSetOpen(storage_id: ImGuiID, open: bool);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTreeNodeUpdateNextOpen(storage_id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeGetInfo(data_type: ImGuiDataType) -> *const ImGuiDataTypeInfo;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeFormatString(
        buf: *mut ::std::os::raw::c_char,
        buf_size: ::std::os::raw::c_int,
        data_type: ImGuiDataType,
        p_data: *const ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeApplyOp(
        data_type: ImGuiDataType,
        op: ::std::os::raw::c_int,
        output: *mut ::std::os::raw::c_void,
        arg_1: *const ::std::os::raw::c_void,
        arg_2: *const ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeApplyFromText(
        buf: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        p_data_when_empty: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeCompare(
        data_type: ImGuiDataType,
        arg_1: *const ::std::os::raw::c_void,
        arg_2: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeClamp(
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        p_min: *const ::std::os::raw::c_void,
        p_max: *const ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDataTypeIsZero(
        data_type: ImGuiDataType,
        p_data: *const ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputTextEx(
        label: *const ::std::os::raw::c_char,
        hint: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: ::std::os::raw::c_int,
        size_arg: ImVec2_c,
        flags: ImGuiInputTextFlags,
        callback: ImGuiInputTextCallback,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igInputTextDeactivateHook(id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTempInputText(
        bb: ImRect_c,
        id: ImGuiID,
        label: *const ::std::os::raw::c_char,
        buf: *mut ::std::os::raw::c_char,
        buf_size: usize,
        flags: ImGuiInputTextFlags,
        callback: ImGuiInputTextCallback,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTempInputScalar(
        bb: ImRect_c,
        id: ImGuiID,
        label: *const ::std::os::raw::c_char,
        data_type: ImGuiDataType,
        p_data: *mut ::std::os::raw::c_void,
        format: *const ::std::os::raw::c_char,
        p_clamp_min: *const ::std::os::raw::c_void,
        p_clamp_max: *const ::std::os::raw::c_void,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igTempInputIsActive(id: ImGuiID) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGetInputTextState(id: ImGuiID) -> *mut ImGuiInputTextState;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemRefVal(data_type: ImGuiDataType, p_data: *mut ::std::os::raw::c_void);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igIsItemActiveAsInputText() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorTooltip(
        text: *const ::std::os::raw::c_char,
        col: *const f32,
        flags: ImGuiColorEditFlags,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorEditOptionsPopup(col: *const f32, flags: ImGuiColorEditFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igColorPickerOptionsPopup(ref_col: *const f32, flags: ImGuiColorEditFlags);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igSetNextItemColorMarker(col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igPlotEx(
        plot_type: ImGuiPlotType,
        label: *const ::std::os::raw::c_char,
        values_getter: ::std::option::Option<
            unsafe extern "C" fn(
                data: *mut ::std::os::raw::c_void,
                idx: ::std::os::raw::c_int,
            ) -> f32,
        >,
        data: *mut ::std::os::raw::c_void,
        values_count: ::std::os::raw::c_int,
        values_offset: ::std::os::raw::c_int,
        overlay_text: *const ::std::os::raw::c_char,
        scale_min: f32,
        scale_max: f32,
        size_arg: ImVec2_c,
    ) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShadeVertsLinearColorGradientKeepAlpha(
        draw_list: *mut ImDrawList,
        vert_start_idx: ::std::os::raw::c_int,
        vert_end_idx: ::std::os::raw::c_int,
        gradient_p0: ImVec2_c,
        gradient_p1: ImVec2_c,
        col0: ImU32,
        col1: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShadeVertsLinearUV(
        draw_list: *mut ImDrawList,
        vert_start_idx: ::std::os::raw::c_int,
        vert_end_idx: ::std::os::raw::c_int,
        a: ImVec2_c,
        b: ImVec2_c,
        uv_a: ImVec2_c,
        uv_b: ImVec2_c,
        clamp: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShadeVertsTransformPos(
        draw_list: *mut ImDrawList,
        vert_start_idx: ::std::os::raw::c_int,
        vert_end_idx: ::std::os::raw::c_int,
        pivot_in: ImVec2_c,
        cos_a: f32,
        sin_a: f32,
        pivot_out: ImVec2_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGcCompactTransientMiscBuffers();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGcCompactTransientWindowBuffers(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGcAwakeTransientWindowBuffers(window: *mut ImGuiWindow);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorLog(msg: *const ::std::os::raw::c_char) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorRecoveryStoreState(state_out: *mut ImGuiErrorRecoveryState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorRecoveryTryToRecoverState(state_in: *const ImGuiErrorRecoveryState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorRecoveryTryToRecoverWindowState(state_in: *const ImGuiErrorRecoveryState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorCheckUsingSetCursorPosToExtendParentBoundaries();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igErrorCheckEndFrameFinalizeErrorTooltip();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igBeginErrorTooltip() -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igEndErrorTooltip();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDemoMarker(
        file: *const ::std::os::raw::c_char,
        line: ::std::os::raw::c_int,
        section: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugAllocHook(
        info: *mut ImGuiDebugAllocInfo,
        frame_count: ::std::os::raw::c_int,
        ptr: *mut ::std::os::raw::c_void,
        size: usize,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugDrawCursorPos(col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugDrawLineExtents(col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugDrawItemRect(col: ImU32);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugTextUnformattedWithLocateItem(
        line_begin: *const ::std::os::raw::c_char,
        line_end: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugLocateItem(target_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugLocateItemOnHover(target_id: ImGuiID);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugLocateItemResolveWithLastItem();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugBreakClearData();
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugBreakButton(
        label: *const ::std::os::raw::c_char,
        description_of_location: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugBreakButtonTooltip(
        keyboard_only: bool,
        description_of_location: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igShowFontAtlas(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugTextureIDToU64(tex_id: ImTextureID) -> ImU64;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugHookIdInfo(
        id: ImGuiID,
        data_type: ImGuiDataType,
        data_id: *const ::std::os::raw::c_void,
        data_id_end: *const ::std::os::raw::c_void,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeColumns(columns: *mut ImGuiOldColumns);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeDockNode(node: *mut ImGuiDockNode, label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeDrawList(
        window: *mut ImGuiWindow,
        viewport: *mut ImGuiViewportP,
        draw_list: *const ImDrawList,
        label: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeDrawCmdShowMeshAndBoundingBox(
        out_draw_list: *mut ImDrawList,
        draw_list: *const ImDrawList,
        draw_cmd: *const ImDrawCmd,
        show_mesh: bool,
        show_aabb: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeFont(font: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeFontGlyphsForSrcMask(
        font: *mut ImFont,
        baked: *mut ImFontBaked,
        src_mask: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeFontGlyph(font: *mut ImFont, glyph: *const ImFontGlyph);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeTexture(
        tex: *mut ImTextureData,
        int_id: ::std::os::raw::c_int,
        highlight_rect: *const ImFontAtlasRect,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeStorage(storage: *mut ImGuiStorage, label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeTabBar(tab_bar: *mut ImGuiTabBar, label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeTable(table: *mut ImGuiTable);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeTableSettings(settings: *mut ImGuiTableSettings);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeInputTextState(state: *mut ImGuiInputTextState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeTypingSelectState(state: *mut ImGuiTypingSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeMultiSelectState(state: *mut ImGuiMultiSelectState);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeWindow(window: *mut ImGuiWindow, label: *const ::std::os::raw::c_char);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeWindowSettings(settings: *mut ImGuiWindowSettings);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeWindowsList(
        windows: *mut ImVector_ImGuiWindowPtr,
        label: *const ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeWindowsListByBeginStackParent(
        windows: *mut *mut ImGuiWindow,
        windows_size: ::std::os::raw::c_int,
        parent_in_begin_stack: *mut ImGuiWindow,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugNodePlatformMonitor(
        monitor: *mut ImGuiPlatformMonitor,
        label: *const ::std::os::raw::c_char,
        idx: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugRenderKeyboardPreview(draw_list: *mut ImDrawList);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igDebugRenderViewportThumbnail(
        draw_list: *mut ImDrawList,
        viewport: *mut ImGuiViewportP,
        bb: ImRect_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontLoader_ImFontLoader() -> *mut ImFontLoader;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontLoader_destroy(self_: *mut ImFontLoader);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasGetFontLoaderForStbTruetype() -> *const ImFontLoader;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasRectId_GetIndex(id: ImFontAtlasRectId) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasRectId_GetGeneration(id: ImFontAtlasRectId) -> ::std::os::raw::c_uint;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasRectId_Make(
        index_idx: ::std::os::raw::c_int,
        gen_idx: ::std::os::raw::c_int,
    ) -> ImFontAtlasRectId;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlasBuilder_ImFontAtlasBuilder() -> *mut ImFontAtlasBuilder;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImFontAtlasBuilder_destroy(self_: *mut ImFontAtlasBuilder);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildInit(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildDestroy(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildMain(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildSetupFontLoader(
        atlas: *mut ImFontAtlas,
        font_loader: *const ImFontLoader,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildNotifySetFont(
        atlas: *mut ImFontAtlas,
        old_font: *mut ImFont,
        new_font: *mut ImFont,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildUpdatePointers(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildRenderBitmapFromString(
        atlas: *mut ImFontAtlas,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        in_str: *const ::std::os::raw::c_char,
        in_marker_char: ::std::os::raw::c_char,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildClear(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureAdd(
        atlas: *mut ImFontAtlas,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> *mut ImTextureData;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureMakeSpace(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureRepack(
        atlas: *mut ImFontAtlas,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureGrow(
        atlas: *mut ImFontAtlas,
        old_w: ::std::os::raw::c_int,
        old_h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureCompact(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureGetSizeEstimate(atlas: *mut ImFontAtlas) -> ImVec2i_c;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildSetupFontSpecialGlyphs(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        src: *mut ImFontConfig,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildLegacyPreloadAllGlyphRanges(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildGetOversampleFactors(
        src: *mut ImFontConfig,
        baked: *mut ImFontBaked,
        out_oversample_h: *mut ::std::os::raw::c_int,
        out_oversample_v: *mut ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBuildDiscardBakes(
        atlas: *mut ImFontAtlas,
        unused_frames: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontSourceInit(atlas: *mut ImFontAtlas, src: *mut ImFontConfig) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontSourceAddToFont(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        src: *mut ImFontConfig,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontDestroySourceData(atlas: *mut ImFontAtlas, src: *mut ImFontConfig);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontInitOutput(atlas: *mut ImFontAtlas, font: *mut ImFont) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontDestroyOutput(atlas: *mut ImFontAtlas, font: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontRebuildOutput(atlas: *mut ImFontAtlas, font: *mut ImFont);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasFontDiscardBakes(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        unused_frames: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedGetId(
        font_id: ImGuiID,
        baked_size: f32,
        rasterizer_density: f32,
    ) -> ImGuiID;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedGetOrAdd(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        font_size: f32,
        font_rasterizer_density: f32,
    ) -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedGetClosestMatch(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        font_size: f32,
        font_rasterizer_density: f32,
    ) -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedAdd(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        font_size: f32,
        font_rasterizer_density: f32,
        baked_id: ImGuiID,
    ) -> *mut ImFontBaked;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedDiscard(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        baked: *mut ImFontBaked,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedAddFontGlyph(
        atlas: *mut ImFontAtlas,
        baked: *mut ImFontBaked,
        src: *mut ImFontConfig,
        in_glyph: *const ImFontGlyph,
    ) -> *mut ImFontGlyph;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedAddFontGlyphAdvancedX(
        atlas: *mut ImFontAtlas,
        baked: *mut ImFontBaked,
        src: *mut ImFontConfig,
        codepoint: ImWchar,
        advance_x: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedDiscardFontGlyph(
        atlas: *mut ImFontAtlas,
        font: *mut ImFont,
        baked: *mut ImFontBaked,
        glyph: *mut ImFontGlyph,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasBakedSetFontGlyphBitmap(
        atlas: *mut ImFontAtlas,
        baked: *mut ImFontBaked,
        src: *mut ImFontConfig,
        glyph: *mut ImFontGlyph,
        r: *mut ImTextureRect,
        src_pixels: *const ::std::os::raw::c_uchar,
        src_fmt: ImTextureFormat,
        src_pitch: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasPackInit(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasPackAddRect(
        atlas: *mut ImFontAtlas,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        overwrite_entry: *mut ImFontAtlasRectEntry,
    ) -> ImFontAtlasRectId;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasPackGetRect(
        atlas: *mut ImFontAtlas,
        id: ImFontAtlasRectId,
    ) -> *mut ImTextureRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasPackGetRectSafe(
        atlas: *mut ImFontAtlas,
        id: ImFontAtlasRectId,
    ) -> *mut ImTextureRect;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasPackDiscardRect(atlas: *mut ImFontAtlas, id: ImFontAtlasRectId);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasUpdateNewFrame(
        atlas: *mut ImFontAtlas,
        frame_count: ::std::os::raw::c_int,
        renderer_has_textures: bool,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasAddDrawListSharedData(
        atlas: *mut ImFontAtlas,
        data: *mut ImDrawListSharedData,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasRemoveDrawListSharedData(
        atlas: *mut ImFontAtlas,
        data: *mut ImDrawListSharedData,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasUpdateDrawListsTextures(
        atlas: *mut ImFontAtlas,
        old_tex: ImTextureRef_c,
        new_tex: ImTextureRef_c,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasUpdateDrawListsSharedData(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockConvert(
        src_pixels: *const ::std::os::raw::c_uchar,
        src_fmt: ImTextureFormat,
        src_pitch: ::std::os::raw::c_int,
        dst_pixels: *mut ::std::os::raw::c_uchar,
        dst_fmt: ImTextureFormat,
        dst_pitch: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockPostProcess(data: *mut ImFontAtlasPostProcessData);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockPostProcessMultiply(
        data: *mut ImFontAtlasPostProcessData,
        multiply_factor: f32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockFill(
        dst_tex: *mut ImTextureData,
        dst_x: ::std::os::raw::c_int,
        dst_y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        col: ImU32,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockCopy(
        src_tex: *mut ImTextureData,
        src_x: ::std::os::raw::c_int,
        src_y: ::std::os::raw::c_int,
        dst_tex: *mut ImTextureData,
        dst_x: ::std::os::raw::c_int,
        dst_y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasTextureBlockQueueUpload(
        atlas: *mut ImFontAtlas,
        tex: *mut ImTextureData,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextureDataQueueUpload(
        tex: *mut ImTextureData,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextureDataGetFormatBytesPerPixel(format: ImTextureFormat) -> ::std::os::raw::c_int;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextureDataGetStatusName(status: ImTextureStatus) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImTextureDataGetFormatName(format: ImTextureFormat) -> *const ::std::os::raw::c_char;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasDebugLogTextureRequests(atlas: *mut ImFontAtlas);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igImFontAtlasGetMouseCursorTexData(
        atlas: *mut ImFontAtlas,
        cursor_type: ImGuiMouseCursor,
        out_offset: *mut ImVec2_c,
        out_size: *mut ImVec2_c,
        out_uv_border: *mut ImVec2,
        out_uv_fill: *mut ImVec2,
    ) -> bool;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    #[doc = "hand written functions"]
    pub fn ImGuiTextBuffer_appendf(
        self_: *mut ImGuiTextBuffer,
        fmt: *const ::std::os::raw::c_char,
        ...
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGET_FLT_MAX() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn igGET_FLT_MIN() -> f32;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVector_ImWchar_create() -> *mut ImVector_ImWchar;
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVector_ImWchar_destroy(self_: *mut ImVector_ImWchar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVector_ImWchar_Init(p: *mut ImVector_ImWchar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImVector_ImWchar_UnInit(p: *mut ImVector_ImWchar);
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_Set_Platform_GetWindowPos(
        platform_io: *mut ImGuiPlatformIO,
        user_callback: ::std::option::Option<
            unsafe extern "C" fn(vp: *mut ImGuiViewport, out_pos: *mut ImVec2),
        >,
    );
}
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
    pub fn ImGuiPlatformIO_Set_Platform_GetWindowSize(
        platform_io: *mut ImGuiPlatformIO,
        user_callback: ::std::option::Option<
            unsafe extern "C" fn(vp: *mut ImGuiViewport, out_size: *mut ImVec2),
        >,
    );
}
