1 //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
2 //based on imgui.h file version "1.73" from Dear ImGui https://github.com/ocornut/imgui
3 module cimgui.cimgui;
4 
5 // import core.stdc.stdarg;
6 //import core.stdc.stdio;
7 
8 version(WebAssembly)
9 {
10     alias va_list = char*;
11     pragma(LDC_va_start)
12     void va_start(T)(out va_list ap, ref T parmn) @nogc;
13 }
14 else import core.stdc.stdarg;
15 
16 extern (C):
17 
18 //alias ImU64 = ulong;
19 
20 //typedef unsigned long long ImU64;
21 
22 //UDT stuff
23 struct ImVec2_Simple
24 {
25     float x;
26     float y;
27 }
28 
29 struct ImVec4_Simple
30 {
31     float x;
32     float y;
33     float z;
34     float w;
35 }
36 
37 struct ImColor_Simple
38 {
39     ImVec4_Simple Value;
40 }
41 
42 struct ImGuiContext;
43 struct ImDrawListSharedData;
44 
45 alias ImTextureID = void*;
46 alias ImGuiID = uint;
47 alias ImWchar = ushort;
48 alias ImGuiCol = int;
49 alias ImGuiCond = int;
50 alias ImGuiDataType = int;
51 alias ImGuiDir = int;
52 alias ImGuiKey = int;
53 alias ImGuiNavInput = int;
54 alias ImGuiMouseCursor = int;
55 alias ImGuiStyleVar = int;
56 alias ImDrawCornerFlags = int;
57 alias ImDrawListFlags = int;
58 alias ImFontAtlasFlags = int;
59 alias ImGuiBackendFlags = int;
60 alias ImGuiColorEditFlags = int;
61 alias ImGuiConfigFlags = int;
62 alias ImGuiComboFlags = int;
63 alias ImGuiDragDropFlags = int;
64 alias ImGuiFocusedFlags = int;
65 alias ImGuiHoveredFlags = int;
66 alias ImGuiInputTextFlags = int;
67 alias ImGuiSelectableFlags = int;
68 alias ImGuiTabBarFlags = int;
69 alias ImGuiTabItemFlags = int;
70 alias ImGuiTreeNodeFlags = int;
71 alias ImGuiWindowFlags = int;
72 alias ImGuiInputTextCallback = int function (ImGuiInputTextCallbackData* data);
73 alias ImGuiSizeCallback = void function (ImGuiSizeCallbackData* data);
74 alias ImS8 = byte;
75 alias ImU8 = ubyte;
76 alias ImS16 = short;
77 alias ImU16 = ushort;
78 alias ImS32 = int;
79 alias ImU32 = uint;
80 alias ImS64 = long;
81 alias ImU64 = ulong;
82 alias ImDrawCallback = void function (const(ImDrawList)* parent_list, const(ImDrawCmd)* cmd);
83 alias ImDrawIdx = ushort;
84 
85 struct ImVector
86 {
87     int Size;
88     int Capacity;
89     void* Data;
90 }
91 
92 struct ImVector_float
93 {
94     int Size;
95     int Capacity;
96     float* Data;
97 }
98 
99 struct ImVector_ImWchar
100 {
101     int Size;
102     int Capacity;
103     ImWchar* Data;
104 }
105 
106 struct ImVector_ImDrawVert
107 {
108     int Size;
109     int Capacity;
110     ImDrawVert* Data;
111 }
112 
113 struct ImVector_ImFontGlyph
114 {
115     int Size;
116     int Capacity;
117     ImFontGlyph* Data;
118 }
119 
120 struct ImVector_ImGuiTextRange
121 {
122     int Size;
123     int Capacity;
124     ImGuiTextRange* Data;
125 }
126 
127 struct ImVector_ImGuiStoragePair
128 {
129     int Size;
130     int Capacity;
131     ImGuiStoragePair* Data;
132 }
133 
134 struct ImVector_ImDrawChannel
135 {
136     int Size;
137     int Capacity;
138     ImDrawChannel* Data;
139 }
140 
141 struct ImVector_char
142 {
143     int Size;
144     int Capacity;
145     char* Data;
146 }
147 
148 struct ImVector_ImU32
149 {
150     int Size;
151     int Capacity;
152     ImU32* Data;
153 }
154 
155 struct ImVector_ImFontAtlasCustomRect
156 {
157     int Size;
158     int Capacity;
159     ImFontAtlasCustomRect* Data;
160 }
161 
162 struct ImVector_ImTextureID
163 {
164     int Size;
165     int Capacity;
166     ImTextureID* Data;
167 }
168 
169 struct ImVector_ImFontConfig
170 {
171     int Size;
172     int Capacity;
173     ImFontConfig* Data;
174 }
175 
176 struct ImVector_ImFontPtr
177 {
178     int Size;
179     int Capacity;
180     ImFont** Data;
181 }
182 
183 struct ImVector_ImDrawCmd
184 {
185     int Size;
186     int Capacity;
187     ImDrawCmd* Data;
188 }
189 
190 struct ImVector_ImVec4
191 {
192     int Size;
193     int Capacity;
194     ImVec4* Data;
195 }
196 
197 struct ImVector_ImDrawIdx
198 {
199     int Size;
200     int Capacity;
201     ImDrawIdx* Data;
202 }
203 
204 struct ImVector_ImVec2
205 {
206     int Size;
207     int Capacity;
208     ImVec2* Data;
209 }
210 
211 struct ImVec2
212 {
213     float x;
214     float y;
215 }
216 
217 struct ImVec4
218 {
219     float x;
220     float y;
221     float z;
222     float w;
223 }
224 
225 enum ImGuiWindowFlags_
226 {
227     ImGuiWindowFlags_None = 0,
228     ImGuiWindowFlags_NoTitleBar = 1 << 0,
229     ImGuiWindowFlags_NoResize = 1 << 1,
230     ImGuiWindowFlags_NoMove = 1 << 2,
231     ImGuiWindowFlags_NoScrollbar = 1 << 3,
232     ImGuiWindowFlags_NoScrollWithMouse = 1 << 4,
233     ImGuiWindowFlags_NoCollapse = 1 << 5,
234     ImGuiWindowFlags_AlwaysAutoResize = 1 << 6,
235     ImGuiWindowFlags_NoBackground = 1 << 7,
236     ImGuiWindowFlags_NoSavedSettings = 1 << 8,
237     ImGuiWindowFlags_NoMouseInputs = 1 << 9,
238     ImGuiWindowFlags_MenuBar = 1 << 10,
239     ImGuiWindowFlags_HorizontalScrollbar = 1 << 11,
240     ImGuiWindowFlags_NoFocusOnAppearing = 1 << 12,
241     ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13,
242     ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 << 14,
243     ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1 << 15,
244     ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,
245     ImGuiWindowFlags_NoNavInputs = 1 << 18,
246     ImGuiWindowFlags_NoNavFocus = 1 << 19,
247     ImGuiWindowFlags_UnsavedDocument = 1 << 20,
248     ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
249     ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
250     ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
251     ImGuiWindowFlags_NavFlattened = 1 << 23,
252     ImGuiWindowFlags_ChildWindow = 1 << 24,
253     ImGuiWindowFlags_Tooltip = 1 << 25,
254     ImGuiWindowFlags_Popup = 1 << 26,
255     ImGuiWindowFlags_Modal = 1 << 27,
256     ImGuiWindowFlags_ChildMenu = 1 << 28
257 }
258 
259 alias ImGuiWindowFlags_None = ImGuiWindowFlags_.ImGuiWindowFlags_None;
260 alias ImGuiWindowFlags_NoTitleBar = ImGuiWindowFlags_.ImGuiWindowFlags_NoTitleBar;
261 alias ImGuiWindowFlags_NoResize = ImGuiWindowFlags_.ImGuiWindowFlags_NoResize;
262 alias ImGuiWindowFlags_NoMove = ImGuiWindowFlags_.ImGuiWindowFlags_NoMove;
263 alias ImGuiWindowFlags_NoScrollbar = ImGuiWindowFlags_.ImGuiWindowFlags_NoScrollbar;
264 alias ImGuiWindowFlags_NoScrollWithMouse = ImGuiWindowFlags_.ImGuiWindowFlags_NoScrollWithMouse;
265 alias ImGuiWindowFlags_NoCollapse = ImGuiWindowFlags_.ImGuiWindowFlags_NoCollapse;
266 alias ImGuiWindowFlags_AlwaysAutoResize = ImGuiWindowFlags_.ImGuiWindowFlags_AlwaysAutoResize;
267 alias ImGuiWindowFlags_NoBackground = ImGuiWindowFlags_.ImGuiWindowFlags_NoBackground;
268 alias ImGuiWindowFlags_NoSavedSettings = ImGuiWindowFlags_.ImGuiWindowFlags_NoSavedSettings;
269 alias ImGuiWindowFlags_NoMouseInputs = ImGuiWindowFlags_.ImGuiWindowFlags_NoMouseInputs;
270 alias ImGuiWindowFlags_MenuBar = ImGuiWindowFlags_.ImGuiWindowFlags_MenuBar;
271 alias ImGuiWindowFlags_HorizontalScrollbar = ImGuiWindowFlags_.ImGuiWindowFlags_HorizontalScrollbar;
272 alias ImGuiWindowFlags_NoFocusOnAppearing = ImGuiWindowFlags_.ImGuiWindowFlags_NoFocusOnAppearing;
273 alias ImGuiWindowFlags_NoBringToFrontOnFocus = ImGuiWindowFlags_.ImGuiWindowFlags_NoBringToFrontOnFocus;
274 alias ImGuiWindowFlags_AlwaysVerticalScrollbar = ImGuiWindowFlags_.ImGuiWindowFlags_AlwaysVerticalScrollbar;
275 alias ImGuiWindowFlags_AlwaysHorizontalScrollbar = ImGuiWindowFlags_.ImGuiWindowFlags_AlwaysHorizontalScrollbar;
276 alias ImGuiWindowFlags_AlwaysUseWindowPadding = ImGuiWindowFlags_.ImGuiWindowFlags_AlwaysUseWindowPadding;
277 alias ImGuiWindowFlags_NoNavInputs = ImGuiWindowFlags_.ImGuiWindowFlags_NoNavInputs;
278 alias ImGuiWindowFlags_NoNavFocus = ImGuiWindowFlags_.ImGuiWindowFlags_NoNavFocus;
279 alias ImGuiWindowFlags_UnsavedDocument = ImGuiWindowFlags_.ImGuiWindowFlags_UnsavedDocument;
280 alias ImGuiWindowFlags_NoNav = ImGuiWindowFlags_.ImGuiWindowFlags_NoNav;
281 alias ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_.ImGuiWindowFlags_NoDecoration;
282 alias ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_.ImGuiWindowFlags_NoInputs;
283 alias ImGuiWindowFlags_NavFlattened = ImGuiWindowFlags_.ImGuiWindowFlags_NavFlattened;
284 alias ImGuiWindowFlags_ChildWindow = ImGuiWindowFlags_.ImGuiWindowFlags_ChildWindow;
285 alias ImGuiWindowFlags_Tooltip = ImGuiWindowFlags_.ImGuiWindowFlags_Tooltip;
286 alias ImGuiWindowFlags_Popup = ImGuiWindowFlags_.ImGuiWindowFlags_Popup;
287 alias ImGuiWindowFlags_Modal = ImGuiWindowFlags_.ImGuiWindowFlags_Modal;
288 alias ImGuiWindowFlags_ChildMenu = ImGuiWindowFlags_.ImGuiWindowFlags_ChildMenu;
289 
290 enum ImGuiInputTextFlags_
291 {
292     ImGuiInputTextFlags_None = 0,
293     ImGuiInputTextFlags_CharsDecimal = 1 << 0,
294     ImGuiInputTextFlags_CharsHexadecimal = 1 << 1,
295     ImGuiInputTextFlags_CharsUppercase = 1 << 2,
296     ImGuiInputTextFlags_CharsNoBlank = 1 << 3,
297     ImGuiInputTextFlags_AutoSelectAll = 1 << 4,
298     ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5,
299     ImGuiInputTextFlags_CallbackCompletion = 1 << 6,
300     ImGuiInputTextFlags_CallbackHistory = 1 << 7,
301     ImGuiInputTextFlags_CallbackAlways = 1 << 8,
302     ImGuiInputTextFlags_CallbackCharFilter = 1 << 9,
303     ImGuiInputTextFlags_AllowTabInput = 1 << 10,
304     ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11,
305     ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12,
306     ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13,
307     ImGuiInputTextFlags_ReadOnly = 1 << 14,
308     ImGuiInputTextFlags_Password = 1 << 15,
309     ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
310     ImGuiInputTextFlags_CharsScientific = 1 << 17,
311     ImGuiInputTextFlags_CallbackResize = 1 << 18,
312     ImGuiInputTextFlags_Multiline = 1 << 20,
313     ImGuiInputTextFlags_NoMarkEdited = 1 << 21
314 }
315 
316 alias ImGuiInputTextFlags_None = ImGuiInputTextFlags_.ImGuiInputTextFlags_None;
317 alias ImGuiInputTextFlags_CharsDecimal = ImGuiInputTextFlags_.ImGuiInputTextFlags_CharsDecimal;
318 alias ImGuiInputTextFlags_CharsHexadecimal = ImGuiInputTextFlags_.ImGuiInputTextFlags_CharsHexadecimal;
319 alias ImGuiInputTextFlags_CharsUppercase = ImGuiInputTextFlags_.ImGuiInputTextFlags_CharsUppercase;
320 alias ImGuiInputTextFlags_CharsNoBlank = ImGuiInputTextFlags_.ImGuiInputTextFlags_CharsNoBlank;
321 alias ImGuiInputTextFlags_AutoSelectAll = ImGuiInputTextFlags_.ImGuiInputTextFlags_AutoSelectAll;
322 alias ImGuiInputTextFlags_EnterReturnsTrue = ImGuiInputTextFlags_.ImGuiInputTextFlags_EnterReturnsTrue;
323 alias ImGuiInputTextFlags_CallbackCompletion = ImGuiInputTextFlags_.ImGuiInputTextFlags_CallbackCompletion;
324 alias ImGuiInputTextFlags_CallbackHistory = ImGuiInputTextFlags_.ImGuiInputTextFlags_CallbackHistory;
325 alias ImGuiInputTextFlags_CallbackAlways = ImGuiInputTextFlags_.ImGuiInputTextFlags_CallbackAlways;
326 alias ImGuiInputTextFlags_CallbackCharFilter = ImGuiInputTextFlags_.ImGuiInputTextFlags_CallbackCharFilter;
327 alias ImGuiInputTextFlags_AllowTabInput = ImGuiInputTextFlags_.ImGuiInputTextFlags_AllowTabInput;
328 alias ImGuiInputTextFlags_CtrlEnterForNewLine = ImGuiInputTextFlags_.ImGuiInputTextFlags_CtrlEnterForNewLine;
329 alias ImGuiInputTextFlags_NoHorizontalScroll = ImGuiInputTextFlags_.ImGuiInputTextFlags_NoHorizontalScroll;
330 alias ImGuiInputTextFlags_AlwaysInsertMode = ImGuiInputTextFlags_.ImGuiInputTextFlags_AlwaysInsertMode;
331 alias ImGuiInputTextFlags_ReadOnly = ImGuiInputTextFlags_.ImGuiInputTextFlags_ReadOnly;
332 alias ImGuiInputTextFlags_Password = ImGuiInputTextFlags_.ImGuiInputTextFlags_Password;
333 alias ImGuiInputTextFlags_NoUndoRedo = ImGuiInputTextFlags_.ImGuiInputTextFlags_NoUndoRedo;
334 alias ImGuiInputTextFlags_CharsScientific = ImGuiInputTextFlags_.ImGuiInputTextFlags_CharsScientific;
335 alias ImGuiInputTextFlags_CallbackResize = ImGuiInputTextFlags_.ImGuiInputTextFlags_CallbackResize;
336 alias ImGuiInputTextFlags_Multiline = ImGuiInputTextFlags_.ImGuiInputTextFlags_Multiline;
337 alias ImGuiInputTextFlags_NoMarkEdited = ImGuiInputTextFlags_.ImGuiInputTextFlags_NoMarkEdited;
338 
339 enum ImGuiTreeNodeFlags_
340 {
341     ImGuiTreeNodeFlags_None = 0,
342     ImGuiTreeNodeFlags_Selected = 1 << 0,
343     ImGuiTreeNodeFlags_Framed = 1 << 1,
344     ImGuiTreeNodeFlags_AllowItemOverlap = 1 << 2,
345     ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3,
346     ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4,
347     ImGuiTreeNodeFlags_DefaultOpen = 1 << 5,
348     ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 << 6,
349     ImGuiTreeNodeFlags_OpenOnArrow = 1 << 7,
350     ImGuiTreeNodeFlags_Leaf = 1 << 8,
351     ImGuiTreeNodeFlags_Bullet = 1 << 9,
352     ImGuiTreeNodeFlags_FramePadding = 1 << 10,
353     ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11,
354     ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12,
355     ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 13,
356     ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog
357 }
358 
359 alias ImGuiTreeNodeFlags_None = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_None;
360 alias ImGuiTreeNodeFlags_Selected = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_Selected;
361 alias ImGuiTreeNodeFlags_Framed = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_Framed;
362 alias ImGuiTreeNodeFlags_AllowItemOverlap = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_AllowItemOverlap;
363 alias ImGuiTreeNodeFlags_NoTreePushOnOpen = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_NoTreePushOnOpen;
364 alias ImGuiTreeNodeFlags_NoAutoOpenOnLog = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_NoAutoOpenOnLog;
365 alias ImGuiTreeNodeFlags_DefaultOpen = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_DefaultOpen;
366 alias ImGuiTreeNodeFlags_OpenOnDoubleClick = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_OpenOnDoubleClick;
367 alias ImGuiTreeNodeFlags_OpenOnArrow = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_OpenOnArrow;
368 alias ImGuiTreeNodeFlags_Leaf = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_Leaf;
369 alias ImGuiTreeNodeFlags_Bullet = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_Bullet;
370 alias ImGuiTreeNodeFlags_FramePadding = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_FramePadding;
371 alias ImGuiTreeNodeFlags_SpanAvailWidth = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_SpanAvailWidth;
372 alias ImGuiTreeNodeFlags_SpanFullWidth = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_SpanFullWidth;
373 alias ImGuiTreeNodeFlags_NavLeftJumpsBackHere = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_NavLeftJumpsBackHere;
374 alias ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_.ImGuiTreeNodeFlags_CollapsingHeader;
375 
376 enum ImGuiSelectableFlags_
377 {
378     ImGuiSelectableFlags_None = 0,
379     ImGuiSelectableFlags_DontClosePopups = 1 << 0,
380     ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
381     ImGuiSelectableFlags_AllowDoubleClick = 1 << 2,
382     ImGuiSelectableFlags_Disabled = 1 << 3,
383     ImGuiSelectableFlags_AllowItemOverlap = 1 << 4
384 }
385 
386 alias ImGuiSelectableFlags_None = ImGuiSelectableFlags_.ImGuiSelectableFlags_None;
387 alias ImGuiSelectableFlags_DontClosePopups = ImGuiSelectableFlags_.ImGuiSelectableFlags_DontClosePopups;
388 alias ImGuiSelectableFlags_SpanAllColumns = ImGuiSelectableFlags_.ImGuiSelectableFlags_SpanAllColumns;
389 alias ImGuiSelectableFlags_AllowDoubleClick = ImGuiSelectableFlags_.ImGuiSelectableFlags_AllowDoubleClick;
390 alias ImGuiSelectableFlags_Disabled = ImGuiSelectableFlags_.ImGuiSelectableFlags_Disabled;
391 alias ImGuiSelectableFlags_AllowItemOverlap = ImGuiSelectableFlags_.ImGuiSelectableFlags_AllowItemOverlap;
392 
393 enum ImGuiComboFlags_
394 {
395     ImGuiComboFlags_None = 0,
396     ImGuiComboFlags_PopupAlignLeft = 1 << 0,
397     ImGuiComboFlags_HeightSmall = 1 << 1,
398     ImGuiComboFlags_HeightRegular = 1 << 2,
399     ImGuiComboFlags_HeightLarge = 1 << 3,
400     ImGuiComboFlags_HeightLargest = 1 << 4,
401     ImGuiComboFlags_NoArrowButton = 1 << 5,
402     ImGuiComboFlags_NoPreview = 1 << 6,
403     ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
404 }
405 
406 alias ImGuiComboFlags_None = ImGuiComboFlags_.ImGuiComboFlags_None;
407 alias ImGuiComboFlags_PopupAlignLeft = ImGuiComboFlags_.ImGuiComboFlags_PopupAlignLeft;
408 alias ImGuiComboFlags_HeightSmall = ImGuiComboFlags_.ImGuiComboFlags_HeightSmall;
409 alias ImGuiComboFlags_HeightRegular = ImGuiComboFlags_.ImGuiComboFlags_HeightRegular;
410 alias ImGuiComboFlags_HeightLarge = ImGuiComboFlags_.ImGuiComboFlags_HeightLarge;
411 alias ImGuiComboFlags_HeightLargest = ImGuiComboFlags_.ImGuiComboFlags_HeightLargest;
412 alias ImGuiComboFlags_NoArrowButton = ImGuiComboFlags_.ImGuiComboFlags_NoArrowButton;
413 alias ImGuiComboFlags_NoPreview = ImGuiComboFlags_.ImGuiComboFlags_NoPreview;
414 alias ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_.ImGuiComboFlags_HeightMask_;
415 
416 enum ImGuiTabBarFlags_
417 {
418     ImGuiTabBarFlags_None = 0,
419     ImGuiTabBarFlags_Reorderable = 1 << 0,
420     ImGuiTabBarFlags_AutoSelectNewTabs = 1 << 1,
421     ImGuiTabBarFlags_TabListPopupButton = 1 << 2,
422     ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 << 3,
423     ImGuiTabBarFlags_NoTabListScrollingButtons = 1 << 4,
424     ImGuiTabBarFlags_NoTooltip = 1 << 5,
425     ImGuiTabBarFlags_FittingPolicyResizeDown = 1 << 6,
426     ImGuiTabBarFlags_FittingPolicyScroll = 1 << 7,
427     ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll,
428     ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown
429 }
430 
431 alias ImGuiTabBarFlags_None = ImGuiTabBarFlags_.ImGuiTabBarFlags_None;
432 alias ImGuiTabBarFlags_Reorderable = ImGuiTabBarFlags_.ImGuiTabBarFlags_Reorderable;
433 alias ImGuiTabBarFlags_AutoSelectNewTabs = ImGuiTabBarFlags_.ImGuiTabBarFlags_AutoSelectNewTabs;
434 alias ImGuiTabBarFlags_TabListPopupButton = ImGuiTabBarFlags_.ImGuiTabBarFlags_TabListPopupButton;
435 alias ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = ImGuiTabBarFlags_.ImGuiTabBarFlags_NoCloseWithMiddleMouseButton;
436 alias ImGuiTabBarFlags_NoTabListScrollingButtons = ImGuiTabBarFlags_.ImGuiTabBarFlags_NoTabListScrollingButtons;
437 alias ImGuiTabBarFlags_NoTooltip = ImGuiTabBarFlags_.ImGuiTabBarFlags_NoTooltip;
438 alias ImGuiTabBarFlags_FittingPolicyResizeDown = ImGuiTabBarFlags_.ImGuiTabBarFlags_FittingPolicyResizeDown;
439 alias ImGuiTabBarFlags_FittingPolicyScroll = ImGuiTabBarFlags_.ImGuiTabBarFlags_FittingPolicyScroll;
440 alias ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_.ImGuiTabBarFlags_FittingPolicyMask_;
441 alias ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_.ImGuiTabBarFlags_FittingPolicyDefault_;
442 
443 enum ImGuiTabItemFlags_
444 {
445     ImGuiTabItemFlags_None = 0,
446     ImGuiTabItemFlags_UnsavedDocument = 1 << 0,
447     ImGuiTabItemFlags_SetSelected = 1 << 1,
448     ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 << 2,
449     ImGuiTabItemFlags_NoPushId = 1 << 3
450 }
451 
452 alias ImGuiTabItemFlags_None = ImGuiTabItemFlags_.ImGuiTabItemFlags_None;
453 alias ImGuiTabItemFlags_UnsavedDocument = ImGuiTabItemFlags_.ImGuiTabItemFlags_UnsavedDocument;
454 alias ImGuiTabItemFlags_SetSelected = ImGuiTabItemFlags_.ImGuiTabItemFlags_SetSelected;
455 alias ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = ImGuiTabItemFlags_.ImGuiTabItemFlags_NoCloseWithMiddleMouseButton;
456 alias ImGuiTabItemFlags_NoPushId = ImGuiTabItemFlags_.ImGuiTabItemFlags_NoPushId;
457 
458 enum ImGuiFocusedFlags_
459 {
460     ImGuiFocusedFlags_None = 0,
461     ImGuiFocusedFlags_ChildWindows = 1 << 0,
462     ImGuiFocusedFlags_RootWindow = 1 << 1,
463     ImGuiFocusedFlags_AnyWindow = 1 << 2,
464     ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows
465 }
466 
467 alias ImGuiFocusedFlags_None = ImGuiFocusedFlags_.ImGuiFocusedFlags_None;
468 alias ImGuiFocusedFlags_ChildWindows = ImGuiFocusedFlags_.ImGuiFocusedFlags_ChildWindows;
469 alias ImGuiFocusedFlags_RootWindow = ImGuiFocusedFlags_.ImGuiFocusedFlags_RootWindow;
470 alias ImGuiFocusedFlags_AnyWindow = ImGuiFocusedFlags_.ImGuiFocusedFlags_AnyWindow;
471 alias ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_.ImGuiFocusedFlags_RootAndChildWindows;
472 
473 enum ImGuiHoveredFlags_
474 {
475     ImGuiHoveredFlags_None = 0,
476     ImGuiHoveredFlags_ChildWindows = 1 << 0,
477     ImGuiHoveredFlags_RootWindow = 1 << 1,
478     ImGuiHoveredFlags_AnyWindow = 1 << 2,
479     ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3,
480     ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5,
481     ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6,
482     ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7,
483     ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
484     ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
485 }
486 
487 alias ImGuiHoveredFlags_None = ImGuiHoveredFlags_.ImGuiHoveredFlags_None;
488 alias ImGuiHoveredFlags_ChildWindows = ImGuiHoveredFlags_.ImGuiHoveredFlags_ChildWindows;
489 alias ImGuiHoveredFlags_RootWindow = ImGuiHoveredFlags_.ImGuiHoveredFlags_RootWindow;
490 alias ImGuiHoveredFlags_AnyWindow = ImGuiHoveredFlags_.ImGuiHoveredFlags_AnyWindow;
491 alias ImGuiHoveredFlags_AllowWhenBlockedByPopup = ImGuiHoveredFlags_.ImGuiHoveredFlags_AllowWhenBlockedByPopup;
492 alias ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = ImGuiHoveredFlags_.ImGuiHoveredFlags_AllowWhenBlockedByActiveItem;
493 alias ImGuiHoveredFlags_AllowWhenOverlapped = ImGuiHoveredFlags_.ImGuiHoveredFlags_AllowWhenOverlapped;
494 alias ImGuiHoveredFlags_AllowWhenDisabled = ImGuiHoveredFlags_.ImGuiHoveredFlags_AllowWhenDisabled;
495 alias ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_.ImGuiHoveredFlags_RectOnly;
496 alias ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_.ImGuiHoveredFlags_RootAndChildWindows;
497 
498 enum ImGuiDragDropFlags_
499 {
500     ImGuiDragDropFlags_None = 0,
501     ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0,
502     ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1,
503     ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2,
504     ImGuiDragDropFlags_SourceAllowNullID = 1 << 3,
505     ImGuiDragDropFlags_SourceExtern = 1 << 4,
506     ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5,
507     ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10,
508     ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11,
509     ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12,
510     ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect
511 }
512 
513 alias ImGuiDragDropFlags_None = ImGuiDragDropFlags_.ImGuiDragDropFlags_None;
514 alias ImGuiDragDropFlags_SourceNoPreviewTooltip = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceNoPreviewTooltip;
515 alias ImGuiDragDropFlags_SourceNoDisableHover = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceNoDisableHover;
516 alias ImGuiDragDropFlags_SourceNoHoldToOpenOthers = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceNoHoldToOpenOthers;
517 alias ImGuiDragDropFlags_SourceAllowNullID = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceAllowNullID;
518 alias ImGuiDragDropFlags_SourceExtern = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceExtern;
519 alias ImGuiDragDropFlags_SourceAutoExpirePayload = ImGuiDragDropFlags_.ImGuiDragDropFlags_SourceAutoExpirePayload;
520 alias ImGuiDragDropFlags_AcceptBeforeDelivery = ImGuiDragDropFlags_.ImGuiDragDropFlags_AcceptBeforeDelivery;
521 alias ImGuiDragDropFlags_AcceptNoDrawDefaultRect = ImGuiDragDropFlags_.ImGuiDragDropFlags_AcceptNoDrawDefaultRect;
522 alias ImGuiDragDropFlags_AcceptNoPreviewTooltip = ImGuiDragDropFlags_.ImGuiDragDropFlags_AcceptNoPreviewTooltip;
523 alias ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_.ImGuiDragDropFlags_AcceptPeekOnly;
524 
525 enum ImGuiDataType_
526 {
527     ImGuiDataType_S8 = 0,
528     ImGuiDataType_U8 = 1,
529     ImGuiDataType_S16 = 2,
530     ImGuiDataType_U16 = 3,
531     ImGuiDataType_S32 = 4,
532     ImGuiDataType_U32 = 5,
533     ImGuiDataType_S64 = 6,
534     ImGuiDataType_U64 = 7,
535     ImGuiDataType_Float = 8,
536     ImGuiDataType_Double = 9,
537     ImGuiDataType_COUNT = 10
538 }
539 
540 alias ImGuiDataType_S8 = ImGuiDataType_.ImGuiDataType_S8;
541 alias ImGuiDataType_U8 = ImGuiDataType_.ImGuiDataType_U8;
542 alias ImGuiDataType_S16 = ImGuiDataType_.ImGuiDataType_S16;
543 alias ImGuiDataType_U16 = ImGuiDataType_.ImGuiDataType_U16;
544 alias ImGuiDataType_S32 = ImGuiDataType_.ImGuiDataType_S32;
545 alias ImGuiDataType_U32 = ImGuiDataType_.ImGuiDataType_U32;
546 alias ImGuiDataType_S64 = ImGuiDataType_.ImGuiDataType_S64;
547 alias ImGuiDataType_U64 = ImGuiDataType_.ImGuiDataType_U64;
548 alias ImGuiDataType_Float = ImGuiDataType_.ImGuiDataType_Float;
549 alias ImGuiDataType_Double = ImGuiDataType_.ImGuiDataType_Double;
550 alias ImGuiDataType_COUNT = ImGuiDataType_.ImGuiDataType_COUNT;
551 
552 enum ImGuiDir_
553 {
554     ImGuiDir_None = -1,
555     ImGuiDir_Left = 0,
556     ImGuiDir_Right = 1,
557     ImGuiDir_Up = 2,
558     ImGuiDir_Down = 3,
559     ImGuiDir_COUNT = 4
560 }
561 
562 alias ImGuiDir_None = ImGuiDir_.ImGuiDir_None;
563 alias ImGuiDir_Left = ImGuiDir_.ImGuiDir_Left;
564 alias ImGuiDir_Right = ImGuiDir_.ImGuiDir_Right;
565 alias ImGuiDir_Up = ImGuiDir_.ImGuiDir_Up;
566 alias ImGuiDir_Down = ImGuiDir_.ImGuiDir_Down;
567 alias ImGuiDir_COUNT = ImGuiDir_.ImGuiDir_COUNT;
568 
569 enum ImGuiKey_
570 {
571     ImGuiKey_Tab = 0,
572     ImGuiKey_LeftArrow = 1,
573     ImGuiKey_RightArrow = 2,
574     ImGuiKey_UpArrow = 3,
575     ImGuiKey_DownArrow = 4,
576     ImGuiKey_PageUp = 5,
577     ImGuiKey_PageDown = 6,
578     ImGuiKey_Home = 7,
579     ImGuiKey_End = 8,
580     ImGuiKey_Insert = 9,
581     ImGuiKey_Delete = 10,
582     ImGuiKey_Backspace = 11,
583     ImGuiKey_Space = 12,
584     ImGuiKey_Enter = 13,
585     ImGuiKey_Escape = 14,
586     ImGuiKey_KeyPadEnter = 15,
587     ImGuiKey_A = 16,
588     ImGuiKey_C = 17,
589     ImGuiKey_V = 18,
590     ImGuiKey_X = 19,
591     ImGuiKey_Y = 20,
592     ImGuiKey_Z = 21,
593     ImGuiKey_COUNT = 22
594 }
595 
596 alias ImGuiKey_Tab = ImGuiKey_.ImGuiKey_Tab;
597 alias ImGuiKey_LeftArrow = ImGuiKey_.ImGuiKey_LeftArrow;
598 alias ImGuiKey_RightArrow = ImGuiKey_.ImGuiKey_RightArrow;
599 alias ImGuiKey_UpArrow = ImGuiKey_.ImGuiKey_UpArrow;
600 alias ImGuiKey_DownArrow = ImGuiKey_.ImGuiKey_DownArrow;
601 alias ImGuiKey_PageUp = ImGuiKey_.ImGuiKey_PageUp;
602 alias ImGuiKey_PageDown = ImGuiKey_.ImGuiKey_PageDown;
603 alias ImGuiKey_Home = ImGuiKey_.ImGuiKey_Home;
604 alias ImGuiKey_End = ImGuiKey_.ImGuiKey_End;
605 alias ImGuiKey_Insert = ImGuiKey_.ImGuiKey_Insert;
606 alias ImGuiKey_Delete = ImGuiKey_.ImGuiKey_Delete;
607 alias ImGuiKey_Backspace = ImGuiKey_.ImGuiKey_Backspace;
608 alias ImGuiKey_Space = ImGuiKey_.ImGuiKey_Space;
609 alias ImGuiKey_Enter = ImGuiKey_.ImGuiKey_Enter;
610 alias ImGuiKey_Escape = ImGuiKey_.ImGuiKey_Escape;
611 alias ImGuiKey_KeyPadEnter = ImGuiKey_.ImGuiKey_KeyPadEnter;
612 alias ImGuiKey_A = ImGuiKey_.ImGuiKey_A;
613 alias ImGuiKey_C = ImGuiKey_.ImGuiKey_C;
614 alias ImGuiKey_V = ImGuiKey_.ImGuiKey_V;
615 alias ImGuiKey_X = ImGuiKey_.ImGuiKey_X;
616 alias ImGuiKey_Y = ImGuiKey_.ImGuiKey_Y;
617 alias ImGuiKey_Z = ImGuiKey_.ImGuiKey_Z;
618 alias ImGuiKey_COUNT = ImGuiKey_.ImGuiKey_COUNT;
619 
620 enum ImGuiNavInput_
621 {
622     ImGuiNavInput_Activate = 0,
623     ImGuiNavInput_Cancel = 1,
624     ImGuiNavInput_Input = 2,
625     ImGuiNavInput_Menu = 3,
626     ImGuiNavInput_DpadLeft = 4,
627     ImGuiNavInput_DpadRight = 5,
628     ImGuiNavInput_DpadUp = 6,
629     ImGuiNavInput_DpadDown = 7,
630     ImGuiNavInput_LStickLeft = 8,
631     ImGuiNavInput_LStickRight = 9,
632     ImGuiNavInput_LStickUp = 10,
633     ImGuiNavInput_LStickDown = 11,
634     ImGuiNavInput_FocusPrev = 12,
635     ImGuiNavInput_FocusNext = 13,
636     ImGuiNavInput_TweakSlow = 14,
637     ImGuiNavInput_TweakFast = 15,
638     ImGuiNavInput_KeyMenu_ = 16,
639     ImGuiNavInput_KeyTab_ = 17,
640     ImGuiNavInput_KeyLeft_ = 18,
641     ImGuiNavInput_KeyRight_ = 19,
642     ImGuiNavInput_KeyUp_ = 20,
643     ImGuiNavInput_KeyDown_ = 21,
644     ImGuiNavInput_COUNT = 22,
645     ImGuiNavInput_InternalStart_ = ImGuiNavInput_KeyMenu_
646 }
647 
648 alias ImGuiNavInput_Activate = ImGuiNavInput_.ImGuiNavInput_Activate;
649 alias ImGuiNavInput_Cancel = ImGuiNavInput_.ImGuiNavInput_Cancel;
650 alias ImGuiNavInput_Input = ImGuiNavInput_.ImGuiNavInput_Input;
651 alias ImGuiNavInput_Menu = ImGuiNavInput_.ImGuiNavInput_Menu;
652 alias ImGuiNavInput_DpadLeft = ImGuiNavInput_.ImGuiNavInput_DpadLeft;
653 alias ImGuiNavInput_DpadRight = ImGuiNavInput_.ImGuiNavInput_DpadRight;
654 alias ImGuiNavInput_DpadUp = ImGuiNavInput_.ImGuiNavInput_DpadUp;
655 alias ImGuiNavInput_DpadDown = ImGuiNavInput_.ImGuiNavInput_DpadDown;
656 alias ImGuiNavInput_LStickLeft = ImGuiNavInput_.ImGuiNavInput_LStickLeft;
657 alias ImGuiNavInput_LStickRight = ImGuiNavInput_.ImGuiNavInput_LStickRight;
658 alias ImGuiNavInput_LStickUp = ImGuiNavInput_.ImGuiNavInput_LStickUp;
659 alias ImGuiNavInput_LStickDown = ImGuiNavInput_.ImGuiNavInput_LStickDown;
660 alias ImGuiNavInput_FocusPrev = ImGuiNavInput_.ImGuiNavInput_FocusPrev;
661 alias ImGuiNavInput_FocusNext = ImGuiNavInput_.ImGuiNavInput_FocusNext;
662 alias ImGuiNavInput_TweakSlow = ImGuiNavInput_.ImGuiNavInput_TweakSlow;
663 alias ImGuiNavInput_TweakFast = ImGuiNavInput_.ImGuiNavInput_TweakFast;
664 alias ImGuiNavInput_KeyMenu_ = ImGuiNavInput_.ImGuiNavInput_KeyMenu_;
665 alias ImGuiNavInput_KeyTab_ = ImGuiNavInput_.ImGuiNavInput_KeyTab_;
666 alias ImGuiNavInput_KeyLeft_ = ImGuiNavInput_.ImGuiNavInput_KeyLeft_;
667 alias ImGuiNavInput_KeyRight_ = ImGuiNavInput_.ImGuiNavInput_KeyRight_;
668 alias ImGuiNavInput_KeyUp_ = ImGuiNavInput_.ImGuiNavInput_KeyUp_;
669 alias ImGuiNavInput_KeyDown_ = ImGuiNavInput_.ImGuiNavInput_KeyDown_;
670 alias ImGuiNavInput_COUNT = ImGuiNavInput_.ImGuiNavInput_COUNT;
671 alias ImGuiNavInput_InternalStart_ = ImGuiNavInput_.ImGuiNavInput_InternalStart_;
672 
673 enum ImGuiConfigFlags_
674 {
675     ImGuiConfigFlags_None = 0,
676     ImGuiConfigFlags_NavEnableKeyboard = 1 << 0,
677     ImGuiConfigFlags_NavEnableGamepad = 1 << 1,
678     ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2,
679     ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3,
680     ImGuiConfigFlags_NoMouse = 1 << 4,
681     ImGuiConfigFlags_NoMouseCursorChange = 1 << 5,
682     ImGuiConfigFlags_IsSRGB = 1 << 20,
683     ImGuiConfigFlags_IsTouchScreen = 1 << 21
684 }
685 
686 alias ImGuiConfigFlags_None = ImGuiConfigFlags_.ImGuiConfigFlags_None;
687 alias ImGuiConfigFlags_NavEnableKeyboard = ImGuiConfigFlags_.ImGuiConfigFlags_NavEnableKeyboard;
688 alias ImGuiConfigFlags_NavEnableGamepad = ImGuiConfigFlags_.ImGuiConfigFlags_NavEnableGamepad;
689 alias ImGuiConfigFlags_NavEnableSetMousePos = ImGuiConfigFlags_.ImGuiConfigFlags_NavEnableSetMousePos;
690 alias ImGuiConfigFlags_NavNoCaptureKeyboard = ImGuiConfigFlags_.ImGuiConfigFlags_NavNoCaptureKeyboard;
691 alias ImGuiConfigFlags_NoMouse = ImGuiConfigFlags_.ImGuiConfigFlags_NoMouse;
692 alias ImGuiConfigFlags_NoMouseCursorChange = ImGuiConfigFlags_.ImGuiConfigFlags_NoMouseCursorChange;
693 alias ImGuiConfigFlags_IsSRGB = ImGuiConfigFlags_.ImGuiConfigFlags_IsSRGB;
694 alias ImGuiConfigFlags_IsTouchScreen = ImGuiConfigFlags_.ImGuiConfigFlags_IsTouchScreen;
695 
696 enum ImGuiBackendFlags_
697 {
698     ImGuiBackendFlags_None = 0,
699     ImGuiBackendFlags_HasGamepad = 1 << 0,
700     ImGuiBackendFlags_HasMouseCursors = 1 << 1,
701     ImGuiBackendFlags_HasSetMousePos = 1 << 2,
702     ImGuiBackendFlags_RendererHasVtxOffset = 1 << 3
703 }
704 
705 alias ImGuiBackendFlags_None = ImGuiBackendFlags_.ImGuiBackendFlags_None;
706 alias ImGuiBackendFlags_HasGamepad = ImGuiBackendFlags_.ImGuiBackendFlags_HasGamepad;
707 alias ImGuiBackendFlags_HasMouseCursors = ImGuiBackendFlags_.ImGuiBackendFlags_HasMouseCursors;
708 alias ImGuiBackendFlags_HasSetMousePos = ImGuiBackendFlags_.ImGuiBackendFlags_HasSetMousePos;
709 alias ImGuiBackendFlags_RendererHasVtxOffset = ImGuiBackendFlags_.ImGuiBackendFlags_RendererHasVtxOffset;
710 
711 enum ImGuiCol_
712 {
713     ImGuiCol_Text = 0,
714     ImGuiCol_TextDisabled = 1,
715     ImGuiCol_WindowBg = 2,
716     ImGuiCol_ChildBg = 3,
717     ImGuiCol_PopupBg = 4,
718     ImGuiCol_Border = 5,
719     ImGuiCol_BorderShadow = 6,
720     ImGuiCol_FrameBg = 7,
721     ImGuiCol_FrameBgHovered = 8,
722     ImGuiCol_FrameBgActive = 9,
723     ImGuiCol_TitleBg = 10,
724     ImGuiCol_TitleBgActive = 11,
725     ImGuiCol_TitleBgCollapsed = 12,
726     ImGuiCol_MenuBarBg = 13,
727     ImGuiCol_ScrollbarBg = 14,
728     ImGuiCol_ScrollbarGrab = 15,
729     ImGuiCol_ScrollbarGrabHovered = 16,
730     ImGuiCol_ScrollbarGrabActive = 17,
731     ImGuiCol_CheckMark = 18,
732     ImGuiCol_SliderGrab = 19,
733     ImGuiCol_SliderGrabActive = 20,
734     ImGuiCol_Button = 21,
735     ImGuiCol_ButtonHovered = 22,
736     ImGuiCol_ButtonActive = 23,
737     ImGuiCol_Header = 24,
738     ImGuiCol_HeaderHovered = 25,
739     ImGuiCol_HeaderActive = 26,
740     ImGuiCol_Separator = 27,
741     ImGuiCol_SeparatorHovered = 28,
742     ImGuiCol_SeparatorActive = 29,
743     ImGuiCol_ResizeGrip = 30,
744     ImGuiCol_ResizeGripHovered = 31,
745     ImGuiCol_ResizeGripActive = 32,
746     ImGuiCol_Tab = 33,
747     ImGuiCol_TabHovered = 34,
748     ImGuiCol_TabActive = 35,
749     ImGuiCol_TabUnfocused = 36,
750     ImGuiCol_TabUnfocusedActive = 37,
751     ImGuiCol_PlotLines = 38,
752     ImGuiCol_PlotLinesHovered = 39,
753     ImGuiCol_PlotHistogram = 40,
754     ImGuiCol_PlotHistogramHovered = 41,
755     ImGuiCol_TextSelectedBg = 42,
756     ImGuiCol_DragDropTarget = 43,
757     ImGuiCol_NavHighlight = 44,
758     ImGuiCol_NavWindowingHighlight = 45,
759     ImGuiCol_NavWindowingDimBg = 46,
760     ImGuiCol_ModalWindowDimBg = 47,
761     ImGuiCol_COUNT = 48
762 }
763 
764 alias ImGuiCol_Text = ImGuiCol_.ImGuiCol_Text;
765 alias ImGuiCol_TextDisabled = ImGuiCol_.ImGuiCol_TextDisabled;
766 alias ImGuiCol_WindowBg = ImGuiCol_.ImGuiCol_WindowBg;
767 alias ImGuiCol_ChildBg = ImGuiCol_.ImGuiCol_ChildBg;
768 alias ImGuiCol_PopupBg = ImGuiCol_.ImGuiCol_PopupBg;
769 alias ImGuiCol_Border = ImGuiCol_.ImGuiCol_Border;
770 alias ImGuiCol_BorderShadow = ImGuiCol_.ImGuiCol_BorderShadow;
771 alias ImGuiCol_FrameBg = ImGuiCol_.ImGuiCol_FrameBg;
772 alias ImGuiCol_FrameBgHovered = ImGuiCol_.ImGuiCol_FrameBgHovered;
773 alias ImGuiCol_FrameBgActive = ImGuiCol_.ImGuiCol_FrameBgActive;
774 alias ImGuiCol_TitleBg = ImGuiCol_.ImGuiCol_TitleBg;
775 alias ImGuiCol_TitleBgActive = ImGuiCol_.ImGuiCol_TitleBgActive;
776 alias ImGuiCol_TitleBgCollapsed = ImGuiCol_.ImGuiCol_TitleBgCollapsed;
777 alias ImGuiCol_MenuBarBg = ImGuiCol_.ImGuiCol_MenuBarBg;
778 alias ImGuiCol_ScrollbarBg = ImGuiCol_.ImGuiCol_ScrollbarBg;
779 alias ImGuiCol_ScrollbarGrab = ImGuiCol_.ImGuiCol_ScrollbarGrab;
780 alias ImGuiCol_ScrollbarGrabHovered = ImGuiCol_.ImGuiCol_ScrollbarGrabHovered;
781 alias ImGuiCol_ScrollbarGrabActive = ImGuiCol_.ImGuiCol_ScrollbarGrabActive;
782 alias ImGuiCol_CheckMark = ImGuiCol_.ImGuiCol_CheckMark;
783 alias ImGuiCol_SliderGrab = ImGuiCol_.ImGuiCol_SliderGrab;
784 alias ImGuiCol_SliderGrabActive = ImGuiCol_.ImGuiCol_SliderGrabActive;
785 alias ImGuiCol_Button = ImGuiCol_.ImGuiCol_Button;
786 alias ImGuiCol_ButtonHovered = ImGuiCol_.ImGuiCol_ButtonHovered;
787 alias ImGuiCol_ButtonActive = ImGuiCol_.ImGuiCol_ButtonActive;
788 alias ImGuiCol_Header = ImGuiCol_.ImGuiCol_Header;
789 alias ImGuiCol_HeaderHovered = ImGuiCol_.ImGuiCol_HeaderHovered;
790 alias ImGuiCol_HeaderActive = ImGuiCol_.ImGuiCol_HeaderActive;
791 alias ImGuiCol_Separator = ImGuiCol_.ImGuiCol_Separator;
792 alias ImGuiCol_SeparatorHovered = ImGuiCol_.ImGuiCol_SeparatorHovered;
793 alias ImGuiCol_SeparatorActive = ImGuiCol_.ImGuiCol_SeparatorActive;
794 alias ImGuiCol_ResizeGrip = ImGuiCol_.ImGuiCol_ResizeGrip;
795 alias ImGuiCol_ResizeGripHovered = ImGuiCol_.ImGuiCol_ResizeGripHovered;
796 alias ImGuiCol_ResizeGripActive = ImGuiCol_.ImGuiCol_ResizeGripActive;
797 alias ImGuiCol_Tab = ImGuiCol_.ImGuiCol_Tab;
798 alias ImGuiCol_TabHovered = ImGuiCol_.ImGuiCol_TabHovered;
799 alias ImGuiCol_TabActive = ImGuiCol_.ImGuiCol_TabActive;
800 alias ImGuiCol_TabUnfocused = ImGuiCol_.ImGuiCol_TabUnfocused;
801 alias ImGuiCol_TabUnfocusedActive = ImGuiCol_.ImGuiCol_TabUnfocusedActive;
802 alias ImGuiCol_PlotLines = ImGuiCol_.ImGuiCol_PlotLines;
803 alias ImGuiCol_PlotLinesHovered = ImGuiCol_.ImGuiCol_PlotLinesHovered;
804 alias ImGuiCol_PlotHistogram = ImGuiCol_.ImGuiCol_PlotHistogram;
805 alias ImGuiCol_PlotHistogramHovered = ImGuiCol_.ImGuiCol_PlotHistogramHovered;
806 alias ImGuiCol_TextSelectedBg = ImGuiCol_.ImGuiCol_TextSelectedBg;
807 alias ImGuiCol_DragDropTarget = ImGuiCol_.ImGuiCol_DragDropTarget;
808 alias ImGuiCol_NavHighlight = ImGuiCol_.ImGuiCol_NavHighlight;
809 alias ImGuiCol_NavWindowingHighlight = ImGuiCol_.ImGuiCol_NavWindowingHighlight;
810 alias ImGuiCol_NavWindowingDimBg = ImGuiCol_.ImGuiCol_NavWindowingDimBg;
811 alias ImGuiCol_ModalWindowDimBg = ImGuiCol_.ImGuiCol_ModalWindowDimBg;
812 alias ImGuiCol_COUNT = ImGuiCol_.ImGuiCol_COUNT;
813 
814 enum ImGuiStyleVar_
815 {
816     ImGuiStyleVar_Alpha = 0,
817     ImGuiStyleVar_WindowPadding = 1,
818     ImGuiStyleVar_WindowRounding = 2,
819     ImGuiStyleVar_WindowBorderSize = 3,
820     ImGuiStyleVar_WindowMinSize = 4,
821     ImGuiStyleVar_WindowTitleAlign = 5,
822     ImGuiStyleVar_ChildRounding = 6,
823     ImGuiStyleVar_ChildBorderSize = 7,
824     ImGuiStyleVar_PopupRounding = 8,
825     ImGuiStyleVar_PopupBorderSize = 9,
826     ImGuiStyleVar_FramePadding = 10,
827     ImGuiStyleVar_FrameRounding = 11,
828     ImGuiStyleVar_FrameBorderSize = 12,
829     ImGuiStyleVar_ItemSpacing = 13,
830     ImGuiStyleVar_ItemInnerSpacing = 14,
831     ImGuiStyleVar_IndentSpacing = 15,
832     ImGuiStyleVar_ScrollbarSize = 16,
833     ImGuiStyleVar_ScrollbarRounding = 17,
834     ImGuiStyleVar_GrabMinSize = 18,
835     ImGuiStyleVar_GrabRounding = 19,
836     ImGuiStyleVar_TabRounding = 20,
837     ImGuiStyleVar_ButtonTextAlign = 21,
838     ImGuiStyleVar_SelectableTextAlign = 22,
839     ImGuiStyleVar_COUNT = 23
840 }
841 
842 alias ImGuiStyleVar_Alpha = ImGuiStyleVar_.ImGuiStyleVar_Alpha;
843 alias ImGuiStyleVar_WindowPadding = ImGuiStyleVar_.ImGuiStyleVar_WindowPadding;
844 alias ImGuiStyleVar_WindowRounding = ImGuiStyleVar_.ImGuiStyleVar_WindowRounding;
845 alias ImGuiStyleVar_WindowBorderSize = ImGuiStyleVar_.ImGuiStyleVar_WindowBorderSize;
846 alias ImGuiStyleVar_WindowMinSize = ImGuiStyleVar_.ImGuiStyleVar_WindowMinSize;
847 alias ImGuiStyleVar_WindowTitleAlign = ImGuiStyleVar_.ImGuiStyleVar_WindowTitleAlign;
848 alias ImGuiStyleVar_ChildRounding = ImGuiStyleVar_.ImGuiStyleVar_ChildRounding;
849 alias ImGuiStyleVar_ChildBorderSize = ImGuiStyleVar_.ImGuiStyleVar_ChildBorderSize;
850 alias ImGuiStyleVar_PopupRounding = ImGuiStyleVar_.ImGuiStyleVar_PopupRounding;
851 alias ImGuiStyleVar_PopupBorderSize = ImGuiStyleVar_.ImGuiStyleVar_PopupBorderSize;
852 alias ImGuiStyleVar_FramePadding = ImGuiStyleVar_.ImGuiStyleVar_FramePadding;
853 alias ImGuiStyleVar_FrameRounding = ImGuiStyleVar_.ImGuiStyleVar_FrameRounding;
854 alias ImGuiStyleVar_FrameBorderSize = ImGuiStyleVar_.ImGuiStyleVar_FrameBorderSize;
855 alias ImGuiStyleVar_ItemSpacing = ImGuiStyleVar_.ImGuiStyleVar_ItemSpacing;
856 alias ImGuiStyleVar_ItemInnerSpacing = ImGuiStyleVar_.ImGuiStyleVar_ItemInnerSpacing;
857 alias ImGuiStyleVar_IndentSpacing = ImGuiStyleVar_.ImGuiStyleVar_IndentSpacing;
858 alias ImGuiStyleVar_ScrollbarSize = ImGuiStyleVar_.ImGuiStyleVar_ScrollbarSize;
859 alias ImGuiStyleVar_ScrollbarRounding = ImGuiStyleVar_.ImGuiStyleVar_ScrollbarRounding;
860 alias ImGuiStyleVar_GrabMinSize = ImGuiStyleVar_.ImGuiStyleVar_GrabMinSize;
861 alias ImGuiStyleVar_GrabRounding = ImGuiStyleVar_.ImGuiStyleVar_GrabRounding;
862 alias ImGuiStyleVar_TabRounding = ImGuiStyleVar_.ImGuiStyleVar_TabRounding;
863 alias ImGuiStyleVar_ButtonTextAlign = ImGuiStyleVar_.ImGuiStyleVar_ButtonTextAlign;
864 alias ImGuiStyleVar_SelectableTextAlign = ImGuiStyleVar_.ImGuiStyleVar_SelectableTextAlign;
865 alias ImGuiStyleVar_COUNT = ImGuiStyleVar_.ImGuiStyleVar_COUNT;
866 
867 enum ImGuiColorEditFlags_
868 {
869     ImGuiColorEditFlags_None = 0,
870     ImGuiColorEditFlags_NoAlpha = 1 << 1,
871     ImGuiColorEditFlags_NoPicker = 1 << 2,
872     ImGuiColorEditFlags_NoOptions = 1 << 3,
873     ImGuiColorEditFlags_NoSmallPreview = 1 << 4,
874     ImGuiColorEditFlags_NoInputs = 1 << 5,
875     ImGuiColorEditFlags_NoTooltip = 1 << 6,
876     ImGuiColorEditFlags_NoLabel = 1 << 7,
877     ImGuiColorEditFlags_NoSidePreview = 1 << 8,
878     ImGuiColorEditFlags_NoDragDrop = 1 << 9,
879     ImGuiColorEditFlags_AlphaBar = 1 << 16,
880     ImGuiColorEditFlags_AlphaPreview = 1 << 17,
881     ImGuiColorEditFlags_AlphaPreviewHalf = 1 << 18,
882     ImGuiColorEditFlags_HDR = 1 << 19,
883     ImGuiColorEditFlags_DisplayRGB = 1 << 20,
884     ImGuiColorEditFlags_DisplayHSV = 1 << 21,
885     ImGuiColorEditFlags_DisplayHex = 1 << 22,
886     ImGuiColorEditFlags_Uint8 = 1 << 23,
887     ImGuiColorEditFlags_Float = 1 << 24,
888     ImGuiColorEditFlags_PickerHueBar = 1 << 25,
889     ImGuiColorEditFlags_PickerHueWheel = 1 << 26,
890     ImGuiColorEditFlags_InputRGB = 1 << 27,
891     ImGuiColorEditFlags_InputHSV = 1 << 28,
892     ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar,
893     ImGuiColorEditFlags__DisplayMask = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex,
894     ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float,
895     ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar,
896     ImGuiColorEditFlags__InputMask = ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV
897 }
898 
899 alias ImGuiColorEditFlags_None = ImGuiColorEditFlags_.ImGuiColorEditFlags_None;
900 alias ImGuiColorEditFlags_NoAlpha = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoAlpha;
901 alias ImGuiColorEditFlags_NoPicker = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoPicker;
902 alias ImGuiColorEditFlags_NoOptions = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoOptions;
903 alias ImGuiColorEditFlags_NoSmallPreview = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoSmallPreview;
904 alias ImGuiColorEditFlags_NoInputs = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoInputs;
905 alias ImGuiColorEditFlags_NoTooltip = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoTooltip;
906 alias ImGuiColorEditFlags_NoLabel = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoLabel;
907 alias ImGuiColorEditFlags_NoSidePreview = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoSidePreview;
908 alias ImGuiColorEditFlags_NoDragDrop = ImGuiColorEditFlags_.ImGuiColorEditFlags_NoDragDrop;
909 alias ImGuiColorEditFlags_AlphaBar = ImGuiColorEditFlags_.ImGuiColorEditFlags_AlphaBar;
910 alias ImGuiColorEditFlags_AlphaPreview = ImGuiColorEditFlags_.ImGuiColorEditFlags_AlphaPreview;
911 alias ImGuiColorEditFlags_AlphaPreviewHalf = ImGuiColorEditFlags_.ImGuiColorEditFlags_AlphaPreviewHalf;
912 alias ImGuiColorEditFlags_HDR = ImGuiColorEditFlags_.ImGuiColorEditFlags_HDR;
913 alias ImGuiColorEditFlags_DisplayRGB = ImGuiColorEditFlags_.ImGuiColorEditFlags_DisplayRGB;
914 alias ImGuiColorEditFlags_DisplayHSV = ImGuiColorEditFlags_.ImGuiColorEditFlags_DisplayHSV;
915 alias ImGuiColorEditFlags_DisplayHex = ImGuiColorEditFlags_.ImGuiColorEditFlags_DisplayHex;
916 alias ImGuiColorEditFlags_Uint8 = ImGuiColorEditFlags_.ImGuiColorEditFlags_Uint8;
917 alias ImGuiColorEditFlags_Float = ImGuiColorEditFlags_.ImGuiColorEditFlags_Float;
918 alias ImGuiColorEditFlags_PickerHueBar = ImGuiColorEditFlags_.ImGuiColorEditFlags_PickerHueBar;
919 alias ImGuiColorEditFlags_PickerHueWheel = ImGuiColorEditFlags_.ImGuiColorEditFlags_PickerHueWheel;
920 alias ImGuiColorEditFlags_InputRGB = ImGuiColorEditFlags_.ImGuiColorEditFlags_InputRGB;
921 alias ImGuiColorEditFlags_InputHSV = ImGuiColorEditFlags_.ImGuiColorEditFlags_InputHSV;
922 alias ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_.ImGuiColorEditFlags__OptionsDefault;
923 alias ImGuiColorEditFlags__DisplayMask = ImGuiColorEditFlags_.ImGuiColorEditFlags__DisplayMask;
924 alias ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_.ImGuiColorEditFlags__DataTypeMask;
925 alias ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_.ImGuiColorEditFlags__PickerMask;
926 alias ImGuiColorEditFlags__InputMask = ImGuiColorEditFlags_.ImGuiColorEditFlags__InputMask;
927 
928 enum ImGuiMouseCursor_
929 {
930     ImGuiMouseCursor_None = -1,
931     ImGuiMouseCursor_Arrow = 0,
932     ImGuiMouseCursor_TextInput = 1,
933     ImGuiMouseCursor_ResizeAll = 2,
934     ImGuiMouseCursor_ResizeNS = 3,
935     ImGuiMouseCursor_ResizeEW = 4,
936     ImGuiMouseCursor_ResizeNESW = 5,
937     ImGuiMouseCursor_ResizeNWSE = 6,
938     ImGuiMouseCursor_Hand = 7,
939     ImGuiMouseCursor_COUNT = 8
940 }
941 
942 alias ImGuiMouseCursor_None = ImGuiMouseCursor_.ImGuiMouseCursor_None;
943 alias ImGuiMouseCursor_Arrow = ImGuiMouseCursor_.ImGuiMouseCursor_Arrow;
944 alias ImGuiMouseCursor_TextInput = ImGuiMouseCursor_.ImGuiMouseCursor_TextInput;
945 alias ImGuiMouseCursor_ResizeAll = ImGuiMouseCursor_.ImGuiMouseCursor_ResizeAll;
946 alias ImGuiMouseCursor_ResizeNS = ImGuiMouseCursor_.ImGuiMouseCursor_ResizeNS;
947 alias ImGuiMouseCursor_ResizeEW = ImGuiMouseCursor_.ImGuiMouseCursor_ResizeEW;
948 alias ImGuiMouseCursor_ResizeNESW = ImGuiMouseCursor_.ImGuiMouseCursor_ResizeNESW;
949 alias ImGuiMouseCursor_ResizeNWSE = ImGuiMouseCursor_.ImGuiMouseCursor_ResizeNWSE;
950 alias ImGuiMouseCursor_Hand = ImGuiMouseCursor_.ImGuiMouseCursor_Hand;
951 alias ImGuiMouseCursor_COUNT = ImGuiMouseCursor_.ImGuiMouseCursor_COUNT;
952 
953 enum ImGuiCond_
954 {
955     ImGuiCond_Always = 1 << 0,
956     ImGuiCond_Once = 1 << 1,
957     ImGuiCond_FirstUseEver = 1 << 2,
958     ImGuiCond_Appearing = 1 << 3
959 }
960 
961 alias ImGuiCond_Always = ImGuiCond_.ImGuiCond_Always;
962 alias ImGuiCond_Once = ImGuiCond_.ImGuiCond_Once;
963 alias ImGuiCond_FirstUseEver = ImGuiCond_.ImGuiCond_FirstUseEver;
964 alias ImGuiCond_Appearing = ImGuiCond_.ImGuiCond_Appearing;
965 
966 struct ImGuiStyle
967 {
968     float Alpha;
969     ImVec2 WindowPadding;
970     float WindowRounding;
971     float WindowBorderSize;
972     ImVec2 WindowMinSize;
973     ImVec2 WindowTitleAlign;
974     ImGuiDir WindowMenuButtonPosition;
975     float ChildRounding;
976     float ChildBorderSize;
977     float PopupRounding;
978     float PopupBorderSize;
979     ImVec2 FramePadding;
980     float FrameRounding;
981     float FrameBorderSize;
982     ImVec2 ItemSpacing;
983     ImVec2 ItemInnerSpacing;
984     ImVec2 TouchExtraPadding;
985     float IndentSpacing;
986     float ColumnsMinSpacing;
987     float ScrollbarSize;
988     float ScrollbarRounding;
989     float GrabMinSize;
990     float GrabRounding;
991     float TabRounding;
992     float TabBorderSize;
993     ImGuiDir ColorButtonPosition;
994     ImVec2 ButtonTextAlign;
995     ImVec2 SelectableTextAlign;
996     ImVec2 DisplayWindowPadding;
997     ImVec2 DisplaySafeAreaPadding;
998     float MouseCursorScale;
999     bool AntiAliasedLines;
1000     bool AntiAliasedFill;
1001     float CurveTessellationTol;
1002     ImVec4[ImGuiCol_COUNT] Colors;
1003 }
1004 
1005 struct ImGuiIO
1006 {
1007     ImGuiConfigFlags ConfigFlags;
1008     ImGuiBackendFlags BackendFlags;
1009     ImVec2 DisplaySize;
1010     float DeltaTime;
1011     float IniSavingRate;
1012     const(char)* IniFilename;
1013     const(char)* LogFilename;
1014     float MouseDoubleClickTime;
1015     float MouseDoubleClickMaxDist;
1016     float MouseDragThreshold;
1017     int[ImGuiKey_COUNT] KeyMap;
1018     float KeyRepeatDelay;
1019     float KeyRepeatRate;
1020     void* UserData;
1021     ImFontAtlas* Fonts;
1022     float FontGlobalScale;
1023     bool FontAllowUserScaling;
1024     ImFont* FontDefault;
1025     ImVec2 DisplayFramebufferScale;
1026     bool MouseDrawCursor;
1027     bool ConfigMacOSXBehaviors;
1028     bool ConfigInputTextCursorBlink;
1029     bool ConfigWindowsResizeFromEdges;
1030     bool ConfigWindowsMoveFromTitleBarOnly;
1031     float ConfigWindowsMemoryCompactTimer;
1032     const(char)* BackendPlatformName;
1033     const(char)* BackendRendererName;
1034     void* BackendPlatformUserData;
1035     void* BackendRendererUserData;
1036     void* BackendLanguageUserData;
1037     const(char)* function (void* user_data) GetClipboardTextFn;
1038     void function (void* user_data, const(char)* text) SetClipboardTextFn;
1039     void* ClipboardUserData;
1040     void function (int x, int y) ImeSetInputScreenPosFn;
1041     void* ImeWindowHandle;
1042     void* RenderDrawListsFnUnused;
1043     ImVec2 MousePos;
1044     bool[5] MouseDown;
1045     float MouseWheel;
1046     float MouseWheelH;
1047     bool KeyCtrl;
1048     bool KeyShift;
1049     bool KeyAlt;
1050     bool KeySuper;
1051     bool[512] KeysDown;
1052     float[ImGuiNavInput_COUNT] NavInputs;
1053     bool WantCaptureMouse;
1054     bool WantCaptureKeyboard;
1055     bool WantTextInput;
1056     bool WantSetMousePos;
1057     bool WantSaveIniSettings;
1058     bool NavActive;
1059     bool NavVisible;
1060     float Framerate;
1061     int MetricsRenderVertices;
1062     int MetricsRenderIndices;
1063     int MetricsRenderWindows;
1064     int MetricsActiveWindows;
1065     int MetricsActiveAllocations;
1066     ImVec2 MouseDelta;
1067     ImVec2 MousePosPrev;
1068     ImVec2[5] MouseClickedPos;
1069     double[5] MouseClickedTime;
1070     bool[5] MouseClicked;
1071     bool[5] MouseDoubleClicked;
1072     bool[5] MouseReleased;
1073     bool[5] MouseDownOwned;
1074     bool[5] MouseDownWasDoubleClick;
1075     float[5] MouseDownDuration;
1076     float[5] MouseDownDurationPrev;
1077     ImVec2[5] MouseDragMaxDistanceAbs;
1078     float[5] MouseDragMaxDistanceSqr;
1079     float[512] KeysDownDuration;
1080     float[512] KeysDownDurationPrev;
1081     float[ImGuiNavInput_COUNT] NavInputsDownDuration;
1082     float[ImGuiNavInput_COUNT] NavInputsDownDurationPrev;
1083     ImVector_ImWchar InputQueueCharacters;
1084 }
1085 
1086 struct ImGuiInputTextCallbackData
1087 {
1088     ImGuiInputTextFlags EventFlag;
1089     ImGuiInputTextFlags Flags;
1090     void* UserData;
1091     ImWchar EventChar;
1092     ImGuiKey EventKey;
1093     char* Buf;
1094     int BufTextLen;
1095     int BufSize;
1096     bool BufDirty;
1097     int CursorPos;
1098     int SelectionStart;
1099     int SelectionEnd;
1100 }
1101 
1102 struct ImGuiSizeCallbackData
1103 {
1104     void* UserData;
1105     ImVec2 Pos;
1106     ImVec2 CurrentSize;
1107     ImVec2 DesiredSize;
1108 }
1109 
1110 struct ImGuiPayload
1111 {
1112     void* Data;
1113     int DataSize;
1114     ImGuiID SourceId;
1115     ImGuiID SourceParentId;
1116     int DataFrameCount;
1117     char[33] DataType;
1118     bool Preview;
1119     bool Delivery;
1120 }
1121 
1122 struct ImGuiOnceUponAFrame
1123 {
1124     int RefFrame;
1125 }
1126 
1127 struct ImGuiTextFilter
1128 {
1129     char[256] InputBuf;
1130     ImVector_ImGuiTextRange Filters;
1131     int CountGrep;
1132 }
1133 
1134 struct ImGuiTextBuffer
1135 {
1136     ImVector_char Buf;
1137 }
1138 
1139 struct ImGuiStorage
1140 {
1141     ImVector_ImGuiStoragePair Data;
1142 }
1143 
1144 struct ImGuiListClipper
1145 {
1146     float StartPosY;
1147     float ItemsHeight;
1148     int ItemsCount;
1149     int StepNo;
1150     int DisplayStart;
1151     int DisplayEnd;
1152 }
1153 
1154 struct ImColor
1155 {
1156     ImVec4 Value;
1157 }
1158 
1159 struct ImDrawCmd
1160 {
1161     uint ElemCount;
1162     ImVec4 ClipRect;
1163     ImTextureID TextureId;
1164     uint VtxOffset;
1165     uint IdxOffset;
1166     ImDrawCallback UserCallback;
1167     void* UserCallbackData;
1168 }
1169 
1170 struct ImDrawVert
1171 {
1172     ImVec2 pos;
1173     ImVec2 uv;
1174     ImU32 col;
1175 }
1176 
1177 struct ImDrawChannel
1178 {
1179     ImVector_ImDrawCmd _CmdBuffer;
1180     ImVector_ImDrawIdx _IdxBuffer;
1181 }
1182 
1183 struct ImDrawListSplitter
1184 {
1185     int _Current;
1186     int _Count;
1187     ImVector_ImDrawChannel _Channels;
1188 }
1189 
1190 enum ImDrawCornerFlags_
1191 {
1192     ImDrawCornerFlags_None = 0,
1193     ImDrawCornerFlags_TopLeft = 1 << 0,
1194     ImDrawCornerFlags_TopRight = 1 << 1,
1195     ImDrawCornerFlags_BotLeft = 1 << 2,
1196     ImDrawCornerFlags_BotRight = 1 << 3,
1197     ImDrawCornerFlags_Top = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight,
1198     ImDrawCornerFlags_Bot = ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight,
1199     ImDrawCornerFlags_Left = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft,
1200     ImDrawCornerFlags_Right = ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight,
1201     ImDrawCornerFlags_All = 0xF
1202 }
1203 
1204 alias ImDrawCornerFlags_None = ImDrawCornerFlags_.ImDrawCornerFlags_None;
1205 alias ImDrawCornerFlags_TopLeft = ImDrawCornerFlags_.ImDrawCornerFlags_TopLeft;
1206 alias ImDrawCornerFlags_TopRight = ImDrawCornerFlags_.ImDrawCornerFlags_TopRight;
1207 alias ImDrawCornerFlags_BotLeft = ImDrawCornerFlags_.ImDrawCornerFlags_BotLeft;
1208 alias ImDrawCornerFlags_BotRight = ImDrawCornerFlags_.ImDrawCornerFlags_BotRight;
1209 alias ImDrawCornerFlags_Top = ImDrawCornerFlags_.ImDrawCornerFlags_Top;
1210 alias ImDrawCornerFlags_Bot = ImDrawCornerFlags_.ImDrawCornerFlags_Bot;
1211 alias ImDrawCornerFlags_Left = ImDrawCornerFlags_.ImDrawCornerFlags_Left;
1212 alias ImDrawCornerFlags_Right = ImDrawCornerFlags_.ImDrawCornerFlags_Right;
1213 alias ImDrawCornerFlags_All = ImDrawCornerFlags_.ImDrawCornerFlags_All;
1214 
1215 enum ImDrawListFlags_
1216 {
1217     ImDrawListFlags_None = 0,
1218     ImDrawListFlags_AntiAliasedLines = 1 << 0,
1219     ImDrawListFlags_AntiAliasedFill = 1 << 1,
1220     ImDrawListFlags_AllowVtxOffset = 1 << 2
1221 }
1222 
1223 alias ImDrawListFlags_None = ImDrawListFlags_.ImDrawListFlags_None;
1224 alias ImDrawListFlags_AntiAliasedLines = ImDrawListFlags_.ImDrawListFlags_AntiAliasedLines;
1225 alias ImDrawListFlags_AntiAliasedFill = ImDrawListFlags_.ImDrawListFlags_AntiAliasedFill;
1226 alias ImDrawListFlags_AllowVtxOffset = ImDrawListFlags_.ImDrawListFlags_AllowVtxOffset;
1227 
1228 struct ImDrawList
1229 {
1230     ImVector_ImDrawCmd CmdBuffer;
1231     ImVector_ImDrawIdx IdxBuffer;
1232     ImVector_ImDrawVert VtxBuffer;
1233     ImDrawListFlags Flags;
1234     const(ImDrawListSharedData)* _Data;
1235     const(char)* _OwnerName;
1236     uint _VtxCurrentOffset;
1237     uint _VtxCurrentIdx;
1238     ImDrawVert* _VtxWritePtr;
1239     ImDrawIdx* _IdxWritePtr;
1240     ImVector_ImVec4 _ClipRectStack;
1241     ImVector_ImTextureID _TextureIdStack;
1242     ImVector_ImVec2 _Path;
1243     ImDrawListSplitter _Splitter;
1244 }
1245 
1246 struct ImDrawData
1247 {
1248     bool Valid;
1249     ImDrawList** CmdLists;
1250     int CmdListsCount;
1251     int TotalIdxCount;
1252     int TotalVtxCount;
1253     ImVec2 DisplayPos;
1254     ImVec2 DisplaySize;
1255     ImVec2 FramebufferScale;
1256 }
1257 
1258 struct ImFontConfig
1259 {
1260     void* FontData;
1261     int FontDataSize;
1262     bool FontDataOwnedByAtlas;
1263     int FontNo;
1264     float SizePixels;
1265     int OversampleH;
1266     int OversampleV;
1267     bool PixelSnapH;
1268     ImVec2 GlyphExtraSpacing;
1269     ImVec2 GlyphOffset;
1270     const(ImWchar)* GlyphRanges;
1271     float GlyphMinAdvanceX;
1272     float GlyphMaxAdvanceX;
1273     bool MergeMode;
1274     uint RasterizerFlags;
1275     float RasterizerMultiply;
1276     ImWchar EllipsisChar;
1277     char[40] Name;
1278     ImFont* DstFont;
1279 }
1280 
1281 struct ImFontGlyph
1282 {
1283     ImWchar Codepoint;
1284     float AdvanceX;
1285     float X0;
1286     float Y0;
1287     float X1;
1288     float Y1;
1289     float U0;
1290     float V0;
1291     float U1;
1292     float V1;
1293 }
1294 
1295 struct ImFontGlyphRangesBuilder
1296 {
1297     ImVector_ImU32 UsedChars;
1298 }
1299 
1300 struct ImFontAtlasCustomRect
1301 {
1302     uint ID;
1303     ushort Width;
1304     ushort Height;
1305     ushort X;
1306     ushort Y;
1307     float GlyphAdvanceX;
1308     ImVec2 GlyphOffset;
1309     ImFont* Font;
1310 }
1311 
1312 enum ImFontAtlasFlags_
1313 {
1314     ImFontAtlasFlags_None = 0,
1315     ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0,
1316     ImFontAtlasFlags_NoMouseCursors = 1 << 1
1317 }
1318 
1319 alias ImFontAtlasFlags_None = ImFontAtlasFlags_.ImFontAtlasFlags_None;
1320 alias ImFontAtlasFlags_NoPowerOfTwoHeight = ImFontAtlasFlags_.ImFontAtlasFlags_NoPowerOfTwoHeight;
1321 alias ImFontAtlasFlags_NoMouseCursors = ImFontAtlasFlags_.ImFontAtlasFlags_NoMouseCursors;
1322 
1323 struct ImFontAtlas
1324 {
1325     bool Locked;
1326     ImFontAtlasFlags Flags;
1327     ImTextureID TexID;
1328     int TexDesiredWidth;
1329     int TexGlyphPadding;
1330     ubyte* TexPixelsAlpha8;
1331     uint* TexPixelsRGBA32;
1332     int TexWidth;
1333     int TexHeight;
1334     ImVec2 TexUvScale;
1335     ImVec2 TexUvWhitePixel;
1336     ImVector_ImFontPtr Fonts;
1337     ImVector_ImFontAtlasCustomRect CustomRects;
1338     ImVector_ImFontConfig ConfigData;
1339     int[1] CustomRectIds;
1340 }
1341 
1342 struct ImFont
1343 {
1344     ImVector_float IndexAdvanceX;
1345     float FallbackAdvanceX;
1346     float FontSize;
1347     ImVector_ImWchar IndexLookup;
1348     ImVector_ImFontGlyph Glyphs;
1349     const(ImFontGlyph)* FallbackGlyph;
1350     ImVec2 DisplayOffset;
1351     ImFontAtlas* ContainerAtlas;
1352     const(ImFontConfig)* ConfigData;
1353     short ConfigDataCount;
1354     ImWchar FallbackChar;
1355     ImWchar EllipsisChar;
1356     float Scale;
1357     float Ascent;
1358     float Descent;
1359     int MetricsTotalSurface;
1360     bool DirtyLookupTables;
1361 }
1362 
1363 struct ImGuiTextRange
1364 {
1365     const(char)* b;
1366     const(char)* e;
1367 }
1368 
1369 struct ImGuiStoragePair
1370 {
1371     ImGuiID key;
1372 
1373     union
1374     {
1375         int val_i;
1376         float val_f;
1377         void* val_p;
1378     }
1379 }
1380 
1381 // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
1382 
1383 //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
1384 ImVec2* ImVec2_ImVec2 ();
1385 void ImVec2_destroy (ImVec2* self);
1386 ImVec2* ImVec2_ImVec2Float (float _x, float _y);
1387 ImVec4* ImVec4_ImVec4 ();
1388 void ImVec4_destroy (ImVec4* self);
1389 ImVec4* ImVec4_ImVec4Float (float _x, float _y, float _z, float _w);
1390 ImGuiContext* igCreateContext (ImFontAtlas* shared_font_atlas);
1391 void igDestroyContext (ImGuiContext* ctx);
1392 ImGuiContext* igGetCurrentContext ();
1393 void igSetCurrentContext (ImGuiContext* ctx);
1394 bool igDebugCheckVersionAndDataLayout (const(char)* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx);
1395 ImGuiIO* igGetIO ();
1396 ImGuiStyle* igGetStyle ();
1397 void igNewFrame ();
1398 void igEndFrame ();
1399 void igRender ();
1400 ImDrawData* igGetDrawData ();
1401 void igShowDemoWindow (bool* p_open);
1402 void igShowAboutWindow (bool* p_open);
1403 void igShowMetricsWindow (bool* p_open);
1404 void igShowStyleEditor (ImGuiStyle* ref_);
1405 bool igShowStyleSelector (const(char)* label);
1406 void igShowFontSelector (const(char)* label);
1407 void igShowUserGuide ();
1408 const(char)* igGetVersion ();
1409 void igStyleColorsDark (ImGuiStyle* dst);
1410 void igStyleColorsClassic (ImGuiStyle* dst);
1411 void igStyleColorsLight (ImGuiStyle* dst);
1412 bool igBegin (const(char)* name, bool* p_open, ImGuiWindowFlags flags);
1413 void igEnd ();
1414 bool igBeginChild (const(char)* str_id, const ImVec2 size, bool border, ImGuiWindowFlags flags);
1415 bool igBeginChildID (ImGuiID id, const ImVec2 size, bool border, ImGuiWindowFlags flags);
1416 void igEndChild ();
1417 bool igIsWindowAppearing ();
1418 bool igIsWindowCollapsed ();
1419 bool igIsWindowFocused (ImGuiFocusedFlags flags);
1420 bool igIsWindowHovered (ImGuiHoveredFlags flags);
1421 ImDrawList* igGetWindowDrawList ();
1422 ImVec2 igGetWindowPos ();
1423 ImVec2 igGetWindowSize ();
1424 float igGetWindowWidth ();
1425 float igGetWindowHeight ();
1426 void igSetNextWindowPos (const ImVec2 pos, ImGuiCond cond, const ImVec2 pivot);
1427 void igSetNextWindowSize (const ImVec2 size, ImGuiCond cond);
1428 void igSetNextWindowSizeConstraints (const ImVec2 size_min, const ImVec2 size_max, ImGuiSizeCallback custom_callback, void* custom_callback_data);
1429 void igSetNextWindowContentSize (const ImVec2 size);
1430 void igSetNextWindowCollapsed (bool collapsed, ImGuiCond cond);
1431 void igSetNextWindowFocus ();
1432 void igSetNextWindowBgAlpha (float alpha);
1433 void igSetWindowPosVec2 (const ImVec2 pos, ImGuiCond cond);
1434 void igSetWindowSizeVec2 (const ImVec2 size, ImGuiCond cond);
1435 void igSetWindowCollapsedBool (bool collapsed, ImGuiCond cond);
1436 void igSetWindowFocus ();
1437 void igSetWindowFontScale (float scale);
1438 void igSetWindowPosStr (const(char)* name, const ImVec2 pos, ImGuiCond cond);
1439 void igSetWindowSizeStr (const(char)* name, const ImVec2 size, ImGuiCond cond);
1440 void igSetWindowCollapsedStr (const(char)* name, bool collapsed, ImGuiCond cond);
1441 void igSetWindowFocusStr (const(char)* name);
1442 ImVec2 igGetContentRegionMax ();
1443 ImVec2 igGetContentRegionAvail ();
1444 ImVec2 igGetWindowContentRegionMin ();
1445 ImVec2 igGetWindowContentRegionMax ();
1446 float igGetWindowContentRegionWidth ();
1447 float igGetScrollX ();
1448 float igGetScrollY ();
1449 float igGetScrollMaxX ();
1450 float igGetScrollMaxY ();
1451 void igSetScrollX (float scroll_x);
1452 void igSetScrollY (float scroll_y);
1453 void igSetScrollHereX (float center_x_ratio);
1454 void igSetScrollHereY (float center_y_ratio);
1455 void igSetScrollFromPosX (float local_x, float center_x_ratio);
1456 void igSetScrollFromPosY (float local_y, float center_y_ratio);
1457 void igPushFont (ImFont* font);
1458 void igPopFont ();
1459 void igPushStyleColorU32 (ImGuiCol idx, ImU32 col);
1460 void igPushStyleColor (ImGuiCol idx, const ImVec4 col);
1461 void igPopStyleColor (int count);
1462 void igPushStyleVarFloat (ImGuiStyleVar idx, float val);
1463 void igPushStyleVarVec2 (ImGuiStyleVar idx, const ImVec2 val);
1464 void igPopStyleVar (int count);
1465 const(ImVec4)* igGetStyleColorVec4 (ImGuiCol idx);
1466 ImFont* igGetFont ();
1467 float igGetFontSize ();
1468 ImVec2 igGetFontTexUvWhitePixel ();
1469 ImU32 igGetColorU32 (ImGuiCol idx, float alpha_mul);
1470 ImU32 igGetColorU32Vec4 (const ImVec4 col);
1471 ImU32 igGetColorU32U32 (ImU32 col);
1472 void igPushItemWidth (float item_width);
1473 void igPopItemWidth ();
1474 void igSetNextItemWidth (float item_width);
1475 float igCalcItemWidth ();
1476 void igPushTextWrapPos (float wrap_local_pos_x);
1477 void igPopTextWrapPos ();
1478 void igPushAllowKeyboardFocus (bool allow_keyboard_focus);
1479 void igPopAllowKeyboardFocus ();
1480 void igPushButtonRepeat (bool repeat);
1481 void igPopButtonRepeat ();
1482 void igSeparator ();
1483 void igSameLine (float offset_from_start_x, float spacing);
1484 void igNewLine ();
1485 void igSpacing ();
1486 void igDummy (const ImVec2 size);
1487 void igIndent (float indent_w);
1488 void igUnindent (float indent_w);
1489 void igBeginGroup ();
1490 void igEndGroup ();
1491 ImVec2 igGetCursorPos ();
1492 float igGetCursorPosX ();
1493 float igGetCursorPosY ();
1494 void igSetCursorPos (const ImVec2 local_pos);
1495 void igSetCursorPosX (float local_x);
1496 void igSetCursorPosY (float local_y);
1497 ImVec2 igGetCursorStartPos ();
1498 ImVec2 igGetCursorScreenPos ();
1499 void igSetCursorScreenPos (const ImVec2 pos);
1500 void igAlignTextToFramePadding ();
1501 float igGetTextLineHeight ();
1502 float igGetTextLineHeightWithSpacing ();
1503 float igGetFrameHeight ();
1504 float igGetFrameHeightWithSpacing ();
1505 void igPushIDStr (const(char)* str_id);
1506 void igPushIDRange (const(char)* str_id_begin, const(char)* str_id_end);
1507 void igPushIDPtr (const(void)* ptr_id);
1508 void igPushIDInt (int int_id);
1509 void igPopID ();
1510 ImGuiID igGetIDStr (const(char)* str_id);
1511 ImGuiID igGetIDRange (const(char)* str_id_begin, const(char)* str_id_end);
1512 ImGuiID igGetIDPtr (const(void)* ptr_id);
1513 void igTextUnformatted (const(char)* text, const(char)* text_end);
1514 void igText (const(char)* fmt, ...);
1515 void igTextV (const(char)* fmt, va_list args);
1516 void igTextColored (const ImVec4 col, const(char)* fmt, ...);
1517 void igTextColoredV (const ImVec4 col, const(char)* fmt, va_list args);
1518 void igTextDisabled (const(char)* fmt, ...);
1519 void igTextDisabledV (const(char)* fmt, va_list args);
1520 void igTextWrapped (const(char)* fmt, ...);
1521 void igTextWrappedV (const(char)* fmt, va_list args);
1522 void igLabelText (const(char)* label, const(char)* fmt, ...);
1523 void igLabelTextV (const(char)* label, const(char)* fmt, va_list args);
1524 void igBulletText (const(char)* fmt, ...);
1525 void igBulletTextV (const(char)* fmt, va_list args);
1526 bool igButton (const(char)* label, const ImVec2 size);
1527 bool igSmallButton (const(char)* label);
1528 bool igInvisibleButton (const(char)* str_id, const ImVec2 size);
1529 bool igArrowButton (const(char)* str_id, ImGuiDir dir);
1530 void igImage (ImTextureID user_texture_id, const ImVec2 size, const ImVec2 uv0, const ImVec2 uv1, const ImVec4 tint_col, const ImVec4 border_col);
1531 bool igImageButton (ImTextureID user_texture_id, const ImVec2 size, const ImVec2 uv0, const ImVec2 uv1, int frame_padding, const ImVec4 bg_col, const ImVec4 tint_col);
1532 bool igCheckbox (const(char)* label, bool* v);
1533 bool igCheckboxFlags (const(char)* label, uint* flags, uint flags_value);
1534 bool igRadioButtonBool (const(char)* label, bool active);
1535 bool igRadioButtonIntPtr (const(char)* label, int* v, int v_button);
1536 void igProgressBar (float fraction, const ImVec2 size_arg, const(char)* overlay);
1537 void igBullet ();
1538 bool igBeginCombo (const(char)* label, const(char)* preview_value, ImGuiComboFlags flags);
1539 void igEndCombo ();
1540 bool igCombo (const(char)* label, int* current_item, const(char*)* items, int items_count, int popup_max_height_in_items);
1541 bool igComboStr (const(char)* label, int* current_item, const(char)* items_separated_by_zeros, int popup_max_height_in_items);
1542 bool igComboFnPtr (const(char)* label, int* current_item, bool function (void* data, int idx, const(char*)* out_text) items_getter, void* data, int items_count, int popup_max_height_in_items);
1543 bool igDragFloat (const(char)* label, float* v, float v_speed, float v_min, float v_max, const(char)* format, float power);
1544 bool igDragFloat2 (const(char)* label, ref float[2] v, float v_speed, float v_min, float v_max, const(char)* format, float power);
1545 bool igDragFloat3 (const(char)* label, ref float[3] v, float v_speed, float v_min, float v_max, const(char)* format, float power);
1546 bool igDragFloat4 (const(char)* label, ref float[4] v, float v_speed, float v_min, float v_max, const(char)* format, float power);
1547 bool igDragFloatRange2 (const(char)* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const(char)* format, const(char)* format_max, float power);
1548 bool igDragInt (const(char)* label, int* v, float v_speed, int v_min, int v_max, const(char)* format);
1549 bool igDragInt2 (const(char)* label, ref int[2] v, float v_speed, int v_min, int v_max, const(char)* format);
1550 bool igDragInt3 (const(char)* label, ref int[3] v, float v_speed, int v_min, int v_max, const(char)* format);
1551 bool igDragInt4 (const(char)* label, ref int[4] v, float v_speed, int v_min, int v_max, const(char)* format);
1552 bool igDragIntRange2 (const(char)* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const(char)* format, const(char)* format_max);
1553 bool igDragScalar (const(char)* label, ImGuiDataType data_type, void* v, float v_speed, const(void)* v_min, const(void)* v_max, const(char)* format, float power);
1554 bool igDragScalarN (const(char)* label, ImGuiDataType data_type, void* v, int components, float v_speed, const(void)* v_min, const(void)* v_max, const(char)* format, float power);
1555 bool igSliderFloat (const(char)* label, float* v, float v_min, float v_max, const(char)* format, float power);
1556 bool igSliderFloat2 (const(char)* label, ref float[2] v, float v_min, float v_max, const(char)* format, float power);
1557 bool igSliderFloat3 (const(char)* label, ref float[3] v, float v_min, float v_max, const(char)* format, float power);
1558 bool igSliderFloat4 (const(char)* label, ref float[4] v, float v_min, float v_max, const(char)* format, float power);
1559 bool igSliderAngle (const(char)* label, float* v_rad, float v_degrees_min, float v_degrees_max, const(char)* format);
1560 bool igSliderInt (const(char)* label, int* v, int v_min, int v_max, const(char)* format);
1561 bool igSliderInt2 (const(char)* label, ref int[2] v, int v_min, int v_max, const(char)* format);
1562 bool igSliderInt3 (const(char)* label, ref int[3] v, int v_min, int v_max, const(char)* format);
1563 bool igSliderInt4 (const(char)* label, ref int[4] v, int v_min, int v_max, const(char)* format);
1564 bool igSliderScalar (const(char)* label, ImGuiDataType data_type, void* v, const(void)* v_min, const(void)* v_max, const(char)* format, float power);
1565 bool igSliderScalarN (const(char)* label, ImGuiDataType data_type, void* v, int components, const(void)* v_min, const(void)* v_max, const(char)* format, float power);
1566 bool igVSliderFloat (const(char)* label, const ImVec2 size, float* v, float v_min, float v_max, const(char)* format, float power);
1567 bool igVSliderInt (const(char)* label, const ImVec2 size, int* v, int v_min, int v_max, const(char)* format);
1568 bool igVSliderScalar (const(char)* label, const ImVec2 size, ImGuiDataType data_type, void* v, const(void)* v_min, const(void)* v_max, const(char)* format, float power);
1569 bool igInputText (const(char)* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
1570 bool igInputTextMultiline (const(char)* label, char* buf, size_t buf_size, const ImVec2 size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
1571 bool igInputTextWithHint (const(char)* label, const(char)* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
1572 bool igInputFloat (const(char)* label, float* v, float step, float step_fast, const(char)* format, ImGuiInputTextFlags flags);
1573 bool igInputFloat2 (const(char)* label, ref float[2] v, const(char)* format, ImGuiInputTextFlags flags);
1574 bool igInputFloat3 (const(char)* label, ref float[3] v, const(char)* format, ImGuiInputTextFlags flags);
1575 bool igInputFloat4 (const(char)* label, ref float[4] v, const(char)* format, ImGuiInputTextFlags flags);
1576 bool igInputInt (const(char)* label, int* v, int step, int step_fast, ImGuiInputTextFlags flags);
1577 bool igInputInt2 (const(char)* label, ref int[2] v, ImGuiInputTextFlags flags);
1578 bool igInputInt3 (const(char)* label, ref int[3] v, ImGuiInputTextFlags flags);
1579 bool igInputInt4 (const(char)* label, ref int[4] v, ImGuiInputTextFlags flags);
1580 bool igInputDouble (const(char)* label, double* v, double step, double step_fast, const(char)* format, ImGuiInputTextFlags flags);
1581 bool igInputScalar (const(char)* label, ImGuiDataType data_type, void* v, const(void)* step, const(void)* step_fast, const(char)* format, ImGuiInputTextFlags flags);
1582 bool igInputScalarN (const(char)* label, ImGuiDataType data_type, void* v, int components, const(void)* step, const(void)* step_fast, const(char)* format, ImGuiInputTextFlags flags);
1583 bool igColorEdit3 (const(char)* label, ref float[3] col, ImGuiColorEditFlags flags);
1584 bool igColorEdit4 (const(char)* label, ref float[4] col, ImGuiColorEditFlags flags);
1585 bool igColorPicker3 (const(char)* label, ref float[3] col, ImGuiColorEditFlags flags);
1586 bool igColorPicker4 (const(char)* label, ref float[4] col, ImGuiColorEditFlags flags, const(float)* ref_col);
1587 bool igColorButton (const(char)* desc_id, const ImVec4 col, ImGuiColorEditFlags flags, ImVec2 size);
1588 void igSetColorEditOptions (ImGuiColorEditFlags flags);
1589 bool igTreeNodeStr (const(char)* label);
1590 bool igTreeNodeStrStr (const(char)* str_id, const(char)* fmt, ...);
1591 bool igTreeNodePtr (const(void)* ptr_id, const(char)* fmt, ...);
1592 bool igTreeNodeVStr (const(char)* str_id, const(char)* fmt, va_list args);
1593 bool igTreeNodeVPtr (const(void)* ptr_id, const(char)* fmt, va_list args);
1594 bool igTreeNodeExStr (const(char)* label, ImGuiTreeNodeFlags flags);
1595 bool igTreeNodeExStrStr (const(char)* str_id, ImGuiTreeNodeFlags flags, const(char)* fmt, ...);
1596 bool igTreeNodeExPtr (const(void)* ptr_id, ImGuiTreeNodeFlags flags, const(char)* fmt, ...);
1597 bool igTreeNodeExVStr (const(char)* str_id, ImGuiTreeNodeFlags flags, const(char)* fmt, va_list args);
1598 bool igTreeNodeExVPtr (const(void)* ptr_id, ImGuiTreeNodeFlags flags, const(char)* fmt, va_list args);
1599 void igTreePushStr (const(char)* str_id);
1600 void igTreePushPtr (const(void)* ptr_id);
1601 void igTreePop ();
1602 float igGetTreeNodeToLabelSpacing ();
1603 bool igCollapsingHeader (const(char)* label, ImGuiTreeNodeFlags flags);
1604 bool igCollapsingHeaderBoolPtr (const(char)* label, bool* p_open, ImGuiTreeNodeFlags flags);
1605 void igSetNextItemOpen (bool is_open, ImGuiCond cond);
1606 bool igSelectable (const(char)* label, bool selected, ImGuiSelectableFlags flags, const ImVec2 size);
1607 bool igSelectableBoolPtr (const(char)* label, bool* p_selected, ImGuiSelectableFlags flags, const ImVec2 size);
1608 bool igListBoxStr_arr (const(char)* label, int* current_item, const(char*)* items, int items_count, int height_in_items);
1609 bool igListBoxFnPtr (const(char)* label, int* current_item, bool function (void* data, int idx, const(char*)* out_text) items_getter, void* data, int items_count, int height_in_items);
1610 bool igListBoxHeaderVec2 (const(char)* label, const ImVec2 size);
1611 bool igListBoxHeaderInt (const(char)* label, int items_count, int height_in_items);
1612 void igListBoxFooter ();
1613 void igPlotLines (const(char)* label, const(float)* values, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride);
1614 void igPlotLinesFnPtr (const(char)* label, float function (void* data, int idx) values_getter, void* data, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size);
1615 void igPlotHistogramFloatPtr (const(char)* label, const(float)* values, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride);
1616 void igPlotHistogramFnPtr (const(char)* label, float function (void* data, int idx) values_getter, void* data, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size);
1617 void igValueBool (const(char)* prefix, bool b);
1618 void igValueInt (const(char)* prefix, int v);
1619 void igValueUint (const(char)* prefix, uint v);
1620 void igValueFloat (const(char)* prefix, float v, const(char)* float_format);
1621 bool igBeginMainMenuBar ();
1622 void igEndMainMenuBar ();
1623 bool igBeginMenuBar ();
1624 void igEndMenuBar ();
1625 bool igBeginMenu (const(char)* label, bool enabled);
1626 void igEndMenu ();
1627 bool igMenuItemBool (const(char)* label, const(char)* shortcut, bool selected, bool enabled);
1628 bool igMenuItemBoolPtr (const(char)* label, const(char)* shortcut, bool* p_selected, bool enabled);
1629 void igBeginTooltip ();
1630 void igEndTooltip ();
1631 void igSetTooltip (const(char)* fmt, ...);
1632 void igSetTooltipV (const(char)* fmt, va_list args);
1633 void igOpenPopup (const(char)* str_id);
1634 bool igBeginPopup (const(char)* str_id, ImGuiWindowFlags flags);
1635 bool igBeginPopupContextItem (const(char)* str_id, int mouse_button);
1636 bool igBeginPopupContextWindow (const(char)* str_id, int mouse_button, bool also_over_items);
1637 bool igBeginPopupContextVoid (const(char)* str_id, int mouse_button);
1638 bool igBeginPopupModal (const(char)* name, bool* p_open, ImGuiWindowFlags flags);
1639 void igEndPopup ();
1640 bool igOpenPopupOnItemClick (const(char)* str_id, int mouse_button);
1641 bool igIsPopupOpen (const(char)* str_id);
1642 void igCloseCurrentPopup ();
1643 void igColumns (int count, const(char)* id, bool border);
1644 void igNextColumn ();
1645 int igGetColumnIndex ();
1646 float igGetColumnWidth (int column_index);
1647 void igSetColumnWidth (int column_index, float width);
1648 float igGetColumnOffset (int column_index);
1649 void igSetColumnOffset (int column_index, float offset_x);
1650 int igGetColumnsCount ();
1651 bool igBeginTabBar (const(char)* str_id, ImGuiTabBarFlags flags);
1652 void igEndTabBar ();
1653 bool igBeginTabItem (const(char)* label, bool* p_open, ImGuiTabItemFlags flags);
1654 void igEndTabItem ();
1655 void igSetTabItemClosed (const(char)* tab_or_docked_window_label);
1656 void igLogToTTY (int auto_open_depth);
1657 void igLogToFile (int auto_open_depth, const(char)* filename);
1658 void igLogToClipboard (int auto_open_depth);
1659 void igLogFinish ();
1660 void igLogButtons ();
1661 bool igBeginDragDropSource (ImGuiDragDropFlags flags);
1662 bool igSetDragDropPayload (const(char)* type, const(void)* data, size_t sz, ImGuiCond cond);
1663 void igEndDragDropSource ();
1664 bool igBeginDragDropTarget ();
1665 const(ImGuiPayload)* igAcceptDragDropPayload (const(char)* type, ImGuiDragDropFlags flags);
1666 void igEndDragDropTarget ();
1667 const(ImGuiPayload)* igGetDragDropPayload ();
1668 void igPushClipRect (const ImVec2 clip_rect_min, const ImVec2 clip_rect_max, bool intersect_with_current_clip_rect);
1669 void igPopClipRect ();
1670 void igSetItemDefaultFocus ();
1671 void igSetKeyboardFocusHere (int offset);
1672 bool igIsItemHovered (ImGuiHoveredFlags flags);
1673 bool igIsItemActive ();
1674 bool igIsItemFocused ();
1675 bool igIsItemClicked (int mouse_button);
1676 bool igIsItemVisible ();
1677 bool igIsItemEdited ();
1678 bool igIsItemActivated ();
1679 bool igIsItemDeactivated ();
1680 bool igIsItemDeactivatedAfterEdit ();
1681 bool igIsAnyItemHovered ();
1682 bool igIsAnyItemActive ();
1683 bool igIsAnyItemFocused ();
1684 ImVec2 igGetItemRectMin ();
1685 ImVec2 igGetItemRectMax ();
1686 ImVec2 igGetItemRectSize ();
1687 void igSetItemAllowOverlap ();
1688 bool igIsRectVisible (const ImVec2 size);
1689 bool igIsRectVisibleVec2 (const ImVec2 rect_min, const ImVec2 rect_max);
1690 double igGetTime ();
1691 int igGetFrameCount ();
1692 ImDrawList* igGetBackgroundDrawList ();
1693 ImDrawList* igGetForegroundDrawList ();
1694 ImDrawListSharedData* igGetDrawListSharedData ();
1695 const(char)* igGetStyleColorName (ImGuiCol idx);
1696 void igSetStateStorage (ImGuiStorage* storage);
1697 ImGuiStorage* igGetStateStorage ();
1698 ImVec2 igCalcTextSize (const(char)* text, const(char)* text_end, bool hide_text_after_double_hash, float wrap_width);
1699 void igCalcListClipping (int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);
1700 bool igBeginChildFrame (ImGuiID id, const ImVec2 size, ImGuiWindowFlags flags);
1701 void igEndChildFrame ();
1702 ImVec4 igColorConvertU32ToFloat4 (ImU32 in_);
1703 ImU32 igColorConvertFloat4ToU32 (const ImVec4 in_);
1704 int igGetKeyIndex (ImGuiKey imgui_key);
1705 bool igIsKeyDown (int user_key_index);
1706 bool igIsKeyPressed (int user_key_index, bool repeat);
1707 bool igIsKeyReleased (int user_key_index);
1708 int igGetKeyPressedAmount (int key_index, float repeat_delay, float rate);
1709 bool igIsMouseDown (int button);
1710 bool igIsAnyMouseDown ();
1711 bool igIsMouseClicked (int button, bool repeat);
1712 bool igIsMouseDoubleClicked (int button);
1713 bool igIsMouseReleased (int button);
1714 bool igIsMouseDragging (int button, float lock_threshold);
1715 bool igIsMouseHoveringRect (const ImVec2 r_min, const ImVec2 r_max, bool clip);
1716 bool igIsMousePosValid (const(ImVec2)* mouse_pos);
1717 ImVec2 igGetMousePos ();
1718 ImVec2 igGetMousePosOnOpeningCurrentPopup ();
1719 ImVec2 igGetMouseDragDelta (int button, float lock_threshold);
1720 void igResetMouseDragDelta (int button);
1721 ImGuiMouseCursor igGetMouseCursor ();
1722 void igSetMouseCursor (ImGuiMouseCursor type);
1723 void igCaptureKeyboardFromApp (bool want_capture_keyboard_value);
1724 void igCaptureMouseFromApp (bool want_capture_mouse_value);
1725 const(char)* igGetClipboardText ();
1726 void igSetClipboardText (const(char)* text);
1727 void igLoadIniSettingsFromDisk (const(char)* ini_filename);
1728 void igLoadIniSettingsFromMemory (const(char)* ini_data, size_t ini_size);
1729 void igSaveIniSettingsToDisk (const(char)* ini_filename);
1730 const(char)* igSaveIniSettingsToMemory (size_t* out_ini_size);
1731 void igSetAllocatorFunctions (void* function (size_t sz, void* user_data) alloc_func, void function (void* ptr, void* user_data) free_func, void* user_data);
1732 void* igMemAlloc (size_t size);
1733 void igMemFree (void* ptr);
1734 ImGuiStyle* ImGuiStyle_ImGuiStyle ();
1735 void ImGuiStyle_destroy (ImGuiStyle* self);
1736 void ImGuiStyle_ScaleAllSizes (ImGuiStyle* self, float scale_factor);
1737 void ImGuiIO_AddInputCharacter (ImGuiIO* self, uint c);
1738 void ImGuiIO_AddInputCharactersUTF8 (ImGuiIO* self, const(char)* str);
1739 void ImGuiIO_ClearInputCharacters (ImGuiIO* self);
1740 ImGuiIO* ImGuiIO_ImGuiIO ();
1741 void ImGuiIO_destroy (ImGuiIO* self);
1742 ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData ();
1743 void ImGuiInputTextCallbackData_destroy (ImGuiInputTextCallbackData* self);
1744 void ImGuiInputTextCallbackData_DeleteChars (ImGuiInputTextCallbackData* self, int pos, int bytes_count);
1745 void ImGuiInputTextCallbackData_InsertChars (ImGuiInputTextCallbackData* self, int pos, const(char)* text, const(char)* text_end);
1746 bool ImGuiInputTextCallbackData_HasSelection (ImGuiInputTextCallbackData* self);
1747 ImGuiPayload* ImGuiPayload_ImGuiPayload ();
1748 void ImGuiPayload_destroy (ImGuiPayload* self);
1749 void ImGuiPayload_Clear (ImGuiPayload* self);
1750 bool ImGuiPayload_IsDataType (ImGuiPayload* self, const(char)* type);
1751 bool ImGuiPayload_IsPreview (ImGuiPayload* self);
1752 bool ImGuiPayload_IsDelivery (ImGuiPayload* self);
1753 ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame ();
1754 void ImGuiOnceUponAFrame_destroy (ImGuiOnceUponAFrame* self);
1755 ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter (const(char)* default_filter);
1756 void ImGuiTextFilter_destroy (ImGuiTextFilter* self);
1757 bool ImGuiTextFilter_Draw (ImGuiTextFilter* self, const(char)* label, float width);
1758 bool ImGuiTextFilter_PassFilter (ImGuiTextFilter* self, const(char)* text, const(char)* text_end);
1759 void ImGuiTextFilter_Build (ImGuiTextFilter* self);
1760 void ImGuiTextFilter_Clear (ImGuiTextFilter* self);
1761 bool ImGuiTextFilter_IsActive (ImGuiTextFilter* self);
1762 ImGuiTextRange* ImGuiTextRange_ImGuiTextRange ();
1763 void ImGuiTextRange_destroy (ImGuiTextRange* self);
1764 ImGuiTextRange* ImGuiTextRange_ImGuiTextRangeStr (const(char)* _b, const(char)* _e);
1765 bool ImGuiTextRange_empty (ImGuiTextRange* self);
1766 void ImGuiTextRange_split (ImGuiTextRange* self, char separator, ImVector_ImGuiTextRange* out_);
1767 ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer ();
1768 void ImGuiTextBuffer_destroy (ImGuiTextBuffer* self);
1769 const(char)* ImGuiTextBuffer_begin (ImGuiTextBuffer* self);
1770 const(char)* ImGuiTextBuffer_end (ImGuiTextBuffer* self);
1771 int ImGuiTextBuffer_size (ImGuiTextBuffer* self);
1772 bool ImGuiTextBuffer_empty (ImGuiTextBuffer* self);
1773 void ImGuiTextBuffer_clear (ImGuiTextBuffer* self);
1774 void ImGuiTextBuffer_reserve (ImGuiTextBuffer* self, int capacity);
1775 const(char)* ImGuiTextBuffer_c_str (ImGuiTextBuffer* self);
1776 void ImGuiTextBuffer_append (ImGuiTextBuffer* self, const(char)* str, const(char)* str_end);
1777 void ImGuiTextBuffer_appendfv (ImGuiTextBuffer* self, const(char)* fmt, va_list args);
1778 ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairInt (ImGuiID _key, int _val_i);
1779 void ImGuiStoragePair_destroy (ImGuiStoragePair* self);
1780 ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairFloat (ImGuiID _key, float _val_f);
1781 ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairPtr (ImGuiID _key, void* _val_p);
1782 void ImGuiStorage_Clear (ImGuiStorage* self);
1783 int ImGuiStorage_GetInt (ImGuiStorage* self, ImGuiID key, int default_val);
1784 void ImGuiStorage_SetInt (ImGuiStorage* self, ImGuiID key, int val);
1785 bool ImGuiStorage_GetBool (ImGuiStorage* self, ImGuiID key, bool default_val);
1786 void ImGuiStorage_SetBool (ImGuiStorage* self, ImGuiID key, bool val);
1787 float ImGuiStorage_GetFloat (ImGuiStorage* self, ImGuiID key, float default_val);
1788 void ImGuiStorage_SetFloat (ImGuiStorage* self, ImGuiID key, float val);
1789 void* ImGuiStorage_GetVoidPtr (ImGuiStorage* self, ImGuiID key);
1790 void ImGuiStorage_SetVoidPtr (ImGuiStorage* self, ImGuiID key, void* val);
1791 int* ImGuiStorage_GetIntRef (ImGuiStorage* self, ImGuiID key, int default_val);
1792 bool* ImGuiStorage_GetBoolRef (ImGuiStorage* self, ImGuiID key, bool default_val);
1793 float* ImGuiStorage_GetFloatRef (ImGuiStorage* self, ImGuiID key, float default_val);
1794 void** ImGuiStorage_GetVoidPtrRef (ImGuiStorage* self, ImGuiID key, void* default_val);
1795 void ImGuiStorage_SetAllInt (ImGuiStorage* self, int val);
1796 void ImGuiStorage_BuildSortByKey (ImGuiStorage* self);
1797 ImGuiListClipper* ImGuiListClipper_ImGuiListClipper (int items_count, float items_height);
1798 void ImGuiListClipper_destroy (ImGuiListClipper* self);
1799 bool ImGuiListClipper_Step (ImGuiListClipper* self);
1800 void ImGuiListClipper_Begin (ImGuiListClipper* self, int items_count, float items_height);
1801 void ImGuiListClipper_End (ImGuiListClipper* self);
1802 ImColor* ImColor_ImColor ();
1803 void ImColor_destroy (ImColor* self);
1804 ImColor* ImColor_ImColorInt (int r, int g, int b, int a);
1805 ImColor* ImColor_ImColorU32 (ImU32 rgba);
1806 ImColor* ImColor_ImColorFloat (float r, float g, float b, float a);
1807 ImColor* ImColor_ImColorVec4 (const ImVec4 col);
1808 void ImColor_SetHSV (ImColor* self, float h, float s, float v, float a);
1809 ImColor ImColor_HSV (ImColor* self, float h, float s, float v, float a);
1810 ImDrawCmd* ImDrawCmd_ImDrawCmd ();
1811 void ImDrawCmd_destroy (ImDrawCmd* self);
1812 ImDrawListSplitter* ImDrawListSplitter_ImDrawListSplitter ();
1813 void ImDrawListSplitter_destroy (ImDrawListSplitter* self);
1814 void ImDrawListSplitter_Clear (ImDrawListSplitter* self);
1815 void ImDrawListSplitter_ClearFreeMemory (ImDrawListSplitter* self);
1816 void ImDrawListSplitter_Split (ImDrawListSplitter* self, ImDrawList* draw_list, int count);
1817 void ImDrawListSplitter_Merge (ImDrawListSplitter* self, ImDrawList* draw_list);
1818 void ImDrawListSplitter_SetCurrentChannel (ImDrawListSplitter* self, ImDrawList* draw_list, int channel_idx);
1819 ImDrawList* ImDrawList_ImDrawList (const(ImDrawListSharedData)* shared_data);
1820 void ImDrawList_destroy (ImDrawList* self);
1821 void ImDrawList_PushClipRect (ImDrawList* self, ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect);
1822 void ImDrawList_PushClipRectFullScreen (ImDrawList* self);
1823 void ImDrawList_PopClipRect (ImDrawList* self);
1824 void ImDrawList_PushTextureID (ImDrawList* self, ImTextureID texture_id);
1825 void ImDrawList_PopTextureID (ImDrawList* self);
1826 ImVec2 ImDrawList_GetClipRectMin (ImDrawList* self);
1827 ImVec2 ImDrawList_GetClipRectMax (ImDrawList* self);
1828 void ImDrawList_AddLine (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, ImU32 col, float thickness);
1829 void ImDrawList_AddRect (ImDrawList* self, const ImVec2 p_min, const ImVec2 p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners, float thickness);
1830 void ImDrawList_AddRectFilled (ImDrawList* self, const ImVec2 p_min, const ImVec2 p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners);
1831 void ImDrawList_AddRectFilledMultiColor (ImDrawList* self, const ImVec2 p_min, const ImVec2 p_max, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left);
1832 void ImDrawList_AddQuad (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, const ImVec2 p4, ImU32 col, float thickness);
1833 void ImDrawList_AddQuadFilled (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, const ImVec2 p4, ImU32 col);
1834 void ImDrawList_AddTriangle (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, ImU32 col, float thickness);
1835 void ImDrawList_AddTriangleFilled (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, ImU32 col);
1836 void ImDrawList_AddCircle (ImDrawList* self, const ImVec2 center, float radius, ImU32 col, int num_segments, float thickness);
1837 void ImDrawList_AddCircleFilled (ImDrawList* self, const ImVec2 center, float radius, ImU32 col, int num_segments);
1838 void ImDrawList_AddText (ImDrawList* self, const ImVec2 pos, ImU32 col, const(char)* text_begin, const(char)* text_end);
1839 void ImDrawList_AddTextFontPtr (ImDrawList* self, const(ImFont)* font, float font_size, const ImVec2 pos, ImU32 col, const(char)* text_begin, const(char)* text_end, float wrap_width, const(ImVec4)* cpu_fine_clip_rect);
1840 void ImDrawList_AddPolyline (ImDrawList* self, const(ImVec2)* points, int num_points, ImU32 col, bool closed, float thickness);
1841 void ImDrawList_AddConvexPolyFilled (ImDrawList* self, const(ImVec2)* points, int num_points, ImU32 col);
1842 void ImDrawList_AddBezierCurve (ImDrawList* self, const ImVec2 pos0, const ImVec2 cp0, const ImVec2 cp1, const ImVec2 pos1, ImU32 col, float thickness, int num_segments);
1843 void ImDrawList_AddImage (ImDrawList* self, ImTextureID user_texture_id, const ImVec2 p_min, const ImVec2 p_max, const ImVec2 uv_min, const ImVec2 uv_max, ImU32 col);
1844 void ImDrawList_AddImageQuad (ImDrawList* self, ImTextureID user_texture_id, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, const ImVec2 p4, const ImVec2 uv1, const ImVec2 uv2, const ImVec2 uv3, const ImVec2 uv4, ImU32 col);
1845 void ImDrawList_AddImageRounded (ImDrawList* self, ImTextureID user_texture_id, const ImVec2 p_min, const ImVec2 p_max, const ImVec2 uv_min, const ImVec2 uv_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners);
1846 void ImDrawList_PathClear (ImDrawList* self);
1847 void ImDrawList_PathLineTo (ImDrawList* self, const ImVec2 pos);
1848 void ImDrawList_PathLineToMergeDuplicate (ImDrawList* self, const ImVec2 pos);
1849 void ImDrawList_PathFillConvex (ImDrawList* self, ImU32 col);
1850 void ImDrawList_PathStroke (ImDrawList* self, ImU32 col, bool closed, float thickness);
1851 void ImDrawList_PathArcTo (ImDrawList* self, const ImVec2 center, float radius, float a_min, float a_max, int num_segments);
1852 void ImDrawList_PathArcToFast (ImDrawList* self, const ImVec2 center, float radius, int a_min_of_12, int a_max_of_12);
1853 void ImDrawList_PathBezierCurveTo (ImDrawList* self, const ImVec2 p1, const ImVec2 p2, const ImVec2 p3, int num_segments);
1854 void ImDrawList_PathRect (ImDrawList* self, const ImVec2 rect_min, const ImVec2 rect_max, float rounding, ImDrawCornerFlags rounding_corners);
1855 void ImDrawList_AddCallback (ImDrawList* self, ImDrawCallback callback, void* callback_data);
1856 void ImDrawList_AddDrawCmd (ImDrawList* self);
1857 ImDrawList* ImDrawList_CloneOutput (ImDrawList* self);
1858 void ImDrawList_ChannelsSplit (ImDrawList* self, int count);
1859 void ImDrawList_ChannelsMerge (ImDrawList* self);
1860 void ImDrawList_ChannelsSetCurrent (ImDrawList* self, int n);
1861 void ImDrawList_Clear (ImDrawList* self);
1862 void ImDrawList_ClearFreeMemory (ImDrawList* self);
1863 void ImDrawList_PrimReserve (ImDrawList* self, int idx_count, int vtx_count);
1864 void ImDrawList_PrimRect (ImDrawList* self, const ImVec2 a, const ImVec2 b, ImU32 col);
1865 void ImDrawList_PrimRectUV (ImDrawList* self, const ImVec2 a, const ImVec2 b, const ImVec2 uv_a, const ImVec2 uv_b, ImU32 col);
1866 void ImDrawList_PrimQuadUV (ImDrawList* self, const ImVec2 a, const ImVec2 b, const ImVec2 c, const ImVec2 d, const ImVec2 uv_a, const ImVec2 uv_b, const ImVec2 uv_c, const ImVec2 uv_d, ImU32 col);
1867 void ImDrawList_PrimWriteVtx (ImDrawList* self, const ImVec2 pos, const ImVec2 uv, ImU32 col);
1868 void ImDrawList_PrimWriteIdx (ImDrawList* self, ImDrawIdx idx);
1869 void ImDrawList_PrimVtx (ImDrawList* self, const ImVec2 pos, const ImVec2 uv, ImU32 col);
1870 void ImDrawList_UpdateClipRect (ImDrawList* self);
1871 void ImDrawList_UpdateTextureID (ImDrawList* self);
1872 ImDrawData* ImDrawData_ImDrawData ();
1873 void ImDrawData_destroy (ImDrawData* self);
1874 void ImDrawData_Clear (ImDrawData* self);
1875 void ImDrawData_DeIndexAllBuffers (ImDrawData* self);
1876 void ImDrawData_ScaleClipRects (ImDrawData* self, const ImVec2 fb_scale);
1877 ImFontConfig* ImFontConfig_ImFontConfig ();
1878 void ImFontConfig_destroy (ImFontConfig* self);
1879 ImFontGlyphRangesBuilder* ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder ();
1880 void ImFontGlyphRangesBuilder_destroy (ImFontGlyphRangesBuilder* self);
1881 void ImFontGlyphRangesBuilder_Clear (ImFontGlyphRangesBuilder* self);
1882 bool ImFontGlyphRangesBuilder_GetBit (ImFontGlyphRangesBuilder* self, int n);
1883 void ImFontGlyphRangesBuilder_SetBit (ImFontGlyphRangesBuilder* self, int n);
1884 void ImFontGlyphRangesBuilder_AddChar (ImFontGlyphRangesBuilder* self, ImWchar c);
1885 void ImFontGlyphRangesBuilder_AddText (ImFontGlyphRangesBuilder* self, const(char)* text, const(char)* text_end);
1886 void ImFontGlyphRangesBuilder_AddRanges (ImFontGlyphRangesBuilder* self, const(ImWchar)* ranges);
1887 void ImFontGlyphRangesBuilder_BuildRanges (ImFontGlyphRangesBuilder* self, ImVector_ImWchar* out_ranges);
1888 ImFontAtlasCustomRect* ImFontAtlasCustomRect_ImFontAtlasCustomRect ();
1889 void ImFontAtlasCustomRect_destroy (ImFontAtlasCustomRect* self);
1890 bool ImFontAtlasCustomRect_IsPacked (ImFontAtlasCustomRect* self);
1891 ImFontAtlas* ImFontAtlas_ImFontAtlas ();
1892 void ImFontAtlas_destroy (ImFontAtlas* self);
1893 ImFont* ImFontAtlas_AddFont (ImFontAtlas* self, const(ImFontConfig)* font_cfg);
1894 ImFont* ImFontAtlas_AddFontDefault (ImFontAtlas* self, const(ImFontConfig)* font_cfg);
1895 ImFont* ImFontAtlas_AddFontFromFileTTF (ImFontAtlas* self, const(char)* filename, float size_pixels, const(ImFontConfig)* font_cfg, const(ImWchar)* glyph_ranges);
1896 ImFont* ImFontAtlas_AddFontFromMemoryTTF (ImFontAtlas* self, void* font_data, int font_size, float size_pixels, const(ImFontConfig)* font_cfg, const(ImWchar)* glyph_ranges);
1897 ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF (ImFontAtlas* self, const(void)* compressed_font_data, int compressed_font_size, float size_pixels, const(ImFontConfig)* font_cfg, const(ImWchar)* glyph_ranges);
1898 ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF (ImFontAtlas* self, const(char)* compressed_font_data_base85, float size_pixels, const(ImFontConfig)* font_cfg, const(ImWchar)* glyph_ranges);
1899 void ImFontAtlas_ClearInputData (ImFontAtlas* self);
1900 void ImFontAtlas_ClearTexData (ImFontAtlas* self);
1901 void ImFontAtlas_ClearFonts (ImFontAtlas* self);
1902 void ImFontAtlas_Clear (ImFontAtlas* self);
1903 bool ImFontAtlas_Build (ImFontAtlas* self);
1904 void ImFontAtlas_GetTexDataAsAlpha8 (ImFontAtlas* self, ubyte** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
1905 void ImFontAtlas_GetTexDataAsRGBA32 (ImFontAtlas* self, ubyte** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
1906 bool ImFontAtlas_IsBuilt (ImFontAtlas* self);
1907 void ImFontAtlas_SetTexID (ImFontAtlas* self, ImTextureID id);
1908 const(ImWchar)* ImFontAtlas_GetGlyphRangesDefault (ImFontAtlas* self);
1909 const(ImWchar)* ImFontAtlas_GetGlyphRangesKorean (ImFontAtlas* self);
1910 const(ImWchar)* ImFontAtlas_GetGlyphRangesJapanese (ImFontAtlas* self);
1911 const(ImWchar)* ImFontAtlas_GetGlyphRangesChineseFull (ImFontAtlas* self);
1912 const(ImWchar)* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon (ImFontAtlas* self);
1913 const(ImWchar)* ImFontAtlas_GetGlyphRangesCyrillic (ImFontAtlas* self);
1914 const(ImWchar)* ImFontAtlas_GetGlyphRangesThai (ImFontAtlas* self);
1915 const(ImWchar)* ImFontAtlas_GetGlyphRangesVietnamese (ImFontAtlas* self);
1916 int ImFontAtlas_AddCustomRectRegular (ImFontAtlas* self, uint id, int width, int height);
1917 int ImFontAtlas_AddCustomRectFontGlyph (ImFontAtlas* self, ImFont* font, ImWchar id, int width, int height, float advance_x, const ImVec2 offset);
1918 const(ImFontAtlasCustomRect)* ImFontAtlas_GetCustomRectByIndex (ImFontAtlas* self, int index);
1919 void ImFontAtlas_CalcCustomRectUV (ImFontAtlas* self, const(ImFontAtlasCustomRect)* rect, ImVec2* out_uv_min, ImVec2* out_uv_max);
1920 bool ImFontAtlas_GetMouseCursorTexData (ImFontAtlas* self, ImGuiMouseCursor cursor, ImVec2* out_offset, ImVec2* out_size, ref ImVec2[2] out_uv_border, ref ImVec2[2] out_uv_fill);
1921 ImFont* ImFont_ImFont ();
1922 void ImFont_destroy (ImFont* self);
1923 const(ImFontGlyph)* ImFont_FindGlyph (ImFont* self, ImWchar c);
1924 const(ImFontGlyph)* ImFont_FindGlyphNoFallback (ImFont* self, ImWchar c);
1925 float ImFont_GetCharAdvance (ImFont* self, ImWchar c);
1926 bool ImFont_IsLoaded (ImFont* self);
1927 const(char)* ImFont_GetDebugName (ImFont* self);
1928 ImVec2 ImFont_CalcTextSizeA (ImFont* self, float size, float max_width, float wrap_width, const(char)* text_begin, const(char)* text_end, const(char*)* remaining);
1929 const(char)* ImFont_CalcWordWrapPositionA (ImFont* self, float scale, const(char)* text, const(char)* text_end, float wrap_width);
1930 void ImFont_RenderChar (ImFont* self, ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, ImWchar c);
1931 void ImFont_RenderText (ImFont* self, ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4 clip_rect, const(char)* text_begin, const(char)* text_end, float wrap_width, bool cpu_fine_clip);
1932 void ImFont_BuildLookupTable (ImFont* self);
1933 void ImFont_ClearOutputData (ImFont* self);
1934 void ImFont_GrowIndex (ImFont* self, int new_size);
1935 void ImFont_AddGlyph (ImFont* self, ImWchar c, float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x);
1936 void ImFont_AddRemapChar (ImFont* self, ImWchar dst, ImWchar src, bool overwrite_dst);
1937 void ImFont_SetFallbackChar (ImFont* self, ImWchar c);
1938 void igGetWindowPos_nonUDT (ImVec2* pOut);
1939 ImVec2_Simple igGetWindowPos_nonUDT2 ();
1940 void igGetWindowSize_nonUDT (ImVec2* pOut);
1941 ImVec2_Simple igGetWindowSize_nonUDT2 ();
1942 void igGetContentRegionMax_nonUDT (ImVec2* pOut);
1943 ImVec2_Simple igGetContentRegionMax_nonUDT2 ();
1944 void igGetContentRegionAvail_nonUDT (ImVec2* pOut);
1945 ImVec2_Simple igGetContentRegionAvail_nonUDT2 ();
1946 void igGetWindowContentRegionMin_nonUDT (ImVec2* pOut);
1947 ImVec2_Simple igGetWindowContentRegionMin_nonUDT2 ();
1948 void igGetWindowContentRegionMax_nonUDT (ImVec2* pOut);
1949 ImVec2_Simple igGetWindowContentRegionMax_nonUDT2 ();
1950 void igGetFontTexUvWhitePixel_nonUDT (ImVec2* pOut);
1951 ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2 ();
1952 void igGetCursorPos_nonUDT (ImVec2* pOut);
1953 ImVec2_Simple igGetCursorPos_nonUDT2 ();
1954 void igGetCursorStartPos_nonUDT (ImVec2* pOut);
1955 ImVec2_Simple igGetCursorStartPos_nonUDT2 ();
1956 void igGetCursorScreenPos_nonUDT (ImVec2* pOut);
1957 ImVec2_Simple igGetCursorScreenPos_nonUDT2 ();
1958 void igGetItemRectMin_nonUDT (ImVec2* pOut);
1959 ImVec2_Simple igGetItemRectMin_nonUDT2 ();
1960 void igGetItemRectMax_nonUDT (ImVec2* pOut);
1961 ImVec2_Simple igGetItemRectMax_nonUDT2 ();
1962 void igGetItemRectSize_nonUDT (ImVec2* pOut);
1963 ImVec2_Simple igGetItemRectSize_nonUDT2 ();
1964 void igCalcTextSize_nonUDT (ImVec2* pOut, const(char)* text, const(char)* text_end, bool hide_text_after_double_hash, float wrap_width);
1965 ImVec2_Simple igCalcTextSize_nonUDT2 (const(char)* text, const(char)* text_end, bool hide_text_after_double_hash, float wrap_width);
1966 void igColorConvertU32ToFloat4_nonUDT (ImVec4* pOut, ImU32 in_);
1967 ImVec4_Simple igColorConvertU32ToFloat4_nonUDT2 (ImU32 in_);
1968 void igGetMousePos_nonUDT (ImVec2* pOut);
1969 ImVec2_Simple igGetMousePos_nonUDT2 ();
1970 void igGetMousePosOnOpeningCurrentPopup_nonUDT (ImVec2* pOut);
1971 ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2 ();
1972 void igGetMouseDragDelta_nonUDT (ImVec2* pOut, int button, float lock_threshold);
1973 ImVec2_Simple igGetMouseDragDelta_nonUDT2 (int button, float lock_threshold);
1974 void ImColor_HSV_nonUDT (ImColor* pOut, ImColor* self, float h, float s, float v, float a);
1975 ImColor_Simple ImColor_HSV_nonUDT2 (ImColor* self, float h, float s, float v, float a);
1976 void ImDrawList_GetClipRectMin_nonUDT (ImVec2* pOut, ImDrawList* self);
1977 ImVec2_Simple ImDrawList_GetClipRectMin_nonUDT2 (ImDrawList* self);
1978 void ImDrawList_GetClipRectMax_nonUDT (ImVec2* pOut, ImDrawList* self);
1979 ImVec2_Simple ImDrawList_GetClipRectMax_nonUDT2 (ImDrawList* self);
1980 void ImFont_CalcTextSizeA_nonUDT (ImVec2* pOut, ImFont* self, float size, float max_width, float wrap_width, const(char)* text_begin, const(char)* text_end, const(char*)* remaining);
1981 ImVec2_Simple ImFont_CalcTextSizeA_nonUDT2 (ImFont* self, float size, float max_width, float wrap_width, const(char)* text_begin, const(char)* text_end, const(char*)* remaining);
1982 
1983 /////////////////////////hand written functions
1984 //no LogTextV
1985 void igLogText (const(char)* fmt, ...);
1986 //no appendfV
1987 void ImGuiTextBuffer_appendf (ImGuiTextBuffer* buffer, const(char)* fmt, ...);
1988 //for getting FLT_MAX in bindings
1989 float igGET_FLT_MAX ();
1990 //not const args from & to *
1991 void igColorConvertRGBtoHSV (float r, float g, float b, float* out_h, float* out_s, float* out_v);
1992 void igColorConvertHSVtoRGB (float h, float s, float v, float* out_r, float* out_g, float* out_b);
1993 
1994 ImVector_ImWchar* ImVector_ImWchar_create ();
1995 void ImVector_ImWchar_destroy (ImVector_ImWchar* self);
1996 void ImVector_ImWchar_Init (ImVector_ImWchar* p);
1997 void ImVector_ImWchar_UnInit (ImVector_ImWchar* p);
1998 //CIMGUI_INCLUDED