arcdps_imgui_sys/
bindings.rs

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