imgui_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.63.0 */
2
3#![allow(nonstandard_style, clippy::all)]
4
5#[repr(C)]
6#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
7pub struct __BindgenBitfieldUnit<Storage> {
8    storage: Storage,
9}
10impl<Storage> __BindgenBitfieldUnit<Storage> {
11    #[inline]
12    pub const fn new(storage: Storage) -> Self {
13        Self { storage }
14    }
15}
16impl<Storage> __BindgenBitfieldUnit<Storage>
17where
18    Storage: AsRef<[u8]> + AsMut<[u8]>,
19{
20    #[inline]
21    pub fn get_bit(&self, index: usize) -> bool {
22        debug_assert!(index / 8 < self.storage.as_ref().len());
23        let byte_index = index / 8;
24        let byte = self.storage.as_ref()[byte_index];
25        let bit_index = if cfg!(target_endian = "big") {
26            7 - (index % 8)
27        } else {
28            index % 8
29        };
30        let mask = 1 << bit_index;
31        byte & mask == mask
32    }
33    #[inline]
34    pub fn set_bit(&mut self, index: usize, val: bool) {
35        debug_assert!(index / 8 < self.storage.as_ref().len());
36        let byte_index = index / 8;
37        let byte = &mut self.storage.as_mut()[byte_index];
38        let bit_index = if cfg!(target_endian = "big") {
39            7 - (index % 8)
40        } else {
41            index % 8
42        };
43        let mask = 1 << bit_index;
44        if val {
45            *byte |= mask;
46        } else {
47            *byte &= !mask;
48        }
49    }
50    #[inline]
51    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
52        debug_assert!(bit_width <= 64);
53        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
54        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
55        let mut val = 0;
56        for i in 0..(bit_width as usize) {
57            if self.get_bit(i + bit_offset) {
58                let index = if cfg!(target_endian = "big") {
59                    bit_width as usize - 1 - i
60                } else {
61                    i
62                };
63                val |= 1 << index;
64            }
65        }
66        val
67    }
68    #[inline]
69    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
70        debug_assert!(bit_width <= 64);
71        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
72        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
73        for i in 0..(bit_width as usize) {
74            let mask = 1 << i;
75            let val_bit_is_set = val & mask == mask;
76            let index = if cfg!(target_endian = "big") {
77                bit_width as usize - 1 - i
78            } else {
79                i
80            };
81            self.set_bit(index + bit_offset, val_bit_is_set);
82        }
83    }
84}
85#[repr(C)]
86#[derive(Debug, Copy, Clone)]
87pub struct ImDrawListSharedData {
88    _unused: [u8; 0],
89}
90#[repr(C)]
91#[derive(Debug, Copy, Clone)]
92pub struct ImFontBuilderIO {
93    _unused: [u8; 0],
94}
95#[repr(C)]
96#[derive(Debug, Copy, Clone)]
97pub struct ImGuiContext {
98    _unused: [u8; 0],
99}
100pub type ImGuiCol = cty::c_int;
101pub type ImGuiCond = cty::c_int;
102pub type ImGuiDataType = cty::c_int;
103pub type ImGuiDir = cty::c_int;
104pub type ImGuiMouseButton = cty::c_int;
105pub type ImGuiMouseCursor = cty::c_int;
106pub type ImGuiSortDirection = cty::c_int;
107pub type ImGuiStyleVar = cty::c_int;
108pub type ImGuiTableBgTarget = cty::c_int;
109pub type ImDrawFlags = cty::c_int;
110pub type ImDrawListFlags = cty::c_int;
111pub type ImFontAtlasFlags = cty::c_int;
112pub type ImGuiBackendFlags = cty::c_int;
113pub type ImGuiButtonFlags = cty::c_int;
114pub type ImGuiColorEditFlags = cty::c_int;
115pub type ImGuiConfigFlags = cty::c_int;
116pub type ImGuiComboFlags = cty::c_int;
117pub type ImGuiDragDropFlags = cty::c_int;
118pub type ImGuiFocusedFlags = cty::c_int;
119pub type ImGuiHoveredFlags = cty::c_int;
120pub type ImGuiInputTextFlags = cty::c_int;
121pub type ImGuiKeyChord = cty::c_int;
122pub type ImGuiPopupFlags = cty::c_int;
123pub type ImGuiSelectableFlags = cty::c_int;
124pub type ImGuiSliderFlags = cty::c_int;
125pub type ImGuiTabBarFlags = cty::c_int;
126pub type ImGuiTabItemFlags = cty::c_int;
127pub type ImGuiTableFlags = cty::c_int;
128pub type ImGuiTableColumnFlags = cty::c_int;
129pub type ImGuiTableRowFlags = cty::c_int;
130pub type ImGuiTreeNodeFlags = cty::c_int;
131pub type ImGuiViewportFlags = cty::c_int;
132pub type ImGuiWindowFlags = cty::c_int;
133pub type ImTextureID = *mut cty::c_void;
134pub type ImDrawIdx = cty::c_ushort;
135pub type ImGuiID = cty::c_uint;
136pub type ImS8 = cty::c_schar;
137pub type ImU8 = cty::c_uchar;
138pub type ImS16 = cty::c_short;
139pub type ImU16 = cty::c_ushort;
140pub type ImU32 = cty::c_uint;
141pub type ImWchar16 = cty::c_ushort;
142pub type ImWchar32 = cty::c_uint;
143pub type ImWchar = ImWchar32;
144pub type ImGuiInputTextCallback = ::core::option::Option<
145    unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int,
146>;
147pub type ImGuiSizeCallback =
148    ::core::option::Option<unsafe extern "C" fn(data: *mut ImGuiSizeCallbackData)>;
149pub type ImGuiMemAllocFunc = ::core::option::Option<
150    unsafe extern "C" fn(sz: usize, user_data: *mut cty::c_void) -> *mut cty::c_void,
151>;
152pub type ImGuiMemFreeFunc = ::core::option::Option<
153    unsafe extern "C" fn(ptr: *mut cty::c_void, user_data: *mut cty::c_void),
154>;
155#[repr(C)]
156#[derive(Debug, Default, Copy, Clone, PartialEq)]
157pub struct ImVec2 {
158    pub x: f32,
159    pub y: f32,
160}
161#[repr(C)]
162#[derive(Debug, Default, Copy, Clone, PartialEq)]
163pub struct ImVec4 {
164    pub x: f32,
165    pub y: f32,
166    pub z: f32,
167    pub w: f32,
168}
169pub const ImGuiWindowFlags_None: ImGuiWindowFlags_ = 0;
170pub const ImGuiWindowFlags_NoTitleBar: ImGuiWindowFlags_ = 1;
171pub const ImGuiWindowFlags_NoResize: ImGuiWindowFlags_ = 2;
172pub const ImGuiWindowFlags_NoMove: ImGuiWindowFlags_ = 4;
173pub const ImGuiWindowFlags_NoScrollbar: ImGuiWindowFlags_ = 8;
174pub const ImGuiWindowFlags_NoScrollWithMouse: ImGuiWindowFlags_ = 16;
175pub const ImGuiWindowFlags_NoCollapse: ImGuiWindowFlags_ = 32;
176pub const ImGuiWindowFlags_AlwaysAutoResize: ImGuiWindowFlags_ = 64;
177pub const ImGuiWindowFlags_NoBackground: ImGuiWindowFlags_ = 128;
178pub const ImGuiWindowFlags_NoSavedSettings: ImGuiWindowFlags_ = 256;
179pub const ImGuiWindowFlags_NoMouseInputs: ImGuiWindowFlags_ = 512;
180pub const ImGuiWindowFlags_MenuBar: ImGuiWindowFlags_ = 1024;
181pub const ImGuiWindowFlags_HorizontalScrollbar: ImGuiWindowFlags_ = 2048;
182pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096;
183pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192;
184pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384;
185pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768;
186pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536;
187pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144;
188pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288;
189pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576;
190pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432;
191pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43;
192pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944;
193pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608;
194pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216;
195pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432;
196pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864;
197pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728;
198pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456;
199pub type ImGuiWindowFlags_ = cty::c_uint;
200pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0;
201pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1;
202pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2;
203pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4;
204pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8;
205pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16;
206pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32;
207pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64;
208pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128;
209pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256;
210pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512;
211pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024;
212pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048;
213pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096;
214pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192;
215pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384;
216pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768;
217pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536;
218pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072;
219pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144;
220pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288;
221pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576;
222pub type ImGuiInputTextFlags_ = cty::c_uint;
223pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0;
224pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1;
225pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2;
226pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4;
227pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8;
228pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16;
229pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32;
230pub const ImGuiTreeNodeFlags_OpenOnDoubleClick: ImGuiTreeNodeFlags_ = 64;
231pub const ImGuiTreeNodeFlags_OpenOnArrow: ImGuiTreeNodeFlags_ = 128;
232pub const ImGuiTreeNodeFlags_Leaf: ImGuiTreeNodeFlags_ = 256;
233pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512;
234pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024;
235pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048;
236pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096;
237pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192;
238pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26;
239pub type ImGuiTreeNodeFlags_ = cty::c_uint;
240pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0;
241pub const ImGuiPopupFlags_MouseButtonLeft: ImGuiPopupFlags_ = 0;
242pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1;
243pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2;
244pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31;
245pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1;
246pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32;
247pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64;
248pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128;
249pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256;
250pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384;
251pub type ImGuiPopupFlags_ = cty::c_uint;
252pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0;
253pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1;
254pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2;
255pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4;
256pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8;
257pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16;
258pub type ImGuiSelectableFlags_ = cty::c_uint;
259pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0;
260pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1;
261pub const ImGuiComboFlags_HeightSmall: ImGuiComboFlags_ = 2;
262pub const ImGuiComboFlags_HeightRegular: ImGuiComboFlags_ = 4;
263pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8;
264pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16;
265pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32;
266pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64;
267pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30;
268pub type ImGuiComboFlags_ = cty::c_uint;
269pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0;
270pub const ImGuiTabBarFlags_Reorderable: ImGuiTabBarFlags_ = 1;
271pub const ImGuiTabBarFlags_AutoSelectNewTabs: ImGuiTabBarFlags_ = 2;
272pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4;
273pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8;
274pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16;
275pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32;
276pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64;
277pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128;
278pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192;
279pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64;
280pub type ImGuiTabBarFlags_ = cty::c_uint;
281pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0;
282pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1;
283pub const ImGuiTabItemFlags_SetSelected: ImGuiTabItemFlags_ = 2;
284pub const ImGuiTabItemFlags_NoCloseWithMiddleMouseButton: ImGuiTabItemFlags_ = 4;
285pub const ImGuiTabItemFlags_NoPushId: ImGuiTabItemFlags_ = 8;
286pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16;
287pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32;
288pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64;
289pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128;
290pub type ImGuiTabItemFlags_ = cty::c_uint;
291pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0;
292pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1;
293pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2;
294pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4;
295pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8;
296pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16;
297pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32;
298pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64;
299pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128;
300pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256;
301pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512;
302pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024;
303pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384;
304pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536;
305pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640;
306pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280;
307pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920;
308pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048;
309pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096;
310pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192;
311pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384;
312pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576;
313pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768;
314pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536;
315pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072;
316pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144;
317pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288;
318pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576;
319pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152;
320pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304;
321pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608;
322pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216;
323pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432;
324pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864;
325pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728;
326pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344;
327pub type ImGuiTableFlags_ = cty::c_uint;
328pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0;
329pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1;
330pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2;
331pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4;
332pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8;
333pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16;
334pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32;
335pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64;
336pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128;
337pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256;
338pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512;
339pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024;
340pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048;
341pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096;
342pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192;
343pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384;
344pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768;
345pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536;
346pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072;
347pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216;
348pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432;
349pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864;
350pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728;
351pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24;
352pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608;
353pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240;
354pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824;
355pub type ImGuiTableColumnFlags_ = cty::c_uint;
356pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0;
357pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1;
358pub type ImGuiTableRowFlags_ = cty::c_uint;
359pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0;
360pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1;
361pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2;
362pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3;
363pub type ImGuiTableBgTarget_ = cty::c_uint;
364pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0;
365pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1;
366pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2;
367pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4;
368pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8;
369pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3;
370pub type ImGuiFocusedFlags_ = cty::c_uint;
371pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0;
372pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1;
373pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2;
374pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4;
375pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8;
376pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32;
377pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128;
378pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256;
379pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512;
380pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024;
381pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416;
382pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3;
383pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048;
384pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096;
385pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192;
386pub type ImGuiHoveredFlags_ = cty::c_uint;
387pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0;
388pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1;
389pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2;
390pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4;
391pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8;
392pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16;
393pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32;
394pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024;
395pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048;
396pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096;
397pub const ImGuiDragDropFlags_AcceptPeekOnly: ImGuiDragDropFlags_ = 3072;
398pub type ImGuiDragDropFlags_ = cty::c_uint;
399pub const ImGuiDataType_S8: ImGuiDataType_ = 0;
400pub const ImGuiDataType_U8: ImGuiDataType_ = 1;
401pub const ImGuiDataType_S16: ImGuiDataType_ = 2;
402pub const ImGuiDataType_U16: ImGuiDataType_ = 3;
403pub const ImGuiDataType_S32: ImGuiDataType_ = 4;
404pub const ImGuiDataType_U32: ImGuiDataType_ = 5;
405pub const ImGuiDataType_S64: ImGuiDataType_ = 6;
406pub const ImGuiDataType_U64: ImGuiDataType_ = 7;
407pub const ImGuiDataType_Float: ImGuiDataType_ = 8;
408pub const ImGuiDataType_Double: ImGuiDataType_ = 9;
409pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10;
410pub type ImGuiDataType_ = cty::c_uint;
411pub const ImGuiDir_None: ImGuiDir_ = -1;
412pub const ImGuiDir_Left: ImGuiDir_ = 0;
413pub const ImGuiDir_Right: ImGuiDir_ = 1;
414pub const ImGuiDir_Up: ImGuiDir_ = 2;
415pub const ImGuiDir_Down: ImGuiDir_ = 3;
416pub const ImGuiDir_COUNT: ImGuiDir_ = 4;
417pub type ImGuiDir_ = cty::c_int;
418pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0;
419pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1;
420pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2;
421pub type ImGuiSortDirection_ = cty::c_uint;
422pub const ImGuiKey_None: ImGuiKey = 0;
423pub const ImGuiKey_Tab: ImGuiKey = 512;
424pub const ImGuiKey_LeftArrow: ImGuiKey = 513;
425pub const ImGuiKey_RightArrow: ImGuiKey = 514;
426pub const ImGuiKey_UpArrow: ImGuiKey = 515;
427pub const ImGuiKey_DownArrow: ImGuiKey = 516;
428pub const ImGuiKey_PageUp: ImGuiKey = 517;
429pub const ImGuiKey_PageDown: ImGuiKey = 518;
430pub const ImGuiKey_Home: ImGuiKey = 519;
431pub const ImGuiKey_End: ImGuiKey = 520;
432pub const ImGuiKey_Insert: ImGuiKey = 521;
433pub const ImGuiKey_Delete: ImGuiKey = 522;
434pub const ImGuiKey_Backspace: ImGuiKey = 523;
435pub const ImGuiKey_Space: ImGuiKey = 524;
436pub const ImGuiKey_Enter: ImGuiKey = 525;
437pub const ImGuiKey_Escape: ImGuiKey = 526;
438pub const ImGuiKey_LeftCtrl: ImGuiKey = 527;
439pub const ImGuiKey_LeftShift: ImGuiKey = 528;
440pub const ImGuiKey_LeftAlt: ImGuiKey = 529;
441pub const ImGuiKey_LeftSuper: ImGuiKey = 530;
442pub const ImGuiKey_RightCtrl: ImGuiKey = 531;
443pub const ImGuiKey_RightShift: ImGuiKey = 532;
444pub const ImGuiKey_RightAlt: ImGuiKey = 533;
445pub const ImGuiKey_RightSuper: ImGuiKey = 534;
446pub const ImGuiKey_Menu: ImGuiKey = 535;
447pub const ImGuiKey_0: ImGuiKey = 536;
448pub const ImGuiKey_1: ImGuiKey = 537;
449pub const ImGuiKey_2: ImGuiKey = 538;
450pub const ImGuiKey_3: ImGuiKey = 539;
451pub const ImGuiKey_4: ImGuiKey = 540;
452pub const ImGuiKey_5: ImGuiKey = 541;
453pub const ImGuiKey_6: ImGuiKey = 542;
454pub const ImGuiKey_7: ImGuiKey = 543;
455pub const ImGuiKey_8: ImGuiKey = 544;
456pub const ImGuiKey_9: ImGuiKey = 545;
457pub const ImGuiKey_A: ImGuiKey = 546;
458pub const ImGuiKey_B: ImGuiKey = 547;
459pub const ImGuiKey_C: ImGuiKey = 548;
460pub const ImGuiKey_D: ImGuiKey = 549;
461pub const ImGuiKey_E: ImGuiKey = 550;
462pub const ImGuiKey_F: ImGuiKey = 551;
463pub const ImGuiKey_G: ImGuiKey = 552;
464pub const ImGuiKey_H: ImGuiKey = 553;
465pub const ImGuiKey_I: ImGuiKey = 554;
466pub const ImGuiKey_J: ImGuiKey = 555;
467pub const ImGuiKey_K: ImGuiKey = 556;
468pub const ImGuiKey_L: ImGuiKey = 557;
469pub const ImGuiKey_M: ImGuiKey = 558;
470pub const ImGuiKey_N: ImGuiKey = 559;
471pub const ImGuiKey_O: ImGuiKey = 560;
472pub const ImGuiKey_P: ImGuiKey = 561;
473pub const ImGuiKey_Q: ImGuiKey = 562;
474pub const ImGuiKey_R: ImGuiKey = 563;
475pub const ImGuiKey_S: ImGuiKey = 564;
476pub const ImGuiKey_T: ImGuiKey = 565;
477pub const ImGuiKey_U: ImGuiKey = 566;
478pub const ImGuiKey_V: ImGuiKey = 567;
479pub const ImGuiKey_W: ImGuiKey = 568;
480pub const ImGuiKey_X: ImGuiKey = 569;
481pub const ImGuiKey_Y: ImGuiKey = 570;
482pub const ImGuiKey_Z: ImGuiKey = 571;
483pub const ImGuiKey_F1: ImGuiKey = 572;
484pub const ImGuiKey_F2: ImGuiKey = 573;
485pub const ImGuiKey_F3: ImGuiKey = 574;
486pub const ImGuiKey_F4: ImGuiKey = 575;
487pub const ImGuiKey_F5: ImGuiKey = 576;
488pub const ImGuiKey_F6: ImGuiKey = 577;
489pub const ImGuiKey_F7: ImGuiKey = 578;
490pub const ImGuiKey_F8: ImGuiKey = 579;
491pub const ImGuiKey_F9: ImGuiKey = 580;
492pub const ImGuiKey_F10: ImGuiKey = 581;
493pub const ImGuiKey_F11: ImGuiKey = 582;
494pub const ImGuiKey_F12: ImGuiKey = 583;
495pub const ImGuiKey_Apostrophe: ImGuiKey = 584;
496pub const ImGuiKey_Comma: ImGuiKey = 585;
497pub const ImGuiKey_Minus: ImGuiKey = 586;
498pub const ImGuiKey_Period: ImGuiKey = 587;
499pub const ImGuiKey_Slash: ImGuiKey = 588;
500pub const ImGuiKey_Semicolon: ImGuiKey = 589;
501pub const ImGuiKey_Equal: ImGuiKey = 590;
502pub const ImGuiKey_LeftBracket: ImGuiKey = 591;
503pub const ImGuiKey_Backslash: ImGuiKey = 592;
504pub const ImGuiKey_RightBracket: ImGuiKey = 593;
505pub const ImGuiKey_GraveAccent: ImGuiKey = 594;
506pub const ImGuiKey_CapsLock: ImGuiKey = 595;
507pub const ImGuiKey_ScrollLock: ImGuiKey = 596;
508pub const ImGuiKey_NumLock: ImGuiKey = 597;
509pub const ImGuiKey_PrintScreen: ImGuiKey = 598;
510pub const ImGuiKey_Pause: ImGuiKey = 599;
511pub const ImGuiKey_Keypad0: ImGuiKey = 600;
512pub const ImGuiKey_Keypad1: ImGuiKey = 601;
513pub const ImGuiKey_Keypad2: ImGuiKey = 602;
514pub const ImGuiKey_Keypad3: ImGuiKey = 603;
515pub const ImGuiKey_Keypad4: ImGuiKey = 604;
516pub const ImGuiKey_Keypad5: ImGuiKey = 605;
517pub const ImGuiKey_Keypad6: ImGuiKey = 606;
518pub const ImGuiKey_Keypad7: ImGuiKey = 607;
519pub const ImGuiKey_Keypad8: ImGuiKey = 608;
520pub const ImGuiKey_Keypad9: ImGuiKey = 609;
521pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610;
522pub const ImGuiKey_KeypadDivide: ImGuiKey = 611;
523pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612;
524pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613;
525pub const ImGuiKey_KeypadAdd: ImGuiKey = 614;
526pub const ImGuiKey_KeypadEnter: ImGuiKey = 615;
527pub const ImGuiKey_KeypadEqual: ImGuiKey = 616;
528pub const ImGuiKey_GamepadStart: ImGuiKey = 617;
529pub const ImGuiKey_GamepadBack: ImGuiKey = 618;
530pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619;
531pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620;
532pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621;
533pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622;
534pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623;
535pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624;
536pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625;
537pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626;
538pub const ImGuiKey_GamepadL1: ImGuiKey = 627;
539pub const ImGuiKey_GamepadR1: ImGuiKey = 628;
540pub const ImGuiKey_GamepadL2: ImGuiKey = 629;
541pub const ImGuiKey_GamepadR2: ImGuiKey = 630;
542pub const ImGuiKey_GamepadL3: ImGuiKey = 631;
543pub const ImGuiKey_GamepadR3: ImGuiKey = 632;
544pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633;
545pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634;
546pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635;
547pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636;
548pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637;
549pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638;
550pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639;
551pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640;
552pub const ImGuiKey_MouseLeft: ImGuiKey = 641;
553pub const ImGuiKey_MouseRight: ImGuiKey = 642;
554pub const ImGuiKey_MouseMiddle: ImGuiKey = 643;
555pub const ImGuiKey_MouseX1: ImGuiKey = 644;
556pub const ImGuiKey_MouseX2: ImGuiKey = 645;
557pub const ImGuiKey_MouseWheelX: ImGuiKey = 646;
558pub const ImGuiKey_MouseWheelY: ImGuiKey = 647;
559pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648;
560pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649;
561pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650;
562pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651;
563pub const ImGuiKey_COUNT: ImGuiKey = 652;
564pub const ImGuiMod_None: ImGuiKey = 0;
565pub const ImGuiMod_Ctrl: ImGuiKey = 4096;
566pub const ImGuiMod_Shift: ImGuiKey = 8192;
567pub const ImGuiMod_Alt: ImGuiKey = 16384;
568pub const ImGuiMod_Super: ImGuiKey = 32768;
569pub const ImGuiMod_Shortcut: ImGuiKey = 2048;
570pub const ImGuiMod_Mask_: ImGuiKey = 63488;
571pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512;
572pub const ImGuiKey_NamedKey_END: ImGuiKey = 652;
573pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140;
574pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652;
575pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0;
576pub type ImGuiKey = cty::c_uint;
577pub const ImGuiNavInput_Activate: ImGuiNavInput = 0;
578pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1;
579pub const ImGuiNavInput_Input: ImGuiNavInput = 2;
580pub const ImGuiNavInput_Menu: ImGuiNavInput = 3;
581pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4;
582pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5;
583pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6;
584pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7;
585pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8;
586pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9;
587pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10;
588pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11;
589pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12;
590pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13;
591pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14;
592pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15;
593pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16;
594pub type ImGuiNavInput = cty::c_uint;
595pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0;
596pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1;
597pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2;
598pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4;
599pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8;
600pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16;
601pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32;
602pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576;
603pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152;
604pub type ImGuiConfigFlags_ = cty::c_uint;
605pub const ImGuiBackendFlags_None: ImGuiBackendFlags_ = 0;
606pub const ImGuiBackendFlags_HasGamepad: ImGuiBackendFlags_ = 1;
607pub const ImGuiBackendFlags_HasMouseCursors: ImGuiBackendFlags_ = 2;
608pub const ImGuiBackendFlags_HasSetMousePos: ImGuiBackendFlags_ = 4;
609pub const ImGuiBackendFlags_RendererHasVtxOffset: ImGuiBackendFlags_ = 8;
610pub type ImGuiBackendFlags_ = cty::c_uint;
611pub const ImGuiCol_Text: ImGuiCol_ = 0;
612pub const ImGuiCol_TextDisabled: ImGuiCol_ = 1;
613pub const ImGuiCol_WindowBg: ImGuiCol_ = 2;
614pub const ImGuiCol_ChildBg: ImGuiCol_ = 3;
615pub const ImGuiCol_PopupBg: ImGuiCol_ = 4;
616pub const ImGuiCol_Border: ImGuiCol_ = 5;
617pub const ImGuiCol_BorderShadow: ImGuiCol_ = 6;
618pub const ImGuiCol_FrameBg: ImGuiCol_ = 7;
619pub const ImGuiCol_FrameBgHovered: ImGuiCol_ = 8;
620pub const ImGuiCol_FrameBgActive: ImGuiCol_ = 9;
621pub const ImGuiCol_TitleBg: ImGuiCol_ = 10;
622pub const ImGuiCol_TitleBgActive: ImGuiCol_ = 11;
623pub const ImGuiCol_TitleBgCollapsed: ImGuiCol_ = 12;
624pub const ImGuiCol_MenuBarBg: ImGuiCol_ = 13;
625pub const ImGuiCol_ScrollbarBg: ImGuiCol_ = 14;
626pub const ImGuiCol_ScrollbarGrab: ImGuiCol_ = 15;
627pub const ImGuiCol_ScrollbarGrabHovered: ImGuiCol_ = 16;
628pub const ImGuiCol_ScrollbarGrabActive: ImGuiCol_ = 17;
629pub const ImGuiCol_CheckMark: ImGuiCol_ = 18;
630pub const ImGuiCol_SliderGrab: ImGuiCol_ = 19;
631pub const ImGuiCol_SliderGrabActive: ImGuiCol_ = 20;
632pub const ImGuiCol_Button: ImGuiCol_ = 21;
633pub const ImGuiCol_ButtonHovered: ImGuiCol_ = 22;
634pub const ImGuiCol_ButtonActive: ImGuiCol_ = 23;
635pub const ImGuiCol_Header: ImGuiCol_ = 24;
636pub const ImGuiCol_HeaderHovered: ImGuiCol_ = 25;
637pub const ImGuiCol_HeaderActive: ImGuiCol_ = 26;
638pub const ImGuiCol_Separator: ImGuiCol_ = 27;
639pub const ImGuiCol_SeparatorHovered: ImGuiCol_ = 28;
640pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29;
641pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30;
642pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31;
643pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32;
644pub const ImGuiCol_Tab: ImGuiCol_ = 33;
645pub const ImGuiCol_TabHovered: ImGuiCol_ = 34;
646pub const ImGuiCol_TabActive: ImGuiCol_ = 35;
647pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36;
648pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37;
649pub const ImGuiCol_PlotLines: ImGuiCol_ = 38;
650pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 39;
651pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 40;
652pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 41;
653pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 42;
654pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 43;
655pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 44;
656pub const ImGuiCol_TableRowBg: ImGuiCol_ = 45;
657pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 46;
658pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 47;
659pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 48;
660pub const ImGuiCol_NavHighlight: ImGuiCol_ = 49;
661pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 50;
662pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 51;
663pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 52;
664pub const ImGuiCol_COUNT: ImGuiCol_ = 53;
665pub type ImGuiCol_ = cty::c_uint;
666pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0;
667pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1;
668pub const ImGuiStyleVar_WindowPadding: ImGuiStyleVar_ = 2;
669pub const ImGuiStyleVar_WindowRounding: ImGuiStyleVar_ = 3;
670pub const ImGuiStyleVar_WindowBorderSize: ImGuiStyleVar_ = 4;
671pub const ImGuiStyleVar_WindowMinSize: ImGuiStyleVar_ = 5;
672pub const ImGuiStyleVar_WindowTitleAlign: ImGuiStyleVar_ = 6;
673pub const ImGuiStyleVar_ChildRounding: ImGuiStyleVar_ = 7;
674pub const ImGuiStyleVar_ChildBorderSize: ImGuiStyleVar_ = 8;
675pub const ImGuiStyleVar_PopupRounding: ImGuiStyleVar_ = 9;
676pub const ImGuiStyleVar_PopupBorderSize: ImGuiStyleVar_ = 10;
677pub const ImGuiStyleVar_FramePadding: ImGuiStyleVar_ = 11;
678pub const ImGuiStyleVar_FrameRounding: ImGuiStyleVar_ = 12;
679pub const ImGuiStyleVar_FrameBorderSize: ImGuiStyleVar_ = 13;
680pub const ImGuiStyleVar_ItemSpacing: ImGuiStyleVar_ = 14;
681pub const ImGuiStyleVar_ItemInnerSpacing: ImGuiStyleVar_ = 15;
682pub const ImGuiStyleVar_IndentSpacing: ImGuiStyleVar_ = 16;
683pub const ImGuiStyleVar_CellPadding: ImGuiStyleVar_ = 17;
684pub const ImGuiStyleVar_ScrollbarSize: ImGuiStyleVar_ = 18;
685pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19;
686pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20;
687pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21;
688pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22;
689pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23;
690pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24;
691pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25;
692pub type ImGuiStyleVar_ = cty::c_uint;
693pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0;
694pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1;
695pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2;
696pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4;
697pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7;
698pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1;
699pub type ImGuiButtonFlags_ = cty::c_uint;
700pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0;
701pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2;
702pub const ImGuiColorEditFlags_NoPicker: ImGuiColorEditFlags_ = 4;
703pub const ImGuiColorEditFlags_NoOptions: ImGuiColorEditFlags_ = 8;
704pub const ImGuiColorEditFlags_NoSmallPreview: ImGuiColorEditFlags_ = 16;
705pub const ImGuiColorEditFlags_NoInputs: ImGuiColorEditFlags_ = 32;
706pub const ImGuiColorEditFlags_NoTooltip: ImGuiColorEditFlags_ = 64;
707pub const ImGuiColorEditFlags_NoLabel: ImGuiColorEditFlags_ = 128;
708pub const ImGuiColorEditFlags_NoSidePreview: ImGuiColorEditFlags_ = 256;
709pub const ImGuiColorEditFlags_NoDragDrop: ImGuiColorEditFlags_ = 512;
710pub const ImGuiColorEditFlags_NoBorder: ImGuiColorEditFlags_ = 1024;
711pub const ImGuiColorEditFlags_AlphaBar: ImGuiColorEditFlags_ = 65536;
712pub const ImGuiColorEditFlags_AlphaPreview: ImGuiColorEditFlags_ = 131072;
713pub const ImGuiColorEditFlags_AlphaPreviewHalf: ImGuiColorEditFlags_ = 262144;
714pub const ImGuiColorEditFlags_HDR: ImGuiColorEditFlags_ = 524288;
715pub const ImGuiColorEditFlags_DisplayRGB: ImGuiColorEditFlags_ = 1048576;
716pub const ImGuiColorEditFlags_DisplayHSV: ImGuiColorEditFlags_ = 2097152;
717pub const ImGuiColorEditFlags_DisplayHex: ImGuiColorEditFlags_ = 4194304;
718pub const ImGuiColorEditFlags_Uint8: ImGuiColorEditFlags_ = 8388608;
719pub const ImGuiColorEditFlags_Float: ImGuiColorEditFlags_ = 16777216;
720pub const ImGuiColorEditFlags_PickerHueBar: ImGuiColorEditFlags_ = 33554432;
721pub const ImGuiColorEditFlags_PickerHueWheel: ImGuiColorEditFlags_ = 67108864;
722pub const ImGuiColorEditFlags_InputRGB: ImGuiColorEditFlags_ = 134217728;
723pub const ImGuiColorEditFlags_InputHSV: ImGuiColorEditFlags_ = 268435456;
724pub const ImGuiColorEditFlags_DefaultOptions_: ImGuiColorEditFlags_ = 177209344;
725pub const ImGuiColorEditFlags_DisplayMask_: ImGuiColorEditFlags_ = 7340032;
726pub const ImGuiColorEditFlags_DataTypeMask_: ImGuiColorEditFlags_ = 25165824;
727pub const ImGuiColorEditFlags_PickerMask_: ImGuiColorEditFlags_ = 100663296;
728pub const ImGuiColorEditFlags_InputMask_: ImGuiColorEditFlags_ = 402653184;
729pub type ImGuiColorEditFlags_ = cty::c_uint;
730pub const ImGuiSliderFlags_None: ImGuiSliderFlags_ = 0;
731pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16;
732pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32;
733pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64;
734pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128;
735pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207;
736pub type ImGuiSliderFlags_ = cty::c_uint;
737pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0;
738pub const ImGuiMouseButton_Right: ImGuiMouseButton_ = 1;
739pub const ImGuiMouseButton_Middle: ImGuiMouseButton_ = 2;
740pub const ImGuiMouseButton_COUNT: ImGuiMouseButton_ = 5;
741pub type ImGuiMouseButton_ = cty::c_uint;
742pub const ImGuiMouseCursor_None: ImGuiMouseCursor_ = -1;
743pub const ImGuiMouseCursor_Arrow: ImGuiMouseCursor_ = 0;
744pub const ImGuiMouseCursor_TextInput: ImGuiMouseCursor_ = 1;
745pub const ImGuiMouseCursor_ResizeAll: ImGuiMouseCursor_ = 2;
746pub const ImGuiMouseCursor_ResizeNS: ImGuiMouseCursor_ = 3;
747pub const ImGuiMouseCursor_ResizeEW: ImGuiMouseCursor_ = 4;
748pub const ImGuiMouseCursor_ResizeNESW: ImGuiMouseCursor_ = 5;
749pub const ImGuiMouseCursor_ResizeNWSE: ImGuiMouseCursor_ = 6;
750pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7;
751pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8;
752pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9;
753pub type ImGuiMouseCursor_ = cty::c_int;
754pub const ImGuiCond_None: ImGuiCond_ = 0;
755pub const ImGuiCond_Always: ImGuiCond_ = 1;
756pub const ImGuiCond_Once: ImGuiCond_ = 2;
757pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4;
758pub const ImGuiCond_Appearing: ImGuiCond_ = 8;
759pub type ImGuiCond_ = cty::c_uint;
760#[repr(C)]
761#[derive(Debug, Copy, Clone, PartialEq)]
762pub struct ImGuiStyle {
763    pub Alpha: f32,
764    pub DisabledAlpha: f32,
765    pub WindowPadding: ImVec2,
766    pub WindowRounding: f32,
767    pub WindowBorderSize: f32,
768    pub WindowMinSize: ImVec2,
769    pub WindowTitleAlign: ImVec2,
770    pub WindowMenuButtonPosition: ImGuiDir,
771    pub ChildRounding: f32,
772    pub ChildBorderSize: f32,
773    pub PopupRounding: f32,
774    pub PopupBorderSize: f32,
775    pub FramePadding: ImVec2,
776    pub FrameRounding: f32,
777    pub FrameBorderSize: f32,
778    pub ItemSpacing: ImVec2,
779    pub ItemInnerSpacing: ImVec2,
780    pub CellPadding: ImVec2,
781    pub TouchExtraPadding: ImVec2,
782    pub IndentSpacing: f32,
783    pub ColumnsMinSpacing: f32,
784    pub ScrollbarSize: f32,
785    pub ScrollbarRounding: f32,
786    pub GrabMinSize: f32,
787    pub GrabRounding: f32,
788    pub LogSliderDeadzone: f32,
789    pub TabRounding: f32,
790    pub TabBorderSize: f32,
791    pub TabMinWidthForCloseButton: f32,
792    pub ColorButtonPosition: ImGuiDir,
793    pub ButtonTextAlign: ImVec2,
794    pub SelectableTextAlign: ImVec2,
795    pub DisplayWindowPadding: ImVec2,
796    pub DisplaySafeAreaPadding: ImVec2,
797    pub MouseCursorScale: f32,
798    pub AntiAliasedLines: bool,
799    pub AntiAliasedLinesUseTex: bool,
800    pub AntiAliasedFill: bool,
801    pub CurveTessellationTol: f32,
802    pub CircleTessellationMaxError: f32,
803    pub Colors: [ImVec4; 53usize],
804}
805impl Default for ImGuiStyle {
806    fn default() -> Self {
807        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
808        unsafe {
809            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
810            s.assume_init()
811        }
812    }
813}
814#[repr(C)]
815#[derive(Debug, Default, Copy, Clone, PartialEq)]
816pub struct ImGuiKeyData {
817    pub Down: bool,
818    pub DownDuration: f32,
819    pub DownDurationPrev: f32,
820    pub AnalogValue: f32,
821}
822#[repr(C)]
823#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
824pub struct ImVector_ImWchar {
825    pub Size: cty::c_int,
826    pub Capacity: cty::c_int,
827    pub Data: *mut ImWchar,
828}
829impl Default for ImVector_ImWchar {
830    fn default() -> Self {
831        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
832        unsafe {
833            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
834            s.assume_init()
835        }
836    }
837}
838#[repr(C)]
839#[derive(Debug, Copy, Clone, PartialEq)]
840pub struct ImGuiIO {
841    pub ConfigFlags: ImGuiConfigFlags,
842    pub BackendFlags: ImGuiBackendFlags,
843    pub DisplaySize: ImVec2,
844    pub DeltaTime: f32,
845    pub IniSavingRate: f32,
846    pub IniFilename: *const cty::c_char,
847    pub LogFilename: *const cty::c_char,
848    pub MouseDoubleClickTime: f32,
849    pub MouseDoubleClickMaxDist: f32,
850    pub MouseDragThreshold: f32,
851    pub KeyRepeatDelay: f32,
852    pub KeyRepeatRate: f32,
853    pub HoverDelayNormal: f32,
854    pub HoverDelayShort: f32,
855    pub UserData: *mut cty::c_void,
856    pub Fonts: *mut ImFontAtlas,
857    pub FontGlobalScale: f32,
858    pub FontAllowUserScaling: bool,
859    pub FontDefault: *mut ImFont,
860    pub DisplayFramebufferScale: ImVec2,
861    pub MouseDrawCursor: bool,
862    pub ConfigMacOSXBehaviors: bool,
863    pub ConfigInputTrickleEventQueue: bool,
864    pub ConfigInputTextCursorBlink: bool,
865    pub ConfigInputTextEnterKeepActive: bool,
866    pub ConfigDragClickToInputText: bool,
867    pub ConfigWindowsResizeFromEdges: bool,
868    pub ConfigWindowsMoveFromTitleBarOnly: bool,
869    pub ConfigMemoryCompactTimer: f32,
870    pub BackendPlatformName: *const cty::c_char,
871    pub BackendRendererName: *const cty::c_char,
872    pub BackendPlatformUserData: *mut cty::c_void,
873    pub BackendRendererUserData: *mut cty::c_void,
874    pub BackendLanguageUserData: *mut cty::c_void,
875    pub GetClipboardTextFn: ::core::option::Option<
876        unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char,
877    >,
878    pub SetClipboardTextFn: ::core::option::Option<
879        unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char),
880    >,
881    pub ClipboardUserData: *mut cty::c_void,
882    pub SetPlatformImeDataFn: ::core::option::Option<
883        unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData),
884    >,
885    pub _UnusedPadding: *mut cty::c_void,
886    pub WantCaptureMouse: bool,
887    pub WantCaptureKeyboard: bool,
888    pub WantTextInput: bool,
889    pub WantSetMousePos: bool,
890    pub WantSaveIniSettings: bool,
891    pub NavActive: bool,
892    pub NavVisible: bool,
893    pub Framerate: f32,
894    pub MetricsRenderVertices: cty::c_int,
895    pub MetricsRenderIndices: cty::c_int,
896    pub MetricsRenderWindows: cty::c_int,
897    pub MetricsActiveWindows: cty::c_int,
898    pub MetricsActiveAllocations: cty::c_int,
899    pub MouseDelta: ImVec2,
900    pub KeyMap: [cty::c_int; 652usize],
901    pub KeysDown: [bool; 652usize],
902    pub NavInputs: [f32; 16usize],
903    pub MousePos: ImVec2,
904    pub MouseDown: [bool; 5usize],
905    pub MouseWheel: f32,
906    pub MouseWheelH: f32,
907    pub KeyCtrl: bool,
908    pub KeyShift: bool,
909    pub KeyAlt: bool,
910    pub KeySuper: bool,
911    pub KeyMods: ImGuiKeyChord,
912    pub KeysData: [ImGuiKeyData; 652usize],
913    pub WantCaptureMouseUnlessPopupClose: bool,
914    pub MousePosPrev: ImVec2,
915    pub MouseClickedPos: [ImVec2; 5usize],
916    pub MouseClickedTime: [f64; 5usize],
917    pub MouseClicked: [bool; 5usize],
918    pub MouseDoubleClicked: [bool; 5usize],
919    pub MouseClickedCount: [ImU16; 5usize],
920    pub MouseClickedLastCount: [ImU16; 5usize],
921    pub MouseReleased: [bool; 5usize],
922    pub MouseDownOwned: [bool; 5usize],
923    pub MouseDownOwnedUnlessPopupClose: [bool; 5usize],
924    pub MouseDownDuration: [f32; 5usize],
925    pub MouseDownDurationPrev: [f32; 5usize],
926    pub MouseDragMaxDistanceSqr: [f32; 5usize],
927    pub PenPressure: f32,
928    pub AppFocusLost: bool,
929    pub AppAcceptingEvents: bool,
930    pub BackendUsingLegacyKeyArrays: ImS8,
931    pub BackendUsingLegacyNavInputArray: bool,
932    pub InputQueueSurrogate: ImWchar16,
933    pub InputQueueCharacters: ImVector_ImWchar,
934}
935impl Default for ImGuiIO {
936    fn default() -> Self {
937        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
938        unsafe {
939            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
940            s.assume_init()
941        }
942    }
943}
944#[repr(C)]
945#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
946pub struct ImGuiInputTextCallbackData {
947    pub EventFlag: ImGuiInputTextFlags,
948    pub Flags: ImGuiInputTextFlags,
949    pub UserData: *mut cty::c_void,
950    pub EventChar: ImWchar,
951    pub EventKey: ImGuiKey,
952    pub Buf: *mut cty::c_char,
953    pub BufTextLen: cty::c_int,
954    pub BufSize: cty::c_int,
955    pub BufDirty: bool,
956    pub CursorPos: cty::c_int,
957    pub SelectionStart: cty::c_int,
958    pub SelectionEnd: cty::c_int,
959}
960impl Default for ImGuiInputTextCallbackData {
961    fn default() -> Self {
962        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
963        unsafe {
964            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
965            s.assume_init()
966        }
967    }
968}
969#[repr(C)]
970#[derive(Debug, Copy, Clone, PartialEq)]
971pub struct ImGuiSizeCallbackData {
972    pub UserData: *mut cty::c_void,
973    pub Pos: ImVec2,
974    pub CurrentSize: ImVec2,
975    pub DesiredSize: ImVec2,
976}
977impl Default for ImGuiSizeCallbackData {
978    fn default() -> Self {
979        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
980        unsafe {
981            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
982            s.assume_init()
983        }
984    }
985}
986#[repr(C)]
987#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
988pub struct ImGuiPayload {
989    pub Data: *mut cty::c_void,
990    pub DataSize: cty::c_int,
991    pub SourceId: ImGuiID,
992    pub SourceParentId: ImGuiID,
993    pub DataFrameCount: cty::c_int,
994    pub DataType: [cty::c_char; 33usize],
995    pub Preview: bool,
996    pub Delivery: bool,
997}
998impl Default for ImGuiPayload {
999    fn default() -> Self {
1000        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1001        unsafe {
1002            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1003            s.assume_init()
1004        }
1005    }
1006}
1007#[repr(C)]
1008#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1009pub struct ImGuiTableColumnSortSpecs {
1010    pub ColumnUserID: ImGuiID,
1011    pub ColumnIndex: ImS16,
1012    pub SortOrder: ImS16,
1013    pub _bitfield_align_1: [u8; 0],
1014    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1015    pub __bindgen_padding_0: [u8; 3usize],
1016}
1017impl ImGuiTableColumnSortSpecs {
1018    #[inline]
1019    pub fn SortDirection(&self) -> ImGuiSortDirection {
1020        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
1021    }
1022    #[inline]
1023    pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) {
1024        unsafe {
1025            let val: u32 = ::core::mem::transmute(val);
1026            self._bitfield_1.set(0usize, 8u8, val as u64)
1027        }
1028    }
1029    #[inline]
1030    pub fn new_bitfield_1(
1031        SortDirection: ImGuiSortDirection,
1032    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1033        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1034        __bindgen_bitfield_unit.set(0usize, 8u8, {
1035            let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) };
1036            SortDirection as u64
1037        });
1038        __bindgen_bitfield_unit
1039    }
1040}
1041#[repr(C)]
1042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1043pub struct ImGuiTableSortSpecs {
1044    pub Specs: *const ImGuiTableColumnSortSpecs,
1045    pub SpecsCount: cty::c_int,
1046    pub SpecsDirty: bool,
1047}
1048impl Default for ImGuiTableSortSpecs {
1049    fn default() -> Self {
1050        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1051        unsafe {
1052            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1053            s.assume_init()
1054        }
1055    }
1056}
1057#[repr(C)]
1058#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1059pub struct ImGuiOnceUponAFrame {
1060    pub RefFrame: cty::c_int,
1061}
1062#[repr(C)]
1063#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1064pub struct ImGuiTextRange {
1065    pub b: *const cty::c_char,
1066    pub e: *const cty::c_char,
1067}
1068impl Default for ImGuiTextRange {
1069    fn default() -> Self {
1070        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1071        unsafe {
1072            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1073            s.assume_init()
1074        }
1075    }
1076}
1077#[repr(C)]
1078#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1079pub struct ImVector_ImGuiTextRange {
1080    pub Size: cty::c_int,
1081    pub Capacity: cty::c_int,
1082    pub Data: *mut ImGuiTextRange,
1083}
1084impl Default for ImVector_ImGuiTextRange {
1085    fn default() -> Self {
1086        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1087        unsafe {
1088            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1089            s.assume_init()
1090        }
1091    }
1092}
1093#[repr(C)]
1094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1095pub struct ImGuiTextFilter {
1096    pub InputBuf: [cty::c_char; 256usize],
1097    pub Filters: ImVector_ImGuiTextRange,
1098    pub CountGrep: cty::c_int,
1099}
1100impl Default for ImGuiTextFilter {
1101    fn default() -> Self {
1102        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1103        unsafe {
1104            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1105            s.assume_init()
1106        }
1107    }
1108}
1109#[repr(C)]
1110#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1111pub struct ImVector_char {
1112    pub Size: cty::c_int,
1113    pub Capacity: cty::c_int,
1114    pub Data: *mut cty::c_char,
1115}
1116impl Default for ImVector_char {
1117    fn default() -> Self {
1118        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1119        unsafe {
1120            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1121            s.assume_init()
1122        }
1123    }
1124}
1125#[repr(C)]
1126#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1127pub struct ImGuiTextBuffer {
1128    pub Buf: ImVector_char,
1129}
1130impl Default for ImGuiTextBuffer {
1131    fn default() -> Self {
1132        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1133        unsafe {
1134            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1135            s.assume_init()
1136        }
1137    }
1138}
1139#[repr(C)]
1140#[derive(Copy, Clone)]
1141pub struct ImGuiStoragePair {
1142    pub key: ImGuiID,
1143    pub __bindgen_anon_1: ImGuiStoragePair__bindgen_ty_1,
1144}
1145#[repr(C)]
1146#[derive(Copy, Clone)]
1147pub union ImGuiStoragePair__bindgen_ty_1 {
1148    pub val_i: cty::c_int,
1149    pub val_f: f32,
1150    pub val_p: *mut cty::c_void,
1151}
1152impl Default for ImGuiStoragePair__bindgen_ty_1 {
1153    fn default() -> Self {
1154        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1155        unsafe {
1156            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1157            s.assume_init()
1158        }
1159    }
1160}
1161impl ::core::fmt::Debug for ImGuiStoragePair__bindgen_ty_1 {
1162    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1163        write!(f, "ImGuiStoragePair__bindgen_ty_1 {{ union }}")
1164    }
1165}
1166impl Default for ImGuiStoragePair {
1167    fn default() -> Self {
1168        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1169        unsafe {
1170            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1171            s.assume_init()
1172        }
1173    }
1174}
1175impl ::core::fmt::Debug for ImGuiStoragePair {
1176    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1177        write!(
1178            f,
1179            "ImGuiStoragePair {{ key: {:?}, __bindgen_anon_1: {:?} }}",
1180            self.key, self.__bindgen_anon_1
1181        )
1182    }
1183}
1184#[repr(C)]
1185#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1186pub struct ImVector_ImGuiStoragePair {
1187    pub Size: cty::c_int,
1188    pub Capacity: cty::c_int,
1189    pub Data: *mut ImGuiStoragePair,
1190}
1191impl Default for ImVector_ImGuiStoragePair {
1192    fn default() -> Self {
1193        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1194        unsafe {
1195            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1196            s.assume_init()
1197        }
1198    }
1199}
1200#[repr(C)]
1201#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1202pub struct ImGuiStorage {
1203    pub Data: ImVector_ImGuiStoragePair,
1204}
1205impl Default for ImGuiStorage {
1206    fn default() -> Self {
1207        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1208        unsafe {
1209            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1210            s.assume_init()
1211        }
1212    }
1213}
1214#[repr(C)]
1215#[derive(Debug, Copy, Clone, PartialEq)]
1216pub struct ImGuiListClipper {
1217    pub DisplayStart: cty::c_int,
1218    pub DisplayEnd: cty::c_int,
1219    pub ItemsCount: cty::c_int,
1220    pub ItemsHeight: f32,
1221    pub StartPosY: f32,
1222    pub TempData: *mut cty::c_void,
1223}
1224impl Default for ImGuiListClipper {
1225    fn default() -> Self {
1226        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1227        unsafe {
1228            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1229            s.assume_init()
1230        }
1231    }
1232}
1233#[repr(C)]
1234#[derive(Debug, Default, Copy, Clone, PartialEq)]
1235pub struct ImColor {
1236    pub Value: ImVec4,
1237}
1238pub type ImDrawCallback = ::core::option::Option<
1239    unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd),
1240>;
1241#[repr(C)]
1242#[derive(Debug, Copy, Clone, PartialEq)]
1243pub struct ImDrawCmd {
1244    pub ClipRect: ImVec4,
1245    pub TextureId: ImTextureID,
1246    pub VtxOffset: cty::c_uint,
1247    pub IdxOffset: cty::c_uint,
1248    pub ElemCount: cty::c_uint,
1249    pub UserCallback: ImDrawCallback,
1250    pub UserCallbackData: *mut cty::c_void,
1251}
1252impl Default for ImDrawCmd {
1253    fn default() -> Self {
1254        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1255        unsafe {
1256            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1257            s.assume_init()
1258        }
1259    }
1260}
1261#[repr(C)]
1262#[derive(Debug, Default, Copy, Clone, PartialEq)]
1263pub struct ImDrawVert {
1264    pub pos: ImVec2,
1265    pub uv: ImVec2,
1266    pub col: ImU32,
1267}
1268#[repr(C)]
1269#[derive(Debug, Copy, Clone, PartialEq)]
1270pub struct ImDrawCmdHeader {
1271    pub ClipRect: ImVec4,
1272    pub TextureId: ImTextureID,
1273    pub VtxOffset: cty::c_uint,
1274}
1275impl Default for ImDrawCmdHeader {
1276    fn default() -> Self {
1277        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1278        unsafe {
1279            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1280            s.assume_init()
1281        }
1282    }
1283}
1284#[repr(C)]
1285#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1286pub struct ImVector_ImDrawCmd {
1287    pub Size: cty::c_int,
1288    pub Capacity: cty::c_int,
1289    pub Data: *mut ImDrawCmd,
1290}
1291impl Default for ImVector_ImDrawCmd {
1292    fn default() -> Self {
1293        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1294        unsafe {
1295            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1296            s.assume_init()
1297        }
1298    }
1299}
1300#[repr(C)]
1301#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1302pub struct ImVector_ImDrawIdx {
1303    pub Size: cty::c_int,
1304    pub Capacity: cty::c_int,
1305    pub Data: *mut ImDrawIdx,
1306}
1307impl Default for ImVector_ImDrawIdx {
1308    fn default() -> Self {
1309        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1310        unsafe {
1311            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1312            s.assume_init()
1313        }
1314    }
1315}
1316#[repr(C)]
1317#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1318pub struct ImDrawChannel {
1319    pub _CmdBuffer: ImVector_ImDrawCmd,
1320    pub _IdxBuffer: ImVector_ImDrawIdx,
1321}
1322impl Default for ImDrawChannel {
1323    fn default() -> Self {
1324        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1325        unsafe {
1326            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1327            s.assume_init()
1328        }
1329    }
1330}
1331#[repr(C)]
1332#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1333pub struct ImVector_ImDrawChannel {
1334    pub Size: cty::c_int,
1335    pub Capacity: cty::c_int,
1336    pub Data: *mut ImDrawChannel,
1337}
1338impl Default for ImVector_ImDrawChannel {
1339    fn default() -> Self {
1340        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1341        unsafe {
1342            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1343            s.assume_init()
1344        }
1345    }
1346}
1347#[repr(C)]
1348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1349pub struct ImDrawListSplitter {
1350    pub _Current: cty::c_int,
1351    pub _Count: cty::c_int,
1352    pub _Channels: ImVector_ImDrawChannel,
1353}
1354impl Default for ImDrawListSplitter {
1355    fn default() -> Self {
1356        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1357        unsafe {
1358            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1359            s.assume_init()
1360        }
1361    }
1362}
1363pub const ImDrawFlags_None: ImDrawFlags_ = 0;
1364pub const ImDrawFlags_Closed: ImDrawFlags_ = 1;
1365pub const ImDrawFlags_RoundCornersTopLeft: ImDrawFlags_ = 16;
1366pub const ImDrawFlags_RoundCornersTopRight: ImDrawFlags_ = 32;
1367pub const ImDrawFlags_RoundCornersBottomLeft: ImDrawFlags_ = 64;
1368pub const ImDrawFlags_RoundCornersBottomRight: ImDrawFlags_ = 128;
1369pub const ImDrawFlags_RoundCornersNone: ImDrawFlags_ = 256;
1370pub const ImDrawFlags_RoundCornersTop: ImDrawFlags_ = 48;
1371pub const ImDrawFlags_RoundCornersBottom: ImDrawFlags_ = 192;
1372pub const ImDrawFlags_RoundCornersLeft: ImDrawFlags_ = 80;
1373pub const ImDrawFlags_RoundCornersRight: ImDrawFlags_ = 160;
1374pub const ImDrawFlags_RoundCornersAll: ImDrawFlags_ = 240;
1375pub const ImDrawFlags_RoundCornersDefault_: ImDrawFlags_ = 240;
1376pub const ImDrawFlags_RoundCornersMask_: ImDrawFlags_ = 496;
1377pub type ImDrawFlags_ = cty::c_uint;
1378pub const ImDrawListFlags_None: ImDrawListFlags_ = 0;
1379pub const ImDrawListFlags_AntiAliasedLines: ImDrawListFlags_ = 1;
1380pub const ImDrawListFlags_AntiAliasedLinesUseTex: ImDrawListFlags_ = 2;
1381pub const ImDrawListFlags_AntiAliasedFill: ImDrawListFlags_ = 4;
1382pub const ImDrawListFlags_AllowVtxOffset: ImDrawListFlags_ = 8;
1383pub type ImDrawListFlags_ = cty::c_uint;
1384#[repr(C)]
1385#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1386pub struct ImVector_ImDrawVert {
1387    pub Size: cty::c_int,
1388    pub Capacity: cty::c_int,
1389    pub Data: *mut ImDrawVert,
1390}
1391impl Default for ImVector_ImDrawVert {
1392    fn default() -> Self {
1393        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1394        unsafe {
1395            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1396            s.assume_init()
1397        }
1398    }
1399}
1400#[repr(C)]
1401#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1402pub struct ImVector_ImVec4 {
1403    pub Size: cty::c_int,
1404    pub Capacity: cty::c_int,
1405    pub Data: *mut ImVec4,
1406}
1407impl Default for ImVector_ImVec4 {
1408    fn default() -> Self {
1409        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1410        unsafe {
1411            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1412            s.assume_init()
1413        }
1414    }
1415}
1416#[repr(C)]
1417#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1418pub struct ImVector_ImTextureID {
1419    pub Size: cty::c_int,
1420    pub Capacity: cty::c_int,
1421    pub Data: *mut ImTextureID,
1422}
1423impl Default for ImVector_ImTextureID {
1424    fn default() -> Self {
1425        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1426        unsafe {
1427            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1428            s.assume_init()
1429        }
1430    }
1431}
1432#[repr(C)]
1433#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1434pub struct ImVector_ImVec2 {
1435    pub Size: cty::c_int,
1436    pub Capacity: cty::c_int,
1437    pub Data: *mut ImVec2,
1438}
1439impl Default for ImVector_ImVec2 {
1440    fn default() -> Self {
1441        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1442        unsafe {
1443            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1444            s.assume_init()
1445        }
1446    }
1447}
1448#[repr(C)]
1449#[derive(Debug, Copy, Clone, PartialEq)]
1450pub struct ImDrawList {
1451    pub CmdBuffer: ImVector_ImDrawCmd,
1452    pub IdxBuffer: ImVector_ImDrawIdx,
1453    pub VtxBuffer: ImVector_ImDrawVert,
1454    pub Flags: ImDrawListFlags,
1455    pub _VtxCurrentIdx: cty::c_uint,
1456    pub _Data: *mut ImDrawListSharedData,
1457    pub _OwnerName: *const cty::c_char,
1458    pub _VtxWritePtr: *mut ImDrawVert,
1459    pub _IdxWritePtr: *mut ImDrawIdx,
1460    pub _ClipRectStack: ImVector_ImVec4,
1461    pub _TextureIdStack: ImVector_ImTextureID,
1462    pub _Path: ImVector_ImVec2,
1463    pub _CmdHeader: ImDrawCmdHeader,
1464    pub _Splitter: ImDrawListSplitter,
1465    pub _FringeScale: f32,
1466}
1467impl Default for ImDrawList {
1468    fn default() -> Self {
1469        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1470        unsafe {
1471            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1472            s.assume_init()
1473        }
1474    }
1475}
1476#[repr(C)]
1477#[derive(Debug, Copy, Clone, PartialEq)]
1478pub struct ImDrawData {
1479    pub Valid: bool,
1480    pub CmdListsCount: cty::c_int,
1481    pub TotalIdxCount: cty::c_int,
1482    pub TotalVtxCount: cty::c_int,
1483    pub CmdLists: *mut *mut ImDrawList,
1484    pub DisplayPos: ImVec2,
1485    pub DisplaySize: ImVec2,
1486    pub FramebufferScale: ImVec2,
1487}
1488impl Default for ImDrawData {
1489    fn default() -> Self {
1490        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1491        unsafe {
1492            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1493            s.assume_init()
1494        }
1495    }
1496}
1497#[repr(C)]
1498#[derive(Debug, Copy, Clone, PartialEq)]
1499pub struct ImFontConfig {
1500    pub FontData: *mut cty::c_void,
1501    pub FontDataSize: cty::c_int,
1502    pub FontDataOwnedByAtlas: bool,
1503    pub FontNo: cty::c_int,
1504    pub SizePixels: f32,
1505    pub OversampleH: cty::c_int,
1506    pub OversampleV: cty::c_int,
1507    pub PixelSnapH: bool,
1508    pub GlyphExtraSpacing: ImVec2,
1509    pub GlyphOffset: ImVec2,
1510    pub GlyphRanges: *const ImWchar,
1511    pub GlyphMinAdvanceX: f32,
1512    pub GlyphMaxAdvanceX: f32,
1513    pub MergeMode: bool,
1514    pub FontBuilderFlags: cty::c_uint,
1515    pub RasterizerMultiply: f32,
1516    pub EllipsisChar: ImWchar,
1517    pub Name: [cty::c_char; 40usize],
1518    pub DstFont: *mut ImFont,
1519}
1520impl Default for ImFontConfig {
1521    fn default() -> Self {
1522        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1523        unsafe {
1524            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1525            s.assume_init()
1526        }
1527    }
1528}
1529#[repr(C)]
1530#[derive(Debug, Default, Copy, Clone, PartialEq)]
1531pub struct ImFontGlyph {
1532    pub _bitfield_align_1: [u32; 0],
1533    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
1534    pub AdvanceX: f32,
1535    pub X0: f32,
1536    pub Y0: f32,
1537    pub X1: f32,
1538    pub Y1: f32,
1539    pub U0: f32,
1540    pub V0: f32,
1541    pub U1: f32,
1542    pub V1: f32,
1543}
1544impl ImFontGlyph {
1545    #[inline]
1546    pub fn Colored(&self) -> cty::c_uint {
1547        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1548    }
1549    #[inline]
1550    pub fn set_Colored(&mut self, val: cty::c_uint) {
1551        unsafe {
1552            let val: u32 = ::core::mem::transmute(val);
1553            self._bitfield_1.set(0usize, 1u8, val as u64)
1554        }
1555    }
1556    #[inline]
1557    pub fn Visible(&self) -> cty::c_uint {
1558        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1559    }
1560    #[inline]
1561    pub fn set_Visible(&mut self, val: cty::c_uint) {
1562        unsafe {
1563            let val: u32 = ::core::mem::transmute(val);
1564            self._bitfield_1.set(1usize, 1u8, val as u64)
1565        }
1566    }
1567    #[inline]
1568    pub fn Codepoint(&self) -> cty::c_uint {
1569        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
1570    }
1571    #[inline]
1572    pub fn set_Codepoint(&mut self, val: cty::c_uint) {
1573        unsafe {
1574            let val: u32 = ::core::mem::transmute(val);
1575            self._bitfield_1.set(2usize, 30u8, val as u64)
1576        }
1577    }
1578    #[inline]
1579    pub fn new_bitfield_1(
1580        Colored: cty::c_uint,
1581        Visible: cty::c_uint,
1582        Codepoint: cty::c_uint,
1583    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
1584        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
1585        __bindgen_bitfield_unit.set(0usize, 1u8, {
1586            let Colored: u32 = unsafe { ::core::mem::transmute(Colored) };
1587            Colored as u64
1588        });
1589        __bindgen_bitfield_unit.set(1usize, 1u8, {
1590            let Visible: u32 = unsafe { ::core::mem::transmute(Visible) };
1591            Visible as u64
1592        });
1593        __bindgen_bitfield_unit.set(2usize, 30u8, {
1594            let Codepoint: u32 = unsafe { ::core::mem::transmute(Codepoint) };
1595            Codepoint as u64
1596        });
1597        __bindgen_bitfield_unit
1598    }
1599}
1600#[repr(C)]
1601#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1602pub struct ImVector_ImU32 {
1603    pub Size: cty::c_int,
1604    pub Capacity: cty::c_int,
1605    pub Data: *mut ImU32,
1606}
1607impl Default for ImVector_ImU32 {
1608    fn default() -> Self {
1609        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1610        unsafe {
1611            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1612            s.assume_init()
1613        }
1614    }
1615}
1616#[repr(C)]
1617#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1618pub struct ImFontGlyphRangesBuilder {
1619    pub UsedChars: ImVector_ImU32,
1620}
1621impl Default for ImFontGlyphRangesBuilder {
1622    fn default() -> Self {
1623        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1624        unsafe {
1625            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1626            s.assume_init()
1627        }
1628    }
1629}
1630#[repr(C)]
1631#[derive(Debug, Copy, Clone, PartialEq)]
1632pub struct ImFontAtlasCustomRect {
1633    pub Width: cty::c_ushort,
1634    pub Height: cty::c_ushort,
1635    pub X: cty::c_ushort,
1636    pub Y: cty::c_ushort,
1637    pub GlyphID: cty::c_uint,
1638    pub GlyphAdvanceX: f32,
1639    pub GlyphOffset: ImVec2,
1640    pub Font: *mut ImFont,
1641}
1642impl Default for ImFontAtlasCustomRect {
1643    fn default() -> Self {
1644        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1645        unsafe {
1646            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1647            s.assume_init()
1648        }
1649    }
1650}
1651pub const ImFontAtlasFlags_None: ImFontAtlasFlags_ = 0;
1652pub const ImFontAtlasFlags_NoPowerOfTwoHeight: ImFontAtlasFlags_ = 1;
1653pub const ImFontAtlasFlags_NoMouseCursors: ImFontAtlasFlags_ = 2;
1654pub const ImFontAtlasFlags_NoBakedLines: ImFontAtlasFlags_ = 4;
1655pub type ImFontAtlasFlags_ = cty::c_uint;
1656#[repr(C)]
1657#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1658pub struct ImVector_ImFontPtr {
1659    pub Size: cty::c_int,
1660    pub Capacity: cty::c_int,
1661    pub Data: *mut *mut ImFont,
1662}
1663impl Default for ImVector_ImFontPtr {
1664    fn default() -> Self {
1665        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1666        unsafe {
1667            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1668            s.assume_init()
1669        }
1670    }
1671}
1672#[repr(C)]
1673#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1674pub struct ImVector_ImFontAtlasCustomRect {
1675    pub Size: cty::c_int,
1676    pub Capacity: cty::c_int,
1677    pub Data: *mut ImFontAtlasCustomRect,
1678}
1679impl Default for ImVector_ImFontAtlasCustomRect {
1680    fn default() -> Self {
1681        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1682        unsafe {
1683            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1684            s.assume_init()
1685        }
1686    }
1687}
1688#[repr(C)]
1689#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1690pub struct ImVector_ImFontConfig {
1691    pub Size: cty::c_int,
1692    pub Capacity: cty::c_int,
1693    pub Data: *mut ImFontConfig,
1694}
1695impl Default for ImVector_ImFontConfig {
1696    fn default() -> Self {
1697        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1698        unsafe {
1699            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1700            s.assume_init()
1701        }
1702    }
1703}
1704#[repr(C)]
1705#[derive(Debug, Copy, Clone, PartialEq)]
1706pub struct ImFontAtlas {
1707    pub Flags: ImFontAtlasFlags,
1708    pub TexID: ImTextureID,
1709    pub TexDesiredWidth: cty::c_int,
1710    pub TexGlyphPadding: cty::c_int,
1711    pub Locked: bool,
1712    pub UserData: *mut cty::c_void,
1713    pub TexReady: bool,
1714    pub TexPixelsUseColors: bool,
1715    pub TexPixelsAlpha8: *mut cty::c_uchar,
1716    pub TexPixelsRGBA32: *mut cty::c_uint,
1717    pub TexWidth: cty::c_int,
1718    pub TexHeight: cty::c_int,
1719    pub TexUvScale: ImVec2,
1720    pub TexUvWhitePixel: ImVec2,
1721    pub Fonts: ImVector_ImFontPtr,
1722    pub CustomRects: ImVector_ImFontAtlasCustomRect,
1723    pub ConfigData: ImVector_ImFontConfig,
1724    pub TexUvLines: [ImVec4; 64usize],
1725    pub FontBuilderIO: *const ImFontBuilderIO,
1726    pub FontBuilderFlags: cty::c_uint,
1727    pub PackIdMouseCursors: cty::c_int,
1728    pub PackIdLines: cty::c_int,
1729}
1730impl Default for ImFontAtlas {
1731    fn default() -> Self {
1732        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1733        unsafe {
1734            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1735            s.assume_init()
1736        }
1737    }
1738}
1739#[repr(C)]
1740#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1741pub struct ImVector_float {
1742    pub Size: cty::c_int,
1743    pub Capacity: cty::c_int,
1744    pub Data: *mut f32,
1745}
1746impl Default for ImVector_float {
1747    fn default() -> Self {
1748        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1749        unsafe {
1750            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1751            s.assume_init()
1752        }
1753    }
1754}
1755#[repr(C)]
1756#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1757pub struct ImVector_ImFontGlyph {
1758    pub Size: cty::c_int,
1759    pub Capacity: cty::c_int,
1760    pub Data: *mut ImFontGlyph,
1761}
1762impl Default for ImVector_ImFontGlyph {
1763    fn default() -> Self {
1764        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1765        unsafe {
1766            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1767            s.assume_init()
1768        }
1769    }
1770}
1771#[repr(C)]
1772#[derive(Debug, Copy, Clone, PartialEq)]
1773pub struct ImFont {
1774    pub IndexAdvanceX: ImVector_float,
1775    pub FallbackAdvanceX: f32,
1776    pub FontSize: f32,
1777    pub IndexLookup: ImVector_ImWchar,
1778    pub Glyphs: ImVector_ImFontGlyph,
1779    pub FallbackGlyph: *const ImFontGlyph,
1780    pub ContainerAtlas: *mut ImFontAtlas,
1781    pub ConfigData: *const ImFontConfig,
1782    pub ConfigDataCount: cty::c_short,
1783    pub FallbackChar: ImWchar,
1784    pub EllipsisChar: ImWchar,
1785    pub DotChar: ImWchar,
1786    pub DirtyLookupTables: bool,
1787    pub Scale: f32,
1788    pub Ascent: f32,
1789    pub Descent: f32,
1790    pub MetricsTotalSurface: cty::c_int,
1791    pub Used4kPagesMap: [ImU8; 34usize],
1792}
1793impl Default for ImFont {
1794    fn default() -> Self {
1795        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1796        unsafe {
1797            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1798            s.assume_init()
1799        }
1800    }
1801}
1802pub const ImGuiViewportFlags_None: ImGuiViewportFlags_ = 0;
1803pub const ImGuiViewportFlags_IsPlatformWindow: ImGuiViewportFlags_ = 1;
1804pub const ImGuiViewportFlags_IsPlatformMonitor: ImGuiViewportFlags_ = 2;
1805pub const ImGuiViewportFlags_OwnedByApp: ImGuiViewportFlags_ = 4;
1806pub type ImGuiViewportFlags_ = cty::c_uint;
1807#[repr(C)]
1808#[derive(Debug, Copy, Clone, PartialEq)]
1809pub struct ImGuiViewport {
1810    pub Flags: ImGuiViewportFlags,
1811    pub Pos: ImVec2,
1812    pub Size: ImVec2,
1813    pub WorkPos: ImVec2,
1814    pub WorkSize: ImVec2,
1815    pub PlatformHandleRaw: *mut cty::c_void,
1816}
1817impl Default for ImGuiViewport {
1818    fn default() -> Self {
1819        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1820        unsafe {
1821            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1822            s.assume_init()
1823        }
1824    }
1825}
1826#[repr(C)]
1827#[derive(Debug, Default, Copy, Clone, PartialEq)]
1828pub struct ImGuiPlatformImeData {
1829    pub WantVisible: bool,
1830    pub InputPos: ImVec2,
1831    pub InputLineHeight: f32,
1832}
1833extern "C" {
1834    pub fn ImVec2_ImVec2_Nil() -> *mut ImVec2;
1835}
1836extern "C" {
1837    pub fn ImVec2_destroy(self_: *mut ImVec2);
1838}
1839extern "C" {
1840    pub fn ImVec2_ImVec2_Float(_x: f32, _y: f32) -> *mut ImVec2;
1841}
1842extern "C" {
1843    pub fn ImVec4_ImVec4_Nil() -> *mut ImVec4;
1844}
1845extern "C" {
1846    pub fn ImVec4_destroy(self_: *mut ImVec4);
1847}
1848extern "C" {
1849    pub fn ImVec4_ImVec4_Float(_x: f32, _y: f32, _z: f32, _w: f32) -> *mut ImVec4;
1850}
1851extern "C" {
1852    pub fn igCreateContext(shared_font_atlas: *mut ImFontAtlas) -> *mut ImGuiContext;
1853}
1854extern "C" {
1855    pub fn igDestroyContext(ctx: *mut ImGuiContext);
1856}
1857extern "C" {
1858    pub fn igGetCurrentContext() -> *mut ImGuiContext;
1859}
1860extern "C" {
1861    pub fn igSetCurrentContext(ctx: *mut ImGuiContext);
1862}
1863extern "C" {
1864    pub fn igGetIO() -> *mut ImGuiIO;
1865}
1866extern "C" {
1867    pub fn igGetStyle() -> *mut ImGuiStyle;
1868}
1869extern "C" {
1870    pub fn igNewFrame();
1871}
1872extern "C" {
1873    pub fn igEndFrame();
1874}
1875extern "C" {
1876    pub fn igRender();
1877}
1878extern "C" {
1879    pub fn igGetDrawData() -> *mut ImDrawData;
1880}
1881extern "C" {
1882    pub fn igShowDemoWindow(p_open: *mut bool);
1883}
1884extern "C" {
1885    pub fn igShowMetricsWindow(p_open: *mut bool);
1886}
1887extern "C" {
1888    pub fn igShowDebugLogWindow(p_open: *mut bool);
1889}
1890extern "C" {
1891    pub fn igShowStackToolWindow(p_open: *mut bool);
1892}
1893extern "C" {
1894    pub fn igShowAboutWindow(p_open: *mut bool);
1895}
1896extern "C" {
1897    pub fn igShowStyleEditor(ref_: *mut ImGuiStyle);
1898}
1899extern "C" {
1900    pub fn igShowStyleSelector(label: *const cty::c_char) -> bool;
1901}
1902extern "C" {
1903    pub fn igShowFontSelector(label: *const cty::c_char);
1904}
1905extern "C" {
1906    pub fn igShowUserGuide();
1907}
1908extern "C" {
1909    pub fn igGetVersion() -> *const cty::c_char;
1910}
1911extern "C" {
1912    pub fn igStyleColorsDark(dst: *mut ImGuiStyle);
1913}
1914extern "C" {
1915    pub fn igStyleColorsLight(dst: *mut ImGuiStyle);
1916}
1917extern "C" {
1918    pub fn igStyleColorsClassic(dst: *mut ImGuiStyle);
1919}
1920extern "C" {
1921    pub fn igBegin(name: *const cty::c_char, p_open: *mut bool, flags: ImGuiWindowFlags) -> bool;
1922}
1923extern "C" {
1924    pub fn igEnd();
1925}
1926extern "C" {
1927    pub fn igBeginChild_Str(
1928        str_id: *const cty::c_char,
1929        size: ImVec2,
1930        border: bool,
1931        flags: ImGuiWindowFlags,
1932    ) -> bool;
1933}
1934extern "C" {
1935    pub fn igBeginChild_ID(
1936        id: ImGuiID,
1937        size: ImVec2,
1938        border: bool,
1939        flags: ImGuiWindowFlags,
1940    ) -> bool;
1941}
1942extern "C" {
1943    pub fn igEndChild();
1944}
1945extern "C" {
1946    pub fn igIsWindowAppearing() -> bool;
1947}
1948extern "C" {
1949    pub fn igIsWindowCollapsed() -> bool;
1950}
1951extern "C" {
1952    pub fn igIsWindowFocused(flags: ImGuiFocusedFlags) -> bool;
1953}
1954extern "C" {
1955    pub fn igIsWindowHovered(flags: ImGuiHoveredFlags) -> bool;
1956}
1957extern "C" {
1958    pub fn igGetWindowDrawList() -> *mut ImDrawList;
1959}
1960extern "C" {
1961    pub fn igGetWindowPos(pOut: *mut ImVec2);
1962}
1963extern "C" {
1964    pub fn igGetWindowSize(pOut: *mut ImVec2);
1965}
1966extern "C" {
1967    pub fn igGetWindowWidth() -> f32;
1968}
1969extern "C" {
1970    pub fn igGetWindowHeight() -> f32;
1971}
1972extern "C" {
1973    pub fn igSetNextWindowPos(pos: ImVec2, cond: ImGuiCond, pivot: ImVec2);
1974}
1975extern "C" {
1976    pub fn igSetNextWindowSize(size: ImVec2, cond: ImGuiCond);
1977}
1978extern "C" {
1979    pub fn igSetNextWindowSizeConstraints(
1980        size_min: ImVec2,
1981        size_max: ImVec2,
1982        custom_callback: ImGuiSizeCallback,
1983        custom_callback_data: *mut cty::c_void,
1984    );
1985}
1986extern "C" {
1987    pub fn igSetNextWindowContentSize(size: ImVec2);
1988}
1989extern "C" {
1990    pub fn igSetNextWindowCollapsed(collapsed: bool, cond: ImGuiCond);
1991}
1992extern "C" {
1993    pub fn igSetNextWindowFocus();
1994}
1995extern "C" {
1996    pub fn igSetNextWindowScroll(scroll: ImVec2);
1997}
1998extern "C" {
1999    pub fn igSetNextWindowBgAlpha(alpha: f32);
2000}
2001extern "C" {
2002    pub fn igSetWindowPos_Vec2(pos: ImVec2, cond: ImGuiCond);
2003}
2004extern "C" {
2005    pub fn igSetWindowSize_Vec2(size: ImVec2, cond: ImGuiCond);
2006}
2007extern "C" {
2008    pub fn igSetWindowCollapsed_Bool(collapsed: bool, cond: ImGuiCond);
2009}
2010extern "C" {
2011    pub fn igSetWindowFocus_Nil();
2012}
2013extern "C" {
2014    pub fn igSetWindowFontScale(scale: f32);
2015}
2016extern "C" {
2017    pub fn igSetWindowPos_Str(name: *const cty::c_char, pos: ImVec2, cond: ImGuiCond);
2018}
2019extern "C" {
2020    pub fn igSetWindowSize_Str(name: *const cty::c_char, size: ImVec2, cond: ImGuiCond);
2021}
2022extern "C" {
2023    pub fn igSetWindowCollapsed_Str(name: *const cty::c_char, collapsed: bool, cond: ImGuiCond);
2024}
2025extern "C" {
2026    pub fn igSetWindowFocus_Str(name: *const cty::c_char);
2027}
2028extern "C" {
2029    pub fn igGetContentRegionAvail(pOut: *mut ImVec2);
2030}
2031extern "C" {
2032    pub fn igGetContentRegionMax(pOut: *mut ImVec2);
2033}
2034extern "C" {
2035    pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2);
2036}
2037extern "C" {
2038    pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2);
2039}
2040extern "C" {
2041    pub fn igGetScrollX() -> f32;
2042}
2043extern "C" {
2044    pub fn igGetScrollY() -> f32;
2045}
2046extern "C" {
2047    pub fn igSetScrollX(scroll_x: f32);
2048}
2049extern "C" {
2050    pub fn igSetScrollY(scroll_y: f32);
2051}
2052extern "C" {
2053    pub fn igGetScrollMaxX() -> f32;
2054}
2055extern "C" {
2056    pub fn igGetScrollMaxY() -> f32;
2057}
2058extern "C" {
2059    pub fn igSetScrollHereX(center_x_ratio: f32);
2060}
2061extern "C" {
2062    pub fn igSetScrollHereY(center_y_ratio: f32);
2063}
2064extern "C" {
2065    pub fn igSetScrollFromPosX(local_x: f32, center_x_ratio: f32);
2066}
2067extern "C" {
2068    pub fn igSetScrollFromPosY(local_y: f32, center_y_ratio: f32);
2069}
2070extern "C" {
2071    pub fn igPushFont(font: *mut ImFont);
2072}
2073extern "C" {
2074    pub fn igPopFont();
2075}
2076extern "C" {
2077    pub fn igPushStyleColor_U32(idx: ImGuiCol, col: ImU32);
2078}
2079extern "C" {
2080    pub fn igPushStyleColor_Vec4(idx: ImGuiCol, col: ImVec4);
2081}
2082extern "C" {
2083    pub fn igPopStyleColor(count: cty::c_int);
2084}
2085extern "C" {
2086    pub fn igPushStyleVar_Float(idx: ImGuiStyleVar, val: f32);
2087}
2088extern "C" {
2089    pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2);
2090}
2091extern "C" {
2092    pub fn igPopStyleVar(count: cty::c_int);
2093}
2094extern "C" {
2095    pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool);
2096}
2097extern "C" {
2098    pub fn igPopAllowKeyboardFocus();
2099}
2100extern "C" {
2101    pub fn igPushButtonRepeat(repeat: bool);
2102}
2103extern "C" {
2104    pub fn igPopButtonRepeat();
2105}
2106extern "C" {
2107    pub fn igPushItemWidth(item_width: f32);
2108}
2109extern "C" {
2110    pub fn igPopItemWidth();
2111}
2112extern "C" {
2113    pub fn igSetNextItemWidth(item_width: f32);
2114}
2115extern "C" {
2116    pub fn igCalcItemWidth() -> f32;
2117}
2118extern "C" {
2119    pub fn igPushTextWrapPos(wrap_local_pos_x: f32);
2120}
2121extern "C" {
2122    pub fn igPopTextWrapPos();
2123}
2124extern "C" {
2125    pub fn igGetFont() -> *mut ImFont;
2126}
2127extern "C" {
2128    pub fn igGetFontSize() -> f32;
2129}
2130extern "C" {
2131    pub fn igGetFontTexUvWhitePixel(pOut: *mut ImVec2);
2132}
2133extern "C" {
2134    pub fn igGetColorU32_Col(idx: ImGuiCol, alpha_mul: f32) -> ImU32;
2135}
2136extern "C" {
2137    pub fn igGetColorU32_Vec4(col: ImVec4) -> ImU32;
2138}
2139extern "C" {
2140    pub fn igGetColorU32_U32(col: ImU32) -> ImU32;
2141}
2142extern "C" {
2143    pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4;
2144}
2145extern "C" {
2146    pub fn igSeparator();
2147}
2148extern "C" {
2149    pub fn igSameLine(offset_from_start_x: f32, spacing: f32);
2150}
2151extern "C" {
2152    pub fn igNewLine();
2153}
2154extern "C" {
2155    pub fn igSpacing();
2156}
2157extern "C" {
2158    pub fn igDummy(size: ImVec2);
2159}
2160extern "C" {
2161    pub fn igIndent(indent_w: f32);
2162}
2163extern "C" {
2164    pub fn igUnindent(indent_w: f32);
2165}
2166extern "C" {
2167    pub fn igBeginGroup();
2168}
2169extern "C" {
2170    pub fn igEndGroup();
2171}
2172extern "C" {
2173    pub fn igGetCursorPos(pOut: *mut ImVec2);
2174}
2175extern "C" {
2176    pub fn igGetCursorPosX() -> f32;
2177}
2178extern "C" {
2179    pub fn igGetCursorPosY() -> f32;
2180}
2181extern "C" {
2182    pub fn igSetCursorPos(local_pos: ImVec2);
2183}
2184extern "C" {
2185    pub fn igSetCursorPosX(local_x: f32);
2186}
2187extern "C" {
2188    pub fn igSetCursorPosY(local_y: f32);
2189}
2190extern "C" {
2191    pub fn igGetCursorStartPos(pOut: *mut ImVec2);
2192}
2193extern "C" {
2194    pub fn igGetCursorScreenPos(pOut: *mut ImVec2);
2195}
2196extern "C" {
2197    pub fn igSetCursorScreenPos(pos: ImVec2);
2198}
2199extern "C" {
2200    pub fn igAlignTextToFramePadding();
2201}
2202extern "C" {
2203    pub fn igGetTextLineHeight() -> f32;
2204}
2205extern "C" {
2206    pub fn igGetTextLineHeightWithSpacing() -> f32;
2207}
2208extern "C" {
2209    pub fn igGetFrameHeight() -> f32;
2210}
2211extern "C" {
2212    pub fn igGetFrameHeightWithSpacing() -> f32;
2213}
2214extern "C" {
2215    pub fn igPushID_Str(str_id: *const cty::c_char);
2216}
2217extern "C" {
2218    pub fn igPushID_StrStr(str_id_begin: *const cty::c_char, str_id_end: *const cty::c_char);
2219}
2220extern "C" {
2221    pub fn igPushID_Ptr(ptr_id: *const cty::c_void);
2222}
2223extern "C" {
2224    pub fn igPushID_Int(int_id: cty::c_int);
2225}
2226extern "C" {
2227    pub fn igPopID();
2228}
2229extern "C" {
2230    pub fn igGetID_Str(str_id: *const cty::c_char) -> ImGuiID;
2231}
2232extern "C" {
2233    pub fn igGetID_StrStr(
2234        str_id_begin: *const cty::c_char,
2235        str_id_end: *const cty::c_char,
2236    ) -> ImGuiID;
2237}
2238extern "C" {
2239    pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID;
2240}
2241extern "C" {
2242    pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char);
2243}
2244extern "C" {
2245    pub fn igText(fmt: *const cty::c_char, ...);
2246}
2247extern "C" {
2248    pub fn igTextColored(col: ImVec4, fmt: *const cty::c_char, ...);
2249}
2250extern "C" {
2251    pub fn igTextDisabled(fmt: *const cty::c_char, ...);
2252}
2253extern "C" {
2254    pub fn igTextWrapped(fmt: *const cty::c_char, ...);
2255}
2256extern "C" {
2257    pub fn igLabelText(label: *const cty::c_char, fmt: *const cty::c_char, ...);
2258}
2259extern "C" {
2260    pub fn igBulletText(fmt: *const cty::c_char, ...);
2261}
2262extern "C" {
2263    pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool;
2264}
2265extern "C" {
2266    pub fn igSmallButton(label: *const cty::c_char) -> bool;
2267}
2268extern "C" {
2269    pub fn igInvisibleButton(
2270        str_id: *const cty::c_char,
2271        size: ImVec2,
2272        flags: ImGuiButtonFlags,
2273    ) -> bool;
2274}
2275extern "C" {
2276    pub fn igArrowButton(str_id: *const cty::c_char, dir: ImGuiDir) -> bool;
2277}
2278extern "C" {
2279    pub fn igCheckbox(label: *const cty::c_char, v: *mut bool) -> bool;
2280}
2281extern "C" {
2282    pub fn igCheckboxFlags_IntPtr(
2283        label: *const cty::c_char,
2284        flags: *mut cty::c_int,
2285        flags_value: cty::c_int,
2286    ) -> bool;
2287}
2288extern "C" {
2289    pub fn igCheckboxFlags_UintPtr(
2290        label: *const cty::c_char,
2291        flags: *mut cty::c_uint,
2292        flags_value: cty::c_uint,
2293    ) -> bool;
2294}
2295extern "C" {
2296    pub fn igRadioButton_Bool(label: *const cty::c_char, active: bool) -> bool;
2297}
2298extern "C" {
2299    pub fn igRadioButton_IntPtr(
2300        label: *const cty::c_char,
2301        v: *mut cty::c_int,
2302        v_button: cty::c_int,
2303    ) -> bool;
2304}
2305extern "C" {
2306    pub fn igProgressBar(fraction: f32, size_arg: ImVec2, overlay: *const cty::c_char);
2307}
2308extern "C" {
2309    pub fn igBullet();
2310}
2311extern "C" {
2312    pub fn igImage(
2313        user_texture_id: ImTextureID,
2314        size: ImVec2,
2315        uv0: ImVec2,
2316        uv1: ImVec2,
2317        tint_col: ImVec4,
2318        border_col: ImVec4,
2319    );
2320}
2321extern "C" {
2322    pub fn igImageButton(
2323        str_id: *const cty::c_char,
2324        user_texture_id: ImTextureID,
2325        size: ImVec2,
2326        uv0: ImVec2,
2327        uv1: ImVec2,
2328        bg_col: ImVec4,
2329        tint_col: ImVec4,
2330    ) -> bool;
2331}
2332extern "C" {
2333    pub fn igBeginCombo(
2334        label: *const cty::c_char,
2335        preview_value: *const cty::c_char,
2336        flags: ImGuiComboFlags,
2337    ) -> bool;
2338}
2339extern "C" {
2340    pub fn igEndCombo();
2341}
2342extern "C" {
2343    pub fn igCombo_Str_arr(
2344        label: *const cty::c_char,
2345        current_item: *mut cty::c_int,
2346        items: *const *const cty::c_char,
2347        items_count: cty::c_int,
2348        popup_max_height_in_items: cty::c_int,
2349    ) -> bool;
2350}
2351extern "C" {
2352    pub fn igCombo_Str(
2353        label: *const cty::c_char,
2354        current_item: *mut cty::c_int,
2355        items_separated_by_zeros: *const cty::c_char,
2356        popup_max_height_in_items: cty::c_int,
2357    ) -> bool;
2358}
2359extern "C" {
2360    pub fn igCombo_FnBoolPtr(
2361        label: *const cty::c_char,
2362        current_item: *mut cty::c_int,
2363        items_getter: ::core::option::Option<
2364            unsafe extern "C" fn(
2365                data: *mut cty::c_void,
2366                idx: cty::c_int,
2367                out_text: *mut *const cty::c_char,
2368            ) -> bool,
2369        >,
2370        data: *mut cty::c_void,
2371        items_count: cty::c_int,
2372        popup_max_height_in_items: cty::c_int,
2373    ) -> bool;
2374}
2375extern "C" {
2376    pub fn igDragFloat(
2377        label: *const cty::c_char,
2378        v: *mut f32,
2379        v_speed: f32,
2380        v_min: f32,
2381        v_max: f32,
2382        format: *const cty::c_char,
2383        flags: ImGuiSliderFlags,
2384    ) -> bool;
2385}
2386extern "C" {
2387    pub fn igDragFloat2(
2388        label: *const cty::c_char,
2389        v: *mut f32,
2390        v_speed: f32,
2391        v_min: f32,
2392        v_max: f32,
2393        format: *const cty::c_char,
2394        flags: ImGuiSliderFlags,
2395    ) -> bool;
2396}
2397extern "C" {
2398    pub fn igDragFloat3(
2399        label: *const cty::c_char,
2400        v: *mut f32,
2401        v_speed: f32,
2402        v_min: f32,
2403        v_max: f32,
2404        format: *const cty::c_char,
2405        flags: ImGuiSliderFlags,
2406    ) -> bool;
2407}
2408extern "C" {
2409    pub fn igDragFloat4(
2410        label: *const cty::c_char,
2411        v: *mut f32,
2412        v_speed: f32,
2413        v_min: f32,
2414        v_max: f32,
2415        format: *const cty::c_char,
2416        flags: ImGuiSliderFlags,
2417    ) -> bool;
2418}
2419extern "C" {
2420    pub fn igDragFloatRange2(
2421        label: *const cty::c_char,
2422        v_current_min: *mut f32,
2423        v_current_max: *mut f32,
2424        v_speed: f32,
2425        v_min: f32,
2426        v_max: f32,
2427        format: *const cty::c_char,
2428        format_max: *const cty::c_char,
2429        flags: ImGuiSliderFlags,
2430    ) -> bool;
2431}
2432extern "C" {
2433    pub fn igDragInt(
2434        label: *const cty::c_char,
2435        v: *mut cty::c_int,
2436        v_speed: f32,
2437        v_min: cty::c_int,
2438        v_max: cty::c_int,
2439        format: *const cty::c_char,
2440        flags: ImGuiSliderFlags,
2441    ) -> bool;
2442}
2443extern "C" {
2444    pub fn igDragInt2(
2445        label: *const cty::c_char,
2446        v: *mut cty::c_int,
2447        v_speed: f32,
2448        v_min: cty::c_int,
2449        v_max: cty::c_int,
2450        format: *const cty::c_char,
2451        flags: ImGuiSliderFlags,
2452    ) -> bool;
2453}
2454extern "C" {
2455    pub fn igDragInt3(
2456        label: *const cty::c_char,
2457        v: *mut cty::c_int,
2458        v_speed: f32,
2459        v_min: cty::c_int,
2460        v_max: cty::c_int,
2461        format: *const cty::c_char,
2462        flags: ImGuiSliderFlags,
2463    ) -> bool;
2464}
2465extern "C" {
2466    pub fn igDragInt4(
2467        label: *const cty::c_char,
2468        v: *mut cty::c_int,
2469        v_speed: f32,
2470        v_min: cty::c_int,
2471        v_max: cty::c_int,
2472        format: *const cty::c_char,
2473        flags: ImGuiSliderFlags,
2474    ) -> bool;
2475}
2476extern "C" {
2477    pub fn igDragIntRange2(
2478        label: *const cty::c_char,
2479        v_current_min: *mut cty::c_int,
2480        v_current_max: *mut cty::c_int,
2481        v_speed: f32,
2482        v_min: cty::c_int,
2483        v_max: cty::c_int,
2484        format: *const cty::c_char,
2485        format_max: *const cty::c_char,
2486        flags: ImGuiSliderFlags,
2487    ) -> bool;
2488}
2489extern "C" {
2490    pub fn igDragScalar(
2491        label: *const cty::c_char,
2492        data_type: ImGuiDataType,
2493        p_data: *mut cty::c_void,
2494        v_speed: f32,
2495        p_min: *const cty::c_void,
2496        p_max: *const cty::c_void,
2497        format: *const cty::c_char,
2498        flags: ImGuiSliderFlags,
2499    ) -> bool;
2500}
2501extern "C" {
2502    pub fn igDragScalarN(
2503        label: *const cty::c_char,
2504        data_type: ImGuiDataType,
2505        p_data: *mut cty::c_void,
2506        components: cty::c_int,
2507        v_speed: f32,
2508        p_min: *const cty::c_void,
2509        p_max: *const cty::c_void,
2510        format: *const cty::c_char,
2511        flags: ImGuiSliderFlags,
2512    ) -> bool;
2513}
2514extern "C" {
2515    pub fn igSliderFloat(
2516        label: *const cty::c_char,
2517        v: *mut f32,
2518        v_min: f32,
2519        v_max: f32,
2520        format: *const cty::c_char,
2521        flags: ImGuiSliderFlags,
2522    ) -> bool;
2523}
2524extern "C" {
2525    pub fn igSliderFloat2(
2526        label: *const cty::c_char,
2527        v: *mut f32,
2528        v_min: f32,
2529        v_max: f32,
2530        format: *const cty::c_char,
2531        flags: ImGuiSliderFlags,
2532    ) -> bool;
2533}
2534extern "C" {
2535    pub fn igSliderFloat3(
2536        label: *const cty::c_char,
2537        v: *mut f32,
2538        v_min: f32,
2539        v_max: f32,
2540        format: *const cty::c_char,
2541        flags: ImGuiSliderFlags,
2542    ) -> bool;
2543}
2544extern "C" {
2545    pub fn igSliderFloat4(
2546        label: *const cty::c_char,
2547        v: *mut f32,
2548        v_min: f32,
2549        v_max: f32,
2550        format: *const cty::c_char,
2551        flags: ImGuiSliderFlags,
2552    ) -> bool;
2553}
2554extern "C" {
2555    pub fn igSliderAngle(
2556        label: *const cty::c_char,
2557        v_rad: *mut f32,
2558        v_degrees_min: f32,
2559        v_degrees_max: f32,
2560        format: *const cty::c_char,
2561        flags: ImGuiSliderFlags,
2562    ) -> bool;
2563}
2564extern "C" {
2565    pub fn igSliderInt(
2566        label: *const cty::c_char,
2567        v: *mut cty::c_int,
2568        v_min: cty::c_int,
2569        v_max: cty::c_int,
2570        format: *const cty::c_char,
2571        flags: ImGuiSliderFlags,
2572    ) -> bool;
2573}
2574extern "C" {
2575    pub fn igSliderInt2(
2576        label: *const cty::c_char,
2577        v: *mut cty::c_int,
2578        v_min: cty::c_int,
2579        v_max: cty::c_int,
2580        format: *const cty::c_char,
2581        flags: ImGuiSliderFlags,
2582    ) -> bool;
2583}
2584extern "C" {
2585    pub fn igSliderInt3(
2586        label: *const cty::c_char,
2587        v: *mut cty::c_int,
2588        v_min: cty::c_int,
2589        v_max: cty::c_int,
2590        format: *const cty::c_char,
2591        flags: ImGuiSliderFlags,
2592    ) -> bool;
2593}
2594extern "C" {
2595    pub fn igSliderInt4(
2596        label: *const cty::c_char,
2597        v: *mut cty::c_int,
2598        v_min: cty::c_int,
2599        v_max: cty::c_int,
2600        format: *const cty::c_char,
2601        flags: ImGuiSliderFlags,
2602    ) -> bool;
2603}
2604extern "C" {
2605    pub fn igSliderScalar(
2606        label: *const cty::c_char,
2607        data_type: ImGuiDataType,
2608        p_data: *mut cty::c_void,
2609        p_min: *const cty::c_void,
2610        p_max: *const cty::c_void,
2611        format: *const cty::c_char,
2612        flags: ImGuiSliderFlags,
2613    ) -> bool;
2614}
2615extern "C" {
2616    pub fn igSliderScalarN(
2617        label: *const cty::c_char,
2618        data_type: ImGuiDataType,
2619        p_data: *mut cty::c_void,
2620        components: cty::c_int,
2621        p_min: *const cty::c_void,
2622        p_max: *const cty::c_void,
2623        format: *const cty::c_char,
2624        flags: ImGuiSliderFlags,
2625    ) -> bool;
2626}
2627extern "C" {
2628    pub fn igVSliderFloat(
2629        label: *const cty::c_char,
2630        size: ImVec2,
2631        v: *mut f32,
2632        v_min: f32,
2633        v_max: f32,
2634        format: *const cty::c_char,
2635        flags: ImGuiSliderFlags,
2636    ) -> bool;
2637}
2638extern "C" {
2639    pub fn igVSliderInt(
2640        label: *const cty::c_char,
2641        size: ImVec2,
2642        v: *mut cty::c_int,
2643        v_min: cty::c_int,
2644        v_max: cty::c_int,
2645        format: *const cty::c_char,
2646        flags: ImGuiSliderFlags,
2647    ) -> bool;
2648}
2649extern "C" {
2650    pub fn igVSliderScalar(
2651        label: *const cty::c_char,
2652        size: ImVec2,
2653        data_type: ImGuiDataType,
2654        p_data: *mut cty::c_void,
2655        p_min: *const cty::c_void,
2656        p_max: *const cty::c_void,
2657        format: *const cty::c_char,
2658        flags: ImGuiSliderFlags,
2659    ) -> bool;
2660}
2661extern "C" {
2662    pub fn igInputText(
2663        label: *const cty::c_char,
2664        buf: *mut cty::c_char,
2665        buf_size: usize,
2666        flags: ImGuiInputTextFlags,
2667        callback: ImGuiInputTextCallback,
2668        user_data: *mut cty::c_void,
2669    ) -> bool;
2670}
2671extern "C" {
2672    pub fn igInputTextMultiline(
2673        label: *const cty::c_char,
2674        buf: *mut cty::c_char,
2675        buf_size: usize,
2676        size: ImVec2,
2677        flags: ImGuiInputTextFlags,
2678        callback: ImGuiInputTextCallback,
2679        user_data: *mut cty::c_void,
2680    ) -> bool;
2681}
2682extern "C" {
2683    pub fn igInputTextWithHint(
2684        label: *const cty::c_char,
2685        hint: *const cty::c_char,
2686        buf: *mut cty::c_char,
2687        buf_size: usize,
2688        flags: ImGuiInputTextFlags,
2689        callback: ImGuiInputTextCallback,
2690        user_data: *mut cty::c_void,
2691    ) -> bool;
2692}
2693extern "C" {
2694    pub fn igInputFloat(
2695        label: *const cty::c_char,
2696        v: *mut f32,
2697        step: f32,
2698        step_fast: f32,
2699        format: *const cty::c_char,
2700        flags: ImGuiInputTextFlags,
2701    ) -> bool;
2702}
2703extern "C" {
2704    pub fn igInputFloat2(
2705        label: *const cty::c_char,
2706        v: *mut f32,
2707        format: *const cty::c_char,
2708        flags: ImGuiInputTextFlags,
2709    ) -> bool;
2710}
2711extern "C" {
2712    pub fn igInputFloat3(
2713        label: *const cty::c_char,
2714        v: *mut f32,
2715        format: *const cty::c_char,
2716        flags: ImGuiInputTextFlags,
2717    ) -> bool;
2718}
2719extern "C" {
2720    pub fn igInputFloat4(
2721        label: *const cty::c_char,
2722        v: *mut f32,
2723        format: *const cty::c_char,
2724        flags: ImGuiInputTextFlags,
2725    ) -> bool;
2726}
2727extern "C" {
2728    pub fn igInputInt(
2729        label: *const cty::c_char,
2730        v: *mut cty::c_int,
2731        step: cty::c_int,
2732        step_fast: cty::c_int,
2733        flags: ImGuiInputTextFlags,
2734    ) -> bool;
2735}
2736extern "C" {
2737    pub fn igInputInt2(
2738        label: *const cty::c_char,
2739        v: *mut cty::c_int,
2740        flags: ImGuiInputTextFlags,
2741    ) -> bool;
2742}
2743extern "C" {
2744    pub fn igInputInt3(
2745        label: *const cty::c_char,
2746        v: *mut cty::c_int,
2747        flags: ImGuiInputTextFlags,
2748    ) -> bool;
2749}
2750extern "C" {
2751    pub fn igInputInt4(
2752        label: *const cty::c_char,
2753        v: *mut cty::c_int,
2754        flags: ImGuiInputTextFlags,
2755    ) -> bool;
2756}
2757extern "C" {
2758    pub fn igInputDouble(
2759        label: *const cty::c_char,
2760        v: *mut f64,
2761        step: f64,
2762        step_fast: f64,
2763        format: *const cty::c_char,
2764        flags: ImGuiInputTextFlags,
2765    ) -> bool;
2766}
2767extern "C" {
2768    pub fn igInputScalar(
2769        label: *const cty::c_char,
2770        data_type: ImGuiDataType,
2771        p_data: *mut cty::c_void,
2772        p_step: *const cty::c_void,
2773        p_step_fast: *const cty::c_void,
2774        format: *const cty::c_char,
2775        flags: ImGuiInputTextFlags,
2776    ) -> bool;
2777}
2778extern "C" {
2779    pub fn igInputScalarN(
2780        label: *const cty::c_char,
2781        data_type: ImGuiDataType,
2782        p_data: *mut cty::c_void,
2783        components: cty::c_int,
2784        p_step: *const cty::c_void,
2785        p_step_fast: *const cty::c_void,
2786        format: *const cty::c_char,
2787        flags: ImGuiInputTextFlags,
2788    ) -> bool;
2789}
2790extern "C" {
2791    pub fn igColorEdit3(
2792        label: *const cty::c_char,
2793        col: *mut f32,
2794        flags: ImGuiColorEditFlags,
2795    ) -> bool;
2796}
2797extern "C" {
2798    pub fn igColorEdit4(
2799        label: *const cty::c_char,
2800        col: *mut f32,
2801        flags: ImGuiColorEditFlags,
2802    ) -> bool;
2803}
2804extern "C" {
2805    pub fn igColorPicker3(
2806        label: *const cty::c_char,
2807        col: *mut f32,
2808        flags: ImGuiColorEditFlags,
2809    ) -> bool;
2810}
2811extern "C" {
2812    pub fn igColorPicker4(
2813        label: *const cty::c_char,
2814        col: *mut f32,
2815        flags: ImGuiColorEditFlags,
2816        ref_col: *const f32,
2817    ) -> bool;
2818}
2819extern "C" {
2820    pub fn igColorButton(
2821        desc_id: *const cty::c_char,
2822        col: ImVec4,
2823        flags: ImGuiColorEditFlags,
2824        size: ImVec2,
2825    ) -> bool;
2826}
2827extern "C" {
2828    pub fn igSetColorEditOptions(flags: ImGuiColorEditFlags);
2829}
2830extern "C" {
2831    pub fn igTreeNode_Str(label: *const cty::c_char) -> bool;
2832}
2833extern "C" {
2834    pub fn igTreeNode_StrStr(str_id: *const cty::c_char, fmt: *const cty::c_char, ...) -> bool;
2835}
2836extern "C" {
2837    pub fn igTreeNode_Ptr(ptr_id: *const cty::c_void, fmt: *const cty::c_char, ...) -> bool;
2838}
2839extern "C" {
2840    pub fn igTreeNodeEx_Str(label: *const cty::c_char, flags: ImGuiTreeNodeFlags) -> bool;
2841}
2842extern "C" {
2843    pub fn igTreeNodeEx_StrStr(
2844        str_id: *const cty::c_char,
2845        flags: ImGuiTreeNodeFlags,
2846        fmt: *const cty::c_char,
2847        ...
2848    ) -> bool;
2849}
2850extern "C" {
2851    pub fn igTreeNodeEx_Ptr(
2852        ptr_id: *const cty::c_void,
2853        flags: ImGuiTreeNodeFlags,
2854        fmt: *const cty::c_char,
2855        ...
2856    ) -> bool;
2857}
2858extern "C" {
2859    pub fn igTreePush_Str(str_id: *const cty::c_char);
2860}
2861extern "C" {
2862    pub fn igTreePush_Ptr(ptr_id: *const cty::c_void);
2863}
2864extern "C" {
2865    pub fn igTreePop();
2866}
2867extern "C" {
2868    pub fn igGetTreeNodeToLabelSpacing() -> f32;
2869}
2870extern "C" {
2871    pub fn igCollapsingHeader_TreeNodeFlags(
2872        label: *const cty::c_char,
2873        flags: ImGuiTreeNodeFlags,
2874    ) -> bool;
2875}
2876extern "C" {
2877    pub fn igCollapsingHeader_BoolPtr(
2878        label: *const cty::c_char,
2879        p_visible: *mut bool,
2880        flags: ImGuiTreeNodeFlags,
2881    ) -> bool;
2882}
2883extern "C" {
2884    pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond);
2885}
2886extern "C" {
2887    pub fn igSelectable_Bool(
2888        label: *const cty::c_char,
2889        selected: bool,
2890        flags: ImGuiSelectableFlags,
2891        size: ImVec2,
2892    ) -> bool;
2893}
2894extern "C" {
2895    pub fn igSelectable_BoolPtr(
2896        label: *const cty::c_char,
2897        p_selected: *mut bool,
2898        flags: ImGuiSelectableFlags,
2899        size: ImVec2,
2900    ) -> bool;
2901}
2902extern "C" {
2903    pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool;
2904}
2905extern "C" {
2906    pub fn igEndListBox();
2907}
2908extern "C" {
2909    pub fn igListBox_Str_arr(
2910        label: *const cty::c_char,
2911        current_item: *mut cty::c_int,
2912        items: *const *const cty::c_char,
2913        items_count: cty::c_int,
2914        height_in_items: cty::c_int,
2915    ) -> bool;
2916}
2917extern "C" {
2918    pub fn igListBox_FnBoolPtr(
2919        label: *const cty::c_char,
2920        current_item: *mut cty::c_int,
2921        items_getter: ::core::option::Option<
2922            unsafe extern "C" fn(
2923                data: *mut cty::c_void,
2924                idx: cty::c_int,
2925                out_text: *mut *const cty::c_char,
2926            ) -> bool,
2927        >,
2928        data: *mut cty::c_void,
2929        items_count: cty::c_int,
2930        height_in_items: cty::c_int,
2931    ) -> bool;
2932}
2933extern "C" {
2934    pub fn igPlotLines_FloatPtr(
2935        label: *const cty::c_char,
2936        values: *const f32,
2937        values_count: cty::c_int,
2938        values_offset: cty::c_int,
2939        overlay_text: *const cty::c_char,
2940        scale_min: f32,
2941        scale_max: f32,
2942        graph_size: ImVec2,
2943        stride: cty::c_int,
2944    );
2945}
2946extern "C" {
2947    pub fn igPlotLines_FnFloatPtr(
2948        label: *const cty::c_char,
2949        values_getter: ::core::option::Option<
2950            unsafe extern "C" fn(data: *mut cty::c_void, idx: cty::c_int) -> f32,
2951        >,
2952        data: *mut cty::c_void,
2953        values_count: cty::c_int,
2954        values_offset: cty::c_int,
2955        overlay_text: *const cty::c_char,
2956        scale_min: f32,
2957        scale_max: f32,
2958        graph_size: ImVec2,
2959    );
2960}
2961extern "C" {
2962    pub fn igPlotHistogram_FloatPtr(
2963        label: *const cty::c_char,
2964        values: *const f32,
2965        values_count: cty::c_int,
2966        values_offset: cty::c_int,
2967        overlay_text: *const cty::c_char,
2968        scale_min: f32,
2969        scale_max: f32,
2970        graph_size: ImVec2,
2971        stride: cty::c_int,
2972    );
2973}
2974extern "C" {
2975    pub fn igPlotHistogram_FnFloatPtr(
2976        label: *const cty::c_char,
2977        values_getter: ::core::option::Option<
2978            unsafe extern "C" fn(data: *mut cty::c_void, idx: cty::c_int) -> f32,
2979        >,
2980        data: *mut cty::c_void,
2981        values_count: cty::c_int,
2982        values_offset: cty::c_int,
2983        overlay_text: *const cty::c_char,
2984        scale_min: f32,
2985        scale_max: f32,
2986        graph_size: ImVec2,
2987    );
2988}
2989extern "C" {
2990    pub fn igValue_Bool(prefix: *const cty::c_char, b: bool);
2991}
2992extern "C" {
2993    pub fn igValue_Int(prefix: *const cty::c_char, v: cty::c_int);
2994}
2995extern "C" {
2996    pub fn igValue_Uint(prefix: *const cty::c_char, v: cty::c_uint);
2997}
2998extern "C" {
2999    pub fn igValue_Float(prefix: *const cty::c_char, v: f32, float_format: *const cty::c_char);
3000}
3001extern "C" {
3002    pub fn igBeginMenuBar() -> bool;
3003}
3004extern "C" {
3005    pub fn igEndMenuBar();
3006}
3007extern "C" {
3008    pub fn igBeginMainMenuBar() -> bool;
3009}
3010extern "C" {
3011    pub fn igEndMainMenuBar();
3012}
3013extern "C" {
3014    pub fn igBeginMenu(label: *const cty::c_char, enabled: bool) -> bool;
3015}
3016extern "C" {
3017    pub fn igEndMenu();
3018}
3019extern "C" {
3020    pub fn igMenuItem_Bool(
3021        label: *const cty::c_char,
3022        shortcut: *const cty::c_char,
3023        selected: bool,
3024        enabled: bool,
3025    ) -> bool;
3026}
3027extern "C" {
3028    pub fn igMenuItem_BoolPtr(
3029        label: *const cty::c_char,
3030        shortcut: *const cty::c_char,
3031        p_selected: *mut bool,
3032        enabled: bool,
3033    ) -> bool;
3034}
3035extern "C" {
3036    pub fn igBeginTooltip();
3037}
3038extern "C" {
3039    pub fn igEndTooltip();
3040}
3041extern "C" {
3042    pub fn igSetTooltip(fmt: *const cty::c_char, ...);
3043}
3044extern "C" {
3045    pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool;
3046}
3047extern "C" {
3048    pub fn igBeginPopupModal(
3049        name: *const cty::c_char,
3050        p_open: *mut bool,
3051        flags: ImGuiWindowFlags,
3052    ) -> bool;
3053}
3054extern "C" {
3055    pub fn igEndPopup();
3056}
3057extern "C" {
3058    pub fn igOpenPopup_Str(str_id: *const cty::c_char, popup_flags: ImGuiPopupFlags);
3059}
3060extern "C" {
3061    pub fn igOpenPopup_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags);
3062}
3063extern "C" {
3064    pub fn igOpenPopupOnItemClick(str_id: *const cty::c_char, popup_flags: ImGuiPopupFlags);
3065}
3066extern "C" {
3067    pub fn igCloseCurrentPopup();
3068}
3069extern "C" {
3070    pub fn igBeginPopupContextItem(
3071        str_id: *const cty::c_char,
3072        popup_flags: ImGuiPopupFlags,
3073    ) -> bool;
3074}
3075extern "C" {
3076    pub fn igBeginPopupContextWindow(
3077        str_id: *const cty::c_char,
3078        popup_flags: ImGuiPopupFlags,
3079    ) -> bool;
3080}
3081extern "C" {
3082    pub fn igBeginPopupContextVoid(
3083        str_id: *const cty::c_char,
3084        popup_flags: ImGuiPopupFlags,
3085    ) -> bool;
3086}
3087extern "C" {
3088    pub fn igIsPopupOpen(str_id: *const cty::c_char, flags: ImGuiPopupFlags) -> bool;
3089}
3090extern "C" {
3091    pub fn igBeginTable(
3092        str_id: *const cty::c_char,
3093        column: cty::c_int,
3094        flags: ImGuiTableFlags,
3095        outer_size: ImVec2,
3096        inner_width: f32,
3097    ) -> bool;
3098}
3099extern "C" {
3100    pub fn igEndTable();
3101}
3102extern "C" {
3103    pub fn igTableNextRow(row_flags: ImGuiTableRowFlags, min_row_height: f32);
3104}
3105extern "C" {
3106    pub fn igTableNextColumn() -> bool;
3107}
3108extern "C" {
3109    pub fn igTableSetColumnIndex(column_n: cty::c_int) -> bool;
3110}
3111extern "C" {
3112    pub fn igTableSetupColumn(
3113        label: *const cty::c_char,
3114        flags: ImGuiTableColumnFlags,
3115        init_width_or_weight: f32,
3116        user_id: ImGuiID,
3117    );
3118}
3119extern "C" {
3120    pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int);
3121}
3122extern "C" {
3123    pub fn igTableHeadersRow();
3124}
3125extern "C" {
3126    pub fn igTableHeader(label: *const cty::c_char);
3127}
3128extern "C" {
3129    pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs;
3130}
3131extern "C" {
3132    pub fn igTableGetColumnCount() -> cty::c_int;
3133}
3134extern "C" {
3135    pub fn igTableGetColumnIndex() -> cty::c_int;
3136}
3137extern "C" {
3138    pub fn igTableGetRowIndex() -> cty::c_int;
3139}
3140extern "C" {
3141    pub fn igTableGetColumnName(column_n: cty::c_int) -> *const cty::c_char;
3142}
3143extern "C" {
3144    pub fn igTableGetColumnFlags(column_n: cty::c_int) -> ImGuiTableColumnFlags;
3145}
3146extern "C" {
3147    pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool);
3148}
3149extern "C" {
3150    pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int);
3151}
3152extern "C" {
3153    pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool);
3154}
3155extern "C" {
3156    pub fn igNextColumn();
3157}
3158extern "C" {
3159    pub fn igGetColumnIndex() -> cty::c_int;
3160}
3161extern "C" {
3162    pub fn igGetColumnWidth(column_index: cty::c_int) -> f32;
3163}
3164extern "C" {
3165    pub fn igSetColumnWidth(column_index: cty::c_int, width: f32);
3166}
3167extern "C" {
3168    pub fn igGetColumnOffset(column_index: cty::c_int) -> f32;
3169}
3170extern "C" {
3171    pub fn igSetColumnOffset(column_index: cty::c_int, offset_x: f32);
3172}
3173extern "C" {
3174    pub fn igGetColumnsCount() -> cty::c_int;
3175}
3176extern "C" {
3177    pub fn igBeginTabBar(str_id: *const cty::c_char, flags: ImGuiTabBarFlags) -> bool;
3178}
3179extern "C" {
3180    pub fn igEndTabBar();
3181}
3182extern "C" {
3183    pub fn igBeginTabItem(
3184        label: *const cty::c_char,
3185        p_open: *mut bool,
3186        flags: ImGuiTabItemFlags,
3187    ) -> bool;
3188}
3189extern "C" {
3190    pub fn igEndTabItem();
3191}
3192extern "C" {
3193    pub fn igTabItemButton(label: *const cty::c_char, flags: ImGuiTabItemFlags) -> bool;
3194}
3195extern "C" {
3196    pub fn igSetTabItemClosed(tab_or_docked_window_label: *const cty::c_char);
3197}
3198extern "C" {
3199    pub fn igLogToTTY(auto_open_depth: cty::c_int);
3200}
3201extern "C" {
3202    pub fn igLogToFile(auto_open_depth: cty::c_int, filename: *const cty::c_char);
3203}
3204extern "C" {
3205    pub fn igLogToClipboard(auto_open_depth: cty::c_int);
3206}
3207extern "C" {
3208    pub fn igLogFinish();
3209}
3210extern "C" {
3211    pub fn igLogButtons();
3212}
3213extern "C" {
3214    pub fn igBeginDragDropSource(flags: ImGuiDragDropFlags) -> bool;
3215}
3216extern "C" {
3217    pub fn igSetDragDropPayload(
3218        type_: *const cty::c_char,
3219        data: *const cty::c_void,
3220        sz: usize,
3221        cond: ImGuiCond,
3222    ) -> bool;
3223}
3224extern "C" {
3225    pub fn igEndDragDropSource();
3226}
3227extern "C" {
3228    pub fn igBeginDragDropTarget() -> bool;
3229}
3230extern "C" {
3231    pub fn igAcceptDragDropPayload(
3232        type_: *const cty::c_char,
3233        flags: ImGuiDragDropFlags,
3234    ) -> *const ImGuiPayload;
3235}
3236extern "C" {
3237    pub fn igEndDragDropTarget();
3238}
3239extern "C" {
3240    pub fn igGetDragDropPayload() -> *const ImGuiPayload;
3241}
3242extern "C" {
3243    pub fn igBeginDisabled(disabled: bool);
3244}
3245extern "C" {
3246    pub fn igEndDisabled();
3247}
3248extern "C" {
3249    pub fn igPushClipRect(
3250        clip_rect_min: ImVec2,
3251        clip_rect_max: ImVec2,
3252        intersect_with_current_clip_rect: bool,
3253    );
3254}
3255extern "C" {
3256    pub fn igPopClipRect();
3257}
3258extern "C" {
3259    pub fn igSetItemDefaultFocus();
3260}
3261extern "C" {
3262    pub fn igSetKeyboardFocusHere(offset: cty::c_int);
3263}
3264extern "C" {
3265    pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool;
3266}
3267extern "C" {
3268    pub fn igIsItemActive() -> bool;
3269}
3270extern "C" {
3271    pub fn igIsItemFocused() -> bool;
3272}
3273extern "C" {
3274    pub fn igIsItemClicked(mouse_button: ImGuiMouseButton) -> bool;
3275}
3276extern "C" {
3277    pub fn igIsItemVisible() -> bool;
3278}
3279extern "C" {
3280    pub fn igIsItemEdited() -> bool;
3281}
3282extern "C" {
3283    pub fn igIsItemActivated() -> bool;
3284}
3285extern "C" {
3286    pub fn igIsItemDeactivated() -> bool;
3287}
3288extern "C" {
3289    pub fn igIsItemDeactivatedAfterEdit() -> bool;
3290}
3291extern "C" {
3292    pub fn igIsItemToggledOpen() -> bool;
3293}
3294extern "C" {
3295    pub fn igIsAnyItemHovered() -> bool;
3296}
3297extern "C" {
3298    pub fn igIsAnyItemActive() -> bool;
3299}
3300extern "C" {
3301    pub fn igIsAnyItemFocused() -> bool;
3302}
3303extern "C" {
3304    pub fn igGetItemID() -> ImGuiID;
3305}
3306extern "C" {
3307    pub fn igGetItemRectMin(pOut: *mut ImVec2);
3308}
3309extern "C" {
3310    pub fn igGetItemRectMax(pOut: *mut ImVec2);
3311}
3312extern "C" {
3313    pub fn igGetItemRectSize(pOut: *mut ImVec2);
3314}
3315extern "C" {
3316    pub fn igSetItemAllowOverlap();
3317}
3318extern "C" {
3319    pub fn igGetMainViewport() -> *mut ImGuiViewport;
3320}
3321extern "C" {
3322    pub fn igGetBackgroundDrawList() -> *mut ImDrawList;
3323}
3324extern "C" {
3325    pub fn igGetForegroundDrawList() -> *mut ImDrawList;
3326}
3327extern "C" {
3328    pub fn igIsRectVisible_Nil(size: ImVec2) -> bool;
3329}
3330extern "C" {
3331    pub fn igIsRectVisible_Vec2(rect_min: ImVec2, rect_max: ImVec2) -> bool;
3332}
3333extern "C" {
3334    pub fn igGetTime() -> f64;
3335}
3336extern "C" {
3337    pub fn igGetFrameCount() -> cty::c_int;
3338}
3339extern "C" {
3340    pub fn igGetDrawListSharedData() -> *mut ImDrawListSharedData;
3341}
3342extern "C" {
3343    pub fn igGetStyleColorName(idx: ImGuiCol) -> *const cty::c_char;
3344}
3345extern "C" {
3346    pub fn igSetStateStorage(storage: *mut ImGuiStorage);
3347}
3348extern "C" {
3349    pub fn igGetStateStorage() -> *mut ImGuiStorage;
3350}
3351extern "C" {
3352    pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool;
3353}
3354extern "C" {
3355    pub fn igEndChildFrame();
3356}
3357extern "C" {
3358    pub fn igCalcTextSize(
3359        pOut: *mut ImVec2,
3360        text: *const cty::c_char,
3361        text_end: *const cty::c_char,
3362        hide_text_after_double_hash: bool,
3363        wrap_width: f32,
3364    );
3365}
3366extern "C" {
3367    pub fn igColorConvertU32ToFloat4(pOut: *mut ImVec4, in_: ImU32);
3368}
3369extern "C" {
3370    pub fn igColorConvertFloat4ToU32(in_: ImVec4) -> ImU32;
3371}
3372extern "C" {
3373    pub fn igColorConvertRGBtoHSV(
3374        r: f32,
3375        g: f32,
3376        b: f32,
3377        out_h: *mut f32,
3378        out_s: *mut f32,
3379        out_v: *mut f32,
3380    );
3381}
3382extern "C" {
3383    pub fn igColorConvertHSVtoRGB(
3384        h: f32,
3385        s: f32,
3386        v: f32,
3387        out_r: *mut f32,
3388        out_g: *mut f32,
3389        out_b: *mut f32,
3390    );
3391}
3392extern "C" {
3393    pub fn igIsKeyDown(key: ImGuiKey) -> bool;
3394}
3395extern "C" {
3396    pub fn igIsKeyPressed(key: ImGuiKey, repeat: bool) -> bool;
3397}
3398extern "C" {
3399    pub fn igIsKeyReleased(key: ImGuiKey) -> bool;
3400}
3401extern "C" {
3402    pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int;
3403}
3404extern "C" {
3405    pub fn igGetKeyName(key: ImGuiKey) -> *const cty::c_char;
3406}
3407extern "C" {
3408    pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool);
3409}
3410extern "C" {
3411    pub fn igIsMouseDown(button: ImGuiMouseButton) -> bool;
3412}
3413extern "C" {
3414    pub fn igIsMouseClicked(button: ImGuiMouseButton, repeat: bool) -> bool;
3415}
3416extern "C" {
3417    pub fn igIsMouseReleased(button: ImGuiMouseButton) -> bool;
3418}
3419extern "C" {
3420    pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool;
3421}
3422extern "C" {
3423    pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int;
3424}
3425extern "C" {
3426    pub fn igIsMouseHoveringRect(r_min: ImVec2, r_max: ImVec2, clip: bool) -> bool;
3427}
3428extern "C" {
3429    pub fn igIsMousePosValid(mouse_pos: *const ImVec2) -> bool;
3430}
3431extern "C" {
3432    pub fn igIsAnyMouseDown() -> bool;
3433}
3434extern "C" {
3435    pub fn igGetMousePos(pOut: *mut ImVec2);
3436}
3437extern "C" {
3438    pub fn igGetMousePosOnOpeningCurrentPopup(pOut: *mut ImVec2);
3439}
3440extern "C" {
3441    pub fn igIsMouseDragging(button: ImGuiMouseButton, lock_threshold: f32) -> bool;
3442}
3443extern "C" {
3444    pub fn igGetMouseDragDelta(pOut: *mut ImVec2, button: ImGuiMouseButton, lock_threshold: f32);
3445}
3446extern "C" {
3447    pub fn igResetMouseDragDelta(button: ImGuiMouseButton);
3448}
3449extern "C" {
3450    pub fn igGetMouseCursor() -> ImGuiMouseCursor;
3451}
3452extern "C" {
3453    pub fn igSetMouseCursor(cursor_type: ImGuiMouseCursor);
3454}
3455extern "C" {
3456    pub fn igSetNextFrameWantCaptureMouse(want_capture_mouse: bool);
3457}
3458extern "C" {
3459    pub fn igGetClipboardText() -> *const cty::c_char;
3460}
3461extern "C" {
3462    pub fn igSetClipboardText(text: *const cty::c_char);
3463}
3464extern "C" {
3465    pub fn igLoadIniSettingsFromDisk(ini_filename: *const cty::c_char);
3466}
3467extern "C" {
3468    pub fn igLoadIniSettingsFromMemory(ini_data: *const cty::c_char, ini_size: usize);
3469}
3470extern "C" {
3471    pub fn igSaveIniSettingsToDisk(ini_filename: *const cty::c_char);
3472}
3473extern "C" {
3474    pub fn igSaveIniSettingsToMemory(out_ini_size: *mut usize) -> *const cty::c_char;
3475}
3476extern "C" {
3477    pub fn igDebugTextEncoding(text: *const cty::c_char);
3478}
3479extern "C" {
3480    pub fn igDebugCheckVersionAndDataLayout(
3481        version_str: *const cty::c_char,
3482        sz_io: usize,
3483        sz_style: usize,
3484        sz_vec2: usize,
3485        sz_vec4: usize,
3486        sz_drawvert: usize,
3487        sz_drawidx: usize,
3488    ) -> bool;
3489}
3490extern "C" {
3491    pub fn igSetAllocatorFunctions(
3492        alloc_func: ImGuiMemAllocFunc,
3493        free_func: ImGuiMemFreeFunc,
3494        user_data: *mut cty::c_void,
3495    );
3496}
3497extern "C" {
3498    pub fn igGetAllocatorFunctions(
3499        p_alloc_func: *mut ImGuiMemAllocFunc,
3500        p_free_func: *mut ImGuiMemFreeFunc,
3501        p_user_data: *mut *mut cty::c_void,
3502    );
3503}
3504extern "C" {
3505    pub fn igMemAlloc(size: usize) -> *mut cty::c_void;
3506}
3507extern "C" {
3508    pub fn igMemFree(ptr: *mut cty::c_void);
3509}
3510extern "C" {
3511    pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle;
3512}
3513extern "C" {
3514    pub fn ImGuiStyle_destroy(self_: *mut ImGuiStyle);
3515}
3516extern "C" {
3517    pub fn ImGuiStyle_ScaleAllSizes(self_: *mut ImGuiStyle, scale_factor: f32);
3518}
3519extern "C" {
3520    pub fn ImGuiIO_AddKeyEvent(self_: *mut ImGuiIO, key: ImGuiKey, down: bool);
3521}
3522extern "C" {
3523    pub fn ImGuiIO_AddKeyAnalogEvent(self_: *mut ImGuiIO, key: ImGuiKey, down: bool, v: f32);
3524}
3525extern "C" {
3526    pub fn ImGuiIO_AddMousePosEvent(self_: *mut ImGuiIO, x: f32, y: f32);
3527}
3528extern "C" {
3529    pub fn ImGuiIO_AddMouseButtonEvent(self_: *mut ImGuiIO, button: cty::c_int, down: bool);
3530}
3531extern "C" {
3532    pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32);
3533}
3534extern "C" {
3535    pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool);
3536}
3537extern "C" {
3538    pub fn ImGuiIO_AddInputCharacter(self_: *mut ImGuiIO, c: cty::c_uint);
3539}
3540extern "C" {
3541    pub fn ImGuiIO_AddInputCharacterUTF16(self_: *mut ImGuiIO, c: ImWchar16);
3542}
3543extern "C" {
3544    pub fn ImGuiIO_AddInputCharactersUTF8(self_: *mut ImGuiIO, str_: *const cty::c_char);
3545}
3546extern "C" {
3547    pub fn ImGuiIO_SetKeyEventNativeData(
3548        self_: *mut ImGuiIO,
3549        key: ImGuiKey,
3550        native_keycode: cty::c_int,
3551        native_scancode: cty::c_int,
3552        native_legacy_index: cty::c_int,
3553    );
3554}
3555extern "C" {
3556    pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool);
3557}
3558extern "C" {
3559    pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO);
3560}
3561extern "C" {
3562    pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO);
3563}
3564extern "C" {
3565    pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO;
3566}
3567extern "C" {
3568    pub fn ImGuiIO_destroy(self_: *mut ImGuiIO);
3569}
3570extern "C" {
3571    pub fn ImGuiInputTextCallbackData_ImGuiInputTextCallbackData() -> *mut ImGuiInputTextCallbackData;
3572}
3573extern "C" {
3574    pub fn ImGuiInputTextCallbackData_destroy(self_: *mut ImGuiInputTextCallbackData);
3575}
3576extern "C" {
3577    pub fn ImGuiInputTextCallbackData_DeleteChars(
3578        self_: *mut ImGuiInputTextCallbackData,
3579        pos: cty::c_int,
3580        bytes_count: cty::c_int,
3581    );
3582}
3583extern "C" {
3584    pub fn ImGuiInputTextCallbackData_InsertChars(
3585        self_: *mut ImGuiInputTextCallbackData,
3586        pos: cty::c_int,
3587        text: *const cty::c_char,
3588        text_end: *const cty::c_char,
3589    );
3590}
3591extern "C" {
3592    pub fn ImGuiInputTextCallbackData_SelectAll(self_: *mut ImGuiInputTextCallbackData);
3593}
3594extern "C" {
3595    pub fn ImGuiInputTextCallbackData_ClearSelection(self_: *mut ImGuiInputTextCallbackData);
3596}
3597extern "C" {
3598    pub fn ImGuiInputTextCallbackData_HasSelection(self_: *mut ImGuiInputTextCallbackData) -> bool;
3599}
3600extern "C" {
3601    pub fn ImGuiPayload_ImGuiPayload() -> *mut ImGuiPayload;
3602}
3603extern "C" {
3604    pub fn ImGuiPayload_destroy(self_: *mut ImGuiPayload);
3605}
3606extern "C" {
3607    pub fn ImGuiPayload_Clear(self_: *mut ImGuiPayload);
3608}
3609extern "C" {
3610    pub fn ImGuiPayload_IsDataType(self_: *mut ImGuiPayload, type_: *const cty::c_char) -> bool;
3611}
3612extern "C" {
3613    pub fn ImGuiPayload_IsPreview(self_: *mut ImGuiPayload) -> bool;
3614}
3615extern "C" {
3616    pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool;
3617}
3618extern "C" {
3619    pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs;
3620}
3621extern "C" {
3622    pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs);
3623}
3624extern "C" {
3625    pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs;
3626}
3627extern "C" {
3628    pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs);
3629}
3630extern "C" {
3631    pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame;
3632}
3633extern "C" {
3634    pub fn ImGuiOnceUponAFrame_destroy(self_: *mut ImGuiOnceUponAFrame);
3635}
3636extern "C" {
3637    pub fn ImGuiTextFilter_ImGuiTextFilter(
3638        default_filter: *const cty::c_char,
3639    ) -> *mut ImGuiTextFilter;
3640}
3641extern "C" {
3642    pub fn ImGuiTextFilter_destroy(self_: *mut ImGuiTextFilter);
3643}
3644extern "C" {
3645    pub fn ImGuiTextFilter_Draw(
3646        self_: *mut ImGuiTextFilter,
3647        label: *const cty::c_char,
3648        width: f32,
3649    ) -> bool;
3650}
3651extern "C" {
3652    pub fn ImGuiTextFilter_PassFilter(
3653        self_: *mut ImGuiTextFilter,
3654        text: *const cty::c_char,
3655        text_end: *const cty::c_char,
3656    ) -> bool;
3657}
3658extern "C" {
3659    pub fn ImGuiTextFilter_Build(self_: *mut ImGuiTextFilter);
3660}
3661extern "C" {
3662    pub fn ImGuiTextFilter_Clear(self_: *mut ImGuiTextFilter);
3663}
3664extern "C" {
3665    pub fn ImGuiTextFilter_IsActive(self_: *mut ImGuiTextFilter) -> bool;
3666}
3667extern "C" {
3668    pub fn ImGuiTextRange_ImGuiTextRange_Nil() -> *mut ImGuiTextRange;
3669}
3670extern "C" {
3671    pub fn ImGuiTextRange_destroy(self_: *mut ImGuiTextRange);
3672}
3673extern "C" {
3674    pub fn ImGuiTextRange_ImGuiTextRange_Str(
3675        _b: *const cty::c_char,
3676        _e: *const cty::c_char,
3677    ) -> *mut ImGuiTextRange;
3678}
3679extern "C" {
3680    pub fn ImGuiTextRange_empty(self_: *mut ImGuiTextRange) -> bool;
3681}
3682extern "C" {
3683    pub fn ImGuiTextRange_split(
3684        self_: *mut ImGuiTextRange,
3685        separator: cty::c_char,
3686        out: *mut ImVector_ImGuiTextRange,
3687    );
3688}
3689extern "C" {
3690    pub fn ImGuiTextBuffer_ImGuiTextBuffer() -> *mut ImGuiTextBuffer;
3691}
3692extern "C" {
3693    pub fn ImGuiTextBuffer_destroy(self_: *mut ImGuiTextBuffer);
3694}
3695extern "C" {
3696    pub fn ImGuiTextBuffer_begin(self_: *mut ImGuiTextBuffer) -> *const cty::c_char;
3697}
3698extern "C" {
3699    pub fn ImGuiTextBuffer_end(self_: *mut ImGuiTextBuffer) -> *const cty::c_char;
3700}
3701extern "C" {
3702    pub fn ImGuiTextBuffer_size(self_: *mut ImGuiTextBuffer) -> cty::c_int;
3703}
3704extern "C" {
3705    pub fn ImGuiTextBuffer_empty(self_: *mut ImGuiTextBuffer) -> bool;
3706}
3707extern "C" {
3708    pub fn ImGuiTextBuffer_clear(self_: *mut ImGuiTextBuffer);
3709}
3710extern "C" {
3711    pub fn ImGuiTextBuffer_reserve(self_: *mut ImGuiTextBuffer, capacity: cty::c_int);
3712}
3713extern "C" {
3714    pub fn ImGuiTextBuffer_c_str(self_: *mut ImGuiTextBuffer) -> *const cty::c_char;
3715}
3716extern "C" {
3717    pub fn ImGuiTextBuffer_append(
3718        self_: *mut ImGuiTextBuffer,
3719        str_: *const cty::c_char,
3720        str_end: *const cty::c_char,
3721    );
3722}
3723extern "C" {
3724    pub fn ImGuiStoragePair_ImGuiStoragePair_Int(
3725        _key: ImGuiID,
3726        _val_i: cty::c_int,
3727    ) -> *mut ImGuiStoragePair;
3728}
3729extern "C" {
3730    pub fn ImGuiStoragePair_destroy(self_: *mut ImGuiStoragePair);
3731}
3732extern "C" {
3733    pub fn ImGuiStoragePair_ImGuiStoragePair_Float(
3734        _key: ImGuiID,
3735        _val_f: f32,
3736    ) -> *mut ImGuiStoragePair;
3737}
3738extern "C" {
3739    pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr(
3740        _key: ImGuiID,
3741        _val_p: *mut cty::c_void,
3742    ) -> *mut ImGuiStoragePair;
3743}
3744extern "C" {
3745    pub fn ImGuiStorage_Clear(self_: *mut ImGuiStorage);
3746}
3747extern "C" {
3748    pub fn ImGuiStorage_GetInt(
3749        self_: *mut ImGuiStorage,
3750        key: ImGuiID,
3751        default_val: cty::c_int,
3752    ) -> cty::c_int;
3753}
3754extern "C" {
3755    pub fn ImGuiStorage_SetInt(self_: *mut ImGuiStorage, key: ImGuiID, val: cty::c_int);
3756}
3757extern "C" {
3758    pub fn ImGuiStorage_GetBool(self_: *mut ImGuiStorage, key: ImGuiID, default_val: bool) -> bool;
3759}
3760extern "C" {
3761    pub fn ImGuiStorage_SetBool(self_: *mut ImGuiStorage, key: ImGuiID, val: bool);
3762}
3763extern "C" {
3764    pub fn ImGuiStorage_GetFloat(self_: *mut ImGuiStorage, key: ImGuiID, default_val: f32) -> f32;
3765}
3766extern "C" {
3767    pub fn ImGuiStorage_SetFloat(self_: *mut ImGuiStorage, key: ImGuiID, val: f32);
3768}
3769extern "C" {
3770    pub fn ImGuiStorage_GetVoidPtr(self_: *mut ImGuiStorage, key: ImGuiID) -> *mut cty::c_void;
3771}
3772extern "C" {
3773    pub fn ImGuiStorage_SetVoidPtr(self_: *mut ImGuiStorage, key: ImGuiID, val: *mut cty::c_void);
3774}
3775extern "C" {
3776    pub fn ImGuiStorage_GetIntRef(
3777        self_: *mut ImGuiStorage,
3778        key: ImGuiID,
3779        default_val: cty::c_int,
3780    ) -> *mut cty::c_int;
3781}
3782extern "C" {
3783    pub fn ImGuiStorage_GetBoolRef(
3784        self_: *mut ImGuiStorage,
3785        key: ImGuiID,
3786        default_val: bool,
3787    ) -> *mut bool;
3788}
3789extern "C" {
3790    pub fn ImGuiStorage_GetFloatRef(
3791        self_: *mut ImGuiStorage,
3792        key: ImGuiID,
3793        default_val: f32,
3794    ) -> *mut f32;
3795}
3796extern "C" {
3797    pub fn ImGuiStorage_GetVoidPtrRef(
3798        self_: *mut ImGuiStorage,
3799        key: ImGuiID,
3800        default_val: *mut cty::c_void,
3801    ) -> *mut *mut cty::c_void;
3802}
3803extern "C" {
3804    pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int);
3805}
3806extern "C" {
3807    pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage);
3808}
3809extern "C" {
3810    pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper;
3811}
3812extern "C" {
3813    pub fn ImGuiListClipper_destroy(self_: *mut ImGuiListClipper);
3814}
3815extern "C" {
3816    pub fn ImGuiListClipper_Begin(
3817        self_: *mut ImGuiListClipper,
3818        items_count: cty::c_int,
3819        items_height: f32,
3820    );
3821}
3822extern "C" {
3823    pub fn ImGuiListClipper_End(self_: *mut ImGuiListClipper);
3824}
3825extern "C" {
3826    pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool;
3827}
3828extern "C" {
3829    pub fn ImGuiListClipper_ForceDisplayRangeByIndices(
3830        self_: *mut ImGuiListClipper,
3831        item_min: cty::c_int,
3832        item_max: cty::c_int,
3833    );
3834}
3835extern "C" {
3836    pub fn ImColor_ImColor_Nil() -> *mut ImColor;
3837}
3838extern "C" {
3839    pub fn ImColor_destroy(self_: *mut ImColor);
3840}
3841extern "C" {
3842    pub fn ImColor_ImColor_Float(r: f32, g: f32, b: f32, a: f32) -> *mut ImColor;
3843}
3844extern "C" {
3845    pub fn ImColor_ImColor_Vec4(col: ImVec4) -> *mut ImColor;
3846}
3847extern "C" {
3848    pub fn ImColor_ImColor_Int(
3849        r: cty::c_int,
3850        g: cty::c_int,
3851        b: cty::c_int,
3852        a: cty::c_int,
3853    ) -> *mut ImColor;
3854}
3855extern "C" {
3856    pub fn ImColor_ImColor_U32(rgba: ImU32) -> *mut ImColor;
3857}
3858extern "C" {
3859    pub fn ImColor_SetHSV(self_: *mut ImColor, h: f32, s: f32, v: f32, a: f32);
3860}
3861extern "C" {
3862    pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32);
3863}
3864extern "C" {
3865    pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd;
3866}
3867extern "C" {
3868    pub fn ImDrawCmd_destroy(self_: *mut ImDrawCmd);
3869}
3870extern "C" {
3871    pub fn ImDrawCmd_GetTexID(self_: *mut ImDrawCmd) -> ImTextureID;
3872}
3873extern "C" {
3874    pub fn ImDrawListSplitter_ImDrawListSplitter() -> *mut ImDrawListSplitter;
3875}
3876extern "C" {
3877    pub fn ImDrawListSplitter_destroy(self_: *mut ImDrawListSplitter);
3878}
3879extern "C" {
3880    pub fn ImDrawListSplitter_Clear(self_: *mut ImDrawListSplitter);
3881}
3882extern "C" {
3883    pub fn ImDrawListSplitter_ClearFreeMemory(self_: *mut ImDrawListSplitter);
3884}
3885extern "C" {
3886    pub fn ImDrawListSplitter_Split(
3887        self_: *mut ImDrawListSplitter,
3888        draw_list: *mut ImDrawList,
3889        count: cty::c_int,
3890    );
3891}
3892extern "C" {
3893    pub fn ImDrawListSplitter_Merge(self_: *mut ImDrawListSplitter, draw_list: *mut ImDrawList);
3894}
3895extern "C" {
3896    pub fn ImDrawListSplitter_SetCurrentChannel(
3897        self_: *mut ImDrawListSplitter,
3898        draw_list: *mut ImDrawList,
3899        channel_idx: cty::c_int,
3900    );
3901}
3902extern "C" {
3903    pub fn ImDrawList_ImDrawList(shared_data: *mut ImDrawListSharedData) -> *mut ImDrawList;
3904}
3905extern "C" {
3906    pub fn ImDrawList_destroy(self_: *mut ImDrawList);
3907}
3908extern "C" {
3909    pub fn ImDrawList_PushClipRect(
3910        self_: *mut ImDrawList,
3911        clip_rect_min: ImVec2,
3912        clip_rect_max: ImVec2,
3913        intersect_with_current_clip_rect: bool,
3914    );
3915}
3916extern "C" {
3917    pub fn ImDrawList_PushClipRectFullScreen(self_: *mut ImDrawList);
3918}
3919extern "C" {
3920    pub fn ImDrawList_PopClipRect(self_: *mut ImDrawList);
3921}
3922extern "C" {
3923    pub fn ImDrawList_PushTextureID(self_: *mut ImDrawList, texture_id: ImTextureID);
3924}
3925extern "C" {
3926    pub fn ImDrawList_PopTextureID(self_: *mut ImDrawList);
3927}
3928extern "C" {
3929    pub fn ImDrawList_GetClipRectMin(pOut: *mut ImVec2, self_: *mut ImDrawList);
3930}
3931extern "C" {
3932    pub fn ImDrawList_GetClipRectMax(pOut: *mut ImVec2, self_: *mut ImDrawList);
3933}
3934extern "C" {
3935    pub fn ImDrawList_AddLine(
3936        self_: *mut ImDrawList,
3937        p1: ImVec2,
3938        p2: ImVec2,
3939        col: ImU32,
3940        thickness: f32,
3941    );
3942}
3943extern "C" {
3944    pub fn ImDrawList_AddRect(
3945        self_: *mut ImDrawList,
3946        p_min: ImVec2,
3947        p_max: ImVec2,
3948        col: ImU32,
3949        rounding: f32,
3950        flags: ImDrawFlags,
3951        thickness: f32,
3952    );
3953}
3954extern "C" {
3955    pub fn ImDrawList_AddRectFilled(
3956        self_: *mut ImDrawList,
3957        p_min: ImVec2,
3958        p_max: ImVec2,
3959        col: ImU32,
3960        rounding: f32,
3961        flags: ImDrawFlags,
3962    );
3963}
3964extern "C" {
3965    pub fn ImDrawList_AddRectFilledMultiColor(
3966        self_: *mut ImDrawList,
3967        p_min: ImVec2,
3968        p_max: ImVec2,
3969        col_upr_left: ImU32,
3970        col_upr_right: ImU32,
3971        col_bot_right: ImU32,
3972        col_bot_left: ImU32,
3973    );
3974}
3975extern "C" {
3976    pub fn ImDrawList_AddQuad(
3977        self_: *mut ImDrawList,
3978        p1: ImVec2,
3979        p2: ImVec2,
3980        p3: ImVec2,
3981        p4: ImVec2,
3982        col: ImU32,
3983        thickness: f32,
3984    );
3985}
3986extern "C" {
3987    pub fn ImDrawList_AddQuadFilled(
3988        self_: *mut ImDrawList,
3989        p1: ImVec2,
3990        p2: ImVec2,
3991        p3: ImVec2,
3992        p4: ImVec2,
3993        col: ImU32,
3994    );
3995}
3996extern "C" {
3997    pub fn ImDrawList_AddTriangle(
3998        self_: *mut ImDrawList,
3999        p1: ImVec2,
4000        p2: ImVec2,
4001        p3: ImVec2,
4002        col: ImU32,
4003        thickness: f32,
4004    );
4005}
4006extern "C" {
4007    pub fn ImDrawList_AddTriangleFilled(
4008        self_: *mut ImDrawList,
4009        p1: ImVec2,
4010        p2: ImVec2,
4011        p3: ImVec2,
4012        col: ImU32,
4013    );
4014}
4015extern "C" {
4016    pub fn ImDrawList_AddCircle(
4017        self_: *mut ImDrawList,
4018        center: ImVec2,
4019        radius: f32,
4020        col: ImU32,
4021        num_segments: cty::c_int,
4022        thickness: f32,
4023    );
4024}
4025extern "C" {
4026    pub fn ImDrawList_AddCircleFilled(
4027        self_: *mut ImDrawList,
4028        center: ImVec2,
4029        radius: f32,
4030        col: ImU32,
4031        num_segments: cty::c_int,
4032    );
4033}
4034extern "C" {
4035    pub fn ImDrawList_AddNgon(
4036        self_: *mut ImDrawList,
4037        center: ImVec2,
4038        radius: f32,
4039        col: ImU32,
4040        num_segments: cty::c_int,
4041        thickness: f32,
4042    );
4043}
4044extern "C" {
4045    pub fn ImDrawList_AddNgonFilled(
4046        self_: *mut ImDrawList,
4047        center: ImVec2,
4048        radius: f32,
4049        col: ImU32,
4050        num_segments: cty::c_int,
4051    );
4052}
4053extern "C" {
4054    pub fn ImDrawList_AddText_Vec2(
4055        self_: *mut ImDrawList,
4056        pos: ImVec2,
4057        col: ImU32,
4058        text_begin: *const cty::c_char,
4059        text_end: *const cty::c_char,
4060    );
4061}
4062extern "C" {
4063    pub fn ImDrawList_AddText_FontPtr(
4064        self_: *mut ImDrawList,
4065        font: *const ImFont,
4066        font_size: f32,
4067        pos: ImVec2,
4068        col: ImU32,
4069        text_begin: *const cty::c_char,
4070        text_end: *const cty::c_char,
4071        wrap_width: f32,
4072        cpu_fine_clip_rect: *const ImVec4,
4073    );
4074}
4075extern "C" {
4076    pub fn ImDrawList_AddPolyline(
4077        self_: *mut ImDrawList,
4078        points: *const ImVec2,
4079        num_points: cty::c_int,
4080        col: ImU32,
4081        flags: ImDrawFlags,
4082        thickness: f32,
4083    );
4084}
4085extern "C" {
4086    pub fn ImDrawList_AddConvexPolyFilled(
4087        self_: *mut ImDrawList,
4088        points: *const ImVec2,
4089        num_points: cty::c_int,
4090        col: ImU32,
4091    );
4092}
4093extern "C" {
4094    pub fn ImDrawList_AddBezierCubic(
4095        self_: *mut ImDrawList,
4096        p1: ImVec2,
4097        p2: ImVec2,
4098        p3: ImVec2,
4099        p4: ImVec2,
4100        col: ImU32,
4101        thickness: f32,
4102        num_segments: cty::c_int,
4103    );
4104}
4105extern "C" {
4106    pub fn ImDrawList_AddBezierQuadratic(
4107        self_: *mut ImDrawList,
4108        p1: ImVec2,
4109        p2: ImVec2,
4110        p3: ImVec2,
4111        col: ImU32,
4112        thickness: f32,
4113        num_segments: cty::c_int,
4114    );
4115}
4116extern "C" {
4117    pub fn ImDrawList_AddImage(
4118        self_: *mut ImDrawList,
4119        user_texture_id: ImTextureID,
4120        p_min: ImVec2,
4121        p_max: ImVec2,
4122        uv_min: ImVec2,
4123        uv_max: ImVec2,
4124        col: ImU32,
4125    );
4126}
4127extern "C" {
4128    pub fn ImDrawList_AddImageQuad(
4129        self_: *mut ImDrawList,
4130        user_texture_id: ImTextureID,
4131        p1: ImVec2,
4132        p2: ImVec2,
4133        p3: ImVec2,
4134        p4: ImVec2,
4135        uv1: ImVec2,
4136        uv2: ImVec2,
4137        uv3: ImVec2,
4138        uv4: ImVec2,
4139        col: ImU32,
4140    );
4141}
4142extern "C" {
4143    pub fn ImDrawList_AddImageRounded(
4144        self_: *mut ImDrawList,
4145        user_texture_id: ImTextureID,
4146        p_min: ImVec2,
4147        p_max: ImVec2,
4148        uv_min: ImVec2,
4149        uv_max: ImVec2,
4150        col: ImU32,
4151        rounding: f32,
4152        flags: ImDrawFlags,
4153    );
4154}
4155extern "C" {
4156    pub fn ImDrawList_PathClear(self_: *mut ImDrawList);
4157}
4158extern "C" {
4159    pub fn ImDrawList_PathLineTo(self_: *mut ImDrawList, pos: ImVec2);
4160}
4161extern "C" {
4162    pub fn ImDrawList_PathLineToMergeDuplicate(self_: *mut ImDrawList, pos: ImVec2);
4163}
4164extern "C" {
4165    pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32);
4166}
4167extern "C" {
4168    pub fn ImDrawList_PathStroke(
4169        self_: *mut ImDrawList,
4170        col: ImU32,
4171        flags: ImDrawFlags,
4172        thickness: f32,
4173    );
4174}
4175extern "C" {
4176    pub fn ImDrawList_PathArcTo(
4177        self_: *mut ImDrawList,
4178        center: ImVec2,
4179        radius: f32,
4180        a_min: f32,
4181        a_max: f32,
4182        num_segments: cty::c_int,
4183    );
4184}
4185extern "C" {
4186    pub fn ImDrawList_PathArcToFast(
4187        self_: *mut ImDrawList,
4188        center: ImVec2,
4189        radius: f32,
4190        a_min_of_12: cty::c_int,
4191        a_max_of_12: cty::c_int,
4192    );
4193}
4194extern "C" {
4195    pub fn ImDrawList_PathBezierCubicCurveTo(
4196        self_: *mut ImDrawList,
4197        p2: ImVec2,
4198        p3: ImVec2,
4199        p4: ImVec2,
4200        num_segments: cty::c_int,
4201    );
4202}
4203extern "C" {
4204    pub fn ImDrawList_PathBezierQuadraticCurveTo(
4205        self_: *mut ImDrawList,
4206        p2: ImVec2,
4207        p3: ImVec2,
4208        num_segments: cty::c_int,
4209    );
4210}
4211extern "C" {
4212    pub fn ImDrawList_PathRect(
4213        self_: *mut ImDrawList,
4214        rect_min: ImVec2,
4215        rect_max: ImVec2,
4216        rounding: f32,
4217        flags: ImDrawFlags,
4218    );
4219}
4220extern "C" {
4221    pub fn ImDrawList_AddCallback(
4222        self_: *mut ImDrawList,
4223        callback: ImDrawCallback,
4224        callback_data: *mut cty::c_void,
4225    );
4226}
4227extern "C" {
4228    pub fn ImDrawList_AddDrawCmd(self_: *mut ImDrawList);
4229}
4230extern "C" {
4231    pub fn ImDrawList_CloneOutput(self_: *mut ImDrawList) -> *mut ImDrawList;
4232}
4233extern "C" {
4234    pub fn ImDrawList_ChannelsSplit(self_: *mut ImDrawList, count: cty::c_int);
4235}
4236extern "C" {
4237    pub fn ImDrawList_ChannelsMerge(self_: *mut ImDrawList);
4238}
4239extern "C" {
4240    pub fn ImDrawList_ChannelsSetCurrent(self_: *mut ImDrawList, n: cty::c_int);
4241}
4242extern "C" {
4243    pub fn ImDrawList_PrimReserve(
4244        self_: *mut ImDrawList,
4245        idx_count: cty::c_int,
4246        vtx_count: cty::c_int,
4247    );
4248}
4249extern "C" {
4250    pub fn ImDrawList_PrimUnreserve(
4251        self_: *mut ImDrawList,
4252        idx_count: cty::c_int,
4253        vtx_count: cty::c_int,
4254    );
4255}
4256extern "C" {
4257    pub fn ImDrawList_PrimRect(self_: *mut ImDrawList, a: ImVec2, b: ImVec2, col: ImU32);
4258}
4259extern "C" {
4260    pub fn ImDrawList_PrimRectUV(
4261        self_: *mut ImDrawList,
4262        a: ImVec2,
4263        b: ImVec2,
4264        uv_a: ImVec2,
4265        uv_b: ImVec2,
4266        col: ImU32,
4267    );
4268}
4269extern "C" {
4270    pub fn ImDrawList_PrimQuadUV(
4271        self_: *mut ImDrawList,
4272        a: ImVec2,
4273        b: ImVec2,
4274        c: ImVec2,
4275        d: ImVec2,
4276        uv_a: ImVec2,
4277        uv_b: ImVec2,
4278        uv_c: ImVec2,
4279        uv_d: ImVec2,
4280        col: ImU32,
4281    );
4282}
4283extern "C" {
4284    pub fn ImDrawList_PrimWriteVtx(self_: *mut ImDrawList, pos: ImVec2, uv: ImVec2, col: ImU32);
4285}
4286extern "C" {
4287    pub fn ImDrawList_PrimWriteIdx(self_: *mut ImDrawList, idx: ImDrawIdx);
4288}
4289extern "C" {
4290    pub fn ImDrawList_PrimVtx(self_: *mut ImDrawList, pos: ImVec2, uv: ImVec2, col: ImU32);
4291}
4292extern "C" {
4293    pub fn ImDrawList__ResetForNewFrame(self_: *mut ImDrawList);
4294}
4295extern "C" {
4296    pub fn ImDrawList__ClearFreeMemory(self_: *mut ImDrawList);
4297}
4298extern "C" {
4299    pub fn ImDrawList__PopUnusedDrawCmd(self_: *mut ImDrawList);
4300}
4301extern "C" {
4302    pub fn ImDrawList__TryMergeDrawCmds(self_: *mut ImDrawList);
4303}
4304extern "C" {
4305    pub fn ImDrawList__OnChangedClipRect(self_: *mut ImDrawList);
4306}
4307extern "C" {
4308    pub fn ImDrawList__OnChangedTextureID(self_: *mut ImDrawList);
4309}
4310extern "C" {
4311    pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList);
4312}
4313extern "C" {
4314    pub fn ImDrawList__CalcCircleAutoSegmentCount(
4315        self_: *mut ImDrawList,
4316        radius: f32,
4317    ) -> cty::c_int;
4318}
4319extern "C" {
4320    pub fn ImDrawList__PathArcToFastEx(
4321        self_: *mut ImDrawList,
4322        center: ImVec2,
4323        radius: f32,
4324        a_min_sample: cty::c_int,
4325        a_max_sample: cty::c_int,
4326        a_step: cty::c_int,
4327    );
4328}
4329extern "C" {
4330    pub fn ImDrawList__PathArcToN(
4331        self_: *mut ImDrawList,
4332        center: ImVec2,
4333        radius: f32,
4334        a_min: f32,
4335        a_max: f32,
4336        num_segments: cty::c_int,
4337    );
4338}
4339extern "C" {
4340    pub fn ImDrawData_ImDrawData() -> *mut ImDrawData;
4341}
4342extern "C" {
4343    pub fn ImDrawData_destroy(self_: *mut ImDrawData);
4344}
4345extern "C" {
4346    pub fn ImDrawData_Clear(self_: *mut ImDrawData);
4347}
4348extern "C" {
4349    pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData);
4350}
4351extern "C" {
4352    pub fn ImDrawData_ScaleClipRects(self_: *mut ImDrawData, fb_scale: ImVec2);
4353}
4354extern "C" {
4355    pub fn ImFontConfig_ImFontConfig() -> *mut ImFontConfig;
4356}
4357extern "C" {
4358    pub fn ImFontConfig_destroy(self_: *mut ImFontConfig);
4359}
4360extern "C" {
4361    pub fn ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder() -> *mut ImFontGlyphRangesBuilder;
4362}
4363extern "C" {
4364    pub fn ImFontGlyphRangesBuilder_destroy(self_: *mut ImFontGlyphRangesBuilder);
4365}
4366extern "C" {
4367    pub fn ImFontGlyphRangesBuilder_Clear(self_: *mut ImFontGlyphRangesBuilder);
4368}
4369extern "C" {
4370    pub fn ImFontGlyphRangesBuilder_GetBit(self_: *mut ImFontGlyphRangesBuilder, n: usize) -> bool;
4371}
4372extern "C" {
4373    pub fn ImFontGlyphRangesBuilder_SetBit(self_: *mut ImFontGlyphRangesBuilder, n: usize);
4374}
4375extern "C" {
4376    pub fn ImFontGlyphRangesBuilder_AddChar(self_: *mut ImFontGlyphRangesBuilder, c: ImWchar);
4377}
4378extern "C" {
4379    pub fn ImFontGlyphRangesBuilder_AddText(
4380        self_: *mut ImFontGlyphRangesBuilder,
4381        text: *const cty::c_char,
4382        text_end: *const cty::c_char,
4383    );
4384}
4385extern "C" {
4386    pub fn ImFontGlyphRangesBuilder_AddRanges(
4387        self_: *mut ImFontGlyphRangesBuilder,
4388        ranges: *const ImWchar,
4389    );
4390}
4391extern "C" {
4392    pub fn ImFontGlyphRangesBuilder_BuildRanges(
4393        self_: *mut ImFontGlyphRangesBuilder,
4394        out_ranges: *mut ImVector_ImWchar,
4395    );
4396}
4397extern "C" {
4398    pub fn ImFontAtlasCustomRect_ImFontAtlasCustomRect() -> *mut ImFontAtlasCustomRect;
4399}
4400extern "C" {
4401    pub fn ImFontAtlasCustomRect_destroy(self_: *mut ImFontAtlasCustomRect);
4402}
4403extern "C" {
4404    pub fn ImFontAtlasCustomRect_IsPacked(self_: *mut ImFontAtlasCustomRect) -> bool;
4405}
4406extern "C" {
4407    pub fn ImFontAtlas_ImFontAtlas() -> *mut ImFontAtlas;
4408}
4409extern "C" {
4410    pub fn ImFontAtlas_destroy(self_: *mut ImFontAtlas);
4411}
4412extern "C" {
4413    pub fn ImFontAtlas_AddFont(
4414        self_: *mut ImFontAtlas,
4415        font_cfg: *const ImFontConfig,
4416    ) -> *mut ImFont;
4417}
4418extern "C" {
4419    pub fn ImFontAtlas_AddFontDefault(
4420        self_: *mut ImFontAtlas,
4421        font_cfg: *const ImFontConfig,
4422    ) -> *mut ImFont;
4423}
4424extern "C" {
4425    pub fn ImFontAtlas_AddFontFromFileTTF(
4426        self_: *mut ImFontAtlas,
4427        filename: *const cty::c_char,
4428        size_pixels: f32,
4429        font_cfg: *const ImFontConfig,
4430        glyph_ranges: *const ImWchar,
4431    ) -> *mut ImFont;
4432}
4433extern "C" {
4434    pub fn ImFontAtlas_AddFontFromMemoryTTF(
4435        self_: *mut ImFontAtlas,
4436        font_data: *mut cty::c_void,
4437        font_size: cty::c_int,
4438        size_pixels: f32,
4439        font_cfg: *const ImFontConfig,
4440        glyph_ranges: *const ImWchar,
4441    ) -> *mut ImFont;
4442}
4443extern "C" {
4444    pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF(
4445        self_: *mut ImFontAtlas,
4446        compressed_font_data: *const cty::c_void,
4447        compressed_font_size: cty::c_int,
4448        size_pixels: f32,
4449        font_cfg: *const ImFontConfig,
4450        glyph_ranges: *const ImWchar,
4451    ) -> *mut ImFont;
4452}
4453extern "C" {
4454    pub fn ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(
4455        self_: *mut ImFontAtlas,
4456        compressed_font_data_base85: *const cty::c_char,
4457        size_pixels: f32,
4458        font_cfg: *const ImFontConfig,
4459        glyph_ranges: *const ImWchar,
4460    ) -> *mut ImFont;
4461}
4462extern "C" {
4463    pub fn ImFontAtlas_ClearInputData(self_: *mut ImFontAtlas);
4464}
4465extern "C" {
4466    pub fn ImFontAtlas_ClearTexData(self_: *mut ImFontAtlas);
4467}
4468extern "C" {
4469    pub fn ImFontAtlas_ClearFonts(self_: *mut ImFontAtlas);
4470}
4471extern "C" {
4472    pub fn ImFontAtlas_Clear(self_: *mut ImFontAtlas);
4473}
4474extern "C" {
4475    pub fn ImFontAtlas_Build(self_: *mut ImFontAtlas) -> bool;
4476}
4477extern "C" {
4478    pub fn ImFontAtlas_GetTexDataAsAlpha8(
4479        self_: *mut ImFontAtlas,
4480        out_pixels: *mut *mut cty::c_uchar,
4481        out_width: *mut cty::c_int,
4482        out_height: *mut cty::c_int,
4483        out_bytes_per_pixel: *mut cty::c_int,
4484    );
4485}
4486extern "C" {
4487    pub fn ImFontAtlas_GetTexDataAsRGBA32(
4488        self_: *mut ImFontAtlas,
4489        out_pixels: *mut *mut cty::c_uchar,
4490        out_width: *mut cty::c_int,
4491        out_height: *mut cty::c_int,
4492        out_bytes_per_pixel: *mut cty::c_int,
4493    );
4494}
4495extern "C" {
4496    pub fn ImFontAtlas_IsBuilt(self_: *mut ImFontAtlas) -> bool;
4497}
4498extern "C" {
4499    pub fn ImFontAtlas_SetTexID(self_: *mut ImFontAtlas, id: ImTextureID);
4500}
4501extern "C" {
4502    pub fn ImFontAtlas_GetGlyphRangesDefault(self_: *mut ImFontAtlas) -> *const ImWchar;
4503}
4504extern "C" {
4505    pub fn ImFontAtlas_GetGlyphRangesGreek(self_: *mut ImFontAtlas) -> *const ImWchar;
4506}
4507extern "C" {
4508    pub fn ImFontAtlas_GetGlyphRangesKorean(self_: *mut ImFontAtlas) -> *const ImWchar;
4509}
4510extern "C" {
4511    pub fn ImFontAtlas_GetGlyphRangesJapanese(self_: *mut ImFontAtlas) -> *const ImWchar;
4512}
4513extern "C" {
4514    pub fn ImFontAtlas_GetGlyphRangesChineseFull(self_: *mut ImFontAtlas) -> *const ImWchar;
4515}
4516extern "C" {
4517    pub fn ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(
4518        self_: *mut ImFontAtlas,
4519    ) -> *const ImWchar;
4520}
4521extern "C" {
4522    pub fn ImFontAtlas_GetGlyphRangesCyrillic(self_: *mut ImFontAtlas) -> *const ImWchar;
4523}
4524extern "C" {
4525    pub fn ImFontAtlas_GetGlyphRangesThai(self_: *mut ImFontAtlas) -> *const ImWchar;
4526}
4527extern "C" {
4528    pub fn ImFontAtlas_GetGlyphRangesVietnamese(self_: *mut ImFontAtlas) -> *const ImWchar;
4529}
4530extern "C" {
4531    pub fn ImFontAtlas_AddCustomRectRegular(
4532        self_: *mut ImFontAtlas,
4533        width: cty::c_int,
4534        height: cty::c_int,
4535    ) -> cty::c_int;
4536}
4537extern "C" {
4538    pub fn ImFontAtlas_AddCustomRectFontGlyph(
4539        self_: *mut ImFontAtlas,
4540        font: *mut ImFont,
4541        id: ImWchar,
4542        width: cty::c_int,
4543        height: cty::c_int,
4544        advance_x: f32,
4545        offset: ImVec2,
4546    ) -> cty::c_int;
4547}
4548extern "C" {
4549    pub fn ImFontAtlas_GetCustomRectByIndex(
4550        self_: *mut ImFontAtlas,
4551        index: cty::c_int,
4552    ) -> *mut ImFontAtlasCustomRect;
4553}
4554extern "C" {
4555    pub fn ImFontAtlas_CalcCustomRectUV(
4556        self_: *mut ImFontAtlas,
4557        rect: *const ImFontAtlasCustomRect,
4558        out_uv_min: *mut ImVec2,
4559        out_uv_max: *mut ImVec2,
4560    );
4561}
4562extern "C" {
4563    pub fn ImFontAtlas_GetMouseCursorTexData(
4564        self_: *mut ImFontAtlas,
4565        cursor: ImGuiMouseCursor,
4566        out_offset: *mut ImVec2,
4567        out_size: *mut ImVec2,
4568        out_uv_border: *mut ImVec2,
4569        out_uv_fill: *mut ImVec2,
4570    ) -> bool;
4571}
4572extern "C" {
4573    pub fn ImFont_ImFont() -> *mut ImFont;
4574}
4575extern "C" {
4576    pub fn ImFont_destroy(self_: *mut ImFont);
4577}
4578extern "C" {
4579    pub fn ImFont_FindGlyph(self_: *mut ImFont, c: ImWchar) -> *const ImFontGlyph;
4580}
4581extern "C" {
4582    pub fn ImFont_FindGlyphNoFallback(self_: *mut ImFont, c: ImWchar) -> *const ImFontGlyph;
4583}
4584extern "C" {
4585    pub fn ImFont_GetCharAdvance(self_: *mut ImFont, c: ImWchar) -> f32;
4586}
4587extern "C" {
4588    pub fn ImFont_IsLoaded(self_: *mut ImFont) -> bool;
4589}
4590extern "C" {
4591    pub fn ImFont_GetDebugName(self_: *mut ImFont) -> *const cty::c_char;
4592}
4593extern "C" {
4594    pub fn ImFont_CalcTextSizeA(
4595        pOut: *mut ImVec2,
4596        self_: *mut ImFont,
4597        size: f32,
4598        max_width: f32,
4599        wrap_width: f32,
4600        text_begin: *const cty::c_char,
4601        text_end: *const cty::c_char,
4602        remaining: *mut *const cty::c_char,
4603    );
4604}
4605extern "C" {
4606    pub fn ImFont_CalcWordWrapPositionA(
4607        self_: *mut ImFont,
4608        scale: f32,
4609        text: *const cty::c_char,
4610        text_end: *const cty::c_char,
4611        wrap_width: f32,
4612    ) -> *const cty::c_char;
4613}
4614extern "C" {
4615    pub fn ImFont_RenderChar(
4616        self_: *mut ImFont,
4617        draw_list: *mut ImDrawList,
4618        size: f32,
4619        pos: ImVec2,
4620        col: ImU32,
4621        c: ImWchar,
4622    );
4623}
4624extern "C" {
4625    pub fn ImFont_RenderText(
4626        self_: *mut ImFont,
4627        draw_list: *mut ImDrawList,
4628        size: f32,
4629        pos: ImVec2,
4630        col: ImU32,
4631        clip_rect: ImVec4,
4632        text_begin: *const cty::c_char,
4633        text_end: *const cty::c_char,
4634        wrap_width: f32,
4635        cpu_fine_clip: bool,
4636    );
4637}
4638extern "C" {
4639    pub fn ImFont_BuildLookupTable(self_: *mut ImFont);
4640}
4641extern "C" {
4642    pub fn ImFont_ClearOutputData(self_: *mut ImFont);
4643}
4644extern "C" {
4645    pub fn ImFont_GrowIndex(self_: *mut ImFont, new_size: cty::c_int);
4646}
4647extern "C" {
4648    pub fn ImFont_AddGlyph(
4649        self_: *mut ImFont,
4650        src_cfg: *const ImFontConfig,
4651        c: ImWchar,
4652        x0: f32,
4653        y0: f32,
4654        x1: f32,
4655        y1: f32,
4656        u0: f32,
4657        v0: f32,
4658        u1: f32,
4659        v1: f32,
4660        advance_x: f32,
4661    );
4662}
4663extern "C" {
4664    pub fn ImFont_AddRemapChar(self_: *mut ImFont, dst: ImWchar, src: ImWchar, overwrite_dst: bool);
4665}
4666extern "C" {
4667    pub fn ImFont_SetGlyphVisible(self_: *mut ImFont, c: ImWchar, visible: bool);
4668}
4669extern "C" {
4670    pub fn ImFont_IsGlyphRangeUnused(
4671        self_: *mut ImFont,
4672        c_begin: cty::c_uint,
4673        c_last: cty::c_uint,
4674    ) -> bool;
4675}
4676extern "C" {
4677    pub fn ImGuiViewport_ImGuiViewport() -> *mut ImGuiViewport;
4678}
4679extern "C" {
4680    pub fn ImGuiViewport_destroy(self_: *mut ImGuiViewport);
4681}
4682extern "C" {
4683    pub fn ImGuiViewport_GetCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport);
4684}
4685extern "C" {
4686    pub fn ImGuiViewport_GetWorkCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport);
4687}
4688extern "C" {
4689    pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData;
4690}
4691extern "C" {
4692    pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData);
4693}
4694extern "C" {
4695    pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey;
4696}
4697extern "C" {
4698    pub fn igLogText(fmt: *const cty::c_char, ...);
4699}
4700extern "C" {
4701    pub fn ImGuiTextBuffer_appendf(buffer: *mut ImGuiTextBuffer, fmt: *const cty::c_char, ...);
4702}