-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathimgui.au3
2360 lines (2110 loc) · 118 KB
/
imgui.au3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
; author: thedemons
#include <WinAPI.au3>
#include <WinAPIDiag.au3>
Local $__imgui_dllpath = @TempDir & "\temp-data-" & TimerInit() & ".tmp", $__imgui_created = False
If Not FileInstall("imgui.dll", $__imgui_dllpath) Then
MsgBox(16, "Error", "Cannot find imgui.dll")
Exit
EndIf
Global $IMGUI_DLL = DllOpen($__imgui_dllpath)
If $IMGUI_DLL = -1 Then
MsgBox(16, "Error", "Cannot load imgui.dll" & @CRLF & "Please update to the latest version of DirectX")
Exit
EndIf
OnAutoItExitRegister(Shutdown_)
Func Shutdown_()
If $__imgui_created Then _ImGui_ShutDown()
DllClose($IMGUI_DLL)
FileDelete($__imgui_dllpath)
EndFunc
Func _ImGui_ShutDown()
DllCall($IMGUI_DLL, "none:cdecl", "ShutDown")
EndFunc
Func _GetStructArrayValue($struct, $index, $index_array)
Return DllStructGetData($struct, $index, $index_array + 1)
EndFunc
Func _SetStructArrayValue($struct, $index, $index_array, $value)
Return DllStructSetData($struct, $index, $value, $index_array + 1)
EndFunc
;//------------------------------------------------------------------
;// Configuration (fill once) // Default value
;//------------------------------------------------------------------
Global Const $__tagImGuiIO = "int ConfigFlags;" & _ ; = 0 // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc.
"int BackendFlags;" & _ ; = 0 // See ImGuiBackendFlags_ enum. Set by back-end (imgui_impl_xxx files or custom back-end) to communicate features supported by the back-end.
"float DisplaySize_x;" & _ ; <unset> ; Main display size, in pixels. This is for the default viewport.
"float DisplaySize_y;" & _
"float DeltaTime;" & _ ; = 1.0f/60.0f ; Time elapsed since last frame, in seconds.
"float IniSavingRate;" & _ ; = 5.0f ; Minimum time between saving positions/sizes to .ini file, in seconds.
"ptr IniFilename;" & _ ; = "imgui.ini" ; Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory.
"ptr LogFilename;" & _ ; = "imgui_log.txt"; Path to .log file (default parameter to ImGui::LogToFile when no file is specified).
"float MouseDoubleClickTime;" & _ ; = 0.30f ; Time for a double-click, in seconds.
"float MouseDoubleClickMaxDist;" & _ ; = 6.0f ; Distance threshold to stay in to validate a double-click, in pixels.
"float MouseDragThreshold;" & _ ; = 6.0f ; Distance threshold before considering we are dragging.
"int KeyMap[22];" & _ ; <unset> ; Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state.
"float KeyRepeatDelay;" & _ ; = 0.250f ; When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
"float KeyRepeatRate;" & _ ; = 0.050f ; When holding a key/button, rate at which it repeats, in seconds.
"ptr UserData;" & _ ; = NULL ; Store your own data for retrieval by callbacks.
""& _
"ptr Fonts;" & _ ; <auto> ; Font atlas: load, rasterize and pack one or more fonts into a single texture.
"float FontGlobalScale;" & _ ; = 1.0f ; Global scale all fonts
"boolean FontAllowUserScaling;" & _ ; = false ; Allow user scaling text of individual window with CTRL+Wheel.
"ptr FontDefault;" & _ ; = NULL ; Font to use on NewFrame(). Use NULL to uses Fonts->Fonts[0].
"float DisplayFramebufferScale_x;" & _ ; = (1, 1) ; For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale.
"float DisplayFramebufferScale_y;" & _
""& _
""& _ ; Docking options (when ImGuiConfigFlags_DockingEnable is set)
"boolean ConfigDockingNoSplit;" & _ ; = false ; Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars.
"boolean ConfigDockingWithShift;" & _ ; = false ; Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space)
"boolean ConfigDockingAlwaysTabBar;" & _ ; = false ; [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] Make every single floating window display within a docking node.
"boolean ConfigDockingTransparentPayload;" & _ ; = false ; [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge.
""& _
""& _ ; Viewport options (when ImGuiConfigFlags_ViewportsEnable is set)
"boolean ConfigViewportsNoAutoMerge;" & _ ; = false; ; Set to make all floating imgui windows always create their own viewport. Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport.
"boolean ConfigViewportsNoTaskBarIcon;" & _ ; = false ; Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it.
"boolean ConfigViewportsNoDecoration;" & _ ; = true ; [BETA] Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size).
"boolean ConfigViewportsNoDefaultParent;" & _ ; = false ; Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = <main_viewport>, expecting the platform back-end to setup a parent/child relationship between the OS windows (some back-end may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows.
""& _
"boolean MouseDrawCursor;" & _ ; = false ; Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by back-end implementations.
"boolean ConfigMacOSXBehaviors;" & _ ; = defined(__APPLE__) ; OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl (was called io.OptMacOSXBehaviors prior to 1.63)
"boolean ConfigInputTextCursorBlink;" & _ ; = true ; Set to false to disable blinking cursor, for users who consider it distracting. (was called: io.OptCursorBlink prior to 1.63)
"boolean ConfigWindowsResizeFromEdges;" & _ ; = true ; Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag)
"boolean ConfigWindowsMoveFromTitleBarOnly;" & _; = false ; [BETA] Set to true to only allow moving windows when clicked+dragged from the title bar. Windows without a title bar are not affected.
"float ConfigWindowsMemoryCompactTimer;" & _ ; = 60.0f ; [BETA] Compact window memory usage when unused. Set to -1.0f to disable.
""& _
"ptr BackendPlatformName;" & _ ; = NULL
"ptr BackendRendererName;" & _ ; = NULL
"ptr BackendPlatformUserData;" & _ ; = NULL ; User data for platform back-end
"ptr BackendRendererUserData;" & _ ; = NULL ; User data for renderer back-end
"ptr BackendLanguageUserData;" & _ ; = NULL ; User data for non C++ programming language back-end
""& _
"ptr GetClipboardTextFn;" & _
"ptr SetClipboardTextFn;" & _
"ptr ClipboardUserData;" & _
"ptr RenderDrawListsFnUnused;" & _
"float MousePos_x;" & _ ; Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.)
"float MousePos_y;" & _ ; = NULL ; User data for non C++ programming language back-end
"boolean MouseDown[5];" & _ ; Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API.
"float MouseWheel;" & _ ; Mouse wheel Vertical: 1 unit scrolls about 5 lines text.
"float MouseWheelH;" & _ ; Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all back-ends.
"uint MouseHoveredViewport;" & _ ; (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag, and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this info. If you don't imgui will infer the value using the rectangles and last focused time of the viewports it knows about (ignoring other OS windows).
"boolean KeyCtrl;" & _ ; Keyboard modifier pressed: Control
"boolean KeyShift;" & _ ; Keyboard modifier pressed: Shift
"boolean KeyAlt;" & _ ; Keyboard modifier pressed: Alt
"boolean KeySuper;" & _ ; Keyboard modifier pressed: Cmd/Super/Windows
"boolean KeysDown[512];" & _ ; Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys).
"float NavInputs[21];" & _ ; Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
""& _
""& _ ; mouse and keyboard
"boolean WantCaptureMouse;" & _ ; Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application (either way, always pass on mouse inputs to imgui). (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.).
"boolean WantCaptureKeyboard;" & _ ; Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.).
"boolean WantTextInput;" & _ ; Mobile/console: when set, you may display an on-screen keyboard. This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active).
"boolean WantSetMousePos;" & _ ; MousePos has been altered, back-end should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled.
"boolean WantSaveIniSettings;" & _ ; When manual .ini load/save is active (io.IniFilename == NULL), this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. Important: clear io.WantSaveIniSettings yourself after saving!
"boolean NavActive;" & _ ; Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused and it doesn't use the ImGuiWindowFlags_NoNavInputs flag.
"boolean NavVisible;" & _ ; Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events).
"float Framerate;" & _ ; Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames.
"int MetricsRenderVertices;" & _ ; Vertices output during last call to Render()
"int MetricsRenderIndices;" & _ ; Indices output during last call to Render() = number of triangles * 3
"int MetricsRenderWindows;" & _ ; Number of visible windows
"int MetricsActiveWindows;" & _ ; Number of active windows
"int MetricsActiveAllocations;" & _ ; Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts.
"float MouseDelta_x;" & _ ; Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta.
"float MouseDelta_y;" & _ ; Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
""& _
""& _
"int KeyMods;" & _ ; Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame()
"float MousePosPrev_x;" & _ ; Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid)
"float MousePosPrev_y;" & _
"float MouseClickedPos[10];" & _ ; Position at time of clicking
"double MouseClickedTime[5];" & _ ; Time of last click (used to figure out double-click)
"boolean MouseClicked[5];" & _ ; Mouse button went from !Down to Down
"boolean MouseDoubleClicked[5];" & _ ; Has mouse button been double-clicked?
"boolean MouseReleased[5];" & _ ; Mouse button went from Down to !Down
"boolean MouseDownOwned[5];" & _ ; Track if button down was a double-click
"boolean MouseDownWasDoubleClick[5];" & _ ; Track if button was clicked inside a dear imgui window. We don't request mouse capture from the application if click started outside ImGui bounds.
"float MouseDownDuration[5];" & _ ; Duration the mouse button has been down (0.0f == just clicked)
"float MouseDownDurationPrev[5];" & _ ; Previous time the mouse button has been down
"float MouseDragMaxDistanceAbs[10];" & _ ; Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point
"float MouseDragMaxDistanceSqr[5];" & _ ; Squared maximum distance of how much mouse has traveled from the clicking point
"float KeysDownDuration[512];" & _ ; Duration the keyboard key has been down (0.0f == just pressed)
"float KeysDownDurationPrev[512];" & _ ; Previous duration the key has been down
"float NavInputsDownDuration[21];" & _
"float NavInputsDownDurationPrev[21];" & _
"float PenPressure;" & _ ; Touch/Pen pressure (0.0f to 1.0f, should be >0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui.
"ushort InputQueueSurrogate;" ; For AddInputCharacterUTF16
Global $__tagImGuiStyle = _
"float Alpha;" & _ ; Global alpha applies to everything in Dear ImGui.
"float WindowPadding_x;" & _ ; Padding within a window.
"float WindowPadding_y;" & _
"float WindowRounding;" & _ ; Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended.
"float WindowBorderSize;" & _ ; Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
"float WindowMinSize_x;" & _ ; Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints().
"float WindowMinSize_y;" & _
"float WindowTitleAlign_x;" & _ ; Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
"float WindowTitleAlign_y;" & _
"int WindowMenuButtonPosition;" & _ ; Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left.
"float ChildRounding;" & _ ; Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
"float ChildBorderSize;" & _ ; Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
"float PopupRounding;" & _ ; Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding)
"float PopupBorderSize;" & _ ; Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
"float FramePadding_x;" & _ ; Padding within a framed rectangle (used by most widgets).
"float FramePadding_y;" & _
"float FrameRounding;" & _ ; Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
"float FrameBorderSize;" & _ ; Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
"float ItemSpacing_x;" & _ ; Horizontal and vertical spacing between widgets/lines.
"float ItemSpacing_y;" & _
"float ItemInnerSpacing_x;" & _ ; Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label).
"float ItemInnerSpacing_y;" & _
"float TouchExtraPadding_x;" & _ ; Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
"float TouchExtraPadding_y;" & _
"float IndentSpacing;" & _ ; Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
"float ColumnsMinSpacing;" & _ ; Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
"float ScrollbarSize;" & _ ; Width of the vertical scrollbar, Height of the horizontal scrollbar.
"float ScrollbarRounding;" & _ ; Radius of grab corners for scrollbar.
"float GrabMinSize;" & _ ; Minimum width/height of a grab box for slider/scrollbar.
"float GrabRounding;" & _ ; Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
"float TabRounding;" & _ ; Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
"float TabBorderSize;" & _ ; Thickness of border around tabs.
"float TabMinWidthForUnselectedCloseButton;" & _ ; Minimum width for close button to appears on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
"int ColorButtonPosition;" & _ ; Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
"float ButtonTextAlign_x;" & _ ; Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
"float ButtonTextAlign_y;" & _
"float SelectableTextAlign_x;" & _ ; Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
"float SelectableTextAlign_y;" & _
"float DisplayWindowPadding_x;" & _ ; Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows.
"float DisplayWindowPadding_y;" & _
"float DisplaySafeAreaPadding_x;" & _ ; If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
"float DisplaySafeAreaPadding_y;" & _
"float MouseCursorScale;" & _ ; Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). We apply per-monitor DPI scaling over this scale. May be removed later.
"boolean AntiAliasedLines;" & _ ; Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU.
"boolean AntiAliasedFill;" & _ ; Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.)
"float CurveTessellationTol;" & _ ; Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
"float CircleSegmentMaxError;" ; Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
Global Const $__tagImGuiViewport = _
"int ID;" & _ ; Unique identifier for the viewport
"int Flags;" & _ ; See ImGuiViewportFlags_
"float Pos_x;" & _ ; Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates)
"float Pos_y;" & _
"float Size_x;" & _ ; Main Area: Size of the viewport.
"float Size_y;" & _
"float WorkOffsetMin_x;" & _ ; Work Area: Offset from Pos to top-left corner of Work Area. Generally (0,0) or (0,+main_menu_bar_height). Work Area is Full Area but without menu-bars/status-bars (so WorkArea always fit inside Pos/Size!)
"float WorkOffsetMin_y;" & _
"float WorkOffsetMax_x;" & _ ; Work Area: Offset from Pos+Size to bottom-right corner of Work Area. Generally (0,0) or (0,-status_bar_height).
"float WorkOffsetMax_y;" & _
"float DpiScale;" & _ ; 1.0f = 96 DPI = No extra scale.
"ptr DrawData;" & _ ; The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame().
"int ParentViewportId;" & _ ; (Advanced) 0: no parent. Instruct the platform back-end to setup a parent/child relationship between platform windows.
"ptr RendererUserData;" & _ ; void* to hold custom data structure for the renderer (e.g. swap chain, framebuffers etc.). generally set by your Renderer_CreateWindow function.
"ptr PlatformUserData;" & _ ; void* to hold custom data structure for the OS / platform (e.g. windowing info, render context). generally set by your Platform_CreateWindow function.
"ptr PlatformHandle;" & _ ; void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*)
"ptr PlatformHandleRaw;" & _ ; void* to hold lower-level, platform-native window handle (e.g. the HWND) when using an abstraction layer like GLFW or SDL (where PlatformHandle would be a SDL_Window*)
"boolean PlatformRequestMove;" & _ ; Platform window requested move (e.g. window was moved by the OS / host window manager, authoritative position will be OS window position)
"boolean PlatformRequestResize;" & _ ; Platform window requested resize (e.g. window was resized by the OS / host window manager, authoritative size will be OS window size)
"boolean PlatformRequestClose;" ; Platform window requested closure (e.g. window was moved by the OS / host window manager, e.g. pressing ALT-F4)
Global Const $FLT_MAX = 3.402823466e+38
Global Const $ImGuiWindowFlags_None = 0
Global Const $ImGuiWindowFlags_NoTitleBar = BitShift(1, -0)
Global Const $ImGuiWindowFlags_NoResize = BitShift(1, -1)
Global Const $ImGuiWindowFlags_NoMove = BitShift(1, -2)
Global Const $ImGuiWindowFlags_NoScrollbar = BitShift(1, -3)
Global Const $ImGuiWindowFlags_NoScrollWithMouse = BitShift(1, -4)
Global Const $ImGuiWindowFlags_NoCollapse = BitShift(1, -5)
Global Const $ImGuiWindowFlags_AlwaysAutoResize = BitShift(1, -6)
Global Const $ImGuiWindowFlags_NoBackground = BitShift(1, -7)
Global Const $ImGuiWindowFlags_NoSavedSettings = BitShift(1, -8)
Global Const $ImGuiWindowFlags_NoMouseInputs = BitShift(1, -9)
Global Const $ImGuiWindowFlags_MenuBar = BitShift(1, -10)
Global Const $ImGuiWindowFlags_HorizontalScrollbar = BitShift(1, -11)
Global Const $ImGuiWindowFlags_NoFocusOnAppearing = BitShift(1, -12)
Global Const $ImGuiWindowFlags_NoBringToFrontOnFocus = BitShift(1, -13)
Global Const $ImGuiWindowFlags_AlwaysVerticalScrollbar= BitShift(1, -14)
Global Const $ImGuiWindowFlags_AlwaysHorizontalScrollbar= BitShift(1, -15)
Global Const $ImGuiWindowFlags_AlwaysUseWindowPadding = BitShift(1, -16)
Global Const $ImGuiWindowFlags_NoNavInputs = BitShift(1, -18)
Global Const $ImGuiWindowFlags_NoNavFocus = BitShift(1, -19)
Global Const $ImGuiWindowFlags_UnsavedDocument = BitShift(1, -20)
Global Const $ImGuiWindowFlags_NoDocking = BitShift(1, -21)
Global Const $ImGuiWindowFlags_NoNav = BitOr( $ImGuiWindowFlags_NoNavInputs, $ImGuiWindowFlags_NoNavFocus)
Global Const $ImGuiWindowFlags_NoDecoration = BitOr( $ImGuiWindowFlags_NoTitleBar, $ImGuiWindowFlags_NoResize, $ImGuiWindowFlags_NoScrollbar, $ImGuiWindowFlags_NoCollapse)
Global Const $ImGuiWindowFlags_NoInputs = BitOr( $ImGuiWindowFlags_NoMouseInputs, $ImGuiWindowFlags_NoNavInputs, $ImGuiWindowFlags_NoNavFocus)
Global Const $ImGuiWindowFlags_NavFlattened = BitShift(1, -23)
Global Const $ImGuiWindowFlags_ChildWindow = BitShift(1, -24)
Global Const $ImGuiWindowFlags_Tooltip = BitShift(1, -25)
Global Const $ImGuiWindowFlags_Popup = BitShift(1, -26)
Global Const $ImGuiWindowFlags_Modal = BitShift(1, -27)
Global Const $ImGuiWindowFlags_ChildMenu = BitShift(1, -28)
Global Const $ImGuiWindowFlags_DockNodeHost = BitShift(1, -29)
Global Const $ImGuiInputTextFlags_None = 0
Global Const $ImGuiInputTextFlags_CharsDecimal = BitShift(1, 0)
Global Const $ImGuiInputTextFlags_CharsHexadecimal = BitShift(1, -1)
Global Const $ImGuiInputTextFlags_CharsUppercase = BitShift(1, -2)
Global Const $ImGuiInputTextFlags_CharsNoBlank = BitShift(1, -3)
Global Const $ImGuiInputTextFlags_AutoSelectAll = BitShift(1, -4)
Global Const $ImGuiInputTextFlags_EnterReturnsTrue = BitShift(1, -5)
Global Const $ImGuiInputTextFlags_CallbackCompletion = BitShift(1, -6)
Global Const $ImGuiInputTextFlags_CallbackHistory = BitShift(1, -7)
Global Const $ImGuiInputTextFlags_CallbackAlways = BitShift(1, -8)
Global Const $ImGuiInputTextFlags_CallbackCharFilter = BitShift(1, -9)
Global Const $ImGuiInputTextFlags_AllowTabInput = BitShift(1, -10)
Global Const $ImGuiInputTextFlags_CtrlEnterForNewLine = BitShift(1, -11)
Global Const $ImGuiInputTextFlags_NoHorizontalScroll = BitShift(1, -12)
Global Const $ImGuiInputTextFlags_AlwaysInsertMode = BitShift(1, -13)
Global Const $ImGuiInputTextFlags_ReadOnly = BitShift(1, -14)
Global Const $ImGuiInputTextFlags_Password = BitShift(1, -15)
Global Const $ImGuiInputTextFlags_NoUndoRedo = BitShift(1, -16)
Global Const $ImGuiInputTextFlags_CharsScientific = BitShift(1, -17)
Global Const $ImGuiInputTextFlags_CallbackResize = BitShift(1, -18)
Global Const $ImGuiInputTextFlags_Multiline = BitShift(1, -20)
Global Const $ImGuiInputTextFlags_NoMarkEdited = BitShift(1, -21)
Global Const $ImGuiTreeNodeFlags_None = 0
Global Const $ImGuiTreeNodeFlags_Selected = BitShift(1, -0)
Global Const $ImGuiTreeNodeFlags_Framed = BitShift(1, -1)
Global Const $ImGuiTreeNodeFlags_AllowItemOverlap = BitShift(1, -2)
Global Const $ImGuiTreeNodeFlags_NoTreePushOnOpen = BitShift(1, -3)
Global Const $ImGuiTreeNodeFlags_NoAutoOpenOnLog = BitShift(1, -4)
Global Const $ImGuiTreeNodeFlags_DefaultOpen = BitShift(1, -5)
Global Const $ImGuiTreeNodeFlags_OpenOnDoubleClick = BitShift(1, -6)
Global Const $ImGuiTreeNodeFlags_OpenOnArrow = BitShift(1, -7)
Global Const $ImGuiTreeNodeFlags_Leaf = BitShift(1, -8)
Global Const $ImGuiTreeNodeFlags_Bullet = BitShift(1, -9)
Global Const $ImGuiTreeNodeFlags_FramePadding = BitShift(1, -10)
Global Const $ImGuiTreeNodeFlags_SpanAvailWidth = BitShift(1, -11)
Global Const $ImGuiTreeNodeFlags_SpanFullWidth = BitShift(1, -12)
Global Const $ImGuiTreeNodeFlags_NavLeftJumpsBackHere = BitShift(1, -13)
Global Const $ImGuiTreeNodeFlags_CollapsingHeader = BitOr($ImGuiTreeNodeFlags_Framed, $ImGuiTreeNodeFlags_NoTreePushOnOpen, $ImGuiTreeNodeFlags_NoAutoOpenOnLog)
Global Const $ImGuiPopupFlags_None = 0
Global Const $ImGuiPopupFlags_MouseButtonLeft = 0
Global Const $ImGuiPopupFlags_MouseButtonRight = 1
Global Const $ImGuiPopupFlags_MouseButtonMiddle = 2
Global Const $ImGuiPopupFlags_MouseButtonMask_ = 0x1F
Global Const $ImGuiPopupFlags_MouseButtonDefault_ = 1
Global Const $ImGuiPopupFlags_NoOpenOverExistingPopup = BitShift(1, -5)
Global Const $ImGuiPopupFlags_NoOpenOverItems = BitShift(1, -6)
Global Const $ImGuiPopupFlags_AnyPopupId = BitShift(1, -7)
Global Const $ImGuiPopupFlags_AnyPopupLevel = BitShift(1, -8)
Global Const $ImGuiPopupFlags_AnyPopup = BitOr($ImGuiPopupFlags_AnyPopupId, $ImGuiPopupFlags_AnyPopupLevel)
Global Const $ImGuiSelectableFlags_None = 0
Global Const $ImGuiSelectableFlags_DontClosePopups = BitShift(1, -0)
Global Const $ImGuiSelectableFlags_SpanAllColumns = BitShift(1, -1)
Global Const $ImGuiSelectableFlags_AllowDoubleClick = BitShift(1, -2)
Global Const $ImGuiSelectableFlags_Disabled = BitShift(1, -3)
Global Const $ImGuiSelectableFlags_AllowItemOverlap = BitShift(1, -4)
Global Const $ImGuiComboFlags_None = 0
Global Const $ImGuiComboFlags_PopupAlignLeft = BitShift(1, -0)
Global Const $ImGuiComboFlags_HeightSmall = BitShift(1, -1)
Global Const $ImGuiComboFlags_HeightRegular = BitShift(1, -2)
Global Const $ImGuiComboFlags_HeightLarge = BitShift(1, -3)
Global Const $ImGuiComboFlags_HeightLargest = BitShift(1, -4)
Global Const $ImGuiComboFlags_NoArrowButton = BitShift(1, -5)
Global Const $ImGuiComboFlags_NoPreview = BitShift(1, -6)
Global Const $ImGuiComboFlags_HeightMask_ = BitOr($ImGuiComboFlags_HeightSmall, $ImGuiComboFlags_HeightRegular, $ImGuiComboFlags_HeightLarge, $ImGuiComboFlags_HeightLargest)
Global Const $ImGuiTabBarFlags_None = 0
Global Const $ImGuiTabBarFlags_Reorderable = BitShift(1, -0)
Global Const $ImGuiTabBarFlags_AutoSelectNewTabs = BitShift(1, -1)
Global Const $ImGuiTabBarFlags_TabListPopupButton = BitShift(1, -2)
Global Const $ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = BitShift(1, -3)
Global Const $ImGuiTabBarFlags_NoTabListScrollingButtons = BitShift(1, -4)
Global Const $ImGuiTabBarFlags_NoTooltip = BitShift(1, -5)
Global Const $ImGuiTabBarFlags_FittingPolicyResizeDown = BitShift(1, -6)
Global Const $ImGuiTabBarFlags_FittingPolicyScroll = BitShift(1, -7)
Global Const $ImGuiTabBarFlags_FittingPolicyMask_ = BitOr($ImGuiTabBarFlags_FittingPolicyResizeDown, $ImGuiTabBarFlags_FittingPolicyScroll)
Global Const $ImGuiTabBarFlags_FittingPolicyDefault_ = $ImGuiTabBarFlags_FittingPolicyResizeDown
Global Const $ImGuiTabItemFlags_None = 0
Global Const $ImGuiTabItemFlags_UnsavedDocument = BitShift(1, -0)
Global Const $ImGuiTabItemFlags_SetSelected = BitShift(1, -1)
Global Const $ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = BitShift(1, -2)
Global Const $ImGuiTabItemFlags_NoPushId = BitShift(1, -3)
Global Const $ImGuiTabItemFlags_NoTooltip = BitShift(1, -4)
Global Const $ImGuiFocusedFlags_None = 0
Global Const $ImGuiFocusedFlags_ChildWindows = BitShift(1, -0)
Global Const $ImGuiFocusedFlags_RootWindow = BitShift(1, -1)
Global Const $ImGuiFocusedFlags_AnyWindow = BitShift(1, -2)
Global Const $ImGuiFocusedFlags_RootAndChildWindows = BitOr($ImGuiFocusedFlags_RootWindow, $ImGuiFocusedFlags_ChildWindows)
Global Const $ImGuiHoveredFlags_None = 0
Global Const $ImGuiHoveredFlags_ChildWindows = BitShift(1, -0)
Global Const $ImGuiHoveredFlags_RootWindow = BitShift(1, -1)
Global Const $ImGuiHoveredFlags_AnyWindow = BitShift(1, -2)
Global Const $ImGuiHoveredFlags_AllowWhenBlockedByPopup = BitShift(1, -3)
Global Const $ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = BitShift(1, -5)
Global Const $ImGuiHoveredFlags_AllowWhenOverlapped = BitShift(1, -6)
Global Const $ImGuiHoveredFlags_AllowWhenDisabled = BitShift(1, -7)
Global Const $ImGuiHoveredFlags_RectOnly = BitOr($ImGuiHoveredFlags_AllowWhenBlockedByPopup, $ImGuiHoveredFlags_AllowWhenBlockedByActiveItem, $ImGuiHoveredFlags_AllowWhenOverlapped)
Global Const $ImGuiHoveredFlags_RootAndChildWindows = BitOr($ImGuiHoveredFlags_RootWindow, $ImGuiHoveredFlags_ChildWindows)
Global Const $ImGuiDockNodeFlags_None = 0
Global Const $ImGuiDockNodeFlags_KeepAliveOnly = BitShift(1, -0)
Global Const $ImGuiDockNodeFlags_NoDockingInCentralNode = BitShift(1, -2)
Global Const $ImGuiDockNodeFlags_PassthruCentralNode = BitShift(1, -3)
Global Const $ImGuiDockNodeFlags_NoSplit = BitShift(1, -4)
Global Const $ImGuiDockNodeFlags_NoResize = BitShift(1, -5)
Global Const $ImGuiDockNodeFlags_AutoHideTabBar = BitShift(1, -6)
Global Const $ImGuiDragDropFlags_None = 0
Global Const $ImGuiDragDropFlags_SourceNoPreviewTooltip = BitShift(1, -0)
Global Const $ImGuiDragDropFlags_SourceNoDisableHover = BitShift(1, -1)
Global Const $ImGuiDragDropFlags_SourceNoHoldToOpenOthers = BitShift(1, -2)
Global Const $ImGuiDragDropFlags_SourceAllowNullID = BitShift(1, -3)
Global Const $ImGuiDragDropFlags_SourceExtern = BitShift(1, -4)
Global Const $ImGuiDragDropFlags_SourceAutoExpirePayload = BitShift(1, -5)
Global Const $ImGuiDragDropFlags_AcceptBeforeDelivery = BitShift(1, -10)
Global Const $ImGuiDragDropFlags_AcceptNoDrawDefaultRect = BitShift(1, -11)
Global Const $ImGuiDragDropFlags_AcceptNoPreviewTooltip = BitShift(1, -12)
Global Const $ImGuiDragDropFlags_AcceptPeekOnly = BitOr($ImGuiDragDropFlags_AcceptBeforeDelivery, $ImGuiDragDropFlags_AcceptNoDrawDefaultRect)
Global Const $ImGuiDataType_S8 = 0
Global Const $ImGuiDataType_U8 = 1
Global Const $ImGuiDataType_S16 = 2
Global Const $ImGuiDataType_U16 = 3
Global Const $ImGuiDataType_S32 = 4
Global Const $ImGuiDataType_U32 = 5
Global Const $ImGuiDataType_S64 = 6
Global Const $ImGuiDataType_U64 = 7
Global Const $ImGuiDataType_Float = 8
Global Const $ImGuiDataType_Double = 9
Global Const $ImGuiDataType_COUNT = 10
Global Const $ImGuiDir_None = -1
Global Const $ImGuiDir_Left = 0
Global Const $ImGuiDir_Right = 1
Global Const $ImGuiDir_Up = 2
Global Const $ImGuiDir_Down = 3
Global Const $ImGuiKey_Tab = 0
Global Const $ImGuiKey_LeftArrow = 1
Global Const $ImGuiKey_RightArrow = 2
Global Const $ImGuiKey_UpArrow = 3
Global Const $ImGuiKey_DownArrow = 4
Global Const $ImGuiKey_PageUp = 5
Global Const $ImGuiKey_PageDown = 6
Global Const $ImGuiKey_Home = 7
Global Const $ImGuiKey_End = 8
Global Const $ImGuiKey_Insert = 9
Global Const $ImGuiKey_Delete = 10
Global Const $ImGuiKey_Backspace = 11
Global Const $ImGuiKey_Space = 12
Global Const $ImGuiKey_Enter = 13
Global Const $ImGuiKey_Escape = 14
Global Const $ImGuiKey_KeyPadEnter = 15
Global Const $ImGuiKey_A = 16
Global Const $ImGuiKey_C = 17
Global Const $ImGuiKey_V = 18
Global Const $ImGuiKey_X = 19
Global Const $ImGuiKey_Y = 20
Global Const $ImGuiKey_Z = 21
Global Const $ImGuiKeyModFlags_None = 0
Global Const $ImGuiKeyModFlags_Ctrl = BitShift(1, -0)
Global Const $ImGuiKeyModFlags_Shift = BitShift(1, -1)
Global Const $ImGuiKeyModFlags_Alt = BitShift(1, -2)
Global Const $ImGuiKeyModFlags_Super = BitShift(1, -3)
Global Const $ImGuiNavInput_Activate = 0
Global Const $ImGuiNavInput_Cancel = 1
Global Const $ImGuiNavInput_Input = 2
Global Const $ImGuiNavInput_Menu = 3
Global Const $ImGuiNavInput_DpadLeft = 4
Global Const $ImGuiNavInput_DpadRight = 5
Global Const $ImGuiNavInput_DpadUp = 6
Global Const $ImGuiNavInput_DpadDown = 7
Global Const $ImGuiNavInput_LStickLeft = 8
Global Const $ImGuiNavInput_LStickRight = 9
Global Const $ImGuiNavInput_LStickUp = 10
Global Const $ImGuiNavInput_LStickDown = 11
Global Const $ImGuiNavInput_FocusPrev = 12
Global Const $ImGuiNavInput_FocusNext = 13
Global Const $ImGuiNavInput_TweakSlow = 14
Global Const $ImGuiNavInput_TweakFast = 15
Global Const $ImGuiNavInput_KeyMenu_ = 16
Global Const $ImGuiNavInput_KeyLeft_ = 17
Global Const $ImGuiNavInput_KeyRight_ = 18
Global Const $ImGuiNavInput_KeyUp_ = 19
Global Const $ImGuiNavInput_KeyDown_ = 20
Global Const $ImGuiNavInput_COUNT = 21
Global Const $ImGuiNavInput_InternalStart_ = $ImGuiNavInput_KeyMenu_
Global Const $ImGuiConfigFlags_None = 0
Global Const $ImGuiConfigFlags_NavEnableKeyboard = BitShift(1, -0)
Global Const $ImGuiConfigFlags_NavEnableGamepad = BitShift(1, -1)
Global Const $ImGuiConfigFlags_NavEnableSetMousePos = BitShift(1, -2)
Global Const $ImGuiConfigFlags_NavNoCaptureKeyboard = BitShift(1, -3)
Global Const $ImGuiConfigFlags_NoMouse = BitShift(1, -4)
Global Const $ImGuiConfigFlags_NoMouseCursorChange = BitShift(1, -5)
Global Const $ImGuiConfigFlags_DockingEnable = BitShift(1, -6)
Global Const $ImGuiConfigFlags_ViewportsEnable = BitShift(1, -10)
Global Const $ImGuiConfigFlags_DpiEnableScaleViewports= BitShift(1, -14)
Global Const $ImGuiConfigFlags_DpiEnableScaleFonts = BitShift(1, -15)
Global Const $ImGuiConfigFlags_IsSRGB = BitShift(1, -20)
Global Const $ImGuiConfigFlags_IsTouchScreen = BitShift(1, -21)
Global Const $ImGuiBackendFlags_None = 0
Global Const $ImGuiBackendFlags_HasGamepad = BitShift(1, -0)
Global Const $ImGuiBackendFlags_HasMouseCursors = BitShift(1, -1)
Global Const $ImGuiBackendFlags_HasSetMousePos = BitShift(1, -2)
Global Const $ImGuiBackendFlags_RendererHasVtxOffset = BitShift(1, -3)
Global Const $ImGuiBackendFlags_PlatformHasViewports = BitShift(1, -10)
Global Const $ImGuiBackendFlags_HasMouseHoveredViewport= BitShift(1, -11)
Global Const $ImGuiBackendFlags_RendererHasViewports = BitShift(1, -12)
Global Const $ImGuiCol_Text = 0
Global Const $ImGuiCol_TextDisabled = 1
Global Const $ImGuiCol_WindowBg = 2
Global Const $ImGuiCol_ChildBg = 3
Global Const $ImGuiCol_PopupBg = 4
Global Const $ImGuiCol_Border = 5
Global Const $ImGuiCol_BorderShadow = 6
Global Const $ImGuiCol_FrameBg = 7
Global Const $ImGuiCol_FrameBgHovered = 8
Global Const $ImGuiCol_FrameBgActive = 9
Global Const $ImGuiCol_TitleBg = 10
Global Const $ImGuiCol_TitleBgActive = 11
Global Const $ImGuiCol_TitleBgCollapsed = 12
Global Const $ImGuiCol_MenuBarBg = 13
Global Const $ImGuiCol_ScrollbarBg = 14
Global Const $ImGuiCol_ScrollbarGrab = 15
Global Const $ImGuiCol_ScrollbarGrabHovered = 16
Global Const $ImGuiCol_ScrollbarGrabActive = 17
Global Const $ImGuiCol_CheckMark = 18
Global Const $ImGuiCol_SliderGrab = 19
Global Const $ImGuiCol_SliderGrabActive = 20
Global Const $ImGuiCol_Button = 21
Global Const $ImGuiCol_ButtonHovered = 22
Global Const $ImGuiCol_ButtonActive = 23
Global Const $ImGuiCol_Header = 24
Global Const $ImGuiCol_HeaderHovered = 25
Global Const $ImGuiCol_HeaderActive = 26
Global Const $ImGuiCol_Separator = 27
Global Const $ImGuiCol_SeparatorHovered = 28
Global Const $ImGuiCol_SeparatorActive = 29
Global Const $ImGuiCol_ResizeGrip = 30
Global Const $ImGuiCol_ResizeGripHovered = 31
Global Const $ImGuiCol_ResizeGripActive = 32
Global Const $ImGuiCol_Tab = 33
Global Const $ImGuiCol_TabHovered = 34
Global Const $ImGuiCol_TabActive = 35
Global Const $ImGuiCol_TabUnfocused = 36
Global Const $ImGuiCol_TabUnfocusedActive = 37
Global Const $ImGuiCol_DockingPreview = 38
Global Const $ImGuiCol_DockingEmptyBg = 39
Global Const $ImGuiCol_PlotLines = 40
Global Const $ImGuiCol_PlotLinesHovered = 41
Global Const $ImGuiCol_PlotHistogram = 42
Global Const $ImGuiCol_PlotHistogramHovered = 43
Global Const $ImGuiCol_TextSelectedBg = 44
Global Const $ImGuiCol_DragDropTarget = 45
Global Const $ImGuiCol_NavHighlight = 46
Global Const $ImGuiCol_NavWindowingHighlight = 47
Global Const $ImGuiCol_NavWindowingDimBg = 48
Global Const $ImGuiCol_ModalWindowDimBg = 49
Global Const $ImGuiCol_DockingPreview_1 = 50
Global Const $ImGuiCol_DockingOutLine = 51
Global Const $ImGuiCol_DockingLine = 52
Global Const $ImGuiStyleVar_Alpha = 0
Global Const $ImGuiStyleVar_WindowPadding = 1
Global Const $ImGuiStyleVar_WindowRounding = 2
Global Const $ImGuiStyleVar_WindowBorderSize = 3
Global Const $ImGuiStyleVar_WindowMinSize = 4
Global Const $ImGuiStyleVar_WindowTitleAlign = 5
Global Const $ImGuiStyleVar_ChildRounding = 6
Global Const $ImGuiStyleVar_ChildBorderSize = 7
Global Const $ImGuiStyleVar_PopupRounding = 8
Global Const $ImGuiStyleVar_PopupBorderSize = 9
Global Const $ImGuiStyleVar_FramePadding = 10
Global Const $ImGuiStyleVar_FrameRounding = 11
Global Const $ImGuiStyleVar_FrameBorderSize = 12
Global Const $ImGuiStyleVar_ItemSpacing = 13
Global Const $ImGuiStyleVar_ItemInnerSpacing = 14
Global Const $ImGuiStyleVar_IndentSpacing = 15
Global Const $ImGuiStyleVar_ScrollbarSize = 16
Global Const $ImGuiStyleVar_ScrollbarRounding = 17
Global Const $ImGuiStyleVar_GrabMinSize = 18
Global Const $ImGuiStyleVar_GrabRounding = 19
Global Const $ImGuiStyleVar_TabRounding = 20
Global Const $ImGuiStyleVar_ButtonTextAlign = 21
Global Const $ImGuiStyleVar_SelectableTextAlign = 22
Global Const $ImGuiColorEditFlags_None = 0
Global Const $ImGuiColorEditFlags_NoAlpha = BitShift(1, -1)
Global Const $ImGuiColorEditFlags_NoPicker = BitShift(1, -2)
Global Const $ImGuiColorEditFlags_NoOptions = BitShift(1, -3)
Global Const $ImGuiColorEditFlags_NoSmallPreview = BitShift(1, -4)
Global Const $ImGuiColorEditFlags_NoInputs = BitShift(1, -5)
Global Const $ImGuiColorEditFlags_NoTooltip = BitShift(1, -6)
Global Const $ImGuiColorEditFlags_NoLabel = BitShift(1, -7)
Global Const $ImGuiColorEditFlags_NoSidePreview = BitShift(1, -8)
Global Const $ImGuiColorEditFlags_NoDragDrop = BitShift(1, -9)
Global Const $ImGuiColorEditFlags_NoBorder = BitShift(1, -10)
Global Const $ImGuiColorEditFlags_AlphaBar = BitShift(1, -16)
Global Const $ImGuiColorEditFlags_AlphaPreview = BitShift(1, -17)
Global Const $ImGuiColorEditFlags_AlphaPreviewHalf= BitShift(1, -18)
Global Const $ImGuiColorEditFlags_HDR = BitShift(1, -19)
Global Const $ImGuiColorEditFlags_DisplayRGB = BitShift(1, -20)
Global Const $ImGuiColorEditFlags_DisplayHSV = BitShift(1, -21)
Global Const $ImGuiColorEditFlags_DisplayHex = BitShift(1, -22)
Global Const $ImGuiColorEditFlags_Uint8 = BitShift(1, -23)
Global Const $ImGuiColorEditFlags_Float = BitShift(1, -24)
Global Const $ImGuiColorEditFlags_PickerHueBar = BitShift(1, -25)
Global Const $ImGuiColorEditFlags_PickerHueWheel = BitShift(1, -26)
Global Const $ImGuiColorEditFlags_InputRGB = BitShift(1, -27)
Global Const $ImGuiColorEditFlags_InputHSV = BitShift(1, -28)
Global Const $ImGuiColorEditFlags__OptionsDefault = BitOr($ImGuiColorEditFlags_Uint8, $ImGuiColorEditFlags_DisplayRGB, $ImGuiColorEditFlags_InputRGB, $ImGuiColorEditFlags_PickerHueBar)
Global Const $ImGuiColorEditFlags__DisplayMask = BitOr($ImGuiColorEditFlags_DisplayRGB, $ImGuiColorEditFlags_DisplayHSV, $ImGuiColorEditFlags_DisplayHex)
Global Const $ImGuiColorEditFlags__DataTypeMask = BitOr($ImGuiColorEditFlags_Uint8, $ImGuiColorEditFlags_Float)
Global Const $ImGuiColorEditFlags__PickerMask = BitOr($ImGuiColorEditFlags_PickerHueWheel, $ImGuiColorEditFlags_PickerHueBar)
Global Const $ImGuiColorEditFlags__InputMask = BitOr($ImGuiColorEditFlags_InputRGB, $ImGuiColorEditFlags_InputHSV)
Global Const $ImGuiMouseButton_Left = 0
Global Const $ImGuiMouseButton_Right = 1
Global Const $ImGuiMouseButton_Middle = 2
Global Const $ImGuiMouseButton_COUNT = 5
Global Const $ImGuiMouseCursor_None = -1
Global Const $ImGuiMouseCursor_Arrow = 0
Global Const $ImGuiMouseCursor_TextInput = 0
Global Const $ImGuiMouseCursor_ResizeAll = 1
Global Const $ImGuiMouseCursor_ResizeNS = 2
Global Const $ImGuiMouseCursor_ResizeEW = 3
Global Const $ImGuiMouseCursor_ResizeNESW = 4
Global Const $ImGuiMouseCursor_ResizeNWSE = 5
Global Const $ImGuiMouseCursor_Hand = 6
Global Const $ImGuiMouseCursor_NotAllowed = 7
Global Const $ImGuiCond_None = 0
Global Const $ImGuiCond_Always = BitShift(1, -0)
Global Const $ImGuiCond_Once = BitShift(1, -1)
Global Const $ImGuiCond_FirstUseEver = BitShift(1, -2)
Global Const $ImGuiCond_Appearing = BitShift(1, -3)
Global Const $ImDrawCornerFlags_None = 0
Global Const $ImDrawCornerFlags_TopLeft = BitShift(1, -0)
Global Const $ImDrawCornerFlags_TopRight = BitShift(1, -1)
Global Const $ImDrawCornerFlags_BotLeft = BitShift(1, -2)
Global Const $ImDrawCornerFlags_BotRight = BitShift(1, -3)
Global Const $ImDrawCornerFlags_Top = BitOr($ImDrawCornerFlags_TopLeft, $ImDrawCornerFlags_TopRight)
Global Const $ImDrawCornerFlags_Bot = BitOr($ImDrawCornerFlags_BotLeft, $ImDrawCornerFlags_BotRight)
Global Const $ImDrawCornerFlags_Left = BitOr($ImDrawCornerFlags_TopLeft, $ImDrawCornerFlags_BotLeft)
Global Const $ImDrawCornerFlags_Right = BitOr($ImDrawCornerFlags_TopRight, $ImDrawCornerFlags_BotRight)
Global Const $ImDrawCornerFlags_All = 0xF
Global Const $ImDrawListFlags_None = 0
Global Const $ImDrawListFlags_AntiAliasedLines = BitShift(1, -0)
Global Const $ImDrawListFlags_AntiAliasedFill = BitShift(1, -1)
Global Const $ImDrawListFlags_AllowVtxOffset = BitShift(1, -2)
Func _ImGui_EnableViewports($enable = True)
Local $result = DllCall($IMGUI_DLL, "none:cdecl", "EnableViewports", "boolean", $enable)
EndFunc
Func _ImGui_EnableDocking($enable = True)
Local $io = _ImGui_GetIO()
$io.ConfigFlags = $enable ? BitOR($io.ConfigFlags, $ImGuiConfigFlags_DockingEnable) : BitXOR($io.ConfigFlags, $ImGuiConfigFlags_DockingEnable)
EndFunc
Func _ImGui_SetWindowTitleAlign($x = 0.5, $y = 0.5)
Local $imstyle = _ImGui_GetStyle()
$imstyle.WindowTitleAlign_x = $x
$imstyle.WindowTitleAlign_y = $y
EndFunc
Func _ImGui_GUICreate($title, $w, $h, $x = -1, $y = -1, $style = 0, $ex_style = 0)
If $__imgui_created Then Return False
Local $result = DllCall($IMGUI_DLL, "hwnd:cdecl", "GUICreate", "wstr", $title, "int", $w, "int", $h, "int", $x, "int", $y)
If @error Then Return SetError(1, 0, 0)
If $style <> 0 Then _WinAPI_SetWindowLong($result[0], $GWL_STYLE, $style)
If $ex_style <> 0 Then _WinAPI_SetWindowLong($result[0], $GWL_EXSTYLE, $ex_style)
$__imgui_created = True
Return $result[0]
EndFunc
Func _ImGui_PeekMsg()
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "PeekMsg")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
; ####====================================================================================================================================================
; ####\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; ####================================================================================================================================
; ####\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; // Main
Func _ImGui_GetIO()
local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetIO")
If @error Then Return SetError(1, 0, 0)
Local $struct = DllStructCreate($__tagImGuiIO, $result[0])
return $struct
EndFunc
Func _ImGui_GetStyle()
local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetStyle")
If @error Then Return SetError(1, 0, 0)
Local $struct = DllStructCreate($__tagImGuiStyle, $result[0])
return $struct
EndFunc
Func _ImGui_BeginFrame()
DllCall($IMGUI_DLL, "none:cdecl", "BeginFrame")
EndFunc
Func _ImGui_EndFrame($clear_color = 0xFF738C99)
DllCall($IMGUI_DLL, "none:cdecl", "EndFrame", "uint", $clear_color)
EndFunc
; // Styles
Func _ImGui_StyleColorsDark()
DllCall($IMGUI_DLL, "none:cdecl", "StyleColorsDark")
EndFunc
Func _ImGui_StyleColorsLight()
DllCall($IMGUI_DLL, "none:cdecl", "StyleColorsLight")
EndFunc
Func _ImGui_StyleColorsClassic()
DllCall($IMGUI_DLL, "none:cdecl", "StyleColorsClassic")
EndFunc
; // Windows
Func _ImGui_Begin($title, $close_btn = False, $flags = $ImGuiWindowFlags_None)
Local $close_ptr = 0
If $close_btn Then
Local $b_close = DllStructCreate("boolean value;")
$b_close.value = True
$close_ptr = DllStructGetPtr($b_close)
EndIf
Local $result = DllCall($IMGUI_DLL, "none:cdecl", "Begin", "wstr", $title, "ptr", $close_ptr, "int", $flags)
If @error Then Return SetError(1, 0, 0)
If $close_btn = False Then Return True
Return $b_close.value
EndFunc
Func _ImGui_End()
DllCall($IMGUI_DLL, "none:cdecl", "End")
EndFunc
; // Child Windows
Func _ImGui_BeginChild($text, $w = 0, $h = 0, $border = False, $flags = $ImGuiWindowFlags_None)
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "BeginChild", "wstr", $text, "float", $w, "float", $h, "boolean", $border, "int", $flags)
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_EndChild()
DllCall($IMGUI_DLL, "none:cdecl", "EndChild")
EndFunc
Func _ImGui_IsWindowAppearing()
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "IsWindowAppearing")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_IsWindowCollapsed()
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "IsWindowCollapsed")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_IsWindowFocused($flags = $ImGuiFocusedFlags_None)
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "IsWindowFocused", "int", $flags)
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_IsWindowHovered($flags = $ImGuiFocusedFlags_None)
Local $result = DllCall($IMGUI_DLL, "boolean:cdecl", "IsWindowHovered", "int", $flags)
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetWindowDrawList()
Local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetWindowDrawList")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetOverlayDrawList()
Local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetOverlayDrawList")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetBackgroundDrawList()
Local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetBackgroundDrawList")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetForegroundDrawList()
Local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetForegroundDrawList")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetWindowDpiScale()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetWindowDpiScale")
If @error Then Return False
Return $result[0]
EndFunc
Func _ImGui_GetWindowViewport()
Local $result = DllCall($IMGUI_DLL, "ptr:cdecl", "GetWindowViewport")
If @error Then Return False
Local $struct = DllStructCreate($__tagImGuiViewport, $result[0])
return $struct
EndFunc
Func _ImGui_GetWindowPos()
Return ___ImGui_RecvImVec2("none:cdecl", "GetWindowPos")
EndFunc
Func _ImGui_GetWindowSize()
Return ___ImGui_RecvImVec2("none:cdecl", "GetWindowSize")
EndFunc
Func _ImGui_GetWindowWidth()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetWindowWidth")
If @error Then Return False
Return $result[0]
EndFunc
Func _ImGui_GetWindowHeight()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetWindowHeight")
If @error Then Return False
Return $result[0]
EndFunc
Func _ImGui_SetNextWindowPos($x, $y, $cond = $ImGuiCond_None, $pivot_x = 0, $pivot_y = 0)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowPos", "float", $x, "float", $y, "int", $cond, "float", $pivot_x, "float", $pivot_y)
EndFunc
Func _ImGui_SetNextWindowSize($x, $y, $cond = $ImGuiCond_None)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowSize", "float", $x, "float", $y, "int", $cond)
EndFunc
Func _ImGui_SetNextWindowSizeConstraints($size_min_x, $size_min_y, $size_max_x, $size_max_y)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowSizeConstraints", "float", $size_min_x, "float", $size_min_y, "float", $size_max_x, "float", $size_max_y)
EndFunc
Func _ImGui_SetNextWindowContentSize($size_x, $size_y)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowContentSize", "float", $size_x, "float", $size_y)
EndFunc
Func _ImGui_SetNextWindowCollapsed($collapsed, $cond = $ImGuiCond_None)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowCollapsed", "boolean", $collapsed, "int", $cond)
EndFunc
Func _ImGui_SetNextWindowFocus()
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowFocus")
EndFunc
Func _ImGui_SetNextWindowBgAlpha($alpha)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowBgAlpha", "float", $alpha)
EndFunc
Func _ImGui_SetNextWindowViewport($id)
DllCall($IMGUI_DLL, "none:cdecl", "SetNextWindowViewport", "int", $id)
EndFunc
Func _ImGui_SetWindowPos($pos_x, $pos_y, $cond=0)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowPosition", "float", $pos_x, "float", $pos_y, "int", $cond)
EndFunc
Func _ImGui_SetWindowSize($size_x, $size_y, $cond=0)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowSize", "float", $size_x, "float", $size_y, "int", $cond)
EndFunc
Func _ImGui_SetWindowCollapsed($collapsed, $cond = $ImGuiCond_None)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowCollapsed", "boolean", $collapsed, "int", $cond)
EndFunc
Func _ImGui_SetWindowFocus()
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowFocus")
EndFunc
Func _ImGui_SetWindowFontScale($scale)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowFontScale", "float", $scale)
EndFunc
Func _ImGui_SetWindowPosByName($name, $pos_x, $pos_y, $cond = $ImGuiCond_None)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowPosByName", "wstr", $name, "float", $pos_x, "float", $pos_y, "int", $cond)
EndFunc
Func _ImGui_SetWindowSizeByName($name, $size_x, $size_y, $cond = $ImGuiCond_None)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowSizeByName", "wstr", $name, "float", $size_x, "float", $size_y, "int", $cond)
EndFunc
Func _ImGui_SetWindowCollapsedByName($name, $collapsed, $cond = $ImGuiCond_None)
Local $result = DllCall($IMGUI_DLL, "none:cdecl", "SetWindowCollapsedByName", "wstr", $name, "boolean", $collapsed, "int", $cond)
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_SetWindowFocusByName($name)
DllCall($IMGUI_DLL, "none:cdecl", "SetWindowFocus", "wstr", $name)
EndFunc
Func ___ImGui_RecvImVec2($return_type, $func_name)
Local $struct_x = DllStructCreate("float value;")
Local $struct_y = DllStructCreate("float value;")
Local $result = DllCall($IMGUI_DLL, $return_type, $func_name, "ptr", DllStructGetPtr($struct_x), "ptr", DllStructGetPtr($struct_y))
If @error Then Return SetError(1, 0, 0)
Local $ret[2] = [$struct_x.value, $struct_y.value]
Return $ret
EndFunc
Func _ImGui_GetContentRegionMax()
Return ___ImGui_RecvImVec2("none:cdecl", "GetContentRegionMax")
EndFunc
Func _ImGui_GetContentRegionAvail()
Return ___ImGui_RecvImVec2("none:cdecl", "GetContentRegionAvail")
EndFunc
Func _ImGui_GetWindowContentRegionMin()
Return ___ImGui_RecvImVec2("none:cdecl", "GetWindowContentRegionMin")
EndFunc
Func _ImGui_GetWindowContentRegionMax()
Return ___ImGui_RecvImVec2("none:cdecl", "GetWindowContentRegionMax")
EndFunc
Func _ImGui_GetItemRectMin()
Return ___ImGui_RecvImVec2("none:cdecl", "GetItemRectMin")
EndFunc
Func _ImGui_GetItemRectMax()
Return ___ImGui_RecvImVec2("none:cdecl", "GetItemRectMax")
EndFunc
Func _ImGui_GetItemRectSize()
Return ___ImGui_RecvImVec2("none:cdecl", "GetItemRectSize")
EndFunc
Func _ImGui_GetMousePos()
Return ___ImGui_RecvImVec2("none:cdecl", "GetMousePos")
EndFunc
Func _ImGui_GetMousePosOnOpeningCurrentPopup()
Return ___ImGui_RecvImVec2("none:cdecl", "GetMousePosOnOpeningCurrentPopup")
EndFunc
Func _ImGui_GetMouseDragDelta($button = $ImGuiMouseButton_Left, $lock_threshold = -1)
Local $struct_x = DllStructCreate("float value;")
Local $struct_y = DllStructCreate("float value;")
Local $result = DllCall($IMGUI_DLL, "none:cdecl", "GetMouseDragDelta", "int", $button, "float", $lock_threshold, "ptr", DllStructGetPtr($struct_x),"ptr", DllStructGetPtr($struct_y))
If @error Then Return SetError(1, 0, 0)
Local $ret[2] = [$struct_x.value, $struct_y.value]
Return $ret
EndFunc
Func _ImGui_GetWindowContentRegionWidth()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetWindowContentRegionWidth")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetScrollX()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetScrollX")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetScrollY()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetScrollY")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetScrollMaxX()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetScrollMaxX")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_GetScrollMaxY()
Local $result = DllCall($IMGUI_DLL, "float:cdecl", "GetScrollMaxY")
If @error Then Return SetError(1, 0, 0)
Return $result[0]
EndFunc
Func _ImGui_SetScrollX($scroll_x)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollX", "float", $scroll_x)
EndFunc
Func _ImGui_SetScrollY($scroll_y)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollY", "float", $scroll_y)
EndFunc
Func _ImGui_SetScrollHereX($center_x_ratio = 0.5)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollHereX", "float", $center_x_ratio)
EndFunc
Func _ImGui_SetScrollHereY($center_y_ratio = 0.5)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollHereY", "float", $center_y_ratio)
EndFunc
Func _ImGui_SetScrollFromPosX($local_x, $center_x_ratio = 0.5)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollFromPosX", "float", $local_x, "float", $center_x_ratio)
EndFunc
Func _ImGui_SetScrollFromPosY($local_y, $center_y_ratio = 0.5)
DllCall($IMGUI_DLL, "none:cdecl", "SetScrollFromPosY", "float", $local_y, "float", $center_y_ratio)
EndFunc
Func _ImGui_PushFont($font)
DllCall($IMGUI_DLL, "none:cdecl", "PushFont", "ptr", $font)
EndFunc
Func _ImGui_PopFont()
DllCall($IMGUI_DLL, "none:cdecl", "PopFont")
EndFunc
Func _ImGui_PushStyleColor($idx, $col)
DllCall($IMGUI_DLL, "none:cdecl", "PushStyleColor", "int", $idx, "uint", $col)
EndFunc
Func _ImGui_PopStyleColor($count = 1)
DllCall($IMGUI_DLL, "none:cdecl", "PopStyleColor", "int", $count)