1 /++
2 This is a D wrapper around the C cimgui library (Dear ImGui).
3 It provides D bindings for the Dear ImGui immediate mode GUI library.
4 The bindings are generated using importC and manually curated.
5 
6 Features:
7 - Full ImGui API coverage
8 - @trusted (unsafe/user-checked) wrapper functions
9 - Uses importC to directly interface with C code - @system (unsafe) functions by default
10 - Preserves ImGui's original style and naming conventions
11 - Handles memory management and context safety
12 +/
13 
14 module imgui;
15 public import imgui.dcimgui;
16 
17 /++
18 
19 Index of this file:
20 // [SECTION] Header mess
21 // [SECTION] Forward declarations and basic types
22 // [SECTION] Dear ImGui end-user API functions
23 // [SECTION] Flags & Enumerations
24 // [SECTION] Tables API flags and structures (ImGuiTableFlags, ImGuiTableColumnFlags, ImGuiTableRowFlags, ImGuiTableBgTarget, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs)
25 // [SECTION] Helpers: Debug log, Memory allocations macros, ImVector<>
26 // [SECTION] ImGuiStyle
27 // [SECTION] ImGuiIO
28 // [SECTION] Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload)
29 // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, Math Operators, ImColor)
30 // [SECTION] Multi-Select API flags and structures (ImGuiMultiSelectFlags, ImGuiMultiSelectIO, ImGuiSelectionRequest, ImGuiSelectionBasicStorage, ImGuiSelectionExternalStorage)
31 // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawListFlags, ImDrawList, ImDrawData)
32 // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont)
33 // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport)
34 // [SECTION] ImGuiPlatformIO + other Platform Dependent Interfaces (ImGuiPlatformImeData)
35 // [SECTION] Obsolete functions and types
36 
37 +/
38 
39 /// Context creation and access
40 /// - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts.
41 /// - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()
42 ///   for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for details.
43 scope ImGuiContext_t* CreateContext(scope const(ImFontAtlas_t)* shared_font_atlas) @trusted
44 {
45     return igCreateContext(cast(ImFontAtlas_t*) shared_font_atlas);
46 }
47 
48 void DestroyContext(scope ImGuiContext_t* ctx) @trusted
49 {
50     igDestroyContext(ctx);
51 }
52 
53 scope ImGuiContext_t* GetCurrentContext() @trusted
54 {
55     return igGetCurrentContext();
56 }
57 
58 void SetCurrentContext(scope ImGuiContext_t* ctx) @trusted
59 {
60     igSetCurrentContext(ctx);
61 }
62 
63 /// Main
64 
65 /// access the ImGuiIO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)
66 scope ImGuiIO_t* GetIO() @trusted
67 {
68     return igGetIO();
69 }
70 /// access the ImGuiPlatformIO structure (mostly hooks/functions to connect to platform/renderer and OS Clipboard, IME etc.)
71 scope ImGuiPlatformIO_t* GetPlatformIO() @trusted
72 {
73     return igGetPlatformIO();
74 }
75 /// access the Style structure (colors, sizes). Always use PushStyleColor(), PushStyleVar() to modify style mid-frame!
76 scope ImGuiStyle_t* GetStyle() @trusted
77 {
78     return igGetStyle();
79 }
80 /// start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame().
81 void NewFrame() @trusted
82 {
83     igNewFrame();
84 }
85 /// ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without Render()...
86 /// but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all!
87 void EndFrame() @trusted
88 {
89     igEndFrame();
90 }
91 /// ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData().
92 void Render() @trusted
93 {
94     igRender();
95 }
96 /// valid after Render() and until the next call to NewFrame(). this is what you have to render.
97 scope ImDrawData_t* GetDrawData() @trusted
98 {
99     return igGetDrawData();
100 }
101 
102 /// Demo, Debug, Information
103 
104 /// create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
105 void ShowDemoWindow(scope bool* p_open) @trusted
106 {
107     igShowDemoWindow(p_open);
108 }
109 /// create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc.
110 void ShowMetricsWindow(scope bool* p_open) @trusted
111 {
112     igShowMetricsWindow(p_open);
113 }
114 /// create Debug Log window. display a simplified log of important dear imgui events.
115 void ShowDebugLogWindow(scope bool* p_open) @trusted
116 {
117     igShowDebugLogWindow(p_open);
118 }
119 /// Implied p_open = null
120 void ShowIDStackToolWindow() @trusted
121 {
122     igShowIDStackToolWindow();
123 }
124 /// create Stack Tool window. hover items with mouse to query information about the source of their unique ID.
125 void ShowIDStackToolWindowEx(scope bool* p_open) @trusted
126 {
127     igShowIDStackToolWindowEx(p_open);
128 }
129 /// create About window. display Dear ImGui version, credits and build/system information.
130 void ShowAboutWindow(scope bool* p_open) @trusted
131 {
132     igShowAboutWindow(p_open);
133 }
134 /// add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style)
135 void ShowStyleEditor(scope ImGuiStyle_t* reference) @trusted
136 {
137     igShowStyleEditor(reference);
138 }
139 /// add style selector block (not a window), essentially a combo listing the default styles.
140 bool ShowStyleSelector(scope const(char)* label) @trusted
141 {
142     return igShowStyleSelector(label);
143 }
144 /// add font selector block (not a window), essentially a combo listing the loaded fonts.
145 void ShowFontSelector(scope const(char)* label) @trusted
146 {
147     igShowFontSelector(label);
148 }
149 /// add basic help/info block (not a window): how to manipulate ImGui as an end-user (mouse/keyboard controls).
150 void ShowUserGuide() @trusted
151 {
152     igShowUserGuide();
153 }
154 /// get the compiled version string e.g. "1.90" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp)
155 scope const(char)* GetVersion() @trusted
156 {
157     return igGetVersion();
158 }
159 
160 /// Styles
161 
162 /// new, recommended style (default)
163 void StyleColorsDark(scope ImGuiStyle_t* dst) @trusted
164 {
165     igStyleColorsDark(dst);
166 }
167 /// best used with borders and a custom, thicker font
168 void StyleColorsLight(scope ImGuiStyle_t* dst) @trusted
169 {
170     igStyleColorsLight(dst);
171 }
172 /// classic imgui style
173 void StyleColorsClassic(scope ImGuiStyle_t* dst) @trusted
174 {
175     igStyleColorsClassic(dst);
176 }
177 
178 /// Windows
179 
180 /// - Begin() = push window to the stack and start appending to it. End() = pop window from the stack.
181 /// - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window,
182 ///   which clicking will set the boolean to false when clicked.
183 /// - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times.
184 ///   Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin().
185 /// - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
186 ///   anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!
187 ///   [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
188 ///    such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
189 ///    BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
190 /// - Note that the bottom of window stack always contains a window called "Debug".
191 bool Begin(scope const(char)* name, scope bool* p_open, int flags) @trusted
192 {
193     return igBegin(name, p_open, flags);
194 }
195 
196 void End() @trusted
197 {
198     igEnd();
199 }
200 
201 /// Child Windows
202 
203 /// - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.
204 /// - Before 1.90 (November 2023), the "ImGuiChildFlags child_flags = 0" parameter was "bool border = false".
205 ///   This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Borders == true.
206 ///   Consider updating your old code:
207 ///      BeginChild("Name", size, false)   -> Begin("Name", size, 0); or Begin("Name", size, ImGuiChildFlags_None);
208 ///      BeginChild("Name", size, true)    -> Begin("Name", size, ImGuiChildFlags_Borders);
209 /// - Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)):
210 ///     == 0.0f: use remaining parent window size for this axis.
211 ///      > 0.0f: use specified size for this axis.
212 ///      < 0.0f: right/bottom-align to specified distance from available content boundaries.
213 /// - Specifying ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY makes the sizing automatic based on child contents.
214 ///   Combining both ImGuiChildFlags_AutoResizeX _and_ ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended.
215 /// - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
216 ///   anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value.
217 ///   [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
218 ///    such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
219 ///    BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
220 bool BeginChild(scope const(char)* str_id, const ImVec2_t size, int child_flags, int window_flags) @trusted
221 {
222     return igBeginChild(str_id, size, child_flags, window_flags);
223 }
224 
225 bool BeginChildID(uint id, const ImVec2_t size, int child_flags, int window_flags) @trusted
226 {
227     return igBeginChildID(id, size, child_flags, window_flags);
228 }
229 
230 void EndChild() @trusted
231 {
232     igEndChild();
233 }
234 
235 /// Windows Utilities
236 /// - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into.
237 
238 bool IsWindowAppearing() @trusted
239 {
240     return igIsWindowAppearing();
241 }
242 
243 bool IsWindowCollapsed() @trusted
244 {
245     return igIsWindowCollapsed();
246 }
247 
248 bool IsWindowFocused(int flags) @trusted
249 {
250     return igIsWindowFocused(flags);
251 }
252 
253 bool IsWindowHovered(int flags) @trusted
254 {
255     return igIsWindowHovered(flags);
256 }
257 
258 scope const(ImDrawList_t)* GetWindowDrawList() @trusted
259 {
260     return igGetWindowDrawList();
261 }
262 
263 const(ImVec2_t) GetWindowPos() @trusted
264 {
265     return igGetWindowPos();
266 }
267 
268 const(ImVec2_t) GetWindowSize() @trusted
269 {
270     return igGetWindowSize();
271 }
272 
273 float GetWindowWidth() @trusted
274 {
275     return igGetWindowWidth();
276 }
277 
278 float GetWindowHeight() @trusted
279 {
280     return igGetWindowHeight();
281 }
282 /// Window manipulation
283 /// - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin).
284 void SetNextWindowPos(const(ImVec2_t) pos, int cond) @trusted
285 {
286     igSetNextWindowPos(pos, cond);
287 }
288 
289 void SetNextWindowPosEx(const(ImVec2_t) pos, int cond, const ImVec2_t pivot) @trusted
290 {
291     igSetNextWindowPosEx(pos, cond, pivot);
292 }
293 
294 void SetNextWindowSize(const(ImVec2_t) size, int cond) @trusted
295 {
296     igSetNextWindowSize(size, cond);
297 }
298 
299 extern (C) void SetNextWindowSizeConstraints(const(ImVec2_t) size_min, const ImVec2_t size_max, void function(
300         scope ImGuiSizeCallbackData_t* data) custom_callback, scope void* custom_callback_data) @trusted
301 {
302     igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data);
303 }
304 
305 void SetNextWindowContentSize(const(ImVec2_t) size) @trusted
306 {
307     igSetNextWindowContentSize(size);
308 }
309 
310 void SetNextWindowCollapsed(bool collapsed, int cond) @trusted
311 {
312     igSetNextWindowCollapsed(collapsed, cond);
313 }
314 
315 void SetNextWindowFocus() @trusted
316 {
317     igSetNextWindowFocus();
318 }
319 
320 void SetNextWindowScroll(const(ImVec2_t) scroll) @trusted
321 {
322     igSetNextWindowScroll(scroll);
323 }
324 
325 void SetNextWindowBgAlpha(float alpha) @trusted
326 {
327     igSetNextWindowBgAlpha(alpha);
328 }
329 
330 void SetWindowPos(const(ImVec2_t) pos, int cond) @trusted
331 {
332     igSetWindowPos(pos, cond);
333 }
334 
335 void SetWindowSize(const(ImVec2_t) size, int cond) @trusted
336 {
337     igSetWindowSize(size, cond);
338 }
339 
340 void SetWindowCollapsed(bool collapsed, int cond) @trusted
341 {
342     igSetWindowCollapsed(collapsed, cond);
343 }
344 
345 void SetWindowFocus() @trusted
346 {
347     igSetWindowFocus();
348 }
349 
350 void SetWindowFontScale(float scale) @trusted
351 {
352     igSetWindowFontScale(scale);
353 }
354 
355 void SetWindowPosStr(scope const(char)* name, const ImVec2_t pos, int cond) @trusted
356 {
357     igSetWindowPosStr(name, pos, cond);
358 }
359 
360 void SetWindowSizeStr(scope const(char)* name, const ImVec2_t size, int cond) @trusted
361 {
362     igSetWindowSizeStr(name, size, cond);
363 }
364 
365 void SetWindowCollapsedStr(scope const(char)* name, bool collapsed, int cond) @trusted
366 {
367     igSetWindowCollapsedStr(name, collapsed, cond);
368 }
369 
370 void SetWindowFocusStr(scope const(char)* name) @trusted
371 {
372     igSetWindowFocusStr(name);
373 }
374 
375 float GetScrollX() @trusted
376 {
377     return igGetScrollX();
378 }
379 
380 float GetScrollY() @trusted
381 {
382     return igGetScrollY();
383 }
384 
385 void SetScrollX(float scroll_x) @trusted
386 {
387     igSetScrollX(scroll_x);
388 }
389 
390 void SetScrollY(float scroll_y) @trusted
391 {
392     igSetScrollY(scroll_y);
393 }
394 
395 float GetScrollMaxX() @trusted
396 {
397     return igGetScrollMaxX();
398 }
399 
400 float GetScrollMaxY() @trusted
401 {
402     return igGetScrollMaxY();
403 }
404 
405 void SetScrollHereX(float center_x_ratio) @trusted
406 {
407     igSetScrollHereX(center_x_ratio);
408 }
409 
410 void SetScrollHereY(float center_y_ratio) @trusted
411 {
412     igSetScrollHereY(center_y_ratio);
413 }
414 
415 void SetScrollFromPosX(float local_x, float center_x_ratio) @trusted
416 {
417     igSetScrollFromPosX(local_x, center_x_ratio);
418 }
419 
420 void SetScrollFromPosY(float local_y, float center_y_ratio) @trusted
421 {
422     igSetScrollFromPosY(local_y, center_y_ratio);
423 }
424 
425 void PushFont(scope const(ImFont_t)* font) @trusted
426 {
427     igPushFont(cast(ImFont_t*) font);
428 }
429 
430 void PopFont() @trusted
431 {
432     igPopFont();
433 }
434 
435 void PushStyleColor(int idx, uint col) @trusted
436 {
437     igPushStyleColor(idx, col);
438 }
439 
440 void PushStyleColorImVec4(int idx, const ImVec4_t col) @trusted
441 {
442     igPushStyleColorImVec4(idx, col);
443 }
444 
445 /// Layout cursor positioning
446 /// - By "cursor" we mean the current output position.
447 /// - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down.
448 /// - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget.
449 /// - YOU CAN DO 99% OF WHAT YOU NEED WITH ONLY GetCursorScreenPos() and GetContentRegionAvail().
450 /// - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:
451 ///    - Absolute coordinate:        GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward.
452 ///    - Window-local coordinates:   SameLine(offset), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), PushTextWrapPos()
453 ///    - Window-local coordinates:   GetContentRegionMax(), GetWindowContentRegionMin(), GetWindowContentRegionMax() --> all obsoleted. YOU DON'T NEED THEM.
454 /// - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates. Try not to use it.
455 
456 void PopStyleColor() @trusted
457 {
458     igPopStyleColor();
459 }
460 
461 void PopStyleColorEx(int count) @trusted
462 {
463     igPopStyleColorEx(count);
464 }
465 
466 void PushStyleVar(int idx, float val) @trusted
467 {
468     igPushStyleVar(idx, val);
469 }
470 
471 void PushStyleVarImVec2(int idx, const ImVec2_t val) @trusted
472 {
473     igPushStyleVarImVec2(idx, val);
474 }
475 
476 void PushStyleVarX(int idx, float val_x) @trusted
477 {
478     igPushStyleVarX(idx, val_x);
479 }
480 
481 void PushStyleVarY(int idx, float val_y) @trusted
482 {
483     igPushStyleVarY(idx, val_y);
484 }
485 
486 void PopStyleVar() @trusted
487 {
488     igPopStyleVar();
489 }
490 
491 void PopStyleVarEx(int count) @trusted
492 {
493     igPopStyleVarEx(count);
494 }
495 
496 void PushItemFlag(int option, bool enabled) @trusted
497 {
498     igPushItemFlag(option, enabled);
499 }
500 
501 void PopItemFlag() @trusted
502 {
503     igPopItemFlag();
504 }
505 
506 void PushItemWidth(float item_width) @trusted
507 {
508     igPushItemWidth(item_width);
509 }
510 
511 void PopItemWidth() @trusted
512 {
513     igPopItemWidth();
514 }
515 
516 void SetNextItemWidth(float item_width) @trusted
517 {
518     igSetNextItemWidth(item_width);
519 }
520 
521 float CalcItemWidth() @trusted
522 {
523     return igCalcItemWidth();
524 }
525 
526 void PushTextWrapPos(float wrap_local_pos_x) @trusted
527 {
528     igPushTextWrapPos(wrap_local_pos_x);
529 }
530 
531 void PopTextWrapPos() @trusted
532 {
533     igPopTextWrapPos();
534 }
535 
536 const(ImFont_t*) GetFont() @trusted
537 {
538     return igGetFont();
539 }
540 
541 float GetFontSize() @trusted
542 {
543     return igGetFontSize();
544 }
545 
546 const(ImVec2_t) GetFontTexUvWhitePixel() @trusted
547 {
548     return igGetFontTexUvWhitePixel();
549 }
550 
551 uint GetColorU32(int idx) @trusted
552 {
553     return igGetColorU32(idx);
554 }
555 
556 uint GetColorU32Ex(int idx, float alpha_mul) @trusted
557 {
558     return igGetColorU32Ex(idx, alpha_mul);
559 }
560 
561 uint GetColorU32ImVec4(const ImVec4_t col) @trusted
562 {
563     return igGetColorU32ImVec4(col);
564 }
565 
566 uint GetColorU32ImU32(uint col) @trusted
567 {
568     return igGetColorU32ImU32(col);
569 }
570 
571 uint GetColorU32ImU32Ex(uint col, float alpha_mul) @trusted
572 {
573     return igGetColorU32ImU32Ex(col, alpha_mul);
574 }
575 
576 const(ImVec4_t*) GetStyleColorVec4(int idx) @trusted
577 {
578     return igGetStyleColorVec4(idx);
579 }
580 
581 const(ImVec2_t) GetCursorScreenPos() @trusted
582 {
583     return igGetCursorScreenPos();
584 }
585 
586 void SetCursorScreenPos(const(ImVec2_t) pos) @trusted
587 {
588     igSetCursorScreenPos(pos);
589 }
590 
591 const(ImVec2_t) GetContentRegionAvail() @trusted
592 {
593     return igGetContentRegionAvail();
594 }
595 
596 const(ImVec2_t) GetCursorPos() @trusted
597 {
598     return igGetCursorPos();
599 }
600 
601 float GetCursorPosX() @trusted
602 {
603     return igGetCursorPosX();
604 }
605 
606 float GetCursorPosY() @trusted
607 {
608     return igGetCursorPosY();
609 }
610 
611 void SetCursorPos(const(ImVec2_t) local_pos) @trusted
612 {
613     igSetCursorPos(local_pos);
614 }
615 
616 void SetCursorPosX(float local_x) @trusted
617 {
618     igSetCursorPosX(local_x);
619 }
620 
621 void SetCursorPosY(float local_y) @trusted
622 {
623     igSetCursorPosY(local_y);
624 }
625 
626 const(ImVec2_t) GetCursorStartPos() @trusted
627 {
628     return igGetCursorStartPos();
629 }
630 
631 void Separator() @trusted
632 {
633     igSeparator();
634 }
635 
636 void SameLine() @trusted
637 {
638     igSameLine();
639 }
640 
641 void SameLineEx(float offset_from_start_x, float spacing) @trusted
642 {
643     igSameLineEx(offset_from_start_x, spacing);
644 }
645 
646 void NewLine() @trusted
647 {
648     igNewLine();
649 }
650 
651 void Spacing() @trusted
652 {
653     igSpacing();
654 }
655 
656 void Dummy(const(ImVec2_t) size) @trusted
657 {
658     igDummy(size);
659 }
660 
661 void Indent() @trusted
662 {
663     igIndent();
664 }
665 
666 void IndentEx(float indent_w) @trusted
667 {
668     igIndentEx(indent_w);
669 }
670 
671 void Unindent() @trusted
672 {
673     igUnindent();
674 }
675 
676 void UnindentEx(float indent_w) @trusted
677 {
678     igUnindentEx(indent_w);
679 }
680 
681 void BeginGroup() @trusted
682 {
683     igBeginGroup();
684 }
685 
686 void EndGroup() @trusted
687 {
688     igEndGroup();
689 }
690 
691 void AlignTextToFramePadding() @trusted
692 {
693     igAlignTextToFramePadding();
694 }
695 
696 float GetTextLineHeight() @trusted
697 {
698     return igGetTextLineHeight();
699 }
700 
701 float GetTextLineHeightWithSpacing() @trusted
702 {
703     return igGetTextLineHeightWithSpacing();
704 }
705 
706 float GetFrameHeight() @trusted
707 {
708     return igGetFrameHeight();
709 }
710 
711 float GetFrameHeightWithSpacing() @trusted
712 {
713     return igGetFrameHeightWithSpacing();
714 }
715 
716 void PushID(scope const(char)* str_id) @trusted
717 {
718     igPushID(str_id);
719 }
720 
721 void PushIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted
722 {
723     igPushIDStr(str_id_begin, str_id_end);
724 }
725 
726 void PushIDPtr(const(void)* ptr_id) @trusted
727 {
728     igPushIDPtr(ptr_id);
729 }
730 
731 void PushIDInt(int int_id) @trusted
732 {
733     igPushIDInt(int_id);
734 }
735 
736 void PopID() @trusted
737 {
738     igPopID();
739 }
740 
741 uint GetID(scope const(char)* str_id) @trusted
742 {
743     return igGetID(str_id);
744 }
745 
746 uint GetIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted
747 {
748     return igGetIDStr(str_id_begin, str_id_end);
749 }
750 
751 uint GetIDPtr(const(void)* ptr_id) @trusted
752 {
753     return igGetIDPtr(ptr_id);
754 }
755 
756 uint GetIDInt(int int_id) @trusted
757 {
758     return igGetIDInt(int_id);
759 }
760 
761 void TextUnformatted(scope const(char)* text) @trusted
762 {
763     igTextUnformatted(text);
764 }
765 
766 void TextUnformattedEx(scope const(char)* text, scope const(char)* text_end) @trusted
767 {
768     igTextUnformattedEx(text, text_end);
769 }
770 
771 alias Text = igText;
772 
773 void TextV(scope const(char)* fmt, __builtin_va_list args) @trusted
774 {
775     igTextV(fmt, args);
776 }
777 
778 alias TextColored = igTextColored;
779 
780 void TextColoredV(const ImVec4_t col, scope const(char)* fmt, __builtin_va_list args) @trusted
781 {
782     igTextColoredV(col, fmt, args);
783 }
784 
785 alias TextDisabled = igTextDisabled;
786 
787 void TextDisabledV(scope const(char)* fmt, __builtin_va_list args) @trusted
788 {
789     igTextDisabledV(fmt, args);
790 }
791 
792 alias TextWrapped = igTextWrapped;
793 
794 void TextWrappedV(scope const(char)* fmt, __builtin_va_list args) @trusted
795 {
796     igTextWrappedV(fmt, args);
797 }
798 
799 alias LabelText = igLabelText;
800 
801 void LabelTextV(scope const(char)* label, scope const(char)* fmt, __builtin_va_list args) @trusted
802 {
803     igLabelTextV(label, fmt, args);
804 }
805 
806 alias BulletText = igBulletText;
807 
808 void BulletTextV(scope const(char)* fmt, __builtin_va_list args) @trusted
809 {
810     igBulletTextV(fmt, args);
811 }
812 
813 void SeparatorText(scope const(char)* label) @trusted
814 {
815     igSeparatorText(label);
816 }
817 
818 bool Button(scope const(char)* label) @trusted
819 {
820     return igButton(label);
821 }
822 
823 bool ButtonEx(scope const(char)* label, const ImVec2_t size) @trusted
824 {
825     return igButtonEx(label, size);
826 }
827 
828 bool SmallButton(scope const(char)* label) @trusted
829 {
830     return igSmallButton(label);
831 }
832 
833 bool InvisibleButton(scope const(char)* str_id, const ImVec2_t size, int flags) @trusted
834 {
835     return igInvisibleButton(str_id, size, flags);
836 }
837 
838 bool ArrowButton(scope const(char)* str_id, int dir) @trusted
839 {
840     return igArrowButton(str_id, dir);
841 }
842 
843 bool Checkbox(scope const(char)* label, scope bool* v) @trusted
844 {
845     return igCheckbox(label, v);
846 }
847 
848 bool CheckboxFlagsIntPtr(scope const(char)* label, scope int* flags, int flags_value) @trusted
849 {
850     return igCheckboxFlagsIntPtr(label, flags, flags_value);
851 }
852 
853 bool CheckboxFlagsUintPtr(scope const(char)* label, scope uint* flags, uint flags_value) @trusted
854 {
855     return igCheckboxFlagsUintPtr(label, flags, flags_value);
856 }
857 
858 bool RadioButton(scope const(char)* label, bool active) @trusted
859 {
860     return igRadioButton(label, active);
861 }
862 
863 bool RadioButtonIntPtr(scope const(char)* label, scope int* v, int v_button) @trusted
864 {
865     return igRadioButtonIntPtr(label, v, v_button);
866 }
867 
868 void ProgressBar(float fraction, const ImVec2_t size_arg, scope const(char)* overlay) @trusted
869 {
870     igProgressBar(fraction, size_arg, overlay);
871 }
872 
873 void Bullet() @trusted
874 {
875     igBullet();
876 }
877 
878 bool TextLink(scope const(char)* label) @trusted
879 {
880     return igTextLink(label);
881 }
882 
883 void TextLinkOpenURL(scope const(char)* label) @trusted
884 {
885     igTextLinkOpenURL(label);
886 }
887 
888 void TextLinkOpenURLEx(scope const(char)* label, scope const(char)* url) @trusted
889 {
890     igTextLinkOpenURLEx(label, url);
891 }
892 
893 void Image(size_t user_texture_id, const ImVec2_t image_size) @trusted
894 {
895     igImage(user_texture_id, image_size);
896 }
897 
898 void ImageEx(size_t user_texture_id, const ImVec2_t image_size, const ImVec2_t uv0, const ImVec2_t uv1, const ImVec4_t tint_col, const ImVec4_t border_col) @trusted
899 {
900     igImageEx(user_texture_id, image_size, uv0, uv1, tint_col, border_col);
901 }
902 
903 bool ImageButton(scope const(char)* str_id, size_t user_texture_id, const ImVec2_t image_size) @trusted
904 {
905     return igImageButton(str_id, user_texture_id, image_size);
906 }
907 
908 bool ImageButtonEx(scope const(char)* str_id, size_t user_texture_id, const ImVec2_t image_size, const ImVec2_t uv0, const ImVec2_t uv1, const ImVec4_t bg_col, const ImVec4_t tint_col) @trusted
909 {
910     return igImageButtonEx(str_id, user_texture_id, image_size, uv0, uv1, bg_col, tint_col);
911 }
912 
913 bool BeginCombo(scope const(char)* label, scope const(char)* preview_value, int flags) @trusted
914 {
915     return igBeginCombo(label, preview_value, flags);
916 }
917 
918 void EndCombo() @trusted
919 {
920     igEndCombo();
921 }
922 
923 bool ComboChar(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count) @trusted
924 {
925     return igComboChar(label, current_item, cast(const(char*)*) items, items_count);
926 }
927 
928 bool ComboCharEx(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count, int popup_max_height_in_items) @trusted
929 {
930     return igComboCharEx(label, current_item, cast(const(char*)*) items, items_count, popup_max_height_in_items);
931 }
932 
933 bool Combo(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros) @trusted
934 {
935     return igCombo(label, current_item, items_separated_by_zeros);
936 }
937 
938 bool ComboEx(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros, int popup_max_height_in_items) @trusted
939 {
940     return igComboEx(label, current_item, items_separated_by_zeros, popup_max_height_in_items);
941 }
942 
943 extern (C) bool ComboCallback(scope const(char)* label, scope int* current_item, scope const(char)* function(
944         scope void* user_data, int idx) getter, scope void* user_data, int items_count) @trusted
945 {
946     return igComboCallback(label, current_item, getter, user_data, items_count);
947 }
948 
949 extern (C) bool ComboCallbackEx(scope const(char)* label, scope int* current_item, scope const(char)* function(
950         scope void* user_data, int idx) getter, scope void* user_data, int items_count, int popup_max_height_in_items) @trusted
951 {
952     return igComboCallbackEx(label, current_item, getter, user_data, items_count, popup_max_height_in_items);
953 }
954 
955 bool DragFloat(scope const(char)* label, scope float* v) @trusted
956 {
957     return igDragFloat(label, v);
958 }
959 
960 bool DragFloatEx(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope const(
961         char)* format, int flags) @trusted
962 {
963     return igDragFloatEx(label, v, v_speed, v_min, v_max, format, flags);
964 }
965 
966 bool DragFloat2(scope const(char)* label, float[2] v) @trusted
967 {
968     return igDragFloat2(label, &v[0]);
969 }
970 
971 bool DragFloat2Ex(scope const(char)* label, float[2] v, float v_speed, float v_min, float v_max, scope const(
972         char)* format, int flags) @trusted
973 {
974     return igDragFloat2Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
975 }
976 
977 bool DragFloat3(scope const(char)* label, float[3] v) @trusted
978 {
979     return igDragFloat3(label, &v[0]);
980 }
981 
982 bool DragFloat3Ex(scope const(char)* label, float[3] v, float v_speed, float v_min, float v_max, scope const(
983         char)* format, int flags) @trusted
984 {
985     return igDragFloat3Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
986 }
987 
988 bool DragFloat4(scope const(char)* label, float[4] v) @trusted
989 {
990     return igDragFloat4(label, &v[0]);
991 }
992 
993 bool DragFloat4Ex(scope const(char)* label, float[4] v, float v_speed, float v_min, float v_max, scope const(
994         char)* format, int flags) @trusted
995 {
996     return igDragFloat4Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
997 }
998 
999 bool DragFloatRange2(scope const(char)* label, scope float* v_current_min, scope float* v_current_max) @trusted
1000 {
1001     return igDragFloatRange2(label, v_current_min, v_current_max);
1002 }
1003 
1004 bool DragFloatRange2Ex(scope const(char)* label, scope float* v_current_min, scope float* v_current_max, float v_speed, float v_min, float v_max, scope const(
1005         char)* format, scope const(char)* format_max, int flags) @trusted
1006 {
1007     return igDragFloatRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1008 }
1009 
1010 bool DragInt(scope const(char)* label, scope int* v) @trusted
1011 {
1012     return igDragInt(label, v);
1013 }
1014 
1015 bool DragIntEx(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope const(
1016         char)* format, int flags) @trusted
1017 {
1018     return igDragIntEx(label, v, v_speed, v_min, v_max, format, flags);
1019 }
1020 
1021 bool DragInt2(scope const(char)* label, int[2] v) @trusted
1022 {
1023     return igDragInt2(label, &v[0]);
1024 }
1025 
1026 bool DragInt2Ex(scope const(char)* label, int[2] v, float v_speed, int v_min, int v_max, scope const(
1027         char)* format, int flags) @trusted
1028 {
1029     return igDragInt2Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
1030 }
1031 
1032 bool DragInt3(scope const(char)* label, int[3] v) @trusted
1033 {
1034     return igDragInt3(label, &v[0]);
1035 }
1036 
1037 bool DragInt3Ex(scope const(char)* label, int[3] v, float v_speed, int v_min, int v_max, scope const(
1038         char)* format, int flags) @trusted
1039 {
1040     return igDragInt3Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
1041 }
1042 
1043 bool DragInt4(scope const(char)* label, int[4] v) @trusted
1044 {
1045     return igDragInt4(label, &v[0]);
1046 }
1047 
1048 bool DragInt4Ex(scope const(char)* label, int[4] v, float v_speed, int v_min, int v_max, scope const(
1049         char)* format, int flags) @trusted
1050 {
1051     return igDragInt4Ex(label, &v[0], v_speed, v_min, v_max, format, flags);
1052 }
1053 
1054 bool DragIntRange2(scope const(char)* label, scope int* v_current_min, scope int* v_current_max) @trusted
1055 {
1056     return igDragIntRange2(label, v_current_min, v_current_max);
1057 }
1058 
1059 bool DragIntRange2Ex(scope const(char)* label, scope int* v_current_min, scope int* v_current_max, float v_speed, int v_min, int v_max, scope const(
1060         char)* format, scope const(char)* format_max, int flags) @trusted
1061 {
1062     return igDragIntRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1063 }
1064 
1065 bool DragScalar(scope const(char)* label, int data_type, scope void* p_data) @trusted
1066 {
1067     return igDragScalar(label, data_type, p_data);
1068 }
1069 
1070 bool DragScalarEx(scope const(char)* label, int data_type, scope void* p_data, float v_speed, scope const(
1071         void)* p_min, scope const(
1072         void)* p_max, scope const(char)* format, int flags) @trusted
1073 {
1074     return igDragScalarEx(label, data_type, p_data, v_speed, p_min, p_max, format, flags);
1075 }
1076 
1077 bool DragScalarN(scope const(char)* label, int data_type, scope void* p_data, int components) @trusted
1078 {
1079     return igDragScalarN(label, data_type, p_data, components);
1080 }
1081 
1082 bool DragScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, float v_speed, scope const(
1083         void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted
1084 {
1085     return igDragScalarNEx(label, data_type, p_data, components, v_speed, p_min, p_max, format, flags);
1086 }
1087 
1088 bool SliderFloat(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1089 {
1090     return igSliderFloat(label, v, v_min, v_max);
1091 }
1092 
1093 bool SliderFloatEx(scope const(char)* label, scope float* v, float v_min, float v_max, scope const(
1094         char)* format, int flags) @trusted
1095 {
1096     return igSliderFloatEx(label, v, v_min, v_max, format, flags);
1097 }
1098 
1099 bool SliderFloat2(scope const(char)* label, float[2] v, float v_min, float v_max) @trusted
1100 {
1101     return igSliderFloat2(label, &v[0], v_min, v_max);
1102 }
1103 
1104 bool SliderFloat2Ex(scope const(char)* label, float[2] v, float v_min, float v_max, scope const(
1105         char)* format, int flags) @trusted
1106 {
1107     return igSliderFloat2Ex(label, &v[0], v_min, v_max, format, flags);
1108 }
1109 
1110 bool SliderFloat3(scope const(char)* label, float[3] v, float v_min, float v_max) @trusted
1111 {
1112     return igSliderFloat3(label, &v[0], v_min, v_max);
1113 }
1114 
1115 bool SliderFloat3Ex(scope const(char)* label, float[3] v, float v_min, float v_max, scope const(
1116         char)* format, int flags) @trusted
1117 {
1118     return igSliderFloat3Ex(label, &v[0], v_min, v_max, format, flags);
1119 }
1120 
1121 bool SliderFloat4(scope const(char)* label, float[4] v, float v_min, float v_max) @trusted
1122 {
1123     return igSliderFloat4(label, &v[0], v_min, v_max);
1124 }
1125 
1126 bool SliderFloat4Ex(scope const(char)* label, float[4] v, float v_min, float v_max, scope const(
1127         char)* format, int flags) @trusted
1128 {
1129     return igSliderFloat4Ex(label, &v[0], v_min, v_max, format, flags);
1130 }
1131 
1132 bool SliderAngle(scope const(char)* label, scope float* v_rad) @trusted
1133 {
1134     return igSliderAngle(label, v_rad);
1135 }
1136 
1137 bool SliderAngleEx(scope const(char)* label, scope float* v_rad, float v_degrees_min, float v_degrees_max, scope const(
1138         char)* format, int flags) @trusted
1139 {
1140     return igSliderAngleEx(label, v_rad, v_degrees_min, v_degrees_max, format, flags);
1141 }
1142 
1143 bool SliderInt(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1144 {
1145     return igSliderInt(label, v, v_min, v_max);
1146 }
1147 
1148 bool SliderIntEx(scope const(char)* label, scope int* v, int v_min, int v_max, scope const(char)* format, int flags) @trusted
1149 {
1150     return igSliderIntEx(label, v, v_min, v_max, format, flags);
1151 }
1152 
1153 bool SliderInt2(scope const(char)* label, int[2] v, int v_min, int v_max) @trusted
1154 {
1155     return igSliderInt2(label, &v[0], v_min, v_max);
1156 }
1157 
1158 bool SliderInt2Ex(scope const(char)* label, int[2] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted
1159 {
1160     return igSliderInt2Ex(label, &v[0], v_min, v_max, format, flags);
1161 }
1162 
1163 bool SliderInt3(scope const(char)* label, int[3] v, int v_min, int v_max) @trusted
1164 {
1165     return igSliderInt3(label, &v[0], v_min, v_max);
1166 }
1167 
1168 bool SliderInt3Ex(scope const(char)* label, int[3] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted
1169 {
1170     return igSliderInt3Ex(label, &v[0], v_min, v_max, format, flags);
1171 }
1172 
1173 bool SliderInt4(scope const(char)* label, int[4] v, int v_min, int v_max) @trusted
1174 {
1175     return igSliderInt4(label, &v[0], v_min, v_max);
1176 }
1177 
1178 bool SliderInt4Ex(scope const(char)* label, int[4] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted
1179 {
1180     return igSliderInt4Ex(label, &v[0], v_min, v_max, format, flags);
1181 }
1182 
1183 bool SliderScalar(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_min, scope const(
1184         void)* p_max) @trusted
1185 {
1186     return igSliderScalar(label, data_type, p_data, p_min, p_max);
1187 }
1188 
1189 bool SliderScalarEx(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_min, scope const(
1190         void)* p_max, scope const(char)* format, int flags) @trusted
1191 {
1192     return igSliderScalarEx(label, data_type, p_data, p_min, p_max, format, flags);
1193 }
1194 
1195 bool SliderScalarN(scope const(char)* label, int data_type, scope void* p_data, int components, scope const(
1196         void)* p_min, scope const(void)* p_max) @trusted
1197 {
1198     return igSliderScalarN(label, data_type, p_data, components, p_min, p_max);
1199 }
1200 
1201 bool SliderScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, scope const(
1202         void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted
1203 {
1204     return igSliderScalarNEx(label, data_type, p_data, components, p_min, p_max, format, flags);
1205 }
1206 
1207 bool VSliderFloat(scope const(char)* label, ImVec2_t size, scope float* v, float v_min, float v_max) @trusted
1208 {
1209     return igVSliderFloat(label, size, v, v_min, v_max);
1210 }
1211 
1212 bool VSliderFloatEx(scope const(char)* label, ImVec2_t size, scope float* v, float v_min, float v_max, scope const(
1213         char)* format, int flags) @trusted
1214 {
1215     return igVSliderFloatEx(label, size, v, v_min, v_max, format, flags);
1216 }
1217 
1218 bool VSliderInt(scope const(char)* label, ImVec2_t size, scope int* v, int v_min, int v_max) @trusted
1219 {
1220     return igVSliderInt(label, size, v, v_min, v_max);
1221 }
1222 
1223 bool VSliderIntEx(scope const(char)* label, ImVec2_t size, scope int* v, int v_min, int v_max, scope const(
1224         char)* format, int flags) @trusted
1225 {
1226     return igVSliderIntEx(label, size, v, v_min, v_max, format, flags);
1227 }
1228 
1229 bool VSliderScalar(scope const(char)* label, ImVec2_t size, int data_type, scope void* p_data, scope const(
1230         void)* p_min, scope const(void)* p_max) @trusted
1231 {
1232     return igVSliderScalar(label, size, data_type, p_data, p_min, p_max);
1233 }
1234 
1235 bool VSliderScalarEx(scope const(char)* label, ImVec2_t size, int data_type, scope void* p_data, scope const(
1236         void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted
1237 {
1238     return igVSliderScalarEx(label, size, data_type, p_data, p_min, p_max, format, flags);
1239 }
1240 
1241 bool InputText(scope const(char)* label, scope char* buf, size_t buf_size, int flags) @trusted
1242 {
1243     return igInputText(label, buf, buf_size, flags);
1244 }
1245 
1246 extern (C) bool InputTextEx(scope const(char)* label, scope char* buf, size_t buf_size, int flags, int function(
1247         const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted
1248 {
1249     return igInputTextEx(label, buf, buf_size, flags, callback, user_data);
1250 }
1251 
1252 bool InputTextMultiline(scope const(char)* label, scope char* buf, size_t buf_size) @trusted
1253 {
1254     return igInputTextMultiline(label, buf, buf_size);
1255 }
1256 
1257 extern (C) bool InputTextMultilineEx(scope const(char)* label, scope char* buf, size_t buf_size, ImVec2_t size, int flags, int function(
1258         const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted
1259 {
1260     return igInputTextMultilineEx(label, buf, buf_size, size, flags, callback, user_data);
1261 }
1262 
1263 bool InputTextWithHint(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, int flags) @trusted
1264 {
1265     return igInputTextWithHint(label, hint, buf, buf_size, flags);
1266 }
1267 
1268 extern (C) bool InputTextWithHintEx(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, int flags, int function(
1269         const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted
1270 {
1271     return igInputTextWithHintEx(label, hint, buf, buf_size, flags, callback, user_data);
1272 }
1273 
1274 bool InputFloat(scope const(char)* label, scope float* v) @trusted
1275 {
1276     return igInputFloat(label, v);
1277 }
1278 
1279 bool InputFloatEx(scope const(char)* label, scope float* v, float step, float step_fast, scope const(
1280         char)* format, int flags) @trusted
1281 {
1282     return igInputFloatEx(label, v, step, step_fast, format, flags);
1283 }
1284 
1285 bool InputFloat2(scope const(char)* label, float[2] v) @trusted
1286 {
1287     return igInputFloat2(label, &v[0]);
1288 }
1289 
1290 bool InputFloat2Ex(scope const(char)* label, float[2] v, scope const(char)* format, int flags) @trusted
1291 {
1292     return igInputFloat2Ex(label, &v[0], format, flags);
1293 }
1294 
1295 bool InputFloat3(scope const(char)* label, float[3] v) @trusted
1296 {
1297     return igInputFloat3(label, &v[0]);
1298 }
1299 
1300 bool InputFloat3Ex(scope const(char)* label, float[3] v, scope const(char)* format, int flags) @trusted
1301 {
1302     return igInputFloat3Ex(label, &v[0], format, flags);
1303 }
1304 
1305 bool InputFloat4(scope const(char)* label, float[4] v) @trusted
1306 {
1307     return igInputFloat4(label, &v[0]);
1308 }
1309 
1310 bool InputFloat4Ex(scope const(char)* label, float[4] v, scope const(char)* format, int flags) @trusted
1311 {
1312     return igInputFloat4Ex(label, &v[0], format, flags);
1313 }
1314 
1315 bool InputInt(scope const(char)* label, scope int* v) @trusted
1316 {
1317     return igInputInt(label, v);
1318 }
1319 
1320 bool InputIntEx(scope const(char)* label, scope int* v, int step, int step_fast, int flags) @trusted
1321 {
1322     return igInputIntEx(label, v, step, step_fast, flags);
1323 }
1324 
1325 bool InputInt2(scope const(char)* label, int[2] v, int flags) @trusted
1326 {
1327     return igInputInt2(label, &v[0], flags);
1328 }
1329 
1330 bool InputInt3(scope const(char)* label, int[3] v, int flags) @trusted
1331 {
1332     return igInputInt3(label, &v[0], flags);
1333 }
1334 
1335 bool InputInt4(scope const(char)* label, int[4] v, int flags) @trusted
1336 {
1337     return igInputInt4(label, &v[0], flags);
1338 }
1339 
1340 bool InputDouble(scope const(char)* label, scope double* v) @trusted
1341 {
1342     return igInputDouble(label, v);
1343 }
1344 
1345 bool InputDoubleEx(scope const(char)* label, scope double* v, double step, double step_fast, scope const(
1346         char)* format, int flags) @trusted
1347 {
1348     return igInputDoubleEx(label, v, step, step_fast, format, flags);
1349 }
1350 
1351 bool InputScalar(scope const(char)* label, int data_type, scope void* p_data) @trusted
1352 {
1353     return igInputScalar(label, data_type, p_data);
1354 }
1355 
1356 bool InputScalarEx(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_step, scope const(
1357         void)* p_step_fast, scope const(char)* format, int flags) @trusted
1358 {
1359     return igInputScalarEx(label, data_type, p_data, p_step, p_step_fast, format, flags);
1360 }
1361 
1362 bool InputScalarN(scope const(char)* label, int data_type, scope void* p_data, int components) @trusted
1363 {
1364     return igInputScalarN(label, data_type, p_data, components);
1365 }
1366 
1367 bool InputScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, scope const(
1368         void)* p_step, scope const(void)* p_step_fast, scope const(char)* format, int flags) @trusted
1369 {
1370     return igInputScalarNEx(label, data_type, p_data, components, p_step, p_step_fast, format, flags);
1371 }
1372 
1373 bool ColorEdit3(scope const(char)* label, float[3] col, int flags) @trusted
1374 {
1375     return igColorEdit3(label, &col[0], flags);
1376 }
1377 
1378 bool ColorEdit4(scope const(char)* label, float[4] col, int flags) @trusted
1379 {
1380     return igColorEdit4(label, &col[0], flags);
1381 }
1382 
1383 bool ColorPicker3(scope const(char)* label, float[3] col, int flags) @trusted
1384 {
1385     return igColorPicker3(label, &col[0], flags);
1386 }
1387 
1388 bool ColorPicker4(scope const(char)* label, float[4] col, int flags, scope const(float)* ref_col) @trusted
1389 {
1390     return igColorPicker4(label, &col[0], flags, ref_col);
1391 }
1392 
1393 bool ColorButton(scope const(char)* desc_id, ImVec4_t col, int flags) @trusted
1394 {
1395     return igColorButton(desc_id, col, flags);
1396 }
1397 
1398 bool ColorButtonEx(scope const(char)* desc_id, ImVec4_t col, int flags, ImVec2_t size) @trusted
1399 {
1400     return igColorButtonEx(desc_id, col, flags, size);
1401 }
1402 
1403 void SetColorEditOptions(int flags) @trusted
1404 {
1405     igSetColorEditOptions(flags);
1406 }
1407 
1408 bool TreeNode(scope const(char)* label) @trusted
1409 {
1410     return igTreeNode(label);
1411 }
1412 
1413 alias TreeNodeStr = igTreeNodeStr;
1414 alias TreeNodePtr = igTreeNodePtr;
1415 
1416 bool TreeNodeV(scope const(char)* str_id, scope const(char)* fmt, __builtin_va_list args) @trusted
1417 {
1418     return igTreeNodeV(str_id, fmt, args);
1419 }
1420 
1421 bool TreeNodeVPtr(scope const(void)* ptr_id, scope const(char)* fmt, __builtin_va_list args) @trusted
1422 {
1423     return igTreeNodeVPtr(ptr_id, fmt, args);
1424 }
1425 
1426 bool TreeNodeEx(scope const(char)* label, int flags) @trusted
1427 {
1428     return igTreeNodeEx(label, flags);
1429 }
1430 
1431 alias TreeNodeExStr = igTreeNodeExStr;
1432 alias TreeNodeExPtr = igTreeNodeExPtr;
1433 
1434 bool TreeNodeExV(scope const(char)* str_id, int flags, scope const(char)* fmt, __builtin_va_list args) @trusted
1435 {
1436     return igTreeNodeExV(str_id, flags, fmt, args);
1437 }
1438 
1439 bool TreeNodeExVPtr(scope const(void)* ptr_id, int flags, scope const(char)* fmt, __builtin_va_list args) @trusted
1440 {
1441     return igTreeNodeExVPtr(ptr_id, flags, fmt, args);
1442 }
1443 
1444 void TreePush(scope const(char)* str_id) @trusted
1445 {
1446     igTreePush(str_id);
1447 }
1448 
1449 void TreePushPtr(scope const(void)* ptr_id) @trusted
1450 {
1451     igTreePushPtr(ptr_id);
1452 }
1453 
1454 void TreePop() @trusted
1455 {
1456     igTreePop();
1457 }
1458 
1459 float GetTreeNodeToLabelSpacing() @trusted
1460 {
1461     return igGetTreeNodeToLabelSpacing();
1462 }
1463 
1464 bool CollapsingHeader(scope const(char)* label, int flags) @trusted
1465 {
1466     return igCollapsingHeader(label, flags);
1467 }
1468 
1469 bool CollapsingHeaderBoolPtr(scope const(char)* label, scope bool* p_visible, int flags) @trusted
1470 {
1471     return igCollapsingHeaderBoolPtr(label, p_visible, flags);
1472 }
1473 
1474 void SetNextItemOpen(bool is_open, int cond) @trusted
1475 {
1476     igSetNextItemOpen(is_open, cond);
1477 }
1478 
1479 void SetNextItemStorageID(uint storage_id) @trusted
1480 {
1481     igSetNextItemStorageID(storage_id);
1482 }
1483 
1484 bool Selectable(scope const(char)* label) @trusted
1485 {
1486     return igSelectable(label);
1487 }
1488 
1489 bool SelectableEx(scope const(char)* label, bool selected, int flags, ImVec2_t size) @trusted
1490 {
1491     return igSelectableEx(label, selected, flags, size);
1492 }
1493 
1494 bool SelectableBoolPtr(scope const(char)* label, scope bool* p_selected, int flags) @trusted
1495 {
1496     return igSelectableBoolPtr(label, p_selected, flags);
1497 }
1498 
1499 bool SelectableBoolPtrEx(scope const(char)* label, scope bool* p_selected, int flags, ImVec2_t size) @trusted
1500 {
1501     return igSelectableBoolPtrEx(label, p_selected, flags, size);
1502 }
1503 
1504 scope ImGuiMultiSelectIO_t* BeginMultiSelect(int flags) @trusted
1505 {
1506     return igBeginMultiSelect(flags);
1507 }
1508 
1509 scope ImGuiMultiSelectIO_t* BeginMultiSelectEx(int flags, int selection_size, int items_count) @trusted
1510 {
1511     return igBeginMultiSelectEx(flags, selection_size, items_count);
1512 }
1513 
1514 scope ImGuiMultiSelectIO_t* EndMultiSelect() @trusted
1515 {
1516     return igEndMultiSelect();
1517 }
1518 
1519 void SetNextItemSelectionUserData(long selection_user_data) @trusted
1520 {
1521     igSetNextItemSelectionUserData(selection_user_data);
1522 }
1523 
1524 bool IsItemToggledSelection() @trusted
1525 {
1526     return igIsItemToggledSelection();
1527 }
1528 
1529 bool BeginListBox(scope const(char)* label, ImVec2_t size) @trusted
1530 {
1531     return igBeginListBox(label, size);
1532 }
1533 
1534 void EndListBox() @trusted
1535 {
1536     igEndListBox();
1537 }
1538 
1539 bool ListBox(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count, int height_in_items) @trusted
1540 {
1541     return igListBox(label, current_item, cast(const(char*)*) items, items_count, height_in_items);
1542 }
1543 
1544 extern (C) bool ListBoxCallback(scope const(char)* label, scope int* current_item, scope const(char)* function(
1545         scope void* user_data, int idx) getter, scope void* user_data, int items_count) @trusted
1546 {
1547     return igListBoxCallback(label, current_item, getter, user_data, items_count);
1548 }
1549 
1550 extern (C) bool ListBoxCallbackEx(scope const(char)* label, scope int* current_item, scope const(
1551         char)* function(
1552         scope void* user_data, int idx) getter, scope void* user_data, int items_count, int height_in_items) @trusted
1553 {
1554     return igListBoxCallbackEx(label, current_item, getter, user_data, items_count, height_in_items);
1555 }
1556 
1557 void PlotLines(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1558 {
1559     igPlotLines(label, values, values_count);
1560 }
1561 
1562 void PlotLinesEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope const(
1563         char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size, int stride) @trusted
1564 {
1565     igPlotLinesEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1566 }
1567 
1568 extern (C) void PlotLinesCallback(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count) @trusted
1569 {
1570     igPlotLinesCallback(label, values_getter, data, values_count);
1571 }
1572 
1573 extern (C) void PlotLinesCallbackEx(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count, int values_offset, scope const(
1574         char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size) @trusted
1575 {
1576     igPlotLinesCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1577 }
1578 
1579 void PlotHistogram(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1580 {
1581     igPlotHistogram(label, values, values_count);
1582 }
1583 
1584 void PlotHistogramEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope const(
1585         char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size, int stride) @trusted
1586 {
1587     igPlotHistogramEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1588 }
1589 
1590 extern (C) void PlotHistogramCallback(scope const(char)* label, float function(
1591         scope void* data, int idx) values_getter, scope void* data, int values_count) @trusted
1592 {
1593     igPlotHistogramCallback(label, values_getter, data, values_count);
1594 }
1595 
1596 extern (C) void PlotHistogramCallbackEx(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count, int values_offset, scope const(
1597         char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size) @trusted
1598 {
1599     igPlotHistogramCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1600 }
1601 
1602 bool BeginMenuBar() @trusted
1603 {
1604     return igBeginMenuBar();
1605 }
1606 
1607 void EndMenuBar() @trusted
1608 {
1609     igEndMenuBar();
1610 }
1611 
1612 bool BeginMainMenuBar() @trusted
1613 {
1614     return igBeginMainMenuBar();
1615 }
1616 
1617 void EndMainMenuBar() @trusted
1618 {
1619     igEndMainMenuBar();
1620 }
1621 
1622 bool BeginMenu(scope const(char)* label) @trusted
1623 {
1624     return igBeginMenu(label);
1625 }
1626 
1627 bool BeginMenuEx(scope const(char)* label, bool enabled) @trusted
1628 {
1629     return igBeginMenuEx(label, enabled);
1630 }
1631 
1632 void EndMenu() @trusted
1633 {
1634     igEndMenu();
1635 }
1636 
1637 bool MenuItem(scope const(char)* label) @trusted
1638 {
1639     return igMenuItem(label);
1640 }
1641 
1642 bool MenuItemEx(scope const(char)* label, scope const(char)* shortcut, bool selected, bool enabled) @trusted
1643 {
1644     return igMenuItemEx(label, shortcut, selected, enabled);
1645 }
1646 
1647 bool MenuItemBoolPtr(scope const(char)* label, scope const(char)* shortcut, scope bool* p_selected, bool enabled) @trusted
1648 {
1649     return igMenuItemBoolPtr(label, shortcut, p_selected, enabled);
1650 }
1651 
1652 bool BeginTooltip() @trusted
1653 {
1654     return igBeginTooltip();
1655 }
1656 
1657 void EndTooltip() @trusted
1658 {
1659     igEndTooltip();
1660 }
1661 
1662 alias SetTooltip = igSetTooltip;
1663 
1664 void SetTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted
1665 {
1666     igSetTooltipV(fmt, args);
1667 }
1668 
1669 bool BeginItemTooltip() @trusted
1670 {
1671     return igBeginItemTooltip();
1672 }
1673 
1674 alias SetItemTooltip = igSetItemTooltip;
1675 
1676 void SetItemTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted
1677 {
1678     igSetItemTooltipV(fmt, args);
1679 }
1680 
1681 bool BeginPopup(scope const(char)* str_id, int flags) @trusted
1682 {
1683     return igBeginPopup(str_id, flags);
1684 }
1685 
1686 bool BeginPopupModal(scope const(char)* name, scope bool* p_open, int flags) @trusted
1687 {
1688     return igBeginPopupModal(name, p_open, flags);
1689 }
1690 
1691 void EndPopup() @trusted
1692 {
1693     igEndPopup();
1694 }
1695 
1696 void OpenPopup(scope const(char)* str_id, int popup_flags) @trusted
1697 {
1698     igOpenPopup(str_id, popup_flags);
1699 }
1700 
1701 void OpenPopupID(uint id, int popup_flags) @trusted
1702 {
1703     igOpenPopupID(id, popup_flags);
1704 }
1705 
1706 void OpenPopupOnItemClick(scope const(char)* str_id, int popup_flags) @trusted
1707 {
1708     igOpenPopupOnItemClick(str_id, popup_flags);
1709 }
1710 
1711 void CloseCurrentPopup() @trusted
1712 {
1713     igCloseCurrentPopup();
1714 }
1715 
1716 bool BeginPopupContextItem() @trusted
1717 {
1718     return igBeginPopupContextItem();
1719 }
1720 
1721 bool BeginPopupContextItemEx(scope const(char)* str_id, int popup_flags) @trusted
1722 {
1723     return igBeginPopupContextItemEx(str_id, popup_flags);
1724 }
1725 
1726 bool BeginPopupContextWindow() @trusted
1727 {
1728     return igBeginPopupContextWindow();
1729 }
1730 
1731 bool BeginPopupContextWindowEx(scope const(char)* str_id, int popup_flags) @trusted
1732 {
1733     return igBeginPopupContextWindowEx(str_id, popup_flags);
1734 }
1735 
1736 bool BeginPopupContextVoid() @trusted
1737 {
1738     return igBeginPopupContextVoid();
1739 }
1740 
1741 bool BeginPopupContextVoidEx(scope const(char)* str_id, int popup_flags) @trusted
1742 {
1743     return igBeginPopupContextVoidEx(str_id, popup_flags);
1744 }
1745 
1746 bool IsPopupOpen(scope const(char)* str_id, int flags) @trusted
1747 {
1748     return igIsPopupOpen(str_id, flags);
1749 }
1750 
1751 bool BeginTable(scope const(char)* str_id, int columns, int flags) @trusted
1752 {
1753     return igBeginTable(str_id, columns, flags);
1754 }
1755 
1756 bool BeginTableEx(scope const(char)* str_id, int columns, int flags, const ImVec2_t outer_size, float inner_width) @trusted
1757 {
1758     return igBeginTableEx(str_id, columns, flags, outer_size, inner_width);
1759 }
1760 
1761 void EndTable() @trusted
1762 {
1763     igEndTable();
1764 }
1765 
1766 void TableNextRow() @trusted
1767 {
1768     igTableNextRow();
1769 }
1770 
1771 void TableNextRowEx(int row_flags, float min_row_height) @trusted
1772 {
1773     igTableNextRowEx(row_flags, min_row_height);
1774 }
1775 
1776 bool TableNextColumn() @trusted
1777 {
1778     return igTableNextColumn();
1779 }
1780 
1781 bool TableSetColumnIndex(int column_n) @trusted
1782 {
1783     return igTableSetColumnIndex(column_n);
1784 }
1785 
1786 void TableSetupColumn(scope const(char)* label, int flags) @trusted
1787 {
1788     igTableSetupColumn(label, flags);
1789 }
1790 
1791 void TableSetupColumnEx(scope const(char)* label, int flags, float init_width_or_weight, uint user_id) @trusted
1792 {
1793     igTableSetupColumnEx(label, flags, init_width_or_weight, user_id);
1794 }
1795 
1796 void TableSetupScrollFreeze(int cols, int rows) @trusted
1797 {
1798     igTableSetupScrollFreeze(cols, rows);
1799 }
1800 
1801 void TableHeader(scope const(char)* label) @trusted
1802 {
1803     igTableHeader(label);
1804 }
1805 
1806 void TableHeadersRow() @trusted
1807 {
1808     igTableHeadersRow();
1809 }
1810 
1811 void TableAngledHeadersRow() @trusted
1812 {
1813     igTableAngledHeadersRow();
1814 }
1815 
1816 scope ImGuiTableSortSpecs_t* TableGetSortSpecs() @trusted
1817 {
1818     return igTableGetSortSpecs();
1819 }
1820 
1821 int TableGetColumnCount() @trusted
1822 {
1823     return igTableGetColumnCount();
1824 }
1825 
1826 int TableGetColumnIndex() @trusted
1827 {
1828     return igTableGetColumnIndex();
1829 }
1830 
1831 int TableGetRowIndex() @trusted
1832 {
1833     return igTableGetRowIndex();
1834 }
1835 
1836 scope const(char)* TableGetColumnName(int column_n) @trusted
1837 {
1838     return igTableGetColumnName(column_n);
1839 }
1840 
1841 int TableGetColumnFlags(int column_n) @trusted
1842 {
1843     return igTableGetColumnFlags(column_n);
1844 }
1845 
1846 void TableSetColumnEnabled(int column_n, bool v) @trusted
1847 {
1848     igTableSetColumnEnabled(column_n, v);
1849 }
1850 
1851 int TableGetHoveredColumn() @trusted
1852 {
1853     return igTableGetHoveredColumn();
1854 }
1855 
1856 void TableSetBgColor(int target, uint color, int column_n) @trusted
1857 {
1858     igTableSetBgColor(target, color, column_n);
1859 }
1860 
1861 void Columns() @trusted
1862 {
1863     igColumns();
1864 }
1865 
1866 void ColumnsEx(int count, scope const(char)* id, bool borders) @trusted
1867 {
1868     igColumnsEx(count, id, borders);
1869 }
1870 
1871 void NextColumn() @trusted
1872 {
1873     igNextColumn();
1874 }
1875 
1876 int GetColumnIndex() @trusted
1877 {
1878     return igGetColumnIndex();
1879 }
1880 
1881 float GetColumnWidth(int column_index) @trusted
1882 {
1883     return igGetColumnWidth(column_index);
1884 }
1885 
1886 void SetColumnWidth(int column_index, float width) @trusted
1887 {
1888     igSetColumnWidth(column_index, width);
1889 }
1890 
1891 float GetColumnOffset(int column_index) @trusted
1892 {
1893     return igGetColumnOffset(column_index);
1894 }
1895 
1896 void SetColumnOffset(int column_index, float offset_x) @trusted
1897 {
1898     igSetColumnOffset(column_index, offset_x);
1899 }
1900 
1901 int GetColumnsCount() @trusted
1902 {
1903     return igGetColumnsCount();
1904 }
1905 
1906 bool BeginTabBar(scope const(char)* str_id, int flags) @trusted
1907 {
1908     return igBeginTabBar(str_id, flags);
1909 }
1910 
1911 void EndTabBar() @trusted
1912 {
1913     igEndTabBar();
1914 }
1915 
1916 bool BeginTabItem(scope const(char)* label, bool* p_open, int flags) @trusted
1917 {
1918     return igBeginTabItem(label, p_open, flags);
1919 }
1920 
1921 void EndTabItem() @trusted
1922 {
1923     igEndTabItem();
1924 }
1925 
1926 bool TabItemButton(scope const(char)* label, int flags) @trusted
1927 {
1928     return igTabItemButton(label, flags);
1929 }
1930 
1931 void SetTabItemClosed(scope const(char)* tab_or_docked_window_label) @trusted
1932 {
1933     igSetTabItemClosed(tab_or_docked_window_label);
1934 }
1935 
1936 void LogToTTY(int auto_open_depth) @trusted
1937 {
1938     igLogToTTY(auto_open_depth);
1939 }
1940 
1941 void LogToFile(int auto_open_depth, scope const(char)* filename) @trusted
1942 {
1943     igLogToFile(auto_open_depth, filename);
1944 }
1945 
1946 void LogToClipboard(int auto_open_depth) @trusted
1947 {
1948     igLogToClipboard(auto_open_depth);
1949 }
1950 
1951 void LogFinish() @trusted
1952 {
1953     igLogFinish();
1954 }
1955 
1956 void LogButtons() @trusted
1957 {
1958     igLogButtons();
1959 }
1960 
1961 alias LogText = igLogText;
1962 
1963 void LogTextV(scope const(char)* fmt, __builtin_va_list args) @trusted
1964 {
1965     igLogTextV(fmt, args);
1966 }
1967 
1968 bool BeginDragDropSource(int flags) @trusted
1969 {
1970     return igBeginDragDropSource(flags);
1971 }
1972 
1973 bool SetDragDropPayload(scope const(char)* type, scope const(void)* data, size_t sz, int cond) @trusted
1974 {
1975     return igSetDragDropPayload(type, data, sz, cond);
1976 }
1977 
1978 void EndDragDropSource() @trusted
1979 {
1980     igEndDragDropSource();
1981 }
1982 
1983 bool BeginDragDropTarget() @trusted
1984 {
1985     return igBeginDragDropTarget();
1986 }
1987 
1988 const(ImGuiPayload_t*) AcceptDragDropPayload(scope const(char)* type, int flags) @trusted
1989 {
1990     return igAcceptDragDropPayload(type, flags);
1991 }
1992 
1993 void EndDragDropTarget() @trusted
1994 {
1995     igEndDragDropTarget();
1996 }
1997 
1998 const(ImGuiPayload_t*) GetDragDropPayload() @trusted
1999 {
2000     return igGetDragDropPayload();
2001 }
2002 
2003 void BeginDisabled(bool disabled) @trusted
2004 {
2005     igBeginDisabled(disabled);
2006 }
2007 
2008 void EndDisabled() @trusted
2009 {
2010     igEndDisabled();
2011 }
2012 
2013 void PushClipRect(const(ImVec2_t) clip_rect_min, const ImVec2_t clip_rect_max, bool intersect_with_current_clip_rect) @trusted
2014 {
2015     igPushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect);
2016 }
2017 
2018 void PopClipRect() @trusted
2019 {
2020     igPopClipRect();
2021 }
2022 
2023 void SetItemDefaultFocus() @trusted
2024 {
2025     igSetItemDefaultFocus();
2026 }
2027 
2028 void SetKeyboardFocusHere() @trusted
2029 {
2030     igSetKeyboardFocusHere();
2031 }
2032 
2033 void SetKeyboardFocusHereEx(int offset) @trusted
2034 {
2035     igSetKeyboardFocusHereEx(offset);
2036 }
2037 
2038 void SetNavCursorVisible(bool visible) @trusted
2039 {
2040     igSetNavCursorVisible(visible);
2041 }
2042 
2043 void SetNextItemAllowOverlap() @trusted
2044 {
2045     igSetNextItemAllowOverlap();
2046 }
2047 
2048 bool IsItemHovered(int flags) @trusted
2049 {
2050     return igIsItemHovered(flags);
2051 }
2052 
2053 bool IsItemActive() @trusted
2054 {
2055     return igIsItemActive();
2056 }
2057 
2058 bool IsItemFocused() @trusted
2059 {
2060     return igIsItemFocused();
2061 }
2062 
2063 bool IsItemClicked() @trusted
2064 {
2065     return igIsItemClicked();
2066 }
2067 
2068 bool IsItemClickedEx(int mouse_button) @trusted
2069 {
2070     return igIsItemClickedEx(mouse_button);
2071 }
2072 
2073 bool IsItemVisible() @trusted
2074 {
2075     return igIsItemVisible();
2076 }
2077 
2078 bool IsItemEdited() @trusted
2079 {
2080     return igIsItemEdited();
2081 }
2082 
2083 bool IsItemActivated() @trusted
2084 {
2085     return igIsItemActivated();
2086 }
2087 
2088 bool IsItemDeactivated() @trusted
2089 {
2090     return igIsItemDeactivated();
2091 }
2092 
2093 bool IsItemDeactivatedAfterEdit() @trusted
2094 {
2095     return igIsItemDeactivatedAfterEdit();
2096 }
2097 
2098 bool IsItemToggledOpen() @trusted
2099 {
2100     return igIsItemToggledOpen();
2101 }
2102 
2103 bool IsAnyItemHovered() @trusted
2104 {
2105     return igIsAnyItemHovered();
2106 }
2107 
2108 bool IsAnyItemActive() @trusted
2109 {
2110     return igIsAnyItemActive();
2111 }
2112 
2113 bool IsAnyItemFocused() @trusted
2114 {
2115     return igIsAnyItemFocused();
2116 }
2117 
2118 uint GetItemID() @trusted
2119 {
2120     return igGetItemID();
2121 }
2122 
2123 scope const(ImVec2_t) GetItemRectMin() @trusted
2124 {
2125     return igGetItemRectMin();
2126 }
2127 
2128 scope const(ImVec2_t) GetItemRectMax() @trusted
2129 {
2130     return igGetItemRectMax();
2131 }
2132 
2133 scope const(ImVec2_t) GetItemRectSize() @trusted
2134 {
2135     return igGetItemRectSize();
2136 }
2137 
2138 scope const(ImGuiViewport_t*) GetMainViewport() @trusted
2139 {
2140     return igGetMainViewport();
2141 }
2142 
2143 scope const(ImDrawList_t*) GetBackgroundDrawList() @trusted
2144 {
2145     return igGetBackgroundDrawList();
2146 }
2147 
2148 scope const(ImDrawList_t*) GetForegroundDrawList() @trusted
2149 {
2150     return igGetForegroundDrawList();
2151 }
2152 
2153 bool IsRectVisibleBySize(const(ImVec2_t) size) @trusted
2154 {
2155     return igIsRectVisibleBySize(size);
2156 }
2157 
2158 bool IsRectVisible(const(ImVec2_t) rect_min, const ImVec2_t rect_max) @trusted
2159 {
2160     return igIsRectVisible(rect_min, rect_max);
2161 }
2162 
2163 double GetTime() @trusted
2164 {
2165     return igGetTime();
2166 }
2167 
2168 int GetFrameCount() @trusted
2169 {
2170     return igGetFrameCount();
2171 }
2172 
2173 scope ImDrawListSharedData_t* GetDrawListSharedData() @trusted
2174 {
2175     return igGetDrawListSharedData();
2176 }
2177 
2178 scope const(char)* GetStyleColorName(int idx) @trusted
2179 {
2180     return igGetStyleColorName(idx);
2181 }
2182 
2183 void SetStateStorage(scope const(ImGuiStorage_t)* storage) @trusted
2184 {
2185     igSetStateStorage(cast(ImGuiStorage_t*) storage);
2186 }
2187 
2188 scope const(ImGuiStorage_t)* GetStateStorage() @trusted
2189 {
2190     return igGetStateStorage();
2191 }
2192 
2193 const(ImVec2_t) CalcTextSize(scope const(char)* text) @trusted
2194 {
2195     return igCalcTextSize(text);
2196 }
2197 
2198 const(ImVec2_t) CalcTextSizeEx(scope const(char)* text, scope const(char)* text_end, bool hide_text_after_double_hash, float wrap_width) @trusted
2199 {
2200     return igCalcTextSizeEx(text, text_end, hide_text_after_double_hash, wrap_width);
2201 }
2202 
2203 const(ImVec4_t) ColorConvertU32ToFloat4(uint input) @trusted
2204 {
2205     return igColorConvertU32ToFloat4(input);
2206 }
2207 
2208 uint ColorConvertFloat4ToU32(const(ImVec4_t) input) @trusted
2209 {
2210     return igColorConvertFloat4ToU32(input);
2211 }
2212 
2213 void ColorConvertRGBtoHSV(float r, float g, float b, scope float* out_h, scope float* out_s, scope float* out_v) @trusted
2214 {
2215     igColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v);
2216 }
2217 
2218 void ColorConvertHSVtoRGB(float h, float s, float v, scope float* out_r, scope float* out_g, scope float* out_b) @trusted
2219 {
2220     igColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b);
2221 }
2222 
2223 bool IsKeyDown(int key) @trusted
2224 {
2225     return igIsKeyDown(key);
2226 }
2227 
2228 bool IsKeyPressed(int key) @trusted
2229 {
2230     return igIsKeyPressed(key);
2231 }
2232 
2233 bool IsKeyPressedEx(int key, bool repeat) @trusted
2234 {
2235     return igIsKeyPressedEx(key, repeat);
2236 }
2237 
2238 bool IsKeyReleased(int key) @trusted
2239 {
2240     return igIsKeyReleased(key);
2241 }
2242 
2243 bool IsKeyChordPressed(int key_chord) @trusted
2244 {
2245     return igIsKeyChordPressed(key_chord);
2246 }
2247 
2248 int GetKeyPressedAmount(int key, float repeat_delay, float rate) @trusted
2249 {
2250     return igGetKeyPressedAmount(key, repeat_delay, rate);
2251 }
2252 
2253 const(char)* GetKeyName(int key) @trusted
2254 {
2255     return igGetKeyName(key);
2256 }
2257 
2258 void SetNextFrameWantCaptureKeyboard(bool want_capture_keyboard) @trusted
2259 {
2260     igSetNextFrameWantCaptureKeyboard(want_capture_keyboard);
2261 }
2262 
2263 bool Shortcut(int key_chord, int flags) @trusted
2264 {
2265     return igShortcut(key_chord, flags);
2266 }
2267 
2268 void SetNextItemShortcut(int key_chord, int flags) @trusted
2269 {
2270     igSetNextItemShortcut(key_chord, flags);
2271 }
2272 
2273 void SetItemKeyOwner(int key) @trusted
2274 {
2275     igSetItemKeyOwner(key);
2276 }
2277 
2278 bool IsMouseDown(int button) @trusted
2279 {
2280     return igIsMouseDown(button);
2281 }
2282 
2283 bool IsMouseClicked(int button) @trusted
2284 {
2285     return igIsMouseClicked(button);
2286 }
2287 
2288 bool IsMouseClickedEx(int button, bool repeat) @trusted
2289 {
2290     return igIsMouseClickedEx(button, repeat);
2291 }
2292 
2293 bool IsMouseReleased(int button) @trusted
2294 {
2295     return igIsMouseReleased(button);
2296 }
2297 
2298 bool IsMouseDoubleClicked(int button) @trusted
2299 {
2300     return igIsMouseDoubleClicked(button);
2301 }
2302 
2303 int GetMouseClickedCount(int button) @trusted
2304 {
2305     return igGetMouseClickedCount(button);
2306 }
2307 
2308 bool IsMouseHoveringRect(const(ImVec2_t) r_min, const ImVec2_t r_max) @trusted
2309 {
2310     return igIsMouseHoveringRect(r_min, r_max);
2311 }
2312 
2313 bool IsMouseHoveringRectEx(const(ImVec2_t) r_min, const ImVec2_t r_max, bool clip) @trusted
2314 {
2315     return igIsMouseHoveringRectEx(r_min, r_max, clip);
2316 }
2317 
2318 bool IsMousePosValid(scope const(ImVec2_t)* mouse_pos) @trusted
2319 {
2320     return igIsMousePosValid(cast(ImVec2_t*) mouse_pos);
2321 }
2322 
2323 bool IsAnyMouseDown() @trusted
2324 {
2325     return igIsAnyMouseDown();
2326 }
2327 
2328 const(ImVec2_t) GetMousePos() @trusted
2329 {
2330     return igGetMousePos();
2331 }
2332 
2333 const(ImVec2_t) GetMousePosOnOpeningCurrentPopup() @trusted
2334 {
2335     return igGetMousePosOnOpeningCurrentPopup();
2336 }
2337 
2338 bool IsMouseDragging(int button, float lock_threshold) @trusted
2339 {
2340     return igIsMouseDragging(button, lock_threshold);
2341 }
2342 
2343 const(ImVec2_t) GetMouseDragDelta(int button, float lock_threshold) @trusted
2344 {
2345     return igGetMouseDragDelta(button, lock_threshold);
2346 }
2347 
2348 void ResetMouseDragDelta() @trusted
2349 {
2350     igResetMouseDragDelta();
2351 }
2352 
2353 void ResetMouseDragDeltaEx(int button) @trusted
2354 {
2355     igResetMouseDragDeltaEx(button);
2356 }
2357 
2358 int GetMouseCursor() @trusted
2359 {
2360     return igGetMouseCursor();
2361 }
2362 
2363 void SetMouseCursor(int cursor_type) @trusted
2364 {
2365     igSetMouseCursor(cursor_type);
2366 }
2367 
2368 void SetNextFrameWantCaptureMouse(bool want_capture_mouse) @trusted
2369 {
2370     igSetNextFrameWantCaptureMouse(want_capture_mouse);
2371 }
2372 
2373 scope const(char)* GetClipboardText() @trusted
2374 {
2375     return igGetClipboardText();
2376 }
2377 
2378 void SetClipboardText(scope const(char)* text) @trusted
2379 {
2380     igSetClipboardText(text);
2381 }
2382 
2383 void LoadIniSettingsFromDisk(scope const(char)* ini_filename) @trusted
2384 {
2385     igLoadIniSettingsFromDisk(ini_filename);
2386 }
2387 
2388 void LoadIniSettingsFromMemory(scope const(char)* ini_data, size_t ini_size) @trusted
2389 {
2390     igLoadIniSettingsFromMemory(ini_data, ini_size);
2391 }
2392 
2393 void SaveIniSettingsToDisk(scope const(char)* ini_filename) @trusted
2394 {
2395     igSaveIniSettingsToDisk(ini_filename);
2396 }
2397 
2398 scope const(char)* SaveIniSettingsToMemory(scope size_t* out_ini_size) @trusted
2399 {
2400     return igSaveIniSettingsToMemory(out_ini_size);
2401 }
2402 
2403 void DebugTextEncoding(scope const(char)* text) @trusted
2404 {
2405     igDebugTextEncoding(text);
2406 }
2407 
2408 void DebugFlashStyleColor(int idx) @trusted
2409 {
2410     igDebugFlashStyleColor(idx);
2411 }
2412 
2413 void DebugStartItemPicker() @trusted
2414 {
2415     igDebugStartItemPicker();
2416 }
2417 
2418 bool DebugCheckVersionAndDataLayout(scope 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) @trusted
2419 {
2420     return igDebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx);
2421 }
2422 
2423 alias DebugLog = igDebugLog;
2424 
2425 void DebugLogV(scope const(char)* fmt, __builtin_va_list args) @trusted
2426 {
2427     igDebugLogV(fmt, args);
2428 }
2429 
2430 extern (C) void SetAllocatorFunctions(scope void* function(size_t sz, void* user_data) alloc_func, void function(
2431         void* ptr, void* user_data) free_func, scope void* user_data) @trusted
2432 {
2433     igSetAllocatorFunctions(alloc_func, free_func, user_data);
2434 }
2435 
2436 extern (C) void GetAllocatorFunctions(scope void* function(size_t sz, void* user_data)* p_alloc_func, void function(
2437         void* ptr, void* user_data)* p_free_func, scope void** p_user_data) @trusted
2438 {
2439     igGetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data);
2440 }
2441 
2442 scope void* MemAlloc(size_t size) @trusted
2443 {
2444     return igMemAlloc(size);
2445 }
2446 
2447 void MemFree(scope void* ptr) @trusted
2448 {
2449     igMemFree(ptr);
2450 }
2451 
2452 void VectorConstruct(scope void* vector) @trusted
2453 {
2454     ImVector_Construct(vector);
2455 }
2456 
2457 void VectorDestruct(scope void* vector) @trusted
2458 {
2459     ImVector_Destruct(vector);
2460 }
2461 
2462 void StyleScaleAllSizes(scope ImGuiStyle_t* self, float scale_factor) @trusted
2463 {
2464     ImGuiStyle_ScaleAllSizes(self, scale_factor);
2465 }
2466 
2467 void IOAddKeyEvent(scope ImGuiIO_t* self, int key, bool down) @trusted
2468 {
2469     ImGuiIO_AddKeyEvent(self, key, down);
2470 }
2471 
2472 void IOAddKeyAnalogEvent(scope ImGuiIO_t* self, int key, bool down, float v) @trusted
2473 {
2474     ImGuiIO_AddKeyAnalogEvent(self, key, down, v);
2475 }
2476 
2477 void IOAddMousePosEvent(scope ImGuiIO_t* self, float x, float y) @trusted
2478 {
2479     ImGuiIO_AddMousePosEvent(self, x, y);
2480 }
2481 
2482 void IOAddMouseButtonEvent(scope ImGuiIO_t* self, int button, bool down) @trusted
2483 {
2484     ImGuiIO_AddMouseButtonEvent(self, button, down);
2485 }
2486 
2487 void IOAddMouseWheelEvent(scope ImGuiIO_t* self, float wheel_x, float wheel_y) @trusted
2488 {
2489     ImGuiIO_AddMouseWheelEvent(self, wheel_x, wheel_y);
2490 }
2491 
2492 void IOAddMouseSourceEvent(scope ImGuiIO_t* self, int source) @trusted
2493 {
2494     ImGuiIO_AddMouseSourceEvent(self, source);
2495 }
2496 
2497 void IOAddFocusEvent(scope ImGuiIO_t* self, bool focused) @trusted
2498 {
2499     ImGuiIO_AddFocusEvent(self, focused);
2500 }
2501 
2502 void IOAddInputCharacter(scope ImGuiIO_t* self, uint c) @trusted
2503 {
2504     ImGuiIO_AddInputCharacter(self, c);
2505 }
2506 
2507 void IOAddInputCharacterUTF16(scope ImGuiIO_t* self, ushort c) @trusted
2508 {
2509     ImGuiIO_AddInputCharacterUTF16(self, c);
2510 }
2511 
2512 void IOAddInputCharactersUTF8(scope ImGuiIO_t* self, scope const(char)* str) @trusted
2513 {
2514     ImGuiIO_AddInputCharactersUTF8(self, str);
2515 }
2516 
2517 void IOSetKeyEventNativeData(scope ImGuiIO_t* self, int key, int native_keycode, int native_scancode) @trusted
2518 {
2519     ImGuiIO_SetKeyEventNativeData(self, key, native_keycode, native_scancode);
2520 }
2521 
2522 void IOSetKeyEventNativeDataEx(scope ImGuiIO_t* self, int key, int native_keycode, int native_scancode, int native_legacy_index) @trusted
2523 {
2524     ImGuiIO_SetKeyEventNativeDataEx(self, key, native_keycode, native_scancode, native_legacy_index);
2525 }
2526 
2527 void IOSetAppAcceptingEvents(scope ImGuiIO_t* self, bool accepting_events) @trusted
2528 {
2529     ImGuiIO_SetAppAcceptingEvents(self, accepting_events);
2530 }
2531 
2532 void IOClearEventsQueue(scope ImGuiIO_t* self) @trusted
2533 {
2534     ImGuiIO_ClearEventsQueue(self);
2535 }
2536 
2537 void IOClearInputKeys(scope ImGuiIO_t* self) @trusted
2538 {
2539     ImGuiIO_ClearInputKeys(self);
2540 }
2541 
2542 void IOClearInputMouse(scope ImGuiIO_t* self) @trusted
2543 {
2544     ImGuiIO_ClearInputMouse(self);
2545 }
2546 
2547 void IOClearInputCharacters(scope ImGuiIO_t* self) @trusted
2548 {
2549     ImGuiIO_ClearInputCharacters(self);
2550 }
2551 
2552 void InputTextCallbackDataDeleteChars(
2553     scope const(ImGuiInputTextCallbackData_t)* self, int pos, int bytes_count) @trusted
2554 {
2555     ImGuiInputTextCallbackData_DeleteChars(cast(ImGuiInputTextCallbackData_t*) self, pos, bytes_count);
2556 }
2557 
2558 void InputTextCallbackDataInsertChars(scope const(ImGuiInputTextCallbackData_t)* self, int pos, scope const(
2559         char)* text, scope const(
2560         char)* text_end) @trusted
2561 {
2562     ImGuiInputTextCallbackData_InsertChars(cast(ImGuiInputTextCallbackData_t*) self, pos, text, text_end);
2563 }
2564 
2565 void InputTextCallbackDataSelectAll(scope const(ImGuiInputTextCallbackData_t)* self) @trusted
2566 {
2567     ImGuiInputTextCallbackData_SelectAll(cast(ImGuiInputTextCallbackData_t*) self);
2568 }
2569 
2570 void InputTextCallbackDataClearSelection(scope const(ImGuiInputTextCallbackData_t)* self) @trusted
2571 {
2572     ImGuiInputTextCallbackData_ClearSelection(cast(ImGuiInputTextCallbackData_t*) self);
2573 }
2574 
2575 bool InputTextCallbackDataHasSelection(scope const(ImGuiInputTextCallbackData_t)* self) @trusted
2576 {
2577     return ImGuiInputTextCallbackData_HasSelection(cast(ImGuiInputTextCallbackData_t*) self);
2578 }
2579 
2580 void PayloadClear(scope const(ImGuiPayload_t*) self) @trusted
2581 {
2582     ImGuiPayload_Clear(cast(ImGuiPayload_t*) self);
2583 }
2584 
2585 bool PayloadIsDataType(scope const(ImGuiPayload_t*) self, scope const(char)* type) @trusted
2586 {
2587     return ImGuiPayload_IsDataType(cast(ImGuiPayload_t*) self, type);
2588 }
2589 
2590 bool PayloadIsPreview(scope const(ImGuiPayload_t*) self) @trusted
2591 {
2592     return ImGuiPayload_IsPreview(cast(ImGuiPayload_t*) self);
2593 }
2594 
2595 bool PayloadIsDelivery(scope const(ImGuiPayload_t*) self) @trusted
2596 {
2597     return ImGuiPayload_IsDelivery(cast(ImGuiPayload_t*) self);
2598 }
2599 
2600 bool TextFilterRangeEmpty(const(ImGuiTextFilter_ImGuiTextRange_t)* self) @trusted
2601 {
2602     return ImGuiTextFilter_ImGuiTextRange_empty(cast(ImGuiTextFilter_ImGuiTextRange_t*) self);
2603 }
2604 
2605 void TextFilterRangeSplit(scope const(ImGuiTextFilter_ImGuiTextRange_t)* self, char separator, scope ImVector_ImGuiTextFilter_ImGuiTextRange_t* output) @trusted
2606 {
2607     ImGuiTextFilter_ImGuiTextRange_split(cast(ImGuiTextFilter_ImGuiTextRange_t*) self, separator, output);
2608 }
2609 
2610 bool TextFilterDraw(scope const(ImGuiTextFilter_t)* self, scope const(char)* label, float width) @trusted
2611 {
2612     return ImGuiTextFilter_Draw(cast(ImGuiTextFilter_t*) self, label, width);
2613 }
2614 
2615 bool TextFilterPassFilter(scope const(ImGuiTextFilter_t)* self, scope const(char)* text, scope const(
2616         char)* text_end) @trusted
2617 {
2618     return ImGuiTextFilter_PassFilter(cast(ImGuiTextFilter_t*) self, text, text_end);
2619 }
2620 
2621 void TextFilterBuild(scope const(ImGuiTextFilter_t)* self) @trusted
2622 {
2623     ImGuiTextFilter_Build(cast(ImGuiTextFilter_t*) self);
2624 }
2625 
2626 void TextFilterClear(scope const(ImGuiTextFilter_t)* self) @trusted
2627 {
2628     ImGuiTextFilter_Clear(cast(ImGuiTextFilter_t*) self);
2629 }
2630 
2631 bool TextFilterIsActive(scope const(ImGuiTextFilter_t)* self) @trusted
2632 {
2633     return ImGuiTextFilter_IsActive(cast(ImGuiTextFilter_t*) self);
2634 }
2635 
2636 const(char)* TextBufferBegin(scope const(ImGuiTextBuffer_t)* self) @trusted
2637 {
2638     return ImGuiTextBuffer_begin(cast(ImGuiTextBuffer_t*) self);
2639 }
2640 
2641 const(char)* TextBufferEnd(scope const(ImGuiTextBuffer_t)* self) @trusted
2642 {
2643     return ImGuiTextBuffer_end(cast(ImGuiTextBuffer_t*) self);
2644 }
2645 
2646 int TextBufferSize(scope const(ImGuiTextBuffer_t)* self) @trusted
2647 {
2648     return ImGuiTextBuffer_size(cast(ImGuiTextBuffer_t*) self);
2649 }
2650 
2651 bool TextBufferEmpty(scope const(ImGuiTextBuffer_t)* self) @trusted
2652 {
2653     return ImGuiTextBuffer_empty(cast(ImGuiTextBuffer_t*) self);
2654 }
2655 
2656 void TextBufferClear(scope const(ImGuiTextBuffer_t)* self) @trusted
2657 {
2658     ImGuiTextBuffer_clear(cast(ImGuiTextBuffer_t*) self);
2659 }
2660 
2661 void TextBufferReserve(scope const(ImGuiTextBuffer_t)* self, int capacity) @trusted
2662 {
2663     ImGuiTextBuffer_reserve(cast(ImGuiTextBuffer_t*) self, capacity);
2664 }
2665 
2666 const(char)* TextBufferCStr(scope const(ImGuiTextBuffer_t)* self) @trusted
2667 {
2668     return ImGuiTextBuffer_c_str(cast(ImGuiTextBuffer_t*) self);
2669 }
2670 
2671 void TextBufferAppend(scope const(ImGuiTextBuffer_t)* self, scope const(char)* str, scope const(
2672         char)* str_end) @trusted
2673 {
2674     ImGuiTextBuffer_append(cast(ImGuiTextBuffer_t*) self, str, str_end);
2675 }
2676 
2677 void TextBufferAppendF(scope const(ImGuiTextBuffer_t)* self, scope const(char)* fmt, __builtin_va_list args) @trusted
2678 {
2679     ImGuiTextBuffer_appendf(cast(ImGuiTextBuffer_t*) self, fmt, args);
2680 }
2681 
2682 void TextBufferAppendFV(scope const(ImGuiTextBuffer_t)* self, scope const(char)* fmt, __builtin_va_list args) @trusted
2683 {
2684     ImGuiTextBuffer_appendfv(cast(ImGuiTextBuffer_t*) self, fmt, args);
2685 }
2686 
2687 void StorageClear(scope const(ImGuiStorage_t)* self) @trusted
2688 {
2689     ImGuiStorage_Clear(cast(ImGuiStorage_t*) self);
2690 }
2691 
2692 int StorageGetInt(scope const(ImGuiStorage_t)* self, uint key, int default_val) @trusted
2693 {
2694     return ImGuiStorage_GetInt(cast(ImGuiStorage_t*) self, key, default_val);
2695 }
2696 
2697 void StorageSetInt(scope const(ImGuiStorage_t)* self, uint key, int val) @trusted
2698 {
2699     ImGuiStorage_SetInt(cast(ImGuiStorage_t*) self, key, val);
2700 }
2701 
2702 bool StorageGetBool(scope const(ImGuiStorage_t)* self, uint key, bool default_val) @trusted
2703 {
2704     return ImGuiStorage_GetBool(cast(ImGuiStorage_t*) self, key, default_val);
2705 }
2706 
2707 void StorageSetBool(scope const(ImGuiStorage_t)* self, uint key, bool val) @trusted
2708 {
2709     ImGuiStorage_SetBool(cast(ImGuiStorage_t*) self, key, val);
2710 }
2711 
2712 float StorageGetFloat(scope const(ImGuiStorage_t)* self, uint key, float default_val) @trusted
2713 {
2714     return ImGuiStorage_GetFloat(cast(ImGuiStorage_t*) self, key, default_val);
2715 }
2716 
2717 void StorageSetFloat(scope const(ImGuiStorage_t)* self, uint key, float val) @trusted
2718 {
2719     ImGuiStorage_SetFloat(cast(ImGuiStorage_t*) self, key, val);
2720 }
2721 
2722 scope void* StorageGetVoidPtr(scope const(ImGuiStorage_t)* self, uint key) @trusted
2723 {
2724     return ImGuiStorage_GetVoidPtr(cast(ImGuiStorage_t*) self, key);
2725 }
2726 
2727 void StorageSetVoidPtr(scope const(ImGuiStorage_t)* self, uint key, scope void* val) @trusted
2728 {
2729     ImGuiStorage_SetVoidPtr(cast(ImGuiStorage_t*) self, key, val);
2730 }
2731 
2732 scope int* StorageGetIntRef(scope const(ImGuiStorage_t)* self, uint key, int default_val) @trusted
2733 {
2734     return ImGuiStorage_GetIntRef(cast(ImGuiStorage_t*) self, key, default_val);
2735 }
2736 
2737 scope bool* StorageGetBoolRef(scope const(ImGuiStorage_t)* self, uint key, bool default_val) @trusted
2738 {
2739     return ImGuiStorage_GetBoolRef(cast(ImGuiStorage_t*) self, key, default_val);
2740 }
2741 
2742 scope float* StorageGetFloatRef(scope const(ImGuiStorage_t)* self, uint key, float default_val) @trusted
2743 {
2744     return ImGuiStorage_GetFloatRef(cast(ImGuiStorage_t*) self, key, default_val);
2745 }
2746 
2747 scope void** StorageGetVoidPtrRef(scope const(ImGuiStorage_t)* self, uint key, scope void* default_val) @trusted
2748 {
2749     return ImGuiStorage_GetVoidPtrRef(cast(ImGuiStorage_t*) self, key, default_val);
2750 }
2751 
2752 void StorageBuildSortByKey(scope const(ImGuiStorage_t)* self) @trusted
2753 {
2754     ImGuiStorage_BuildSortByKey(cast(ImGuiStorage_t*) self);
2755 }
2756 
2757 void StorageSetAllInt(scope const(ImGuiStorage_t)* self, int val) @trusted
2758 {
2759     ImGuiStorage_SetAllInt(cast(ImGuiStorage_t*) self, val);
2760 }
2761 
2762 void ListClipperBegin(scope ImGuiListClipper_t* self, int items_count, float items_height) @trusted
2763 {
2764     ImGuiListClipper_Begin(self, items_count, items_height);
2765 }
2766 
2767 void ListClipperEnd(scope ImGuiListClipper_t* self) @trusted
2768 {
2769     ImGuiListClipper_End(self);
2770 }
2771 
2772 bool ListClipperStep(scope ImGuiListClipper_t* self) @trusted
2773 {
2774     return ImGuiListClipper_Step(self);
2775 }
2776 
2777 void ListClipperIncludeItemByIndex(scope ImGuiListClipper_t* self, int item_index) @trusted
2778 {
2779     ImGuiListClipper_IncludeItemByIndex(self, item_index);
2780 }
2781 
2782 void ListClipperIncludeItemsByIndex(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted
2783 {
2784     ImGuiListClipper_IncludeItemsByIndex(self, item_begin, item_end);
2785 }
2786 
2787 void ListClipperSeekCursorForItem(scope ImGuiListClipper_t* self, int item_index) @trusted
2788 {
2789     ImGuiListClipper_SeekCursorForItem(self, item_index);
2790 }
2791 
2792 void ListClipperIncludeRangeByIndices(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted
2793 {
2794     ImGuiListClipper_IncludeRangeByIndices(self, item_begin, item_end);
2795 }
2796 
2797 void ListClipperForceDisplayRangeByIndices(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted
2798 {
2799     ImGuiListClipper_ForceDisplayRangeByIndices(self, item_begin, item_end);
2800 }
2801 
2802 void ColorSetHSV(scope ImColor_t* self, float h, float s, float v, float a) @trusted
2803 {
2804     ImColor_SetHSV(self, h, s, v, a);
2805 }
2806 
2807 ImColor_t ColorHSV(float h, float s, float v, float a) @trusted
2808 {
2809     return ImColor_HSV(h, s, v, a);
2810 }
2811 
2812 void SelectionBasicStorageApplyRequests(
2813     scope const(ImGuiSelectionBasicStorage_t)* self, scope ImGuiMultiSelectIO_t* ms_io) @trusted
2814 {
2815     ImGuiSelectionBasicStorage_ApplyRequests(cast(ImGuiSelectionBasicStorage_t*) self, ms_io);
2816 }
2817 
2818 bool SelectionBasicStorageContains(scope const(ImGuiSelectionBasicStorage_t)* self, uint id) @trusted
2819 {
2820     return ImGuiSelectionBasicStorage_Contains(cast(ImGuiSelectionBasicStorage_t*) self, id);
2821 }
2822 
2823 void SelectionBasicStorageClear(scope const(ImGuiSelectionBasicStorage_t)* self) @trusted
2824 {
2825     ImGuiSelectionBasicStorage_Clear(cast(ImGuiSelectionBasicStorage_t*) self);
2826 }
2827 
2828 void SelectionBasicStorageSwap(scope const(ImGuiSelectionBasicStorage_t)* self, scope const(
2829         ImGuiSelectionBasicStorage_t)* r) @trusted
2830 {
2831     ImGuiSelectionBasicStorage_Swap(cast(ImGuiSelectionBasicStorage_t*) self, cast(
2832             ImGuiSelectionBasicStorage_t*) r);
2833 }
2834 
2835 void SelectionBasicStorageSetItemSelected(
2836     scope const(ImGuiSelectionBasicStorage_t)* self, uint id, bool selected) @trusted
2837 {
2838     ImGuiSelectionBasicStorage_SetItemSelected(cast(ImGuiSelectionBasicStorage_t*) self, id, selected);
2839 }
2840 
2841 bool SelectionBasicStorageGetNextSelectedItem(
2842     const ImGuiSelectionBasicStorage_t* self, scope void** opaque_it, scope uint* out_id) @trusted
2843 {
2844     return ImGuiSelectionBasicStorage_GetNextSelectedItem(
2845         cast(ImGuiSelectionBasicStorage_t*) self, opaque_it, out_id);
2846 }
2847 
2848 uint SelectionBasicStorageGetStorageIdFromIndex(
2849     scope const(ImGuiSelectionBasicStorage_t)* self, int idx) @trusted
2850 {
2851     return ImGuiSelectionBasicStorage_GetStorageIdFromIndex(
2852         cast(ImGuiSelectionBasicStorage_t*) self, idx);
2853 }
2854 
2855 void applyRequests(
2856     ImGuiSelectionExternalStorage_t* self, ImGuiMultiSelectIO_t* ms_io) @trusted
2857 {
2858     ImGuiSelectionExternalStorage_ApplyRequests(self, ms_io);
2859 }
2860 
2861 auto getTexID(scope const(ImDrawCmd_t)* self) @trusted
2862 {
2863     return ImDrawCmd_GetTexID(cast(ImDrawCmd_t*) self);
2864 }
2865 
2866 void clear(scope ImDrawListSplitter_t* self) @trusted
2867 {
2868     ImDrawListSplitter_Clear(self);
2869 }
2870 
2871 void clearFreeMemory(scope ImDrawListSplitter_t* self) @trusted
2872 {
2873     ImDrawListSplitter_ClearFreeMemory(self);
2874 }
2875 
2876 void split(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list, int count) @trusted
2877 {
2878     ImDrawListSplitter_Split(self, cast(ImDrawList_t*) draw_list, count);
2879 }
2880 
2881 void merge(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list) @trusted
2882 {
2883     ImDrawListSplitter_Merge(self, cast(ImDrawList_t*) draw_list);
2884 }
2885 
2886 void setCurrentChannel(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list, int channel_idx) @trusted
2887 {
2888     ImDrawListSplitter_SetCurrentChannel(self, cast(ImDrawList_t*) draw_list, channel_idx);
2889 }
2890 
2891 void pushClipRect(scope const(ImDrawList_t)* self, const ImVec2_t clip_rect_min, const ImVec2_t clip_rect_max, bool intersect_with_current_clip_rect) @trusted
2892 {
2893     ImDrawList_PushClipRect(cast(ImDrawList_t*) self, clip_rect_min, clip_rect_max, intersect_with_current_clip_rect);
2894 }
2895 
2896 void pushClipRectFullScreen(scope const(ImDrawList_t)* self) @trusted
2897 {
2898     ImDrawList_PushClipRectFullScreen(cast(ImDrawList_t*) self);
2899 }
2900 
2901 void popClipRect(scope const(ImDrawList_t)* self) @trusted
2902 {
2903     ImDrawList_PopClipRect(cast(ImDrawList_t*) self);
2904 }
2905 
2906 void pushTextureID(scope const(ImDrawList_t)* self, size_t texture_id) @trusted
2907 {
2908     ImDrawList_PushTextureID(cast(ImDrawList_t*) self, texture_id);
2909 }
2910 
2911 void popTextureID(scope const(ImDrawList_t)* self) @trusted
2912 {
2913     ImDrawList_PopTextureID(cast(ImDrawList_t*) self);
2914 }
2915 
2916 const(ImVec2_t) getClipRectMin(scope const(ImDrawList_t)* self) @trusted
2917 {
2918     return ImDrawList_GetClipRectMin(cast(ImDrawList_t*) self);
2919 }
2920 
2921 const(ImVec2_t) getClipRectMax(scope const(ImDrawList_t)* self) @trusted
2922 {
2923     return ImDrawList_GetClipRectMax(cast(ImDrawList_t*) self);
2924 }
2925 
2926 void addLine(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, uint col) @trusted
2927 {
2928     ImDrawList_AddLine(cast(ImDrawList_t*) self, p1, p2, col);
2929 }
2930 
2931 void addLineEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, uint col, float thickness) @trusted
2932 {
2933     ImDrawList_AddLineEx(cast(ImDrawList_t*) self, p1, p2, col, thickness);
2934 }
2935 
2936 void addRect(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col) @trusted
2937 {
2938     ImDrawList_AddRect(cast(ImDrawList_t*) self, p_min, p_max, col);
2939 }
2940 
2941 void addRectEx(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col, float rounding, int flags, float thickness) @trusted
2942 {
2943     ImDrawList_AddRectEx(cast(ImDrawList_t*) self, p_min, p_max, col, rounding, flags, thickness);
2944 }
2945 
2946 void addRectFilled(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col) @trusted
2947 {
2948     ImDrawList_AddRectFilled(cast(ImDrawList_t*) self, p_min, p_max, col);
2949 }
2950 
2951 void addRectFilledEx(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col, float rounding, int flags) @trusted
2952 {
2953     ImDrawList_AddRectFilledEx(cast(ImDrawList_t*) self, p_min, p_max, col, rounding, flags);
2954 }
2955 
2956 void addRectFilledMultiColor(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left) @trusted
2957 {
2958     ImDrawList_AddRectFilledMultiColor(cast(ImDrawList_t*) self, p_min, p_max, col_upr_left, col_upr_right, col_bot_right, col_bot_left);
2959 }
2960 
2961 void addQuad(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col) @trusted
2962 {
2963     ImDrawList_AddQuad(cast(ImDrawList_t*) self, p1, p2, p3, p4, col);
2964 }
2965 
2966 void addQuadEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col, float thickness) @trusted
2967 {
2968     ImDrawList_AddQuadEx(cast(ImDrawList_t*) self, p1, p2, p3, p4, col, thickness);
2969 }
2970 
2971 void addQuadFilled(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col) @trusted
2972 {
2973     ImDrawList_AddQuadFilled(cast(ImDrawList_t*) self, p1, p2, p3, p4, col);
2974 }
2975 
2976 void addTriangle(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col) @trusted
2977 {
2978     ImDrawList_AddTriangle(cast(ImDrawList_t*) self, p1, p2, p3, col);
2979 }
2980 
2981 void addTriangleEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col, float thickness) @trusted
2982 {
2983     ImDrawList_AddTriangleEx(cast(ImDrawList_t*) self, p1, p2, p3, col, thickness);
2984 }
2985 
2986 void addTriangleFilled(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col) @trusted
2987 {
2988     ImDrawList_AddTriangleFilled(cast(ImDrawList_t*) self, p1, p2, p3, col);
2989 }
2990 
2991 void addCircle(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col) @trusted
2992 {
2993     ImDrawList_AddCircle(cast(ImDrawList_t*) self, center, radius, col);
2994 }
2995 
2996 void addCircleEx(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments, float thickness) @trusted
2997 {
2998     ImDrawList_AddCircleEx(cast(ImDrawList_t*) self, center, radius, col, num_segments, thickness);
2999 }
3000 
3001 void addCircleFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted
3002 {
3003     ImDrawList_AddCircleFilled(cast(ImDrawList_t*) self, center, radius, col, num_segments);
3004 }
3005 
3006 void addNgon(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted
3007 {
3008     ImDrawList_AddNgon(cast(ImDrawList_t*) self, center, radius, col, num_segments);
3009 }
3010 
3011 void addNgonEx(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments, float thickness) @trusted
3012 {
3013     ImDrawList_AddNgonEx(cast(ImDrawList_t*) self, center, radius, col, num_segments, thickness);
3014 }
3015 
3016 void addNgonFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted
3017 {
3018     ImDrawList_AddNgonFilled(cast(ImDrawList_t*) self, center, radius, col, num_segments);
3019 }
3020 
3021 void addEllipse(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col) @trusted
3022 {
3023     ImDrawList_AddEllipse(cast(ImDrawList_t*) self, center, radius, col);
3024 }
3025 
3026 void addEllipseEx(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col, float rot, int num_segments, float thickness) @trusted
3027 {
3028     ImDrawList_AddEllipseEx(cast(ImDrawList_t*) self, center, radius, col, rot, num_segments, thickness);
3029 }
3030 
3031 void addEllipseFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col) @trusted
3032 {
3033     ImDrawList_AddEllipseFilled(cast(ImDrawList_t*) self, center, radius, col);
3034 }
3035 
3036 void addEllipseFilledEx(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col, float rot, int num_segments) @trusted
3037 {
3038     ImDrawList_AddEllipseFilledEx(cast(ImDrawList_t*) self, center, radius, col, rot, num_segments);
3039 }
3040 
3041 void addText(scope const(ImDrawList_t)* self, const ImVec2_t pos, uint col, scope const(char)* text_begin) @trusted
3042 {
3043     ImDrawList_AddText(cast(ImDrawList_t*) self, pos, col, text_begin);
3044 }
3045 
3046 void addTextEx(scope const(ImDrawList_t)* self, const ImVec2_t pos, uint col, scope const(char)* text_begin, scope const(
3047         char)* text_end) @trusted
3048 {
3049     ImDrawList_AddTextEx(cast(ImDrawList_t*) self, pos, col, text_begin, text_end);
3050 }
3051 
3052 void addTextImFontPtr(scope const(ImDrawList_t)* self, scope const(ImFont_t)* font, float font_size, const ImVec2_t pos, uint col, scope const(
3053         char)* text_begin) @trusted
3054 {
3055     ImDrawList_AddTextImFontPtr(cast(ImDrawList_t*) self, cast(ImFont_t*) font, font_size, pos, col, text_begin);
3056 }
3057 
3058 void addTextImFontPtrEx(scope const(ImDrawList_t)* self, scope const(ImFont_t)* font, float font_size, const ImVec2_t pos, uint col, scope const(
3059         char)* text_begin, scope const(
3060         char)* text_end, float wrap_width, scope const(ImVec4_t)* cpu_fine_clip_rect) @trusted
3061 {
3062     ImDrawList_AddTextImFontPtrEx(cast(ImDrawList_t*) self, cast(ImFont_t*) font, font_size, pos, col, text_begin, text_end, wrap_width, cast(
3063             ImVec4_t*) cpu_fine_clip_rect);
3064 }
3065 
3066 void addBezierCubic(scope ImDrawList_t* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col, float thickness, int num_segments) @trusted
3067 {
3068     ImDrawList_AddBezierCubic(self, p1, p2, p3, p4, col, thickness, num_segments);
3069 }
3070 
3071 void addBezierQuadratic(scope ImDrawList_t* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col, float thickness, int num_segments) @trusted
3072 {
3073     ImDrawList_AddBezierQuadratic(self, p1, p2, p3, col, thickness, num_segments);
3074 }
3075 
3076 void addPolyline(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col, int flags, float thickness) @trusted
3077 {
3078     ImDrawList_AddPolyline(self, cast(ImVec2_t*) points, num_points, col, flags, thickness);
3079 }
3080 
3081 void addConvexPolyFilled(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col) @trusted
3082 {
3083     ImDrawList_AddConvexPolyFilled(self, cast(ImVec2_t*) points, num_points, col);
3084 }
3085 
3086 void addConcavePolyFilled(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col) @trusted
3087 {
3088     ImDrawList_AddConcavePolyFilled(self, cast(ImVec2_t*) points, num_points, col);
3089 }
3090 
3091 void addImage(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max) @trusted
3092 {
3093     ImDrawList_AddImage(self, user_texture_id, p_min, p_max);
3094 }
3095 
3096 void addImageEx(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max, const ImVec2_t uv_min, const ImVec2_t uv_max, uint col) @trusted
3097 {
3098     ImDrawList_AddImageEx(self, user_texture_id, p_min, p_max, uv_min, uv_max, col);
3099 }
3100 
3101 void addImageQuad(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4) @trusted
3102 {
3103     ImDrawList_AddImageQuad(self, user_texture_id, p1, p2, p3, p4);
3104 }
3105 
3106 void addImageQuadEx(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, const ImVec2_t uv1, const ImVec2_t uv2, const ImVec2_t uv3, const ImVec2_t uv4, uint col) @trusted
3107 {
3108     ImDrawList_AddImageQuadEx(self, user_texture_id, p1, p2, p3, p4, uv1, uv2, uv3, uv4, col);
3109 }
3110 
3111 void addImageRounded(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max, const ImVec2_t uv_min, const ImVec2_t uv_max, uint col, float rounding, int flags) @trusted
3112 {
3113     ImDrawList_AddImageRounded(self, user_texture_id, p_min, p_max, uv_min, uv_max, col, rounding, flags);
3114 }
3115 
3116 void pathClear(scope ImDrawList_t* self) @trusted
3117 {
3118     ImDrawList_PathClear(self);
3119 }
3120 
3121 void pathLineTo(scope ImDrawList_t* self, const ImVec2_t pos) @trusted
3122 {
3123     ImDrawList_PathLineTo(self, pos);
3124 }
3125 
3126 void pathLineToMergeDuplicate(scope ImDrawList_t* self, const ImVec2_t pos) @trusted
3127 {
3128     ImDrawList_PathLineToMergeDuplicate(self, pos);
3129 }
3130 
3131 void pathFillConvex(scope ImDrawList_t* self, uint col) @trusted
3132 {
3133     ImDrawList_PathFillConvex(self, col);
3134 }
3135 
3136 void pathFillConcave(scope ImDrawList_t* self, uint col) @trusted
3137 {
3138     ImDrawList_PathFillConcave(self, col);
3139 }
3140 
3141 void pathStroke(scope ImDrawList_t* self, uint col, int flags, float thickness) @trusted
3142 {
3143     ImDrawList_PathStroke(self, col, flags, thickness);
3144 }
3145 
3146 void pathArcTo(scope ImDrawList_t* self, const ImVec2_t center, float radius, float a_min, float a_max, int num_segments) @trusted
3147 {
3148     ImDrawList_PathArcTo(self, center, radius, a_min, a_max, num_segments);
3149 }
3150 
3151 void pathArcToFast(scope ImDrawList_t* self, const ImVec2_t center, float radius, int a_min_of_12, int a_max_of_12) @trusted
3152 {
3153     ImDrawList_PathArcToFast(self, center, radius, a_min_of_12, a_max_of_12);
3154 }
3155 
3156 void pathEllipticalArcTo(scope ImDrawList_t* self, const ImVec2_t center, const ImVec2_t radius, float rot, float a_min, float a_max) @trusted
3157 {
3158     ImDrawList_PathEllipticalArcTo(self, center, radius, rot, a_min, a_max);
3159 }
3160 
3161 void pathEllipticalArcToEx(scope ImDrawList_t* self, const ImVec2_t center, const ImVec2_t radius, float rot, float a_min, float a_max, int num_segments) @trusted
3162 {
3163     ImDrawList_PathEllipticalArcToEx(self, center, radius, rot, a_min, a_max, num_segments);
3164 }
3165 
3166 void pathBezierCubicCurveTo(scope ImDrawList_t* self, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, int num_segments) @trusted
3167 {
3168     ImDrawList_PathBezierCubicCurveTo(self, p2, p3, p4, num_segments);
3169 }
3170 
3171 void pathBezierQuadraticCurveTo(scope ImDrawList_t* self, const ImVec2_t p2, const ImVec2_t p3, int num_segments) @trusted
3172 {
3173     ImDrawList_PathBezierQuadraticCurveTo(self, p2, p3, num_segments);
3174 }
3175 
3176 void pathRect(scope ImDrawList_t* self, const ImVec2_t rect_min, const ImVec2_t rect_max, float rounding, int flags) @trusted
3177 {
3178     ImDrawList_PathRect(self, rect_min, rect_max, rounding, flags);
3179 }
3180 
3181 extern (C) void addCallback(scope ImDrawList_t* self, void function(scope const(
3182         ImDrawList_t)* parent_list, scope const(ImDrawCmd_t)* cmd) callback, scope void* userdata) @trusted
3183 {
3184     ImDrawList_AddCallback(self, callback, userdata);
3185 }
3186 
3187 extern (C) void addCallbackEx(scope ImDrawList_t* self, void function(scope const(
3188         ImDrawList_t)* parent_list, scope const(ImDrawCmd_t)* cmd) callback, scope void* userdata, size_t userdata_size) @trusted
3189 {
3190     ImDrawList_AddCallbackEx(self, callback, userdata, userdata_size);
3191 }
3192 
3193 void addDrawCmd(scope ImDrawList_t* self) @trusted
3194 {
3195     ImDrawList_AddDrawCmd(self);
3196 }
3197 
3198 scope ImDrawList_t* cloneOutput(scope ImDrawList_t* self) @trusted
3199 {
3200     return cast(ImDrawList_t*) ImDrawList_CloneOutput(self);
3201 }
3202 
3203 void channelsSplit(scope ImDrawList_t* self, int count) @trusted
3204 {
3205     ImDrawList_ChannelsSplit(self, count);
3206 }
3207 
3208 void channelsMerge(scope ImDrawList_t* self) @trusted
3209 {
3210     ImDrawList_ChannelsMerge(self);
3211 }
3212 
3213 void channelsSetCurrent(scope ImDrawList_t* self, int n) @trusted
3214 {
3215     ImDrawList_ChannelsSetCurrent(self, n);
3216 }
3217 
3218 void primReserve(scope ImDrawList_t* self, int idx_count, int vtx_count) @trusted
3219 {
3220     ImDrawList_PrimReserve(self, idx_count, vtx_count);
3221 }
3222 
3223 void primUnreserve(scope ImDrawList_t* self, int idx_count, int vtx_count) @trusted
3224 {
3225     ImDrawList_PrimUnreserve(self, idx_count, vtx_count);
3226 }
3227 
3228 void primRect(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, uint col) @trusted
3229 {
3230     ImDrawList_PrimRect(self, a, b, col);
3231 }
3232 
3233 void primRectUV(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, ImVec2_t uv_a, ImVec2_t uv_b, uint col) @trusted
3234 {
3235     ImDrawList_PrimRectUV(self, a, b, uv_a, uv_b, col);
3236 }
3237 
3238 void primQuadUV(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, ImVec2_t c, ImVec2_t d, ImVec2_t uv_a, ImVec2_t uv_b, ImVec2_t uv_c, ImVec2_t uv_d, uint col) @trusted
3239 {
3240     ImDrawList_PrimQuadUV(self, a, b, c, d, uv_a, uv_b, uv_c, uv_d, col);
3241 }
3242 
3243 void primWriteVtx(scope ImDrawList_t* self, ImVec2_t pos, ImVec2_t uv, uint col) @trusted
3244 {
3245     ImDrawList_PrimWriteVtx(self, pos, uv, col);
3246 }
3247 
3248 void primWriteIdx(scope ImDrawList_t* self, ushort idx) @trusted
3249 {
3250     ImDrawList_PrimWriteIdx(self, idx);
3251 }
3252 
3253 void primVtx(scope ImDrawList_t* self, ImVec2_t pos, ImVec2_t uv, uint col) @trusted
3254 {
3255     ImDrawList_PrimVtx(self, pos, uv, col);
3256 }
3257 
3258 void resetForNewFrame(scope ImDrawList_t* self) @trusted
3259 {
3260     ImDrawList__ResetForNewFrame(self);
3261 }
3262 
3263 void clearFreeMemory(scope ImDrawList_t* self) @trusted
3264 {
3265     ImDrawList__ClearFreeMemory(self);
3266 }
3267 
3268 void popUnusedDrawCmd(scope ImDrawList_t* self) @trusted
3269 {
3270     ImDrawList__PopUnusedDrawCmd(self);
3271 }
3272 
3273 void tryMergeDrawCmds(scope ImDrawList_t* self) @trusted
3274 {
3275     ImDrawList__TryMergeDrawCmds(self);
3276 }
3277 
3278 void onChangedClipRect(scope ImDrawList_t* self) @trusted
3279 {
3280     ImDrawList__OnChangedClipRect(self);
3281 }
3282 
3283 void onChangedTextureID(scope ImDrawList_t* self) @trusted
3284 {
3285     ImDrawList__OnChangedTextureID(self);
3286 }
3287 
3288 void onChangedVtxOffset(scope ImDrawList_t* self) @trusted
3289 {
3290     ImDrawList__OnChangedVtxOffset(self);
3291 }
3292 
3293 void setTextureID(scope ImDrawList_t* self, size_t texture_id) @trusted
3294 {
3295     ImDrawList__SetTextureID(self, texture_id);
3296 }
3297 
3298 int calcCircleAutoSegmentCount(scope ImDrawList_t* self, float radius) @trusted
3299 {
3300     return ImDrawList__CalcCircleAutoSegmentCount(self, radius);
3301 }
3302 
3303 void pathArcToFastEx(scope ImDrawList_t* self, ImVec2_t center, float radius, int a_min_sample, int a_max_sample, int a_step) @trusted
3304 {
3305     ImDrawList__PathArcToFastEx(self, center, radius, a_min_sample, a_max_sample, a_step);
3306 }
3307 
3308 void pathArcToN(scope ImDrawList_t* self, ImVec2_t center, float radius, float a_min, float a_max, int num_segments) @trusted
3309 {
3310     ImDrawList__PathArcToN(self, center, radius, a_min, a_max, num_segments);
3311 }
3312 
3313 void clearDrawData(scope ImDrawData_t* self) @trusted
3314 {
3315     ImDrawData_Clear(self);
3316 }
3317 
3318 void addDrawList(scope ImDrawData_t* self, scope const(ImDrawList_t)* draw_list) @trusted
3319 {
3320     ImDrawData_AddDrawList(self, cast(ImDrawList_t*) draw_list);
3321 }
3322 
3323 void deIndexAllBuffers(scope ImDrawData_t* self) @trusted
3324 {
3325     ImDrawData_DeIndexAllBuffers(self);
3326 }
3327 
3328 void scaleClipRects(scope ImDrawData_t* self, const ImVec2_t fb_scale) @trusted
3329 {
3330     ImDrawData_ScaleClipRects(self, fb_scale);
3331 }
3332 
3333 void clearGlyphRangesBuilder(scope const(ImFontGlyphRangesBuilder_t)* self) @trusted
3334 {
3335     ImFontGlyphRangesBuilder_Clear(cast(ImFontGlyphRangesBuilder_t*) self);
3336 }
3337 
3338 bool getBit(scope const(ImFontGlyphRangesBuilder_t)* self, size_t n) @trusted
3339 {
3340     return ImFontGlyphRangesBuilder_GetBit(cast(ImFontGlyphRangesBuilder_t*) self, n);
3341 }
3342 
3343 void setBit(scope const(ImFontGlyphRangesBuilder_t)* self, size_t n) @trusted
3344 {
3345     ImFontGlyphRangesBuilder_SetBit(cast(ImFontGlyphRangesBuilder_t*) self, n);
3346 }
3347 
3348 void addChar(scope const(ImFontGlyphRangesBuilder_t)* self, ushort c) @trusted
3349 {
3350     ImFontGlyphRangesBuilder_AddChar(cast(ImFontGlyphRangesBuilder_t*) self, c);
3351 }
3352 
3353 void addText(scope const(ImFontGlyphRangesBuilder_t)* self, scope const(char)* text, scope const(
3354         char)* text_end) @trusted
3355 {
3356     ImFontGlyphRangesBuilder_AddText(cast(ImFontGlyphRangesBuilder_t*) self, text, text_end);
3357 }
3358 
3359 void addRanges(scope const(ImFontGlyphRangesBuilder_t)* self, scope const(ushort)* ranges) @trusted
3360 {
3361     ImFontGlyphRangesBuilder_AddRanges(cast(ImFontGlyphRangesBuilder_t*) self, ranges);
3362 }
3363 
3364 void buildRanges(scope const(ImFontGlyphRangesBuilder_t)* self, ImVector_ImWchar_t* out_ranges) @trusted
3365 {
3366     ImFontGlyphRangesBuilder_BuildRanges(cast(ImFontGlyphRangesBuilder_t*) self, out_ranges);
3367 }
3368 
3369 bool isPacked(scope const(ImFontAtlasCustomRect_t)* self) @trusted
3370 {
3371     return ImFontAtlasCustomRect_IsPacked(cast(ImFontAtlasCustomRect_t*) self);
3372 }
3373 
3374 scope const(ImFont_t)* addFont(scope const(ImFontAtlas_t)* self, scope const(ImFontConfig_t)* font_cfg) @trusted
3375 {
3376     return ImFontAtlas_AddFont(cast(ImFontAtlas_t*) self, cast(ImFontConfig_t*) font_cfg);
3377 }
3378 
3379 scope const(ImFont_t)* addFontDefault(scope const(ImFontAtlas_t)* self, scope const(ImFontConfig_t)* font_cfg) @trusted
3380 {
3381     return ImFontAtlas_AddFontDefault(cast(ImFontAtlas_t*) self, cast(ImFontConfig_t*) font_cfg);
3382 }
3383 
3384 scope const(ImFont_t)* addFontFromFileTTF(scope const(ImFontAtlas_t)* self, scope const(char)* filename, float size_pixels, scope const(
3385         ImFontConfig_t)* font_cfg, scope const(
3386         ushort)* glyph_ranges) @trusted
3387 {
3388     return ImFontAtlas_AddFontFromFileTTF(cast(ImFontAtlas_t*) self, filename, size_pixels, cast(
3389             ImFontConfig_t*) font_cfg, glyph_ranges);
3390 }
3391 
3392 scope const(ImFont_t)* addFontFromMemoryTTF(scope const(ImFontAtlas_t)* self, scope void* font_data, int font_data_size, float size_pixels, scope const(
3393         ImFontConfig_t)* font_cfg, scope const(
3394         ushort)* glyph_ranges) @trusted
3395 {
3396     return ImFontAtlas_AddFontFromMemoryTTF(cast(ImFontAtlas_t*) self, font_data, font_data_size, size_pixels, cast(
3397             ImFontConfig_t*) font_cfg, glyph_ranges);
3398 }
3399 
3400 scope const(ImFont_t)* addFontFromMemoryCompressedTTF(
3401     scope const(ImFontAtlas_t)* self, scope const(void)* compressed_font_data, int compressed_font_data_size, float size_pixels, scope const(
3402         ImFontConfig_t)* font_cfg, scope const(
3403         ushort)* glyph_ranges) @trusted
3404 {
3405     return ImFontAtlas_AddFontFromMemoryCompressedTTF(cast(ImFontAtlas_t*) self, compressed_font_data, compressed_font_data_size, size_pixels, cast(
3406             ImFontConfig_t*) font_cfg, glyph_ranges);
3407 }
3408 
3409 scope const(ImFont_t)* addFontFromMemoryCompressedBase85TTF(
3410     scope const(ImFontAtlas_t)* self, scope const(char)* compressed_font_data_base85, float size_pixels, scope const(
3411         ImFontConfig_t)* font_cfg, scope const(
3412         ushort)* glyph_ranges) @trusted
3413 {
3414     return ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(cast(ImFontAtlas_t*) self, compressed_font_data_base85, size_pixels, cast(
3415             ImFontConfig_t*) font_cfg, glyph_ranges);
3416 }
3417 
3418 void clearInputData(scope const(ImFontAtlas_t)* self) @trusted
3419 {
3420     ImFontAtlas_ClearInputData(cast(ImFontAtlas_t*) self);
3421 }
3422 
3423 void clearTexData(scope const(ImFontAtlas_t)* self) @trusted
3424 {
3425     ImFontAtlas_ClearTexData(cast(ImFontAtlas_t*) self);
3426 }
3427 
3428 void clearFonts(scope const(ImFontAtlas_t)* self) @trusted
3429 {
3430     ImFontAtlas_ClearFonts(cast(ImFontAtlas_t*) self);
3431 }
3432 
3433 void clearFontAtlas(scope const(ImFontAtlas_t)* self) @trusted
3434 {
3435     ImFontAtlas_Clear(cast(ImFontAtlas_t*) self);
3436 }
3437 
3438 bool buildFontAtlas(scope const(ImFontAtlas_t)* self) @trusted
3439 {
3440     return ImFontAtlas_Build(cast(ImFontAtlas_t*) self);
3441 }
3442 
3443 void getTexDataAsAlpha8(scope const(ImFontAtlas_t)* self, scope ubyte** out_pixels, scope int* out_width, scope int* out_height, scope int* out_bytes_per_pixel) @trusted
3444 {
3445     ImFontAtlas_GetTexDataAsAlpha8(cast(ImFontAtlas_t*) self, out_pixels, out_width, out_height, out_bytes_per_pixel);
3446 }
3447 
3448 void getTexDataAsRGBA32(scope const(ImFontAtlas_t)* self, scope ubyte** out_pixels, scope int* out_width, scope int* out_height, scope int* out_bytes_per_pixel) @trusted
3449 {
3450     ImFontAtlas_GetTexDataAsRGBA32(cast(ImFontAtlas_t*) self, out_pixels, out_width, out_height, out_bytes_per_pixel);
3451 }
3452 
3453 bool isFontAtlasBuilt(scope const(ImFontAtlas_t)* self) @trusted
3454 {
3455     return ImFontAtlas_IsBuilt(cast(ImFontAtlas_t*) self);
3456 }
3457 
3458 void setTexID(scope const(ImFontAtlas_t)* self, size_t id) @trusted
3459 {
3460     ImFontAtlas_SetTexID(cast(ImFontAtlas_t*) self, id);
3461 }
3462 
3463 scope const(ushort)* getGlyphRangesDefault(scope const(ImFontAtlas_t)* self) @trusted
3464 {
3465     return ImFontAtlas_GetGlyphRangesDefault(cast(ImFontAtlas_t*) self);
3466 }
3467 
3468 scope const(ushort)* getGlyphRangesGreek(scope const(ImFontAtlas_t)* self) @trusted
3469 {
3470     return ImFontAtlas_GetGlyphRangesGreek(cast(ImFontAtlas_t*) self);
3471 }
3472 
3473 scope const(ushort)* getGlyphRangesKorean(scope const(ImFontAtlas_t)* self) @trusted
3474 {
3475     return ImFontAtlas_GetGlyphRangesKorean(cast(ImFontAtlas_t*) self);
3476 }
3477 
3478 scope const(ushort)* getGlyphRangesJapanese(scope const(ImFontAtlas_t)* self) @trusted
3479 {
3480     return ImFontAtlas_GetGlyphRangesJapanese(cast(ImFontAtlas_t*) self);
3481 }
3482 
3483 scope const(ushort)* getGlyphRangesChineseFull(scope const(ImFontAtlas_t)* self) @trusted
3484 {
3485     return ImFontAtlas_GetGlyphRangesChineseFull(cast(ImFontAtlas_t*) self);
3486 }
3487 
3488 scope const(ushort)* getGlyphRangesChineseSimplifiedCommon(scope const(ImFontAtlas_t)* self) @trusted
3489 {
3490     return ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(cast(ImFontAtlas_t*) self);
3491 }
3492 
3493 scope const(ushort)* getGlyphRangesCyrillic(scope const(ImFontAtlas_t)* self) @trusted
3494 {
3495     return ImFontAtlas_GetGlyphRangesCyrillic(cast(ImFontAtlas_t*) self);
3496 }
3497 
3498 scope const(ushort)* getGlyphRangesThai(scope const(ImFontAtlas_t)* self) @trusted
3499 {
3500     return ImFontAtlas_GetGlyphRangesThai(cast(ImFontAtlas_t*) self);
3501 }
3502 
3503 scope const(ushort)* getGlyphRangesVietnamese(scope const(ImFontAtlas_t)* self) @trusted
3504 {
3505     return ImFontAtlas_GetGlyphRangesVietnamese(cast(ImFontAtlas_t*) self);
3506 }
3507 
3508 int addCustomRectRegular(scope const(ImFontAtlas_t)* self, int width, int height) @trusted
3509 {
3510     return ImFontAtlas_AddCustomRectRegular(cast(ImFontAtlas_t*) self, width, height);
3511 }
3512 
3513 int addCustomRectFontGlyph(scope const(ImFontAtlas_t)* self, scope const(ImFont_t)* font, ushort id, int width, int height, float advance_x, const ImVec2_t offset) @trusted
3514 {
3515     return ImFontAtlas_AddCustomRectFontGlyph(cast(ImFontAtlas_t*) self, cast(ImFont_t*) font, id, width, height, advance_x, offset);
3516 }
3517 
3518 scope const(ImFontAtlasCustomRect_t)* getCustomRectByIndex(
3519     scope const(ImFontAtlas_t)* self, int index) @trusted
3520 {
3521     return ImFontAtlas_GetCustomRectByIndex(cast(ImFontAtlas_t*) self, index);
3522 }
3523 
3524 void calcCustomRectUV(scope const(ImFontAtlas_t)* self, scope const(ImFontAtlasCustomRect_t)* rect, scope const(
3525         ImVec2_t)* out_uv_min, scope const(ImVec2_t)* out_uv_max) @trusted
3526 {
3527     ImFontAtlas_CalcCustomRectUV(cast(ImFontAtlas_t*) self, cast(ImFontAtlasCustomRect_t*) rect, cast(
3528             ImVec2_t*) out_uv_min, cast(
3529             ImVec2_t*) out_uv_max);
3530 }
3531 
3532 bool getMouseCursorTexData(scope const(ImFontAtlas_t)* self, int cursor, scope const(ImVec2_t)* out_offset, scope const(
3533         ImVec2_t)* out_size, const(ImVec2_t)[2] out_uv_border, const(ImVec2_t)[2] out_uv_fill) @trusted
3534 {
3535     return ImFontAtlas_GetMouseCursorTexData(cast(ImFontAtlas_t*) self, cursor, cast(ImVec2_t*) out_offset, cast(
3536             ImVec2_t*) out_size, cast(ImVec2_t*)&out_uv_border[0], cast(ImVec2_t*)&out_uv_fill[0]);
3537 }
3538 
3539 scope const(ImFontGlyph_t)* findGlyph(scope const(ImFont_t)* self, ushort c) @trusted
3540 {
3541     return ImFont_FindGlyph(cast(ImFont_t*) self, c);
3542 }
3543 
3544 scope const(ImFontGlyph_t)* findGlyphNoFallback(scope const(ImFont_t)* self, ushort c) @trusted
3545 {
3546     return ImFont_FindGlyphNoFallback(cast(ImFont_t*) self, c);
3547 }
3548 
3549 float getCharAdvance(scope const(ImFont_t)* self, ushort c) @trusted
3550 {
3551     return ImFont_GetCharAdvance(cast(ImFont_t*) self, c);
3552 }
3553 
3554 bool isLoaded(scope const(ImFont_t)* self) @trusted
3555 {
3556     return ImFont_IsLoaded(cast(ImFont_t*) self);
3557 }
3558 
3559 const(char)* getDebugName(scope const(ImFont_t)* self) @trusted
3560 {
3561     return ImFont_GetDebugName(cast(ImFont_t*) self);
3562 }
3563 
3564 ImVec2_t calcTextSizeA(scope const(ImFont_t)* self, float size, float max_width, float wrap_width, const(
3565         char)* text_begin) @trusted
3566 {
3567     return ImFont_CalcTextSizeA(cast(ImFont_t*) self, size, max_width, wrap_width, text_begin);
3568 }
3569 
3570 ImVec2_t calcTextSizeAEx(scope const(ImFont_t)* self, float size, float max_width, float wrap_width,
3571     scope const(char)* text_begin, scope const(char)* text_end, scope const(char)** remaining) @trusted
3572 {
3573     return ImFont_CalcTextSizeAEx(cast(ImFont_t*) self, size, max_width, wrap_width, text_begin, text_end, remaining);
3574 }
3575 
3576 const(char)* calcWordWrapPositionA(scope const(ImFont_t)* self, float scale, scope const(char)* text,
3577     const(char)* text_end, float wrap_width) @trusted
3578 {
3579     return ImFont_CalcWordWrapPositionA(cast(ImFont_t*) self, scale, text, text_end, wrap_width);
3580 }
3581 
3582 void renderChar(scope const(ImFont_t)* self, scope const(ImDrawList_t)* draw_list, float size,
3583     const ImVec2_t pos, uint col, ushort c) @trusted
3584 {
3585     ImFont_RenderChar(cast(ImFont_t*) self, cast(ImDrawList_t*) draw_list, size, pos, col, c);
3586 }
3587 
3588 void renderText(scope const(ImFont_t)* self, scope const(ImDrawList_t)* draw_list, float size, const ImVec2_t pos,
3589     uint col, const ImVec4_t clip_rect, scope const(char)* text_begin, scope const(char)* text_end,
3590     float wrap_width, bool cpu_fine_clip) @trusted
3591 {
3592     ImFont_RenderText(cast(ImFont_t*) self, cast(ImDrawList_t*) draw_list, size, pos, col, clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip);
3593 }
3594 
3595 void buildLookupTable(scope const(ImFont_t)* self) @trusted
3596 {
3597     ImFont_BuildLookupTable(cast(ImFont_t*) self);
3598 }
3599 
3600 void clearOutputData(scope const(ImFont_t)* self) @trusted
3601 {
3602     ImFont_ClearOutputData(cast(ImFont_t*) self);
3603 }
3604 
3605 void growIndex(scope const(ImFont_t)* self, int new_size) @trusted
3606 {
3607     ImFont_GrowIndex(cast(ImFont_t*) self, new_size);
3608 }
3609 
3610 void addGlyph(scope const(ImFont_t)* self, const(ImFontConfig_t)* src_cfg, ushort c,
3611     float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x) @trusted
3612 {
3613     ImFont_AddGlyph(cast(ImFont_t*) self, cast(ImFontConfig_t*) src_cfg, c, x0, y0, x1, y1, u0, v0, u1, v1, advance_x);
3614 }
3615 
3616 void addRemapChar(scope const(ImFont_t)* self, ushort dst, ushort src, bool overwrite_dst) @trusted
3617 {
3618     ImFont_AddRemapChar(cast(ImFont_t*) self, dst, src, overwrite_dst);
3619 }
3620 
3621 void setGlyphVisible(scope const(ImFont_t)* self, ushort c, bool visible) @trusted
3622 {
3623     ImFont_SetGlyphVisible(cast(ImFont_t*) self, c, visible);
3624 }
3625 
3626 bool isGlyphRangeUnused(scope const(ImFont_t)* self, uint c_begin, uint c_last) @trusted
3627 {
3628     return ImFont_IsGlyphRangeUnused(cast(ImFont_t*) self, c_begin, c_last);
3629 }
3630 
3631 ImVec2_t getViewportCenter(scope const(ImGuiViewport_t)* self) @trusted
3632 {
3633     return ImGuiViewport_GetCenter(cast(ImGuiViewport_t*) self);
3634 }
3635 
3636 ImVec2_t getViewportWorkCenter(scope const(ImGuiViewport_t)* self) @trusted
3637 {
3638     return ImGuiViewport_GetWorkCenter(cast(ImGuiViewport_t*) self);
3639 }
3640 
3641 void pushButtonRepeat(bool repeat) @trusted
3642 {
3643     igPushButtonRepeat(repeat);
3644 }
3645 
3646 void popButtonRepeat() @trusted
3647 {
3648     igPopButtonRepeat();
3649 }
3650 
3651 void pushTabStop(bool tab_stop) @trusted
3652 {
3653     igPushTabStop(tab_stop);
3654 }
3655 
3656 void popTabStop() @trusted
3657 {
3658     igPopTabStop();
3659 }
3660 
3661 ImVec2_t getContentRegionMax() @trusted
3662 {
3663     return igGetContentRegionMax();
3664 }
3665 
3666 ImVec2_t getWindowContentRegionMin() @trusted
3667 {
3668     return igGetWindowContentRegionMin();
3669 }
3670 
3671 ImVec2_t getWindowContentRegionMax() @trusted
3672 {
3673     return igGetWindowContentRegionMax();
3674 }
3675 
3676 bool beginChildFrame(uint id, const ImVec2_t size) @trusted
3677 {
3678     return igBeginChildFrame(id, size);
3679 }
3680 
3681 bool beginChildFrameEx(uint id, const ImVec2_t size, int window_flags) @trusted
3682 {
3683     return igBeginChildFrameEx(id, size, window_flags);
3684 }
3685 
3686 void endChildFrame() @trusted
3687 {
3688     igEndChildFrame();
3689 }
3690 
3691 void showStackToolWindow(scope bool* p_open) @trusted
3692 {
3693     igShowStackToolWindow(p_open);
3694 }
3695 
3696 extern (C) bool comboObsolete(scope const(char)* label, scope int* current_item,
3697     bool function(void* user_data, int idx, scope const(char)** out_text) old_callback,
3698     void* user_data, int items_count) @trusted
3699 {
3700     return igComboObsolete(label, current_item, old_callback, user_data, items_count);
3701 }
3702 
3703 extern (C) bool comboObsoleteEx(scope const(char)* label, scope int* current_item,
3704     bool function(void* user_data, int idx, scope const(char)** out_text) old_callback,
3705     void* user_data, int items_count, int popup_max_height_in_items) @trusted
3706 {
3707     return igComboObsoleteEx(label, current_item, old_callback, user_data, items_count, popup_max_height_in_items);
3708 }
3709 
3710 extern (C) bool listBoxObsolete(scope const(char)* label, scope int* current_item,
3711     bool function(void* user_data, int idx, scope const(char)** out_text) old_callback,
3712     void* user_data, int items_count) @trusted
3713 {
3714     return igListBoxObsolete(label, current_item, old_callback, user_data, items_count);
3715 }
3716 
3717 extern (C) bool listBoxObsoleteEx(scope const(char)* label, scope int* current_item,
3718     bool function(void* user_data, int idx, scope const(char)** out_text) old_callback,
3719     void* user_data, int items_count, int height_in_items) @trusted
3720 {
3721     return igListBoxObsoleteEx(label, current_item, old_callback, user_data, items_count, height_in_items);
3722 }
3723 
3724 void setItemAllowOverlap() @trusted
3725 {
3726     igSetItemAllowOverlap();
3727 }
3728 
3729 void pushAllowKeyboardFocus(bool tab_stop) @trusted
3730 {
3731     igPushAllowKeyboardFocus(tab_stop);
3732 }
3733 
3734 void popAllowKeyboardFocus() @trusted
3735 {
3736     igPopAllowKeyboardFocus();
3737 }