Browse Source

Updating the code to support Delphi & FreePascal

- Tested on Delphi 12.0
Coldzer0 1 year ago
parent
commit
3aaaa9d73e

+ 2 - 2
OpenGL3/OpenGl3.Loader.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -29,7 +29,7 @@ function ImGLInit(): Boolean;
 
 implementation
 
-Function GLFuncLoad(proc: PChar): Pointer;
+Function GLFuncLoad(proc: PAnsiChar): Pointer;
 Begin
   Result := SDL_GL_GetProcAddress(proc);
   Assert(Result <> nil, 'couldn''t load ' + proc);

+ 6 - 4
README.md

@@ -1,7 +1,7 @@
 # ImGui-Pascal
 [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0)
 
-FreePascal bindings for dear [ImGui](https://github.com/ocornut/imgui) with docking v1.99
+FreePascal / Delphi bindings for dear [ImGui](https://github.com/ocornut/imgui) with docking v1.99
 
 The Binding is based on [cimgui](https://github.com/cimgui/cimgui)
 > cimgui is c-api for imgui (https://github.com/ocornut/imgui) Look at: https://github.com/cimgui for other widgets.
@@ -10,18 +10,20 @@ The Binding is based on [cimgui](https://github.com/cimgui/cimgui)
 
 #### Running on Windows
 
-##### Add new font to the UI
+##### FreePascal
 <img src="screenshots/fonts.png">
 <br>
 
+#### Delphi
 <img src="screenshots/windows.png">
 <br>
 
-#### Running on Linux
+#### Running on Linux (FreePascal)
 <img src="screenshots/linux.jpg">
 
 ## Building
-Tested with FreePascal 3.3.x and later.
+Tested with FreePascal 3.2 and later.
+Tested with Delphi 12.0
 
 ## Usage
 It should be almost 1 to 1 as if you are using C++ ImGui <br> 

+ 20 - 12
impl/CImGui.Impl.OpenGL3.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -26,14 +26,14 @@ Uses
   PasImGui.Apis;
 
 
-function  ImGui_Impl_OpenGL3_Init(const glsl_version : PChar = nil) : Boolean;
+function  ImGui_Impl_OpenGL3_Init(const glsl_version : PAnsiChar = nil) : Boolean;
 Procedure ImGui_Impl_OpenGL3_RenderDrawData(draw_data : PImDrawData);
 Procedure ImGui_Impl_OpenGL3_NewFrame();
 Procedure ImGui_Impl_OpenGL3_Shutdown();
 
 implementation
 
-function  ImGui_ImplOpenGL3_Init(const glsl_version : PChar = nil) : Boolean; cdecl; external CIMGUI_LIB;
+function  ImGui_ImplOpenGL3_Init(const glsl_version : PAnsiChar = nil) : Boolean; cdecl; external CIMGUI_LIB;
 Procedure ImGui_ImplOpenGL3_Shutdown(); cdecl; external CIMGUI_LIB;
 Procedure ImGui_ImplOpenGL3_NewFrame(); cdecl; external CIMGUI_LIB;
 Procedure ImGui_ImplOpenGL3_RenderDrawData(draw_data : PImDrawData); cdecl; external CIMGUI_LIB;
@@ -44,40 +44,48 @@ Procedure ImGui_ImplOpenGL3_DestroyFontsTexture(); cdecl; external CIMGUI_LIB;
 function  ImGui_ImplOpenGL3_CreateDeviceObjects(): Boolean; cdecl; external CIMGUI_LIB;
 Procedure ImGui_ImplOpenGL3_DestroyDeviceObjects(); cdecl; external CIMGUI_LIB;
 
-function ImGui_Impl_OpenGL3_Init(const glsl_version: PChar): Boolean;
+function ImGui_Impl_OpenGL3_Init(const glsl_version: PAnsiChar): Boolean;
+{$IFDEF FPC}
 Var
   saved: Cardinal;
+{$ENDIF}
 Begin
-  saved := SetFpuFlags();
+  {$IFDEF FPC}saved := SetFpuFlags();{$ENDIF}
   Result := ImGui_ImplOpenGL3_Init(glsl_version);
-  ResetFpuFlags(saved);
+  {$IFDEF FPC}ResetFpuFlags(saved);{$ENDIF}
 end;
 
 procedure ImGui_Impl_OpenGL3_RenderDrawData(draw_data: PImDrawData);
+{$IFDEF FPC}
 Var
   saved: Cardinal;
+{$ENDIF}
 Begin
-  saved := SetFpuFlags();
+  {$IFDEF FPC}saved := SetFpuFlags();{$ENDIF}
   ImGui_ImplOpenGL3_RenderDrawData(draw_data);
-  ResetFpuFlags(saved);
+  {$IFDEF FPC}ResetFpuFlags(saved);{$ENDIF}
 end;
 
 procedure ImGui_Impl_OpenGL3_NewFrame();
+{$IFDEF FPC}
 Var
   saved: Cardinal;
+{$ENDIF}
 Begin
-  saved := SetFpuFlags();
+  {$IFDEF FPC}saved := SetFpuFlags();{$ENDIF}
   ImGui_ImplOpenGL3_NewFrame();
-  ResetFpuFlags(saved);
+  {$IFDEF FPC}ResetFpuFlags(saved);{$ENDIF}
 end;
 
 procedure ImGui_Impl_OpenGL3_Shutdown();
+{$IFDEF FPC}
 Var
   saved: Cardinal;
+{$ENDIF}
 Begin
-  saved := SetFpuFlags();
+  {$IFDEF FPC}saved := SetFpuFlags();{$ENDIF}
   ImGui_ImplOpenGL3_Shutdown();
-  ResetFpuFlags(saved);
+  {$IFDEF FPC}ResetFpuFlags(saved);{$ENDIF}
 end;
 
 

+ 1 - 1
impl/CImGui.Impl.SDL2.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 

+ 9 - 9
impl/PasImGui.SDL2.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -168,7 +168,7 @@ Begin
   viewport^.PlatformHandle := vd^.Window;
   viewport^.PlatformHandleRaw := nil;
 
-  FillByte(info, SizeOf(TSDL_SysWMinfo), 0);
+  FillChar(info, SizeOf(TSDL_SysWMinfo), 0);
   SDL_VERSION(info.version);
   If SDL_GetWindowWMInfo(vd^.window, @info) = SDL_TRUE Then
   Begin
@@ -279,7 +279,7 @@ Begin
 End;
 
 // Done
-Procedure ImGui_ImplSDL2_SetWindowTitle(viewport: PImGuiViewport; title: PChar); Cdecl;
+Procedure ImGui_ImplSDL2_SetWindowTitle(viewport: PImGuiViewport; title: PAnsiChar); Cdecl;
 Var
   vd: PImGui_ImplSDL2_ViewportData;
 Begin
@@ -404,7 +404,7 @@ End;
 //------------------------------------------------------------------------------
 
 // Done
-Function ImGui_ImplSDL2_GetClipboardText({%H-}user_data: Pointer): PChar; Cdecl;
+Function ImGui_ImplSDL2_GetClipboardText({%H-}user_data: Pointer): PAnsiChar; Cdecl;
 Var
   bd: PImGui_ImplSDL2_Data;
 Begin
@@ -417,7 +417,7 @@ Begin
 End;
 
 // Done
-Procedure ImGui_ImplSDL2_SetClipboardText({%H-}user_data: Pointer; Text: PChar); Cdecl;
+Procedure ImGui_ImplSDL2_SetClipboardText({%H-}user_data: Pointer; Text: PAnsiChar); Cdecl;
 Begin
   SDL_SetClipboardText(Text);
 End;
@@ -434,7 +434,7 @@ Begin
     r.x := Trunc(Data^.InputPos.x - viewport^.Pos.x);
     r.y := Trunc(Data^.InputPos.y - viewport^.Pos.y + Data^.InputLineHeight);
     r.w := 1;
-    r.h := Integer(Data^.InputLineHeight);
+    r.h := Trunc(Data^.InputLineHeight);
     SDL_SetTextInputRect(@r);
   End;
 End;
@@ -746,7 +746,7 @@ Begin
     End;
     monitor.PlatformHandle := {%H-}Pointer(UIntPtr(n));
 
-    platform_io^.Monitors.Data[n] := monitor;
+    TMonArray(platform_io^.Monitors.Data)[n] := monitor;
     Inc(platform_io^.Monitors.Size, 1);
   End;
 End;
@@ -1025,8 +1025,8 @@ Begin
       Begin
         SDL_GetWindowPosition(SDL_GetWindowFromID(event^.motion.windowID),
           @window_x, @window_y);
-        mouse_pos.x += window_x;
-        mouse_pos.y += window_y;
+        mouse_pos.x := mouse_pos.x + window_x;
+        mouse_pos.y := mouse_pos.y + window_y;
       End;
 
       If event^.motion.which = SDL_TOUCH_MOUSEID Then

BIN
screenshots/windows.png


+ 9 - 3
src/PasImGui.Apis.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -348,7 +348,7 @@ function ImGuiStorage_GetFloatRef( self : PImGuiStorage; key : ImGuiID; default_
 function ImGuiStorage_GetInt( self : PImGuiStorage; key : ImGuiID; default_val : Integer ) : Integer; cdecl; external CIMGUI_LIB;
 function ImGuiStorage_GetIntRef( self : PImGuiStorage; key : ImGuiID; default_val : Integer ) : PInteger; cdecl; external CIMGUI_LIB;
 function ImGuiStorage_GetVoidPtr( self : PImGuiStorage; key : ImGuiID ) : Pointer; cdecl; external CIMGUI_LIB;
-function ImGuiStorage_GetVoidPtrRef( self : PImGuiStorage; key : ImGuiID; default_val : Pointer ) : PPPointer; cdecl; external CIMGUI_LIB;
+function ImGuiStorage_GetVoidPtrRef( self : PImGuiStorage; key : ImGuiID; default_val : Pointer ) : PPointer; cdecl; external CIMGUI_LIB;
 procedure ImGuiStorage_SetAllInt( self : PImGuiStorage; val : Integer ); cdecl; external CIMGUI_LIB;
 procedure ImGuiStorage_SetBool( self : PImGuiStorage; key : ImGuiID; val : Boolean ); cdecl; external CIMGUI_LIB;
 procedure ImGuiStorage_SetFloat( self : PImGuiStorage; key : ImGuiID; val : Single ); cdecl; external CIMGUI_LIB;
@@ -724,7 +724,7 @@ procedure igGcAwakeTransientWindowBuffers( window : PImGuiWindow ); cdecl; exter
 procedure igGcCompactTransientMiscBuffers( ); cdecl; external CIMGUI_LIB;
 procedure igGcCompactTransientWindowBuffers( window : PImGuiWindow ); cdecl; external CIMGUI_LIB;
 function igGetActiveID( ) : ImGuiID; cdecl; external CIMGUI_LIB;
-procedure igGetAllocatorFunctions( p_alloc_func : PImGuiMemAllocFunc; p_free_func : PImGuiMemFreeFunc; p_user_data : PPPointer ); cdecl; external CIMGUI_LIB;
+procedure igGetAllocatorFunctions( p_alloc_func : PImGuiMemAllocFunc; p_free_func : PImGuiMemFreeFunc; p_user_data : PPointer ); cdecl; external CIMGUI_LIB;
 function igGetBackgroundDrawList_Nil( ) : PImDrawList; cdecl; external CIMGUI_LIB;
 function igGetBackgroundDrawList_ViewportPtr( viewport : PImGuiViewport ) : PImDrawList; cdecl; external CIMGUI_LIB;
 function igGetClipboardText( ) : PAnsiChar; cdecl; external CIMGUI_LIB;
@@ -1403,6 +1403,7 @@ procedure igWindowPosRelToAbs( pOut : PImVec2; window : PImGuiWindow; p : ImVec2
 procedure igWindowRectAbsToRel( pOut : PImRect; window : PImGuiWindow; r : ImRect ); cdecl; external CIMGUI_LIB;
 procedure igWindowRectRelToAbs( pOut : PImRect; window : PImGuiWindow; r : ImRect ); cdecl; external CIMGUI_LIB;
 
+{$IFDEF FPC}
 // From mORMot2 "mormot.lib.static.pas"
 type
   /// define SetFpuFlags/ResetFpuFlags context
@@ -1448,8 +1449,12 @@ function SetFpuFlags(flags: TFpuFlags = ffLibrary): cardinal;
 /// restore the FPU exceptions flags as overriden by SetFpuFlags()
 // - do nothing if the saved flags are the one already set, i.e. -1
 procedure ResetFpuFlags(saved: cardinal);
+{$ELSE}
+
+{$ENDIF}
 
 implementation
+{$IFDEF FPC}
   uses
     math;
 
@@ -1502,5 +1507,6 @@ begin
   if saved <> _FPUFLAGSIDEM then
     _SetFlags(saved);
 end;
+{$ENDIF}
 
 end.

+ 1139 - 2583
src/PasImGui.Enums.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -24,2589 +24,1145 @@ unit PasImGui.Enums;
 
 interface
 
-Type
-
-  ImGuiWindowFlags = (
-    ImGuiWindowFlags_None = 0,
-    ImGuiWindowFlags_NoTitleBar = 1 shl 0,
-    ImGuiWindowFlags_NoResize = 1 shl 1,
-    ImGuiWindowFlags_NoMove = 1 shl 2,
-    ImGuiWindowFlags_NoScrollbar = 1 shl 3,
-    ImGuiWindowFlags_NoScrollWithMouse = 1 shl 4,
-    ImGuiWindowFlags_NoCollapse = 1 shl 5,
-    ImGuiWindowFlags_AlwaysAutoResize = 1 shl 6,
-    ImGuiWindowFlags_NoBackground = 1 shl 7,
-    ImGuiWindowFlags_NoSavedSettings = 1 shl 8,
-    ImGuiWindowFlags_NoMouseInputs = 1 shl 9,
-    ImGuiWindowFlags_MenuBar = 1 shl 10,
-    ImGuiWindowFlags_HorizontalScrollbar = 1 shl 11,
-    ImGuiWindowFlags_NoFocusOnAppearing = 1 shl 12,
-    ImGuiWindowFlags_NoBringToFrontOnFocus = 1 shl 13,
-    ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 shl 14,
-    ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1shl 15,
-    ImGuiWindowFlags_NoNavInputs = 1 shl 16,
-    ImGuiWindowFlags_NoNavFocus = 1 shl 17,
-    ImGuiWindowFlags_UnsavedDocument = 1 shl 18,
-    ImGuiWindowFlags_NoDocking = 1 shl 19,
-    ImGuiWindowFlags_NoNav = Ord(ImGuiWindowFlags_NoNavInputs) or Ord(ImGuiWindowFlags_NoNavFocus),
-    ImGuiWindowFlags_NoDecoration = Ord(ImGuiWindowFlags_NoTitleBar) or Ord(ImGuiWindowFlags_NoResize) or Ord(ImGuiWindowFlags_NoScrollbar) or Ord(ImGuiWindowFlags_NoCollapse),
-    ImGuiWindowFlags_NoInputs = Ord(ImGuiWindowFlags_NoMouseInputs) or Ord(ImGuiWindowFlags_NoNavInputs) or Ord(ImGuiWindowFlags_NoNavFocus),
-    ImGuiWindowFlags_NavFlattened = 1 shl 23,
-    ImGuiWindowFlags_ChildWindow = 1 shl 24,
-    ImGuiWindowFlags_Tooltip = 1 shl 25,
-    ImGuiWindowFlags_Popup = 1 shl 26,
-    ImGuiWindowFlags_Modal = 1 shl 27,
-    ImGuiWindowFlags_ChildMenu = 1 shl 28,
-    ImGuiWindowFlags_DockNodeHost = 1 shl 29
-  );
-
-  ImGuiWindowDockStyleCol = (
-    ImGuiWindowDockStyleCol_Text = 0,
-    ImGuiWindowDockStyleCol_Tab = 1,
-    ImGuiWindowDockStyleCol_TabHovered = 2,
-    ImGuiWindowDockStyleCol_TabActive = 3,
-    ImGuiWindowDockStyleCol_TabUnfocused = 4,
-    ImGuiWindowDockStyleCol_TabUnfocusedActive = 5,
-    ImGuiWindowDockStyleCol_COUNT = 6
-  );
-
-  ImGuiViewportFlags = (
-    ImGuiViewportFlags_None = 0,
-    ImGuiViewportFlags_IsPlatformWindow = 1 shl 0,
-    ImGuiViewportFlags_IsPlatformMonitor = 1 shl 1,
-    ImGuiViewportFlags_OwnedByApp = 1 shl 2,
-    ImGuiViewportFlags_NoDecoration = 1 shl 3,
-    ImGuiViewportFlags_NoTaskBarIcon = 1 shl 4,
-    ImGuiViewportFlags_NoFocusOnAppearing = 1 shl 5,
-    ImGuiViewportFlags_NoFocusOnClick = 1 shl 6,
-    ImGuiViewportFlags_NoInputs = 1 shl 7,
-    ImGuiViewportFlags_NoRendererClear = 1 shl 8,
-    ImGuiViewportFlags_NoAutoMerge = 1 shl 9,
-    ImGuiViewportFlags_TopMost = 1 shl 10,
-    ImGuiViewportFlags_CanHostOtherWindows = 1 shl 11,
-    ImGuiViewportFlags_IsMinimized = 1 shl 12,
-    ImGuiViewportFlags_IsFocused = 1 shl 13
-  );
-
-  ImGuiTypingSelectFlags = (
-    ImGuiTypingSelectFlags_None = 0,
-    ImGuiTypingSelectFlags_AllowBackspace = 1 shl 0,
-    ImGuiTypingSelectFlags_AllowSingleCharMode = 1 shl 1
-  );
-
-  ImGuiTreeNodeFlags = (
-    ImGuiTreeNodeFlags_None = 0,
-    ImGuiTreeNodeFlags_Selected = 1 shl 0,
-    ImGuiTreeNodeFlags_Framed = 1 shl 1,
-    ImGuiTreeNodeFlags_AllowOverlap = 1 shl 2,
-    ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 shl 3,
-    ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 shl 4,
-    ImGuiTreeNodeFlags_DefaultOpen = 1 shl 5,
-    ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 shl 6,
-    ImGuiTreeNodeFlags_OpenOnArrow = 1 shl 7,
-    ImGuiTreeNodeFlags_Leaf = 1 shl 8,
-    ImGuiTreeNodeFlags_Bullet = 1 shl 9,
-    ImGuiTreeNodeFlags_FramePadding = 1 shl 10,
-    ImGuiTreeNodeFlags_SpanAvailWidth = 1 shl 11,
-    ImGuiTreeNodeFlags_SpanFullWidth = 1 shl 12,
-    ImGuiTreeNodeFlags_SpanAllColumns = 1 shl 13,
-    ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 shl 14,
-    ImGuiTreeNodeFlags_CollapsingHeader = Ord(ImGuiTreeNodeFlags_Framed) or Ord(ImGuiTreeNodeFlags_NoTreePushOnOpen) or Ord(ImGuiTreeNodeFlags_NoAutoOpenOnLog)
-  );
-
-  ImGuiTreeNodeFlagsPrivate = (
-    ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 shl 20,
-    ImGuiTreeNodeFlags_UpsideDownArrow = 1 shl 21
-  );
-
-  ImGuiTooltipFlags = (
-    ImGuiTooltipFlags_None = 0,
-    ImGuiTooltipFlags_OverridePrevious = 1 shl 1
-  );
-
-  ImGuiTextFlags = (
-    ImGuiTextFlags_None = 0,
-    ImGuiTextFlags_NoWidthForLargeClippedText = 1 shl 0
-  );
-
-  ImGuiTableRowFlags = (
-    ImGuiTableRowFlags_None = 0,
-    ImGuiTableRowFlags_Headers = 1 shl 0
-  );
-
-  ImGuiTableFlags = (
-    ImGuiTableFlags_None = 0,
-    ImGuiTableFlags_Resizable = 1 shl 0,
-    ImGuiTableFlags_Reorderable = 1 shl 1,
-    ImGuiTableFlags_Hideable = 1 shl 2,
-    ImGuiTableFlags_Sortable = 1 shl 3,
-    ImGuiTableFlags_NoSavedSettings = 1 shl 4,
-    ImGuiTableFlags_ContextMenuInBody = 1 shl 5,
-    ImGuiTableFlags_RowBg = 1 shl 6,
-    ImGuiTableFlags_BordersInnerH = 1 shl 7,
-    ImGuiTableFlags_BordersOuterH = 1 shl 8,
-    ImGuiTableFlags_BordersInnerV = 1 shl 9,
-    ImGuiTableFlags_BordersOuterV = 1 shl 10,
-    ImGuiTableFlags_BordersH = Ord(ImGuiTableFlags_BordersInnerH) or Ord(ImGuiTableFlags_BordersOuterH),
-    ImGuiTableFlags_BordersV = Ord(ImGuiTableFlags_BordersInnerV) or Ord(ImGuiTableFlags_BordersOuterV),
-    ImGuiTableFlags_BordersInner = Ord(ImGuiTableFlags_BordersInnerV) or Ord(ImGuiTableFlags_BordersInnerH),
-    ImGuiTableFlags_BordersOuter = Ord(ImGuiTableFlags_BordersOuterV) or Ord(ImGuiTableFlags_BordersOuterH),
-    ImGuiTableFlags_Borders = Ord(ImGuiTableFlags_BordersInner) or Ord(ImGuiTableFlags_BordersOuter),
-    ImGuiTableFlags_NoBordersInBody = 1 shl 11,
-    ImGuiTableFlags_NoBordersInBodyUntilResize = 1 shl 12,
-    ImGuiTableFlags_SizingFixedFit = 1 shl 13,
-    ImGuiTableFlags_SizingFixedSame = 2 shl 13,
-    ImGuiTableFlags_SizingStretchProp = 3 shl 13,
-    ImGuiTableFlags_SizingStretchSame = 4 shl 13,
-    ImGuiTableFlags_NoHostExtendX = 1 shl 16,
-    ImGuiTableFlags_NoHostExtendY = 1 shl 17,
-    ImGuiTableFlags_NoKeepColumnsVisible = 1 shl 18,
-    ImGuiTableFlags_PreciseWidths = 1 shl 19,
-    ImGuiTableFlags_NoClip = 1 shl 20,
-    ImGuiTableFlags_PadOuterX = 1 shl 21,
-    ImGuiTableFlags_NoPadOuterX = 1 shl 22,
-    ImGuiTableFlags_NoPadInnerX = 1 shl 23,
-    ImGuiTableFlags_ScrollX = 1 shl 24,
-    ImGuiTableFlags_ScrollY = 1 shl 25,
-    ImGuiTableFlags_SortMulti = 1 shl 26,
-    ImGuiTableFlags_SortTristate = 1 shl 27,
-    ImGuiTableFlags_HighlightHoveredColumn = 1 shl 28,
-    ImGuiTableFlags_SizingMask_ = Ord(ImGuiTableFlags_SizingFixedFit) or Ord(ImGuiTableFlags_SizingFixedSame) or Ord(ImGuiTableFlags_SizingStretchProp) or Ord(ImGuiTableFlags_SizingStretchSame)
-  );
-
-  ImGuiTableColumnFlags = (
-    ImGuiTableColumnFlags_None = 0,
-    ImGuiTableColumnFlags_Disabled = 1 shl 0,
-    ImGuiTableColumnFlags_DefaultHide = 1 shl 1,
-    ImGuiTableColumnFlags_DefaultSort = 1 shl 2,
-    ImGuiTableColumnFlags_WidthStretch = 1 shl 3,
-    ImGuiTableColumnFlags_WidthFixed = 1 shl 4,
-    ImGuiTableColumnFlags_NoResize = 1 shl 5,
-    ImGuiTableColumnFlags_NoReorder = 1 shl 6,
-    ImGuiTableColumnFlags_NoHide = 1 shl 7,
-    ImGuiTableColumnFlags_NoClip = 1 shl 8,
-    ImGuiTableColumnFlags_NoSort = 1 shl 9,
-    ImGuiTableColumnFlags_NoSortAscending = 1 shl 10,
-    ImGuiTableColumnFlags_NoSortDescending = 1 shl 11,
-    ImGuiTableColumnFlags_NoHeaderLabel = 1 shl 12,
-    ImGuiTableColumnFlags_NoHeaderWidth = 1 shl 13,
-    ImGuiTableColumnFlags_PreferSortAscending = 1 shl 14,
-    ImGuiTableColumnFlags_PreferSortDescending = 1 shl 15,
-    ImGuiTableColumnFlags_IndentEnable = 1 shl 16,
-    ImGuiTableColumnFlags_IndentDisable = 1 shl 17,
-    ImGuiTableColumnFlags_AngledHeader = 1 shl 18,
-    ImGuiTableColumnFlags_IsEnabled = 1 shl 24,
-    ImGuiTableColumnFlags_IsVisible = 1 shl 25,
-    ImGuiTableColumnFlags_IsSorted = 1 shl 26,
-    ImGuiTableColumnFlags_IsHovered = 1 shl 27,
-    ImGuiTableColumnFlags_WidthMask_ = Ord(ImGuiTableColumnFlags_WidthStretch) or Ord(ImGuiTableColumnFlags_WidthFixed),
-    ImGuiTableColumnFlags_IndentMask_ = Ord(ImGuiTableColumnFlags_IndentEnable) or Ord(ImGuiTableColumnFlags_IndentDisable),
-    ImGuiTableColumnFlags_StatusMask_ = Ord(ImGuiTableColumnFlags_IsEnabled) or Ord(ImGuiTableColumnFlags_IsVisible) or Ord(ImGuiTableColumnFlags_IsSorted) or Ord(ImGuiTableColumnFlags_IsHovered),
-    ImGuiTableColumnFlags_NoDirectResize_ = 1 shl 30
-  );
-
-  ImGuiTableBgTarget = (
-    ImGuiTableBgTarget_None = 0,
-    ImGuiTableBgTarget_RowBg0 = 1,
-    ImGuiTableBgTarget_RowBg1 = 2,
-    ImGuiTableBgTarget_CellBg = 3
-  );
-
-  ImGuiTabItemFlags = (
-    ImGuiTabItemFlags_None = 0,
-    ImGuiTabItemFlags_UnsavedDocument = 1 shl 0,
-    ImGuiTabItemFlags_SetSelected = 1 shl 1,
-    ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 shl 2,
-    ImGuiTabItemFlags_NoPushId = 1 shl 3,
-    ImGuiTabItemFlags_NoTooltip = 1 shl 4,
-    ImGuiTabItemFlags_NoReorder = 1 shl 5,
-    ImGuiTabItemFlags_Leading = 1 shl 6,
-    ImGuiTabItemFlags_Trailing = 1 shl 7
-  );
-
-  ImGuiTabItemFlagsPrivate = (
-    ImGuiTabItemFlags_SectionMask_ = Ord(ImGuiTabItemFlags_Leading) or Ord(ImGuiTabItemFlags_Trailing),
-    ImGuiTabItemFlags_NoCloseButton = 1 shl 20,
-    ImGuiTabItemFlags_Button = 1 shl 21,
-    ImGuiTabItemFlags_Unsorted = 1 shl 22
-  );
-
-  ImGuiTabBarFlags = (
-    ImGuiTabBarFlags_None = 0,
-    ImGuiTabBarFlags_Reorderable = 1 shl 0,
-    ImGuiTabBarFlags_AutoSelectNewTabs = 1 shl 1,
-    ImGuiTabBarFlags_TabListPopupButton = 1 shl 2,
-    ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 shl 3,
-    ImGuiTabBarFlags_NoTabListScrollingButtons = 1 shl 4,
-    ImGuiTabBarFlags_NoTooltip = 1 shl 5,
-    ImGuiTabBarFlags_FittingPolicyResizeDown = 1 shl 6,
-    ImGuiTabBarFlags_FittingPolicyScroll = 1 shl 7,
-    ImGuiTabBarFlags_FittingPolicyMask_ = Ord(ImGuiTabBarFlags_FittingPolicyResizeDown) or Ord(ImGuiTabBarFlags_FittingPolicyScroll),
-    ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown
-  );
-
-  ImGuiTabBarFlagsPrivate = (
-    ImGuiTabBarFlags_DockNode = 1 shl 20,
-    ImGuiTabBarFlags_IsFocused = 1 shl 21,
-    ImGuiTabBarFlags_SaveSettings = 1 shl 22
-  );
-
-  ImGuiStyleVar = (
-    ImGuiStyleVar_Alpha = 0,
-    ImGuiStyleVar_DisabledAlpha = 1,
-    ImGuiStyleVar_WindowPadding = 2,
-    ImGuiStyleVar_WindowRounding = 3,
-    ImGuiStyleVar_WindowBorderSize = 4,
-    ImGuiStyleVar_WindowMinSize = 5,
-    ImGuiStyleVar_WindowTitleAlign = 6,
-    ImGuiStyleVar_ChildRounding = 7,
-    ImGuiStyleVar_ChildBorderSize = 8,
-    ImGuiStyleVar_PopupRounding = 9,
-    ImGuiStyleVar_PopupBorderSize = 10,
-    ImGuiStyleVar_FramePadding = 11,
-    ImGuiStyleVar_FrameRounding = 12,
-    ImGuiStyleVar_FrameBorderSize = 13,
-    ImGuiStyleVar_ItemSpacing = 14,
-    ImGuiStyleVar_ItemInnerSpacing = 15,
-    ImGuiStyleVar_IndentSpacing = 16,
-    ImGuiStyleVar_CellPadding = 17,
-    ImGuiStyleVar_ScrollbarSize = 18,
-    ImGuiStyleVar_ScrollbarRounding = 19,
-    ImGuiStyleVar_GrabMinSize = 20,
-    ImGuiStyleVar_GrabRounding = 21,
-    ImGuiStyleVar_TabRounding = 22,
-    ImGuiStyleVar_TabBarBorderSize = 23,
-    ImGuiStyleVar_ButtonTextAlign = 24,
-    ImGuiStyleVar_SelectableTextAlign = 25,
-    ImGuiStyleVar_SeparatorTextBorderSize = 26,
-    ImGuiStyleVar_SeparatorTextAlign = 27,
-    ImGuiStyleVar_SeparatorTextPadding = 28,
-    ImGuiStyleVar_DockingSeparatorSize = 29,
-    ImGuiStyleVar_COUNT = 30
-  );
-
-  ImGuiSortDirection = (
-    ImGuiSortDirection_None = 0,
-    ImGuiSortDirection_Ascending = 1,
-    ImGuiSortDirection_Descending = 2
-  );
-
-  ImGuiSliderFlags = (
-    ImGuiSliderFlags_None = 0,
-    ImGuiSliderFlags_AlwaysClamp = 1 shl 4,
-    ImGuiSliderFlags_Logarithmic = 1 shl 5,
-    ImGuiSliderFlags_NoRoundToFormat = 1 shl 6,
-    ImGuiSliderFlags_NoInput = 1 shl 7,
-    ImGuiSliderFlags_InvalidMask_ = $7000000F
-  );
-
-  ImGuiSliderFlagsPrivate = (
-    ImGuiSliderFlags_Vertical = 1 shl 20,
-    ImGuiSliderFlags_ReadOnly = 1 shl 21
-  );
-
-  ImGuiSeparatorFlags = (
-    ImGuiSeparatorFlags_None = 0,
-    ImGuiSeparatorFlags_Horizontal = 1 shl 0,
-    ImGuiSeparatorFlags_Vertical = 1 shl 1,
-    ImGuiSeparatorFlags_SpanAllColumns = 1 shl 2
-  );
-
-  ImGuiSelectableFlags = (
-    ImGuiSelectableFlags_None = 0,
-    ImGuiSelectableFlags_DontClosePopups = 1 shl 0,
-    ImGuiSelectableFlags_SpanAllColumns = 1 shl 1,
-    ImGuiSelectableFlags_AllowDoubleClick = 1 shl 2,
-    ImGuiSelectableFlags_Disabled = 1 shl 3,
-    ImGuiSelectableFlags_AllowOverlap = 1 shl 4
-  );
-
-  ImGuiSelectableFlagsPrivate = (
-    ImGuiSelectableFlags_NoHoldingActiveID = 1 shl 20,
-    ImGuiSelectableFlags_SelectOnNav = 1 shl 21,
-    ImGuiSelectableFlags_SelectOnClick = 1 shl 22,
-    ImGuiSelectableFlags_SelectOnRelease = 1 shl 23,
-    ImGuiSelectableFlags_SpanAvailWidth = 1 shl 24,
-    ImGuiSelectableFlags_SetNavIdOnHover = 1 shl 25,
-    ImGuiSelectableFlags_NoPadWithHalfSpacing = 1 shl 26,
-    ImGuiSelectableFlags_NoSetKeyOwner = 1 shl 27
-  );
-
-  ImGuiScrollFlags = (
-    ImGuiScrollFlags_None = 0,
-    ImGuiScrollFlags_KeepVisibleEdgeX = 1 shl 0,
-    ImGuiScrollFlags_KeepVisibleEdgeY = 1 shl 1,
-    ImGuiScrollFlags_KeepVisibleCenterX = 1 shl 2,
-    ImGuiScrollFlags_KeepVisibleCenterY = 1 shl 3,
-    ImGuiScrollFlags_AlwaysCenterX = 1 shl 4,
-    ImGuiScrollFlags_AlwaysCenterY = 1 shl 5,
-    ImGuiScrollFlags_NoScrollParent = 1 shl 6,
-    ImGuiScrollFlags_MaskX_ = Ord(ImGuiScrollFlags_KeepVisibleEdgeX) or Ord(ImGuiScrollFlags_KeepVisibleCenterX) or Ord(ImGuiScrollFlags_AlwaysCenterX),
-    ImGuiScrollFlags_MaskY_ = Ord(ImGuiScrollFlags_KeepVisibleEdgeY) or Ord(ImGuiScrollFlags_KeepVisibleCenterY) or Ord(ImGuiScrollFlags_AlwaysCenterY)
-  );
-
-  ImGuiPopupPositionPolicy = (
-    ImGuiPopupPositionPolicy_Default = 0,
-    ImGuiPopupPositionPolicy_ComboBox = 1,
-    ImGuiPopupPositionPolicy_Tooltip = 2
-  );
-
-  ImGuiPopupFlags = (
-    ImGuiPopupFlags_None = 0,
-    ImGuiPopupFlags_MouseButtonLeft = 0,
-    ImGuiPopupFlags_MouseButtonRight = 1,
-    ImGuiPopupFlags_MouseButtonMiddle = 2,
-    ImGuiPopupFlags_MouseButtonMask_ = $1F,
-    ImGuiPopupFlags_MouseButtonDefault_ = 1,
-    ImGuiPopupFlags_NoOpenOverExistingPopup = 1 shl 5,
-    ImGuiPopupFlags_NoOpenOverItems = 1 shl 6,
-    ImGuiPopupFlags_AnyPopupId = 1 shl 7,
-    ImGuiPopupFlags_AnyPopupLevel = 1 shl 8,
-    ImGuiPopupFlags_AnyPopup = Ord(ImGuiPopupFlags_AnyPopupId) or Ord(ImGuiPopupFlags_AnyPopupLevel)
-  );
-
-  ImGuiPlotType = (
-    ImGuiPlotType_Lines = 0,
-    ImGuiPlotType_Histogram = 1
-  );
-
-  ImGuiOldColumnFlags = (
-    ImGuiOldColumnFlags_None = 0,
-    ImGuiOldColumnFlags_NoBorder = 1 shl 0,
-    ImGuiOldColumnFlags_NoResize = 1 shl 1,
-    ImGuiOldColumnFlags_NoPreserveWidths = 1 shl 2,
-    ImGuiOldColumnFlags_NoForceWithinWindow = 1 shl 3,
-    ImGuiOldColumnFlags_GrowParentContentsSize = 1 shl 4
-  );
-
-  ImGuiNextWindowDataFlags = (
-    ImGuiNextWindowDataFlags_None = 0,
-    ImGuiNextWindowDataFlags_HasPos = 1 shl 0,
-    ImGuiNextWindowDataFlags_HasSize = 1 shl 1,
-    ImGuiNextWindowDataFlags_HasContentSize = 1 shl 2,
-    ImGuiNextWindowDataFlags_HasCollapsed = 1 shl 3,
-    ImGuiNextWindowDataFlags_HasSizeConstraint = 1 shl 4,
-    ImGuiNextWindowDataFlags_HasFocus = 1 shl 5,
-    ImGuiNextWindowDataFlags_HasBgAlpha = 1 shl 6,
-    ImGuiNextWindowDataFlags_HasScroll = 1 shl 7,
-    ImGuiNextWindowDataFlags_HasChildFlags = 1 shl 8,
-    ImGuiNextWindowDataFlags_HasViewport = 1 shl 9,
-    ImGuiNextWindowDataFlags_HasDock = 1 shl 10,
-    ImGuiNextWindowDataFlags_HasWindowClass = 1 shl 11
-  );
-
-  ImGuiNextItemDataFlags = (
-    ImGuiNextItemDataFlags_None = 0,
-    ImGuiNextItemDataFlags_HasWidth = 1 shl 0,
-    ImGuiNextItemDataFlags_HasOpen = 1 shl 1
-  );
-
-  ImGuiNavMoveFlags = (
-    ImGuiNavMoveFlags_None = 0,
-    ImGuiNavMoveFlags_LoopX = 1 shl 0,
-    ImGuiNavMoveFlags_LoopY = 1 shl 1,
-    ImGuiNavMoveFlags_WrapX = 1 shl 2,
-    ImGuiNavMoveFlags_WrapY = 1 shl 3,
-    ImGuiNavMoveFlags_WrapMask_ = Ord(ImGuiNavMoveFlags_LoopX) or Ord(ImGuiNavMoveFlags_LoopY) or Ord(ImGuiNavMoveFlags_WrapX) or Ord(ImGuiNavMoveFlags_WrapY),
-    ImGuiNavMoveFlags_AllowCurrentNavId = 1 shl 4,
-    ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 shl 5,
-    ImGuiNavMoveFlags_ScrollToEdgeY = 1 shl 6,
-    ImGuiNavMoveFlags_Forwarded = 1 shl 7,
-    ImGuiNavMoveFlags_DebugNoResult = 1 shl 8,
-    ImGuiNavMoveFlags_FocusApi = 1 shl 9,
-    ImGuiNavMoveFlags_IsTabbing = 1 shl 10,
-    ImGuiNavMoveFlags_IsPageMove = 1 shl 11,
-    ImGuiNavMoveFlags_Activate = 1 shl 12,
-    ImGuiNavMoveFlags_NoSelect = 1 shl 13,
-    ImGuiNavMoveFlags_NoSetNavHighlight = 1 shl 14
-  );
-
-  ImGuiNavLayer = (
-    ImGuiNavLayer_Main = 0,
-    ImGuiNavLayer_Menu = 1,
-    ImGuiNavLayer_COUNT = 2
-  );
-
-  ImGuiNavHighlightFlags = (
-    ImGuiNavHighlightFlags_None = 0,
-    ImGuiNavHighlightFlags_TypeDefault = 1 shl 0,
-    ImGuiNavHighlightFlags_TypeThin = 1 shl 1,
-    ImGuiNavHighlightFlags_AlwaysDraw = 1 shl 2,
-    ImGuiNavHighlightFlags_NoRounding = 1 shl 3
-  );
-
-  ImGuiMouseSource = (
-    ImGuiMouseSource_Mouse = 0,
-    ImGuiMouseSource_TouchScreen = 1,
-    ImGuiMouseSource_Pen = 2,
-    ImGuiMouseSource_COUNT = 3
-  );
-
-  ImGuiMouseCursor = (
-    ImGuiMouseCursor_None = -1,
-    ImGuiMouseCursor_Arrow = 0,
-    ImGuiMouseCursor_TextInput = 1,
-    ImGuiMouseCursor_ResizeAll = 2,
-    ImGuiMouseCursor_ResizeNS = 3,
-    ImGuiMouseCursor_ResizeEW = 4,
-    ImGuiMouseCursor_ResizeNESW = 5,
-    ImGuiMouseCursor_ResizeNWSE = 6,
-    ImGuiMouseCursor_Hand = 7,
-    ImGuiMouseCursor_NotAllowed = 8,
-    ImGuiMouseCursor_COUNT = 9
-  );
-
-  ImGuiMouseButton = (
-    ImGuiMouseButton_Left = 0,
-    ImGuiMouseButton_Right = 1,
-    ImGuiMouseButton_Middle = 2,
-    ImGuiMouseButton_COUNT = 5
-  );
-
-  ImGuiLogType = (
-    ImGuiLogType_None = 0,
-    ImGuiLogType_TTY = 1,
-    ImGuiLogType_File = 2,
-    ImGuiLogType_Buffer = 3,
-    ImGuiLogType_Clipboard = 4
-  );
-
-  ImGuiLocKey = (
-    ImGuiLocKey_VersionStr = 0,
-    ImGuiLocKey_TableSizeOne = 1,
-    ImGuiLocKey_TableSizeAllFit = 2,
-    ImGuiLocKey_TableSizeAllDefault = 3,
-    ImGuiLocKey_TableResetOrder = 4,
-    ImGuiLocKey_WindowingMainMenuBar = 5,
-    ImGuiLocKey_WindowingPopup = 6,
-    ImGuiLocKey_WindowingUntitled = 7,
-    ImGuiLocKey_DockingHideTabBar = 8,
-    ImGuiLocKey_DockingHoldShiftToDock = 9,
-    ImGuiLocKey_DockingDragToUndockOrMoveNode = 10,
-    ImGuiLocKey_COUNT = 11
-  );
-
-  ImGuiLayoutType = (
-    ImGuiLayoutType_Horizontal = 0,
-    ImGuiLayoutType_Vertical = 1
-  );
-
-  ImGuiKey = (
-    ImGuiKey_None = 0,
-    ImGuiKey_Tab = 512,
-    ImGuiKey_LeftArrow = 513,
-    ImGuiKey_RightArrow = 514,
-    ImGuiKey_UpArrow = 515,
-    ImGuiKey_DownArrow = 516,
-    ImGuiKey_PageUp = 517,
-    ImGuiKey_PageDown = 518,
-    ImGuiKey_Home = 519,
-    ImGuiKey_End = 520,
-    ImGuiKey_Insert = 521,
-    ImGuiKey_Delete = 522,
-    ImGuiKey_Backspace = 523,
-    ImGuiKey_Space = 524,
-    ImGuiKey_Enter = 525,
-    ImGuiKey_Escape = 526,
-    ImGuiKey_LeftCtrl = 527,
-    ImGuiKey_LeftShift = 528,
-    ImGuiKey_LeftAlt = 529,
-    ImGuiKey_LeftSuper = 530,
-    ImGuiKey_RightCtrl = 531,
-    ImGuiKey_RightShift = 532,
-    ImGuiKey_RightAlt = 533,
-    ImGuiKey_RightSuper = 534,
-    ImGuiKey_Menu = 535,
-    ImGuiKey_0 = 536,
-    ImGuiKey_1 = 537,
-    ImGuiKey_2 = 538,
-    ImGuiKey_3 = 539,
-    ImGuiKey_4 = 540,
-    ImGuiKey_5 = 541,
-    ImGuiKey_6 = 542,
-    ImGuiKey_7 = 543,
-    ImGuiKey_8 = 544,
-    ImGuiKey_9 = 545,
-    ImGuiKey_A = 546,
-    ImGuiKey_B = 547,
-    ImGuiKey_C = 548,
-    ImGuiKey_D = 549,
-    ImGuiKey_E = 550,
-    ImGuiKey_F = 551,
-    ImGuiKey_G = 552,
-    ImGuiKey_H = 553,
-    ImGuiKey_I = 554,
-    ImGuiKey_J = 555,
-    ImGuiKey_K = 556,
-    ImGuiKey_L = 557,
-    ImGuiKey_M = 558,
-    ImGuiKey_N = 559,
-    ImGuiKey_O = 560,
-    ImGuiKey_P = 561,
-    ImGuiKey_Q = 562,
-    ImGuiKey_R = 563,
-    ImGuiKey_S = 564,
-    ImGuiKey_T = 565,
-    ImGuiKey_U = 566,
-    ImGuiKey_V = 567,
-    ImGuiKey_W = 568,
-    ImGuiKey_X = 569,
-    ImGuiKey_Y = 570,
-    ImGuiKey_Z = 571,
-    ImGuiKey_F1 = 572,
-    ImGuiKey_F2 = 573,
-    ImGuiKey_F3 = 574,
-    ImGuiKey_F4 = 575,
-    ImGuiKey_F5 = 576,
-    ImGuiKey_F6 = 577,
-    ImGuiKey_F7 = 578,
-    ImGuiKey_F8 = 579,
-    ImGuiKey_F9 = 580,
-    ImGuiKey_F10 = 581,
-    ImGuiKey_F11 = 582,
-    ImGuiKey_F12 = 583,
-    ImGuiKey_F13 = 584,
-    ImGuiKey_F14 = 585,
-    ImGuiKey_F15 = 586,
-    ImGuiKey_F16 = 587,
-    ImGuiKey_F17 = 588,
-    ImGuiKey_F18 = 589,
-    ImGuiKey_F19 = 590,
-    ImGuiKey_F20 = 591,
-    ImGuiKey_F21 = 592,
-    ImGuiKey_F22 = 593,
-    ImGuiKey_F23 = 594,
-    ImGuiKey_F24 = 595,
-    ImGuiKey_Apostrophe = 596,
-    ImGuiKey_Comma = 597,
-    ImGuiKey_Minus = 598,
-    ImGuiKey_Period = 599,
-    ImGuiKey_Slash = 600,
-    ImGuiKey_Semicolon = 601,
-    ImGuiKey_Equal = 602,
-    ImGuiKey_LeftBracket = 603,
-    ImGuiKey_Backslash = 604,
-    ImGuiKey_RightBracket = 605,
-    ImGuiKey_GraveAccent = 606,
-    ImGuiKey_CapsLock = 607,
-    ImGuiKey_ScrollLock = 608,
-    ImGuiKey_NumLock = 609,
-    ImGuiKey_PrintScreen = 610,
-    ImGuiKey_Pause = 611,
-    ImGuiKey_Keypad0 = 612,
-    ImGuiKey_Keypad1 = 613,
-    ImGuiKey_Keypad2 = 614,
-    ImGuiKey_Keypad3 = 615,
-    ImGuiKey_Keypad4 = 616,
-    ImGuiKey_Keypad5 = 617,
-    ImGuiKey_Keypad6 = 618,
-    ImGuiKey_Keypad7 = 619,
-    ImGuiKey_Keypad8 = 620,
-    ImGuiKey_Keypad9 = 621,
-    ImGuiKey_KeypadDecimal = 622,
-    ImGuiKey_KeypadDivide = 623,
-    ImGuiKey_KeypadMultiply = 624,
-    ImGuiKey_KeypadSubtract = 625,
-    ImGuiKey_KeypadAdd = 626,
-    ImGuiKey_KeypadEnter = 627,
-    ImGuiKey_KeypadEqual = 628,
-    ImGuiKey_AppBack = 629,
-    ImGuiKey_AppForward = 630,
-    ImGuiKey_GamepadStart = 631,
-    ImGuiKey_GamepadBack = 632,
-    ImGuiKey_GamepadFaceLeft = 633,
-    ImGuiKey_GamepadFaceRight = 634,
-    ImGuiKey_GamepadFaceUp = 635,
-    ImGuiKey_GamepadFaceDown = 636,
-    ImGuiKey_GamepadDpadLeft = 637,
-    ImGuiKey_GamepadDpadRight = 638,
-    ImGuiKey_GamepadDpadUp = 639,
-    ImGuiKey_GamepadDpadDown = 640,
-    ImGuiKey_GamepadL1 = 641,
-    ImGuiKey_GamepadR1 = 642,
-    ImGuiKey_GamepadL2 = 643,
-    ImGuiKey_GamepadR2 = 644,
-    ImGuiKey_GamepadL3 = 645,
-    ImGuiKey_GamepadR3 = 646,
-    ImGuiKey_GamepadLStickLeft = 647,
-    ImGuiKey_GamepadLStickRight = 648,
-    ImGuiKey_GamepadLStickUp = 649,
-    ImGuiKey_GamepadLStickDown = 650,
-    ImGuiKey_GamepadRStickLeft = 651,
-    ImGuiKey_GamepadRStickRight = 652,
-    ImGuiKey_GamepadRStickUp = 653,
-    ImGuiKey_GamepadRStickDown = 654,
-    ImGuiKey_MouseLeft = 655,
-    ImGuiKey_MouseRight = 656,
-    ImGuiKey_MouseMiddle = 657,
-    ImGuiKey_MouseX1 = 658,
-    ImGuiKey_MouseX2 = 659,
-    ImGuiKey_MouseWheelX = 660,
-    ImGuiKey_MouseWheelY = 661,
-    ImGuiKey_ReservedForModCtrl = 662,
-    ImGuiKey_ReservedForModShift = 663,
-    ImGuiKey_ReservedForModAlt = 664,
-    ImGuiKey_ReservedForModSuper = 665,
-    ImGuiKey_COUNT = 666,
-    ImGuiMod_None = 0,
-    ImGuiMod_Ctrl = 1 shl 12,
-    ImGuiMod_Shift = 1 shl 13,
-    ImGuiMod_Alt = 1 shl 14,
-    ImGuiMod_Super = 1 shl 15,
-    ImGuiMod_Shortcut = 1 shl 11,
-    ImGuiMod_Mask_ = $F800,
-    ImGuiKey_NamedKey_BEGIN = 512,
-    ImGuiKey_NamedKey_END = ImGuiKey_COUNT,
-    ImGuiKey_NamedKey_COUNT = ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN,
-    ImGuiKey_KeysData_SIZE = ImGuiKey_NamedKey_COUNT,
-    ImGuiKey_KeysData_OFFSET = ImGuiKey_NamedKey_BEGIN
-  );
-
-  ImGuiItemStatusFlags = (
-    ImGuiItemStatusFlags_None = 0,
-    ImGuiItemStatusFlags_HoveredRect = 1 shl 0,
-    ImGuiItemStatusFlags_HasDisplayRect = 1 shl 1,
-    ImGuiItemStatusFlags_Edited = 1 shl 2,
-    ImGuiItemStatusFlags_ToggledSelection = 1 shl 3,
-    ImGuiItemStatusFlags_ToggledOpen = 1 shl 4,
-    ImGuiItemStatusFlags_HasDeactivated = 1 shl 5,
-    ImGuiItemStatusFlags_Deactivated = 1 shl 6,
-    ImGuiItemStatusFlags_HoveredWindow = 1 shl 7,
-    ImGuiItemStatusFlags_FocusedByTabbing = 1 shl 8,
-    ImGuiItemStatusFlags_Visible = 1 shl 9
-  );
-
-  ImGuiItemFlags = (
-    ImGuiItemFlags_None = 0,
-    ImGuiItemFlags_NoTabStop = 1 shl 0,
-    ImGuiItemFlags_ButtonRepeat = 1 shl 1,
-    ImGuiItemFlags_Disabled = 1 shl 2,
-    ImGuiItemFlags_NoNav = 1 shl 3,
-    ImGuiItemFlags_NoNavDefaultFocus = 1 shl 4,
-    ImGuiItemFlags_SelectableDontClosePopup = 1 shl 5,
-    ImGuiItemFlags_MixedValue = 1 shl 6,
-    ImGuiItemFlags_ReadOnly = 1 shl 7,
-    ImGuiItemFlags_NoWindowHoverableCheck = 1 shl 8,
-    ImGuiItemFlags_AllowOverlap = 1 shl 9,
-    ImGuiItemFlags_Inputable = 1 shl 10,
-    ImGuiItemFlags_HasSelectionUserData = 1 shl 11
-  );
-
-  ImGuiInputTextFlags = (
-    ImGuiInputTextFlags_None = 0,
-    ImGuiInputTextFlags_CharsDecimal = 1 shl 0,
-    ImGuiInputTextFlags_CharsHexadecimal = 1 shl 1,
-    ImGuiInputTextFlags_CharsUppercase = 1 shl 2,
-    ImGuiInputTextFlags_CharsNoBlank = 1 shl 3,
-    ImGuiInputTextFlags_AutoSelectAll = 1 shl 4,
-    ImGuiInputTextFlags_EnterReturnsTrue = 1 shl 5,
-    ImGuiInputTextFlags_CallbackCompletion = 1 shl 6,
-    ImGuiInputTextFlags_CallbackHistory = 1 shl 7,
-    ImGuiInputTextFlags_CallbackAlways = 1 shl 8,
-    ImGuiInputTextFlags_CallbackCharFilter = 1 shl 9,
-    ImGuiInputTextFlags_AllowTabInput = 1 shl 10,
-    ImGuiInputTextFlags_CtrlEnterForNewLine = 1 shl 11,
-    ImGuiInputTextFlags_NoHorizontalScroll = 1 shl 12,
-    ImGuiInputTextFlags_AlwaysOverwrite = 1 shl 13,
-    ImGuiInputTextFlags_ReadOnly = 1 shl 14,
-    ImGuiInputTextFlags_Password = 1 shl 15,
-    ImGuiInputTextFlags_NoUndoRedo = 1 shl 16,
-    ImGuiInputTextFlags_CharsScientific = 1 shl 17,
-    ImGuiInputTextFlags_CallbackResize = 1 shl 18,
-    ImGuiInputTextFlags_CallbackEdit = 1 shl 19,
-    ImGuiInputTextFlags_EscapeClearsAll = 1 shl 20
-  );
-
-  ImGuiInputTextFlagsPrivate = (
-    ImGuiInputTextFlags_Multiline = 1 shl 26,
-    ImGuiInputTextFlags_NoMarkEdited = 1 shl 27,
-    ImGuiInputTextFlags_MergedItem = 1 shl 28
-  );
-
-  ImGuiInputSource = (
-    ImGuiInputSource_None = 0,
-    ImGuiInputSource_Mouse = 1,
-    ImGuiInputSource_Keyboard = 2,
-    ImGuiInputSource_Gamepad = 3,
-    ImGuiInputSource_Clipboard = 4,
-    ImGuiInputSource_COUNT = 5
-  );
-
-  ImGuiInputFlags = (
-    ImGuiInputFlags_None = 0,
-    ImGuiInputFlags_Repeat = 1 shl 0,
-    ImGuiInputFlags_RepeatRateDefault = 1 shl 1,
-    ImGuiInputFlags_RepeatRateNavMove = 1 shl 2,
-    ImGuiInputFlags_RepeatRateNavTweak = 1 shl 3,
-    ImGuiInputFlags_RepeatRateMask_ = Ord(ImGuiInputFlags_RepeatRateDefault) or Ord(ImGuiInputFlags_RepeatRateNavMove) or Ord(ImGuiInputFlags_RepeatRateNavTweak),
-    ImGuiInputFlags_CondHovered = 1 shl 4,
-    ImGuiInputFlags_CondActive = 1 shl 5,
-    ImGuiInputFlags_CondDefault_ = Ord(ImGuiInputFlags_CondHovered) or Ord(ImGuiInputFlags_CondActive),
-    ImGuiInputFlags_CondMask_ = Ord(ImGuiInputFlags_CondHovered) or Ord(ImGuiInputFlags_CondActive),
-    ImGuiInputFlags_LockThisFrame = 1 shl 6,
-    ImGuiInputFlags_LockUntilRelease = 1 shl 7,
-    ImGuiInputFlags_RouteFocused = 1 shl 8,
-    ImGuiInputFlags_RouteGlobalLow = 1 shl 9,
-    ImGuiInputFlags_RouteGlobal = 1 shl 10,
-    ImGuiInputFlags_RouteGlobalHigh = 1 shl 11,
-    ImGuiInputFlags_RouteMask_ = Ord(ImGuiInputFlags_RouteFocused) or Ord(ImGuiInputFlags_RouteGlobal) or Ord(ImGuiInputFlags_RouteGlobalLow) or Ord(ImGuiInputFlags_RouteGlobalHigh),
-    ImGuiInputFlags_RouteAlways = 1 shl 12,
-    ImGuiInputFlags_RouteUnlessBgFocused = 1 shl 13,
-    ImGuiInputFlags_RouteExtraMask_ = Ord(ImGuiInputFlags_RouteAlways) or Ord(ImGuiInputFlags_RouteUnlessBgFocused),
-    ImGuiInputFlags_SupportedByIsKeyPressed = Ord(ImGuiInputFlags_Repeat) or Ord(ImGuiInputFlags_RepeatRateMask_),
-    ImGuiInputFlags_SupportedByShortcut = Ord(ImGuiInputFlags_Repeat) or Ord(ImGuiInputFlags_RepeatRateMask_) or Ord(ImGuiInputFlags_RouteMask_) or Ord(ImGuiInputFlags_RouteExtraMask_),
-    ImGuiInputFlags_SupportedBySetKeyOwner = Ord(ImGuiInputFlags_LockThisFrame) or Ord(ImGuiInputFlags_LockUntilRelease),
-    ImGuiInputFlags_SupportedBySetItemKeyOwner = Ord(ImGuiInputFlags_SupportedBySetKeyOwner) or Ord(ImGuiInputFlags_CondMask_)
-  );
-
-  ImGuiInputEventType = (
-    ImGuiInputEventType_None = 0,
-    ImGuiInputEventType_MousePos = 1,
-    ImGuiInputEventType_MouseWheel = 2,
-    ImGuiInputEventType_MouseButton = 3,
-    ImGuiInputEventType_MouseViewport = 4,
-    ImGuiInputEventType_Key = 5,
-    ImGuiInputEventType_Text = 6,
-    ImGuiInputEventType_Focus = 7,
-    ImGuiInputEventType_COUNT = 8
-  );
-
-  ImGuiHoveredFlags = (
-    ImGuiHoveredFlags_None = 0,
-    ImGuiHoveredFlags_ChildWindows = 1 shl 0,
-    ImGuiHoveredFlags_RootWindow = 1 shl 1,
-    ImGuiHoveredFlags_AnyWindow = 1 shl 2,
-    ImGuiHoveredFlags_NoPopupHierarchy = 1 shl 3,
-    ImGuiHoveredFlags_DockHierarchy = 1 shl 4,
-    ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 shl 5,
-    ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 shl 7,
-    ImGuiHoveredFlags_AllowWhenOverlappedByItem = 1 shl 8,
-    ImGuiHoveredFlags_AllowWhenOverlappedByWindow = 1 shl 9,
-    ImGuiHoveredFlags_AllowWhenDisabled = 1 shl 10,
-    ImGuiHoveredFlags_NoNavOverride = 1 shl 11,
-    ImGuiHoveredFlags_AllowWhenOverlapped = Ord(ImGuiHoveredFlags_AllowWhenOverlappedByItem) or Ord(ImGuiHoveredFlags_AllowWhenOverlappedByWindow),
-    ImGuiHoveredFlags_RectOnly = Ord(ImGuiHoveredFlags_AllowWhenBlockedByPopup) or Ord(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) or Ord(ImGuiHoveredFlags_AllowWhenOverlapped),
-    ImGuiHoveredFlags_RootAndChildWindows = Ord(ImGuiHoveredFlags_RootWindow) or Ord(ImGuiHoveredFlags_ChildWindows),
-    ImGuiHoveredFlags_ForTooltip = 1 shl 12,
-    ImGuiHoveredFlags_Stationary = 1 shl 13,
-    ImGuiHoveredFlags_DelayNone = 1 shl 14,
-    ImGuiHoveredFlags_DelayShort = 1 shl 15,
-    ImGuiHoveredFlags_DelayNormal = 1 shl 16,
-    ImGuiHoveredFlags_NoSharedDelay = 1 shl 17
-  );
-
-  ImGuiHoveredFlagsPrivate = (
-    ImGuiHoveredFlags_DelayMask_ = Ord(ImGuiHoveredFlags_DelayNone) or Ord(ImGuiHoveredFlags_DelayShort) or Ord(ImGuiHoveredFlags_DelayNormal) or Ord(ImGuiHoveredFlags_NoSharedDelay),
-    ImGuiHoveredFlags_AllowedMaskForIsWindowHovered = Ord(ImGuiHoveredFlags_ChildWindows) or Ord(ImGuiHoveredFlags_RootWindow) or Ord(ImGuiHoveredFlags_AnyWindow) or Ord(ImGuiHoveredFlags_NoPopupHierarchy) or Ord(ImGuiHoveredFlags_DockHierarchy) or Ord(ImGuiHoveredFlags_AllowWhenBlockedByPopup) or Ord(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) or Ord(ImGuiHoveredFlags_ForTooltip) or Ord(ImGuiHoveredFlags_Stationary),
-    ImGuiHoveredFlags_AllowedMaskForIsItemHovered = Ord(ImGuiHoveredFlags_AllowWhenBlockedByPopup) or Ord(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) or Ord(ImGuiHoveredFlags_AllowWhenOverlapped) or Ord(ImGuiHoveredFlags_AllowWhenDisabled) or Ord(ImGuiHoveredFlags_NoNavOverride) or Ord(ImGuiHoveredFlags_ForTooltip) or Ord(ImGuiHoveredFlags_Stationary) or Ord(ImGuiHoveredFlags_DelayMask_)
-  );
-
-  ImGuiFocusedFlags = (
-    ImGuiFocusedFlags_None = 0,
-    ImGuiFocusedFlags_ChildWindows = 1 shl 0,
-    ImGuiFocusedFlags_RootWindow = 1 shl 1,
-    ImGuiFocusedFlags_AnyWindow = 1 shl 2,
-    ImGuiFocusedFlags_NoPopupHierarchy = 1 shl 3,
-    ImGuiFocusedFlags_DockHierarchy = 1 shl 4,
-    ImGuiFocusedFlags_RootAndChildWindows = Ord(ImGuiFocusedFlags_RootWindow) or Ord(ImGuiFocusedFlags_ChildWindows)
-  );
-
-  ImGuiFocusRequestFlags = (
-    ImGuiFocusRequestFlags_None = 0,
-    ImGuiFocusRequestFlags_RestoreFocusedChild = 1 shl 0,
-    ImGuiFocusRequestFlags_UnlessBelowModal = 1 shl 1
-  );
-
-  ImGuiDragDropFlags = (
-    ImGuiDragDropFlags_None = 0,
-    ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 shl 0,
-    ImGuiDragDropFlags_SourceNoDisableHover = 1 shl 1,
-    ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 shl 2,
-    ImGuiDragDropFlags_SourceAllowNullID = 1 shl 3,
-    ImGuiDragDropFlags_SourceExtern = 1 shl 4,
-    ImGuiDragDropFlags_SourceAutoExpirePayload = 1 shl 5,
-    ImGuiDragDropFlags_AcceptBeforeDelivery = 1 shl 10,
-    ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 shl 11,
-    ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 shl 12,
-    ImGuiDragDropFlags_AcceptPeekOnly = Ord(ImGuiDragDropFlags_AcceptBeforeDelivery) or Ord(ImGuiDragDropFlags_AcceptNoDrawDefaultRect)
-  );
-
-  ImGuiDockNodeState = (
-    ImGuiDockNodeState_Unknown = 0,
-    ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow = 1,
-    ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing = 2,
-    ImGuiDockNodeState_HostWindowVisible = 3
-  );
-
-  ImGuiDockNodeFlags = (
-    ImGuiDockNodeFlags_None = 0,
-    ImGuiDockNodeFlags_KeepAliveOnly = 1 shl 0,
-    ImGuiDockNodeFlags_NoDockingOverCentralNode = 1 shl 2,
-    ImGuiDockNodeFlags_PassthruCentralNode = 1 shl 3,
-    ImGuiDockNodeFlags_NoDockingSplit = 1 shl 4,
-    ImGuiDockNodeFlags_NoResize = 1 shl 5,
-    ImGuiDockNodeFlags_AutoHideTabBar = 1 shl 6,
-    ImGuiDockNodeFlags_NoUndocking = 1 shl 7
-  );
-
-  ImGuiDockNodeFlagsPrivate = (
-    ImGuiDockNodeFlags_DockSpace = 1 shl 10,
-    ImGuiDockNodeFlags_CentralNode = 1 shl 11,
-    ImGuiDockNodeFlags_NoTabBar = 1 shl 12,
-    ImGuiDockNodeFlags_HiddenTabBar = 1 shl 13,
-    ImGuiDockNodeFlags_NoWindowMenuButton = 1 shl 14,
-    ImGuiDockNodeFlags_NoCloseButton = 1 shl 15,
-    ImGuiDockNodeFlags_NoResizeX = 1 shl 16,
-    ImGuiDockNodeFlags_NoResizeY = 1 shl 17,
-    ImGuiDockNodeFlags_NoDockingSplitOther = 1 shl 19,
-    ImGuiDockNodeFlags_NoDockingOverMe = 1 shl 20,
-    ImGuiDockNodeFlags_NoDockingOverOther = 1 shl 21,
-    ImGuiDockNodeFlags_NoDockingOverEmpty = 1 shl 22,
-    ImGuiDockNodeFlags_NoDocking = Ord(ImGuiDockNodeFlags_NoDockingOverMe) or Ord(ImGuiDockNodeFlags_NoDockingOverOther) or Ord(ImGuiDockNodeFlags_NoDockingOverEmpty) or Ord(ImGuiDockNodeFlags_NoDockingSplit) or Ord(ImGuiDockNodeFlags_NoDockingSplitOther),
-    ImGuiDockNodeFlags_SharedFlagsInheritMask_ = not 0,
-    ImGuiDockNodeFlags_NoResizeFlagsMask_ = Ord(ImGuiDockNodeFlags_NoResize) or Ord(ImGuiDockNodeFlags_NoResizeX) or Ord(ImGuiDockNodeFlags_NoResizeY),
-    ImGuiDockNodeFlags_LocalFlagsTransferMask_ = Ord(ImGuiDockNodeFlags_NoDockingSplit) or Ord(ImGuiDockNodeFlags_NoResizeFlagsMask_) or Ord(ImGuiDockNodeFlags_AutoHideTabBar) or Ord(ImGuiDockNodeFlags_CentralNode) or Ord(ImGuiDockNodeFlags_NoTabBar) or Ord(ImGuiDockNodeFlags_HiddenTabBar) or Ord(ImGuiDockNodeFlags_NoWindowMenuButton) or Ord(ImGuiDockNodeFlags_NoCloseButton),
-    ImGuiDockNodeFlags_SavedFlagsMask_ = Ord(ImGuiDockNodeFlags_NoResizeFlagsMask_) or Ord(ImGuiDockNodeFlags_DockSpace) or Ord(ImGuiDockNodeFlags_CentralNode) or Ord(ImGuiDockNodeFlags_NoTabBar) or Ord(ImGuiDockNodeFlags_HiddenTabBar) or Ord(ImGuiDockNodeFlags_NoWindowMenuButton) or Ord(ImGuiDockNodeFlags_NoCloseButton)
-  );
-
-  ImGuiDir = (
-    ImGuiDir_None = -1,
-    ImGuiDir_Left = 0,
-    ImGuiDir_Right = 1,
-    ImGuiDir_Up = 2,
-    ImGuiDir_Down = 3,
-    ImGuiDir_COUNT = 4
-  );
-
-  ImGuiDebugLogFlags = (
-    ImGuiDebugLogFlags_None = 0,
-    ImGuiDebugLogFlags_EventActiveId = 1 shl 0,
-    ImGuiDebugLogFlags_EventFocus = 1 shl 1,
-    ImGuiDebugLogFlags_EventPopup = 1 shl 2,
-    ImGuiDebugLogFlags_EventNav = 1 shl 3,
-    ImGuiDebugLogFlags_EventClipper = 1 shl 4,
-    ImGuiDebugLogFlags_EventSelection = 1 shl 5,
-    ImGuiDebugLogFlags_EventIO = 1 shl 6,
-    ImGuiDebugLogFlags_EventDocking = 1 shl 7,
-    ImGuiDebugLogFlags_EventViewport = 1 shl 8,
-    ImGuiDebugLogFlags_EventMask_ = Ord(ImGuiDebugLogFlags_EventActiveId) or Ord(ImGuiDebugLogFlags_EventFocus) or Ord(ImGuiDebugLogFlags_EventPopup) or Ord(ImGuiDebugLogFlags_EventNav) or Ord(ImGuiDebugLogFlags_EventClipper) or Ord(ImGuiDebugLogFlags_EventSelection) or Ord(ImGuiDebugLogFlags_EventIO) or Ord(ImGuiDebugLogFlags_EventDocking) or Ord(ImGuiDebugLogFlags_EventViewport),
-    ImGuiDebugLogFlags_OutputToTTY = 1 shl 10,
-    ImGuiDebugLogFlags_OutputToTestEngine = 1 shl 11
-  );
-
-  ImGuiDataType = (
-    ImGuiDataType_S8 = 0,
-    ImGuiDataType_U8 = 1,
-    ImGuiDataType_S16 = 2,
-    ImGuiDataType_U16 = 3,
-    ImGuiDataType_S32 = 4,
-    ImGuiDataType_U32 = 5,
-    ImGuiDataType_S64 = 6,
-    ImGuiDataType_U64 = 7,
-    ImGuiDataType_Float = 8,
-    ImGuiDataType_Double = 9,
-    ImGuiDataType_COUNT = 10
-  );
-
-  ImGuiDataTypePrivate = (
-    ImGuiDataType_String = Ord(ImGuiDataType_COUNT) + (1),
-    ImGuiDataType_Pointer = Ord(ImGuiDataType_COUNT) + (1) + (1),
-    ImGuiDataType_ID = Ord(ImGuiDataType_COUNT) + (1) + (1) + (1)
-  );
-
-  ImGuiDataAuthority = (
-    ImGuiDataAuthority_Auto = 0,
-    ImGuiDataAuthority_DockNode = 1,
-    ImGuiDataAuthority_Window = 2
-  );
-
-  ImGuiContextHookType = (
-    ImGuiContextHookType_NewFramePre = 0,
-    ImGuiContextHookType_NewFramePost = 1,
-    ImGuiContextHookType_EndFramePre = 2,
-    ImGuiContextHookType_EndFramePost = 3,
-    ImGuiContextHookType_RenderPre = 4,
-    ImGuiContextHookType_RenderPost = 5,
-    ImGuiContextHookType_Shutdown = 6,
-    ImGuiContextHookType_PendingRemoval_ = 7
-  );
-
-  ImGuiConfigFlags = (
-    ImGuiConfigFlags_None = 0,
-    ImGuiConfigFlags_NavEnableKeyboard = 1 shl 0,
-    ImGuiConfigFlags_NavEnableGamepad = 1 shl 1,
-    ImGuiConfigFlags_NavEnableSetMousePos = 1 shl 2,
-    ImGuiConfigFlags_NavNoCaptureKeyboard = 1 shl 3,
-    ImGuiConfigFlags_NoMouse = 1 shl 4,
-    ImGuiConfigFlags_NoMouseCursorChange = 1 shl 5,
-    ImGuiConfigFlags_DockingEnable = 1 shl 6,
-    ImGuiConfigFlags_ViewportsEnable = 1 shl 10,
-    ImGuiConfigFlags_DpiEnableScaleViewports = 1 shl 14,
-    ImGuiConfigFlags_DpiEnableScaleFonts = 1 shl 15,
-    ImGuiConfigFlags_IsSRGB = 1 shl 20,
-    ImGuiConfigFlags_IsTouchScreen = 1 shl 21
-  );
-
-  ImGuiCond = (
-    ImGuiCond_None = 0,
-    ImGuiCond_Always = 1 shl 0,
-    ImGuiCond_Once = 1 shl 1,
-    ImGuiCond_FirstUseEver = 1 shl 2,
-    ImGuiCond_Appearing = 1 shl 3
-  );
-
-  ImGuiComboFlags = (
-    ImGuiComboFlags_None = 0,
-    ImGuiComboFlags_PopupAlignLeft = 1 shl 0,
-    ImGuiComboFlags_HeightSmall = 1 shl 1,
-    ImGuiComboFlags_HeightRegular = 1 shl 2,
-    ImGuiComboFlags_HeightLarge = 1 shl 3,
-    ImGuiComboFlags_HeightLargest = 1 shl 4,
-    ImGuiComboFlags_NoArrowButton = 1 shl 5,
-    ImGuiComboFlags_NoPreview = 1 shl 6,
-    ImGuiComboFlags_WidthFitPreview = 1 shl 7,
-    ImGuiComboFlags_HeightMask_ = Ord(ImGuiComboFlags_HeightSmall) or Ord(ImGuiComboFlags_HeightRegular) or Ord(ImGuiComboFlags_HeightLarge) or Ord(ImGuiComboFlags_HeightLargest)
-  );
-
-  ImGuiComboFlagsPrivate = (
-    ImGuiComboFlags_CustomPreview = 1 shl 20
-  );
-
-  ImGuiColorEditFlags = (
-    ImGuiColorEditFlags_None = 0,
-    ImGuiColorEditFlags_NoAlpha = 1 shl 1,
-    ImGuiColorEditFlags_NoPicker = 1 shl 2,
-    ImGuiColorEditFlags_NoOptions = 1 shl 3,
-    ImGuiColorEditFlags_NoSmallPreview = 1 shl 4,
-    ImGuiColorEditFlags_NoInputs = 1 shl 5,
-    ImGuiColorEditFlags_NoTooltip = 1 shl 6,
-    ImGuiColorEditFlags_NoLabel = 1 shl 7,
-    ImGuiColorEditFlags_NoSidePreview = 1 shl 8,
-    ImGuiColorEditFlags_NoDragDrop = 1 shl 9,
-    ImGuiColorEditFlags_NoBorder = 1 shl 10,
-    ImGuiColorEditFlags_AlphaBar = 1 shl 16,
-    ImGuiColorEditFlags_AlphaPreview = 1 shl 17,
-    ImGuiColorEditFlags_AlphaPreviewHalf = 1 shl 18,
-    ImGuiColorEditFlags_HDR = 1 shl 19,
-    ImGuiColorEditFlags_DisplayRGB = 1 shl 20,
-    ImGuiColorEditFlags_DisplayHSV = 1 shl 21,
-    ImGuiColorEditFlags_DisplayHex = 1 shl 22,
-    ImGuiColorEditFlags_Uint8 = 1 shl 23,
-    ImGuiColorEditFlags_Float = 1 shl 24,
-    ImGuiColorEditFlags_PickerHueBar = 1 shl 25,
-    ImGuiColorEditFlags_PickerHueWheel = 1 shl 26,
-    ImGuiColorEditFlags_InputRGB = 1 shl 27,
-    ImGuiColorEditFlags_InputHSV = 1 shl 28,
-    ImGuiColorEditFlags_DefaultOptions_ = Ord(ImGuiColorEditFlags_Uint8) or Ord(ImGuiColorEditFlags_DisplayRGB) or Ord(ImGuiColorEditFlags_InputRGB) or Ord(ImGuiColorEditFlags_PickerHueBar),
-    ImGuiColorEditFlags_DisplayMask_ = Ord(ImGuiColorEditFlags_DisplayRGB) or Ord(ImGuiColorEditFlags_DisplayHSV) or Ord(ImGuiColorEditFlags_DisplayHex),
-    ImGuiColorEditFlags_DataTypeMask_ = Ord(ImGuiColorEditFlags_Uint8) or Ord(ImGuiColorEditFlags_Float),
-    ImGuiColorEditFlags_PickerMask_ = Ord(ImGuiColorEditFlags_PickerHueWheel) or Ord(ImGuiColorEditFlags_PickerHueBar),
-    ImGuiColorEditFlags_InputMask_ = Ord(ImGuiColorEditFlags_InputRGB) or Ord(ImGuiColorEditFlags_InputHSV)
-  );
-
-  ImGuiCol = (
-    ImGuiCol_Text = 0,
-    ImGuiCol_TextDisabled = 1,
-    ImGuiCol_WindowBg = 2,
-    ImGuiCol_ChildBg = 3,
-    ImGuiCol_PopupBg = 4,
-    ImGuiCol_Border = 5,
-    ImGuiCol_BorderShadow = 6,
-    ImGuiCol_FrameBg = 7,
-    ImGuiCol_FrameBgHovered = 8,
-    ImGuiCol_FrameBgActive = 9,
-    ImGuiCol_TitleBg = 10,
-    ImGuiCol_TitleBgActive = 11,
-    ImGuiCol_TitleBgCollapsed = 12,
-    ImGuiCol_MenuBarBg = 13,
-    ImGuiCol_ScrollbarBg = 14,
-    ImGuiCol_ScrollbarGrab = 15,
-    ImGuiCol_ScrollbarGrabHovered = 16,
-    ImGuiCol_ScrollbarGrabActive = 17,
-    ImGuiCol_CheckMark = 18,
-    ImGuiCol_SliderGrab = 19,
-    ImGuiCol_SliderGrabActive = 20,
-    ImGuiCol_Button = 21,
-    ImGuiCol_ButtonHovered = 22,
-    ImGuiCol_ButtonActive = 23,
-    ImGuiCol_Header = 24,
-    ImGuiCol_HeaderHovered = 25,
-    ImGuiCol_HeaderActive = 26,
-    ImGuiCol_Separator = 27,
-    ImGuiCol_SeparatorHovered = 28,
-    ImGuiCol_SeparatorActive = 29,
-    ImGuiCol_ResizeGrip = 30,
-    ImGuiCol_ResizeGripHovered = 31,
-    ImGuiCol_ResizeGripActive = 32,
-    ImGuiCol_Tab = 33,
-    ImGuiCol_TabHovered = 34,
-    ImGuiCol_TabActive = 35,
-    ImGuiCol_TabUnfocused = 36,
-    ImGuiCol_TabUnfocusedActive = 37,
-    ImGuiCol_DockingPreview = 38,
-    ImGuiCol_DockingEmptyBg = 39,
-    ImGuiCol_PlotLines = 40,
-    ImGuiCol_PlotLinesHovered = 41,
-    ImGuiCol_PlotHistogram = 42,
-    ImGuiCol_PlotHistogramHovered = 43,
-    ImGuiCol_TableHeaderBg = 44,
-    ImGuiCol_TableBorderStrong = 45,
-    ImGuiCol_TableBorderLight = 46,
-    ImGuiCol_TableRowBg = 47,
-    ImGuiCol_TableRowBgAlt = 48,
-    ImGuiCol_TextSelectedBg = 49,
-    ImGuiCol_DragDropTarget = 50,
-    ImGuiCol_NavHighlight = 51,
-    ImGuiCol_NavWindowingHighlight = 52,
-    ImGuiCol_NavWindowingDimBg = 53,
-    ImGuiCol_ModalWindowDimBg = 54,
-    ImGuiCol_COUNT = 55
-  );
-
-  ImGuiChildFlags = (
-    ImGuiChildFlags_None = 0,
-    ImGuiChildFlags_Border = 1 shl 0,
-    ImGuiChildFlags_AlwaysUseWindowPadding = 1 shl 1,
-    ImGuiChildFlags_ResizeX = 1 shl 2,
-    ImGuiChildFlags_ResizeY = 1 shl 3,
-    ImGuiChildFlags_AutoResizeX = 1 shl 4,
-    ImGuiChildFlags_AutoResizeY = 1 shl 5,
-    ImGuiChildFlags_AlwaysAutoResize = 1 shl 6,
-    ImGuiChildFlags_FrameStyle = 1 shl 7
-  );
-
-  ImGuiButtonFlags = (
-    ImGuiButtonFlags_None = 0,
-    ImGuiButtonFlags_MouseButtonLeft = 1 shl 0,
-    ImGuiButtonFlags_MouseButtonRight = 1 shl 1,
-    ImGuiButtonFlags_MouseButtonMiddle = 1 shl 2,
-    ImGuiButtonFlags_MouseButtonMask_ = Ord(ImGuiButtonFlags_MouseButtonLeft) or Ord(ImGuiButtonFlags_MouseButtonRight) or Ord(ImGuiButtonFlags_MouseButtonMiddle),
-    ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft
-  );
-
-  ImGuiButtonFlagsPrivate = (
-    ImGuiButtonFlags_PressedOnClick = 1 shl 4,
-    ImGuiButtonFlags_PressedOnClickRelease = 1 shl 5,
-    ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 shl 6,
-    ImGuiButtonFlags_PressedOnRelease = 1 shl 7,
-    ImGuiButtonFlags_PressedOnDoubleClick = 1 shl 8,
-    ImGuiButtonFlags_PressedOnDragDropHold = 1 shl 9,
-    ImGuiButtonFlags_Repeat = 1 shl 10,
-    ImGuiButtonFlags_FlattenChildren = 1 shl 11,
-    ImGuiButtonFlags_AllowOverlap = 1 shl 12,
-    ImGuiButtonFlags_DontClosePopups = 1 shl 13,
-    ImGuiButtonFlags_AlignTextBaseLine = 1 shl 15,
-    ImGuiButtonFlags_NoKeyModifiers = 1 shl 16,
-    ImGuiButtonFlags_NoHoldingActiveId = 1 shl 17,
-    ImGuiButtonFlags_NoNavFocus = 1 shl 18,
-    ImGuiButtonFlags_NoHoveredOnFocus = 1 shl 19,
-    ImGuiButtonFlags_NoSetKeyOwner = 1 shl 20,
-    ImGuiButtonFlags_NoTestKeyOwner = 1 shl 21,
-    ImGuiButtonFlags_PressedOnMask_ = Ord(ImGuiButtonFlags_PressedOnClick) or Ord(ImGuiButtonFlags_PressedOnClickRelease) or Ord(ImGuiButtonFlags_PressedOnClickReleaseAnywhere) or Ord(ImGuiButtonFlags_PressedOnRelease) or Ord(ImGuiButtonFlags_PressedOnDoubleClick) or Ord(ImGuiButtonFlags_PressedOnDragDropHold),
-    ImGuiButtonFlags_PressedOnDefault_ = ImGuiButtonFlags_PressedOnClickRelease
-  );
-
-  ImGuiBackendFlags = (
-    ImGuiBackendFlags_None = 0,
-    ImGuiBackendFlags_HasGamepad = 1 shl 0,
-    ImGuiBackendFlags_HasMouseCursors = 1 shl 1,
-    ImGuiBackendFlags_HasSetMousePos = 1 shl 2,
-    ImGuiBackendFlags_RendererHasVtxOffset = 1 shl 3,
-    ImGuiBackendFlags_PlatformHasViewports = 1 shl 10,
-    ImGuiBackendFlags_HasMouseHoveredViewport = 1 shl 11,
-    ImGuiBackendFlags_RendererHasViewports = 1 shl 12
-  );
-
-  ImGuiAxis = (
-    ImGuiAxis_None = -1,
-    ImGuiAxis_X = 0,
-    ImGuiAxis_Y = 1
-  );
-
-  ImGuiActivateFlags = (
-    ImGuiActivateFlags_None = 0,
-    ImGuiActivateFlags_PreferInput = 1 shl 0,
-    ImGuiActivateFlags_PreferTweak = 1 shl 1,
-    ImGuiActivateFlags_TryToPreserveState = 1 shl 2
-  );
-
-  ImFontAtlasFlags = (
-    ImFontAtlasFlags_None = 0,
-    ImFontAtlasFlags_NoPowerOfTwoHeight = 1 shl 0,
-    ImFontAtlasFlags_NoMouseCursors = 1 shl 1,
-    ImFontAtlasFlags_NoBakedLines = 1 shl 2
-  );
-
-  ImDrawListFlags = (
-    ImDrawListFlags_None = 0,
-    ImDrawListFlags_AntiAliasedLines = 1 shl 0,
-    ImDrawListFlags_AntiAliasedLinesUseTex = 1 shl 1,
-    ImDrawListFlags_AntiAliasedFill = 1 shl 2,
-    ImDrawListFlags_AllowVtxOffset = 1 shl 3
-  );
-
-  ImDrawFlags = (
-    ImDrawFlags_None = 0,
-    ImDrawFlags_Closed = 1 shl 0,
-    ImDrawFlags_RoundCornersTopLeft = 1 shl 4,
-    ImDrawFlags_RoundCornersTopRight = 1 shl 5,
-    ImDrawFlags_RoundCornersBottomLeft = 1 shl 6,
-    ImDrawFlags_RoundCornersBottomRight = 1 shl 7,
-    ImDrawFlags_RoundCornersNone = 1 shl 8,
-    ImDrawFlags_RoundCornersTop = Ord(ImDrawFlags_RoundCornersTopLeft) or Ord(ImDrawFlags_RoundCornersTopRight),
-    ImDrawFlags_RoundCornersBottom = Ord(ImDrawFlags_RoundCornersBottomLeft) or Ord(ImDrawFlags_RoundCornersBottomRight),
-    ImDrawFlags_RoundCornersLeft = Ord(ImDrawFlags_RoundCornersBottomLeft) or Ord(ImDrawFlags_RoundCornersTopLeft),
-    ImDrawFlags_RoundCornersRight = Ord(ImDrawFlags_RoundCornersBottomRight) or Ord(ImDrawFlags_RoundCornersTopRight),
-    ImDrawFlags_RoundCornersAll = Ord(ImDrawFlags_RoundCornersTopLeft) or Ord(ImDrawFlags_RoundCornersTopRight) or Ord(ImDrawFlags_RoundCornersBottomLeft) or Ord(ImDrawFlags_RoundCornersBottomRight),
-    ImDrawFlags_RoundCornersDefault_ = ImDrawFlags_RoundCornersAll,
-    ImDrawFlags_RoundCornersMask_ = Ord(ImDrawFlags_RoundCornersAll) or Ord(ImDrawFlags_RoundCornersNone)
-  );
-
-
-  // ImDrawFlags
-  operator and (const a,b:ImDrawFlags):ImDrawFlags;
-  operator or (const a,b:ImDrawFlags):ImDrawFlags;
-  operator not(const a: ImDrawFlags): ImDrawFlags;
-
-  // ImDrawListFlags
-  operator and (const a,b:ImDrawListFlags):ImDrawListFlags;
-  operator or (const a,b:ImDrawListFlags):ImDrawListFlags;
-  operator not(const a: ImDrawListFlags): ImDrawListFlags;
-
-  // ImFontAtlasFlags
-  operator and (const a,b:ImFontAtlasFlags):ImFontAtlasFlags;
-  operator or (const a,b:ImFontAtlasFlags):ImFontAtlasFlags;
-  operator not(const a: ImFontAtlasFlags): ImFontAtlasFlags;
-
-  // ImGuiActivateFlags
-  operator and (const a,b:ImGuiActivateFlags):ImGuiActivateFlags;
-  operator or (const a,b:ImGuiActivateFlags):ImGuiActivateFlags;
-  operator not(const a: ImGuiActivateFlags): ImGuiActivateFlags;
-
-  // ImGuiAxis
-  operator and (const a,b:ImGuiAxis):ImGuiAxis;
-  operator or (const a,b:ImGuiAxis):ImGuiAxis;
-  operator not(const a: ImGuiAxis): ImGuiAxis;
-
-  // ImGuiBackendFlags
-  operator and (const a,b:ImGuiBackendFlags):ImGuiBackendFlags;
-  operator or (const a,b:ImGuiBackendFlags):ImGuiBackendFlags;
-  operator not(const a: ImGuiBackendFlags): ImGuiBackendFlags;
-
-  // ImGuiButtonFlagsPrivate
-  operator and (const a,b:ImGuiButtonFlagsPrivate):ImGuiButtonFlagsPrivate;
-  operator or (const a,b:ImGuiButtonFlagsPrivate):ImGuiButtonFlagsPrivate;
-  operator not(const a: ImGuiButtonFlagsPrivate): ImGuiButtonFlagsPrivate;
-
-  // ImGuiButtonFlags
-  operator and (const a,b:ImGuiButtonFlags):ImGuiButtonFlags;
-  operator or (const a,b:ImGuiButtonFlags):ImGuiButtonFlags;
-  operator not(const a: ImGuiButtonFlags): ImGuiButtonFlags;
-
-  // ImGuiChildFlags
-  operator and (const a,b:ImGuiChildFlags):ImGuiChildFlags;
-  operator or (const a,b:ImGuiChildFlags):ImGuiChildFlags;
-  operator not(const a: ImGuiChildFlags): ImGuiChildFlags;
-
-  // ImGuiCol
-  operator and (const a,b:ImGuiCol):ImGuiCol;
-  operator or (const a,b:ImGuiCol):ImGuiCol;
-  operator not(const a: ImGuiCol): ImGuiCol;
-
-  // ImGuiColorEditFlags
-  operator and (const a,b:ImGuiColorEditFlags):ImGuiColorEditFlags;
-  operator or (const a,b:ImGuiColorEditFlags):ImGuiColorEditFlags;
-  operator not(const a: ImGuiColorEditFlags): ImGuiColorEditFlags;
-
-  // ImGuiComboFlagsPrivate
-  operator and (const a,b:ImGuiComboFlagsPrivate):ImGuiComboFlagsPrivate;
-  operator or (const a,b:ImGuiComboFlagsPrivate):ImGuiComboFlagsPrivate;
-  operator not(const a: ImGuiComboFlagsPrivate): ImGuiComboFlagsPrivate;
-
-  // ImGuiComboFlags
-  operator and (const a,b:ImGuiComboFlags):ImGuiComboFlags;
-  operator or (const a,b:ImGuiComboFlags):ImGuiComboFlags;
-  operator not(const a: ImGuiComboFlags): ImGuiComboFlags;
-
-  // ImGuiCond
-  operator and (const a,b:ImGuiCond):ImGuiCond;
-  operator or (const a,b:ImGuiCond):ImGuiCond;
-  operator not(const a: ImGuiCond): ImGuiCond;
-
-  // ImGuiConfigFlags
-  operator and (const a,b:ImGuiConfigFlags):ImGuiConfigFlags;
-  operator or (const a,b:ImGuiConfigFlags):ImGuiConfigFlags;
-  operator not(const a: ImGuiConfigFlags): ImGuiConfigFlags;
-
-  // ImGuiContextHookType
-  operator and (const a,b:ImGuiContextHookType):ImGuiContextHookType;
-  operator or (const a,b:ImGuiContextHookType):ImGuiContextHookType;
-  operator not(const a: ImGuiContextHookType): ImGuiContextHookType;
-
-  // ImGuiDataAuthority
-  operator and (const a,b:ImGuiDataAuthority):ImGuiDataAuthority;
-  operator or (const a,b:ImGuiDataAuthority):ImGuiDataAuthority;
-  operator not(const a: ImGuiDataAuthority): ImGuiDataAuthority;
-
-  // ImGuiDataTypePrivate
-  operator and (const a,b:ImGuiDataTypePrivate):ImGuiDataTypePrivate;
-  operator or (const a,b:ImGuiDataTypePrivate):ImGuiDataTypePrivate;
-  operator not(const a: ImGuiDataTypePrivate): ImGuiDataTypePrivate;
-
-  // ImGuiDataType
-  operator and (const a,b:ImGuiDataType):ImGuiDataType;
-  operator or (const a,b:ImGuiDataType):ImGuiDataType;
-  operator not(const a: ImGuiDataType): ImGuiDataType;
-
-  // ImGuiDebugLogFlags
-  operator and (const a,b:ImGuiDebugLogFlags):ImGuiDebugLogFlags;
-  operator or (const a,b:ImGuiDebugLogFlags):ImGuiDebugLogFlags;
-  operator not(const a: ImGuiDebugLogFlags): ImGuiDebugLogFlags;
-
-  // ImGuiDir
-  operator and (const a,b:ImGuiDir):ImGuiDir;
-  operator or (const a,b:ImGuiDir):ImGuiDir;
-  operator not(const a: ImGuiDir): ImGuiDir;
-
-  // ImGuiDockNodeFlagsPrivate
-  operator and (const a,b:ImGuiDockNodeFlagsPrivate):ImGuiDockNodeFlagsPrivate;
-  operator or (const a,b:ImGuiDockNodeFlagsPrivate):ImGuiDockNodeFlagsPrivate;
-  operator not(const a: ImGuiDockNodeFlagsPrivate): ImGuiDockNodeFlagsPrivate;
-
-  // ImGuiDockNodeFlags
-  operator and (const a,b:ImGuiDockNodeFlags):ImGuiDockNodeFlags;
-  operator or (const a,b:ImGuiDockNodeFlags):ImGuiDockNodeFlags;
-  operator not(const a: ImGuiDockNodeFlags): ImGuiDockNodeFlags;
-
-  // ImGuiDockNodeState
-  operator and (const a,b:ImGuiDockNodeState):ImGuiDockNodeState;
-  operator or (const a,b:ImGuiDockNodeState):ImGuiDockNodeState;
-  operator not(const a: ImGuiDockNodeState): ImGuiDockNodeState;
-
-  // ImGuiDragDropFlags
-  operator and (const a,b:ImGuiDragDropFlags):ImGuiDragDropFlags;
-  operator or (const a,b:ImGuiDragDropFlags):ImGuiDragDropFlags;
-  operator not(const a: ImGuiDragDropFlags): ImGuiDragDropFlags;
-
-  // ImGuiFocusRequestFlags
-  operator and (const a,b:ImGuiFocusRequestFlags):ImGuiFocusRequestFlags;
-  operator or (const a,b:ImGuiFocusRequestFlags):ImGuiFocusRequestFlags;
-  operator not(const a: ImGuiFocusRequestFlags): ImGuiFocusRequestFlags;
-
-  // ImGuiFocusedFlags
-  operator and (const a,b:ImGuiFocusedFlags):ImGuiFocusedFlags;
-  operator or (const a,b:ImGuiFocusedFlags):ImGuiFocusedFlags;
-  operator not(const a: ImGuiFocusedFlags): ImGuiFocusedFlags;
-
-  // ImGuiHoveredFlagsPrivate
-  operator and (const a,b:ImGuiHoveredFlagsPrivate):ImGuiHoveredFlagsPrivate;
-  operator or (const a,b:ImGuiHoveredFlagsPrivate):ImGuiHoveredFlagsPrivate;
-  operator not(const a: ImGuiHoveredFlagsPrivate): ImGuiHoveredFlagsPrivate;
-
-  // ImGuiHoveredFlags
-  operator and (const a,b:ImGuiHoveredFlags):ImGuiHoveredFlags;
-  operator or (const a,b:ImGuiHoveredFlags):ImGuiHoveredFlags;
-  operator not(const a: ImGuiHoveredFlags): ImGuiHoveredFlags;
-
-  // ImGuiInputEventType
-  operator and (const a,b:ImGuiInputEventType):ImGuiInputEventType;
-  operator or (const a,b:ImGuiInputEventType):ImGuiInputEventType;
-  operator not(const a: ImGuiInputEventType): ImGuiInputEventType;
-
-  // ImGuiInputFlags
-  operator and (const a,b:ImGuiInputFlags):ImGuiInputFlags;
-  operator or (const a,b:ImGuiInputFlags):ImGuiInputFlags;
-  operator not(const a: ImGuiInputFlags): ImGuiInputFlags;
-
-  // ImGuiInputSource
-  operator and (const a,b:ImGuiInputSource):ImGuiInputSource;
-  operator or (const a,b:ImGuiInputSource):ImGuiInputSource;
-  operator not(const a: ImGuiInputSource): ImGuiInputSource;
-
-  // ImGuiInputTextFlagsPrivate
-  operator and (const a,b:ImGuiInputTextFlagsPrivate):ImGuiInputTextFlagsPrivate;
-  operator or (const a,b:ImGuiInputTextFlagsPrivate):ImGuiInputTextFlagsPrivate;
-  operator not(const a: ImGuiInputTextFlagsPrivate): ImGuiInputTextFlagsPrivate;
-
-  // ImGuiInputTextFlags
-  operator and (const a,b:ImGuiInputTextFlags):ImGuiInputTextFlags;
-  operator or (const a,b:ImGuiInputTextFlags):ImGuiInputTextFlags;
-  operator not(const a: ImGuiInputTextFlags): ImGuiInputTextFlags;
-
-  // ImGuiItemFlags
-  operator and (const a,b:ImGuiItemFlags):ImGuiItemFlags;
-  operator or (const a,b:ImGuiItemFlags):ImGuiItemFlags;
-  operator not(const a: ImGuiItemFlags): ImGuiItemFlags;
-
-  // ImGuiItemStatusFlags
-  operator and (const a,b:ImGuiItemStatusFlags):ImGuiItemStatusFlags;
-  operator or (const a,b:ImGuiItemStatusFlags):ImGuiItemStatusFlags;
-  operator not(const a: ImGuiItemStatusFlags): ImGuiItemStatusFlags;
-
-  // ImGuiKey
-  operator and (const a,b:ImGuiKey):ImGuiKey;
-  operator or (const a,b:ImGuiKey):ImGuiKey;
-  operator not(const a: ImGuiKey): ImGuiKey;
-
-  // ImGuiLayoutType
-  operator and (const a,b:ImGuiLayoutType):ImGuiLayoutType;
-  operator or (const a,b:ImGuiLayoutType):ImGuiLayoutType;
-  operator not(const a: ImGuiLayoutType): ImGuiLayoutType;
-
-  // ImGuiLocKey
-  operator and (const a,b:ImGuiLocKey):ImGuiLocKey;
-  operator or (const a,b:ImGuiLocKey):ImGuiLocKey;
-  operator not(const a: ImGuiLocKey): ImGuiLocKey;
-
-  // ImGuiLogType
-  operator and (const a,b:ImGuiLogType):ImGuiLogType;
-  operator or (const a,b:ImGuiLogType):ImGuiLogType;
-  operator not(const a: ImGuiLogType): ImGuiLogType;
-
-  // ImGuiMouseButton
-  operator and (const a,b:ImGuiMouseButton):ImGuiMouseButton;
-  operator or (const a,b:ImGuiMouseButton):ImGuiMouseButton;
-  operator not(const a: ImGuiMouseButton): ImGuiMouseButton;
-
-  // ImGuiMouseCursor
-  operator and (const a,b:ImGuiMouseCursor):ImGuiMouseCursor;
-  operator or (const a,b:ImGuiMouseCursor):ImGuiMouseCursor;
-  operator not(const a: ImGuiMouseCursor): ImGuiMouseCursor;
-
-  // ImGuiMouseSource
-  operator and (const a,b:ImGuiMouseSource):ImGuiMouseSource;
-  operator or (const a,b:ImGuiMouseSource):ImGuiMouseSource;
-  operator not(const a: ImGuiMouseSource): ImGuiMouseSource;
-
-  // ImGuiNavHighlightFlags
-  operator and (const a,b:ImGuiNavHighlightFlags):ImGuiNavHighlightFlags;
-  operator or (const a,b:ImGuiNavHighlightFlags):ImGuiNavHighlightFlags;
-  operator not(const a: ImGuiNavHighlightFlags): ImGuiNavHighlightFlags;
-
-  // ImGuiNavLayer
-  operator and (const a,b:ImGuiNavLayer):ImGuiNavLayer;
-  operator or (const a,b:ImGuiNavLayer):ImGuiNavLayer;
-  operator not(const a: ImGuiNavLayer): ImGuiNavLayer;
-
-  // ImGuiNavMoveFlags
-  operator and (const a,b:ImGuiNavMoveFlags):ImGuiNavMoveFlags;
-  operator or (const a,b:ImGuiNavMoveFlags):ImGuiNavMoveFlags;
-  operator not(const a: ImGuiNavMoveFlags): ImGuiNavMoveFlags;
-
-  // ImGuiNextItemDataFlags
-  operator and (const a,b:ImGuiNextItemDataFlags):ImGuiNextItemDataFlags;
-  operator or (const a,b:ImGuiNextItemDataFlags):ImGuiNextItemDataFlags;
-  operator not(const a: ImGuiNextItemDataFlags): ImGuiNextItemDataFlags;
-
-  // ImGuiNextWindowDataFlags
-  operator and (const a,b:ImGuiNextWindowDataFlags):ImGuiNextWindowDataFlags;
-  operator or (const a,b:ImGuiNextWindowDataFlags):ImGuiNextWindowDataFlags;
-  operator not(const a: ImGuiNextWindowDataFlags): ImGuiNextWindowDataFlags;
-
-  // ImGuiOldColumnFlags
-  operator and (const a,b:ImGuiOldColumnFlags):ImGuiOldColumnFlags;
-  operator or (const a,b:ImGuiOldColumnFlags):ImGuiOldColumnFlags;
-  operator not(const a: ImGuiOldColumnFlags): ImGuiOldColumnFlags;
-
-  // ImGuiPlotType
-  operator and (const a,b:ImGuiPlotType):ImGuiPlotType;
-  operator or (const a,b:ImGuiPlotType):ImGuiPlotType;
-  operator not(const a: ImGuiPlotType): ImGuiPlotType;
-
-  // ImGuiPopupFlags
-  operator and (const a,b:ImGuiPopupFlags):ImGuiPopupFlags;
-  operator or (const a,b:ImGuiPopupFlags):ImGuiPopupFlags;
-  operator not(const a: ImGuiPopupFlags): ImGuiPopupFlags;
-
-  // ImGuiPopupPositionPolicy
-  operator and (const a,b:ImGuiPopupPositionPolicy):ImGuiPopupPositionPolicy;
-  operator or (const a,b:ImGuiPopupPositionPolicy):ImGuiPopupPositionPolicy;
-  operator not(const a: ImGuiPopupPositionPolicy): ImGuiPopupPositionPolicy;
-
-  // ImGuiScrollFlags
-  operator and (const a,b:ImGuiScrollFlags):ImGuiScrollFlags;
-  operator or (const a,b:ImGuiScrollFlags):ImGuiScrollFlags;
-  operator not(const a: ImGuiScrollFlags): ImGuiScrollFlags;
-
-  // ImGuiSelectableFlagsPrivate
-  operator and (const a,b:ImGuiSelectableFlagsPrivate):ImGuiSelectableFlagsPrivate;
-  operator or (const a,b:ImGuiSelectableFlagsPrivate):ImGuiSelectableFlagsPrivate;
-  operator not(const a: ImGuiSelectableFlagsPrivate): ImGuiSelectableFlagsPrivate;
-
-  // ImGuiSelectableFlags
-  operator and (const a,b:ImGuiSelectableFlags):ImGuiSelectableFlags;
-  operator or (const a,b:ImGuiSelectableFlags):ImGuiSelectableFlags;
-  operator not(const a: ImGuiSelectableFlags): ImGuiSelectableFlags;
-
-  // ImGuiSeparatorFlags
-  operator and (const a,b:ImGuiSeparatorFlags):ImGuiSeparatorFlags;
-  operator or (const a,b:ImGuiSeparatorFlags):ImGuiSeparatorFlags;
-  operator not(const a: ImGuiSeparatorFlags): ImGuiSeparatorFlags;
-
-  // ImGuiSliderFlagsPrivate
-  operator and (const a,b:ImGuiSliderFlagsPrivate):ImGuiSliderFlagsPrivate;
-  operator or (const a,b:ImGuiSliderFlagsPrivate):ImGuiSliderFlagsPrivate;
-  operator not(const a: ImGuiSliderFlagsPrivate): ImGuiSliderFlagsPrivate;
-
-  // ImGuiSliderFlags
-  operator and (const a,b:ImGuiSliderFlags):ImGuiSliderFlags;
-  operator or (const a,b:ImGuiSliderFlags):ImGuiSliderFlags;
-  operator not(const a: ImGuiSliderFlags): ImGuiSliderFlags;
-
-  // ImGuiSortDirection
-  operator and (const a,b:ImGuiSortDirection):ImGuiSortDirection;
-  operator or (const a,b:ImGuiSortDirection):ImGuiSortDirection;
-  operator not(const a: ImGuiSortDirection): ImGuiSortDirection;
-
-  // ImGuiStyleVar
-  operator and (const a,b:ImGuiStyleVar):ImGuiStyleVar;
-  operator or (const a,b:ImGuiStyleVar):ImGuiStyleVar;
-  operator not(const a: ImGuiStyleVar): ImGuiStyleVar;
-
-  // ImGuiTabBarFlagsPrivate
-  operator and (const a,b:ImGuiTabBarFlagsPrivate):ImGuiTabBarFlagsPrivate;
-  operator or (const a,b:ImGuiTabBarFlagsPrivate):ImGuiTabBarFlagsPrivate;
-  operator not(const a: ImGuiTabBarFlagsPrivate): ImGuiTabBarFlagsPrivate;
-
-  // ImGuiTabBarFlags
-  operator and (const a,b:ImGuiTabBarFlags):ImGuiTabBarFlags;
-  operator or (const a,b:ImGuiTabBarFlags):ImGuiTabBarFlags;
-  operator not(const a: ImGuiTabBarFlags): ImGuiTabBarFlags;
-
-  // ImGuiTabItemFlagsPrivate
-  operator and (const a,b:ImGuiTabItemFlagsPrivate):ImGuiTabItemFlagsPrivate;
-  operator or (const a,b:ImGuiTabItemFlagsPrivate):ImGuiTabItemFlagsPrivate;
-  operator not(const a: ImGuiTabItemFlagsPrivate): ImGuiTabItemFlagsPrivate;
-
-  // ImGuiTabItemFlags
-  operator and (const a,b:ImGuiTabItemFlags):ImGuiTabItemFlags;
-  operator or (const a,b:ImGuiTabItemFlags):ImGuiTabItemFlags;
-  operator not(const a: ImGuiTabItemFlags): ImGuiTabItemFlags;
-
-  // ImGuiTableBgTarget
-  operator and (const a,b:ImGuiTableBgTarget):ImGuiTableBgTarget;
-  operator or (const a,b:ImGuiTableBgTarget):ImGuiTableBgTarget;
-  operator not(const a: ImGuiTableBgTarget): ImGuiTableBgTarget;
-
-  // ImGuiTableColumnFlags
-  operator and (const a,b:ImGuiTableColumnFlags):ImGuiTableColumnFlags;
-  operator or (const a,b:ImGuiTableColumnFlags):ImGuiTableColumnFlags;
-  operator not(const a: ImGuiTableColumnFlags): ImGuiTableColumnFlags;
-
-  // ImGuiTableFlags
-  operator and (const a,b:ImGuiTableFlags):ImGuiTableFlags;
-  operator or (const a,b:ImGuiTableFlags):ImGuiTableFlags;
-  operator not(const a: ImGuiTableFlags): ImGuiTableFlags;
-
-  // ImGuiTableRowFlags
-  operator and (const a,b:ImGuiTableRowFlags):ImGuiTableRowFlags;
-  operator or (const a,b:ImGuiTableRowFlags):ImGuiTableRowFlags;
-  operator not(const a: ImGuiTableRowFlags): ImGuiTableRowFlags;
-
-  // ImGuiTextFlags
-  operator and (const a,b:ImGuiTextFlags):ImGuiTextFlags;
-  operator or (const a,b:ImGuiTextFlags):ImGuiTextFlags;
-  operator not(const a: ImGuiTextFlags): ImGuiTextFlags;
-
-  // ImGuiTooltipFlags
-  operator and (const a,b:ImGuiTooltipFlags):ImGuiTooltipFlags;
-  operator or (const a,b:ImGuiTooltipFlags):ImGuiTooltipFlags;
-  operator not(const a: ImGuiTooltipFlags): ImGuiTooltipFlags;
-
-  // ImGuiTreeNodeFlagsPrivate
-  operator and (const a,b:ImGuiTreeNodeFlagsPrivate):ImGuiTreeNodeFlagsPrivate;
-  operator or (const a,b:ImGuiTreeNodeFlagsPrivate):ImGuiTreeNodeFlagsPrivate;
-  operator not(const a: ImGuiTreeNodeFlagsPrivate): ImGuiTreeNodeFlagsPrivate;
-
-  // ImGuiTreeNodeFlags
-  operator and (const a,b:ImGuiTreeNodeFlags):ImGuiTreeNodeFlags;
-  operator or (const a,b:ImGuiTreeNodeFlags):ImGuiTreeNodeFlags;
-  operator not(const a: ImGuiTreeNodeFlags): ImGuiTreeNodeFlags;
-
-  // ImGuiTypingSelectFlags
-  operator and (const a,b:ImGuiTypingSelectFlags):ImGuiTypingSelectFlags;
-  operator or (const a,b:ImGuiTypingSelectFlags):ImGuiTypingSelectFlags;
-  operator not(const a: ImGuiTypingSelectFlags): ImGuiTypingSelectFlags;
-
-  // ImGuiViewportFlags
-  operator and (const a,b:ImGuiViewportFlags):ImGuiViewportFlags;
-  operator or (const a,b:ImGuiViewportFlags):ImGuiViewportFlags;
-  operator not(const a: ImGuiViewportFlags): ImGuiViewportFlags;
-
-  // ImGuiWindowDockStyleCol
-  operator and (const a,b:ImGuiWindowDockStyleCol):ImGuiWindowDockStyleCol;
-  operator or (const a,b:ImGuiWindowDockStyleCol):ImGuiWindowDockStyleCol;
-  operator not(const a: ImGuiWindowDockStyleCol): ImGuiWindowDockStyleCol;
-
-  // ImGuiWindowFlags
-  operator and (const a,b:ImGuiWindowFlags):ImGuiWindowFlags;
-  operator or (const a,b:ImGuiWindowFlags):ImGuiWindowFlags;
-  operator not(const a: ImGuiWindowFlags): ImGuiWindowFlags;
-implementation
 
-// ImDrawFlags
-operator and (const a,b:ImDrawFlags):ImDrawFlags;inline;
-begin
-  Result:= ImDrawFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImDrawFlags):ImDrawFlags;inline;
-begin
-  Result:= ImDrawFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImDrawFlags): ImDrawFlags;
-begin
-  Result:= ImDrawFlags(not Ord(a));
-end;
-
-// ImDrawListFlags
-operator and (const a,b:ImDrawListFlags):ImDrawListFlags;inline;
-begin
-  Result:= ImDrawListFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImDrawListFlags):ImDrawListFlags;inline;
-begin
-  Result:= ImDrawListFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImDrawListFlags): ImDrawListFlags;
-begin
-  Result:= ImDrawListFlags(not Ord(a));
-end;
-
-// ImFontAtlasFlags
-operator and (const a,b:ImFontAtlasFlags):ImFontAtlasFlags;inline;
-begin
-  Result:= ImFontAtlasFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImFontAtlasFlags):ImFontAtlasFlags;inline;
-begin
-  Result:= ImFontAtlasFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImFontAtlasFlags): ImFontAtlasFlags;
-begin
-  Result:= ImFontAtlasFlags(not Ord(a));
-end;
-
-// ImGuiActivateFlags
-operator and (const a,b:ImGuiActivateFlags):ImGuiActivateFlags;inline;
-begin
-  Result:= ImGuiActivateFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiActivateFlags):ImGuiActivateFlags;inline;
-begin
-  Result:= ImGuiActivateFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiActivateFlags): ImGuiActivateFlags;
-begin
-  Result:= ImGuiActivateFlags(not Ord(a));
-end;
-
-// ImGuiAxis
-operator and (const a,b:ImGuiAxis):ImGuiAxis;inline;
-begin
-  Result:= ImGuiAxis(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiAxis):ImGuiAxis;inline;
-begin
-  Result:= ImGuiAxis(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiAxis): ImGuiAxis;
-begin
-  Result:= ImGuiAxis(not Ord(a));
-end;
-
-// ImGuiBackendFlags
-operator and (const a,b:ImGuiBackendFlags):ImGuiBackendFlags;inline;
-begin
-  Result:= ImGuiBackendFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiBackendFlags):ImGuiBackendFlags;inline;
-begin
-  Result:= ImGuiBackendFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiBackendFlags): ImGuiBackendFlags;
-begin
-  Result:= ImGuiBackendFlags(not Ord(a));
-end;
-
-// ImGuiButtonFlagsPrivate
-operator and (const a,b:ImGuiButtonFlagsPrivate):ImGuiButtonFlagsPrivate;inline;
-begin
-  Result:= ImGuiButtonFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiButtonFlagsPrivate):ImGuiButtonFlagsPrivate;inline;
-begin
-  Result:= ImGuiButtonFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiButtonFlagsPrivate): ImGuiButtonFlagsPrivate;
-begin
-  Result:= ImGuiButtonFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiButtonFlags
-operator and (const a,b:ImGuiButtonFlags):ImGuiButtonFlags;inline;
-begin
-  Result:= ImGuiButtonFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiButtonFlags):ImGuiButtonFlags;inline;
-begin
-  Result:= ImGuiButtonFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiButtonFlags): ImGuiButtonFlags;
-begin
-  Result:= ImGuiButtonFlags(not Ord(a));
-end;
-
-// ImGuiChildFlags
-operator and (const a,b:ImGuiChildFlags):ImGuiChildFlags;inline;
-begin
-  Result:= ImGuiChildFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiChildFlags):ImGuiChildFlags;inline;
-begin
-  Result:= ImGuiChildFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiChildFlags): ImGuiChildFlags;
-begin
-  Result:= ImGuiChildFlags(not Ord(a));
-end;
-
-// ImGuiCol
-operator and (const a,b:ImGuiCol):ImGuiCol;inline;
-begin
-  Result:= ImGuiCol(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiCol):ImGuiCol;inline;
-begin
-  Result:= ImGuiCol(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiCol): ImGuiCol;
-begin
-  Result:= ImGuiCol(not Ord(a));
-end;
-
-// ImGuiColorEditFlags
-operator and (const a,b:ImGuiColorEditFlags):ImGuiColorEditFlags;inline;
-begin
-  Result:= ImGuiColorEditFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiColorEditFlags):ImGuiColorEditFlags;inline;
-begin
-  Result:= ImGuiColorEditFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiColorEditFlags): ImGuiColorEditFlags;
-begin
-  Result:= ImGuiColorEditFlags(not Ord(a));
-end;
-
-// ImGuiComboFlagsPrivate
-operator and (const a,b:ImGuiComboFlagsPrivate):ImGuiComboFlagsPrivate;inline;
-begin
-  Result:= ImGuiComboFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiComboFlagsPrivate):ImGuiComboFlagsPrivate;inline;
-begin
-  Result:= ImGuiComboFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiComboFlagsPrivate): ImGuiComboFlagsPrivate;
-begin
-  Result:= ImGuiComboFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiComboFlags
-operator and (const a,b:ImGuiComboFlags):ImGuiComboFlags;inline;
-begin
-  Result:= ImGuiComboFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiComboFlags):ImGuiComboFlags;inline;
-begin
-  Result:= ImGuiComboFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiComboFlags): ImGuiComboFlags;
-begin
-  Result:= ImGuiComboFlags(not Ord(a));
-end;
-
-// ImGuiCond
-operator and (const a,b:ImGuiCond):ImGuiCond;inline;
-begin
-  Result:= ImGuiCond(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiCond):ImGuiCond;inline;
-begin
-  Result:= ImGuiCond(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiCond): ImGuiCond;
-begin
-  Result:= ImGuiCond(not Ord(a));
-end;
-
-// ImGuiConfigFlags
-operator and (const a,b:ImGuiConfigFlags):ImGuiConfigFlags;inline;
-begin
-  Result:= ImGuiConfigFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiConfigFlags):ImGuiConfigFlags;inline;
-begin
-  Result:= ImGuiConfigFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiConfigFlags): ImGuiConfigFlags;
-begin
-  Result:= ImGuiConfigFlags(not Ord(a));
-end;
-
-// ImGuiContextHookType
-operator and (const a,b:ImGuiContextHookType):ImGuiContextHookType;inline;
-begin
-  Result:= ImGuiContextHookType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiContextHookType):ImGuiContextHookType;inline;
-begin
-  Result:= ImGuiContextHookType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiContextHookType): ImGuiContextHookType;
-begin
-  Result:= ImGuiContextHookType(not Ord(a));
-end;
-
-// ImGuiDataAuthority
-operator and (const a,b:ImGuiDataAuthority):ImGuiDataAuthority;inline;
-begin
-  Result:= ImGuiDataAuthority(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDataAuthority):ImGuiDataAuthority;inline;
-begin
-  Result:= ImGuiDataAuthority(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDataAuthority): ImGuiDataAuthority;
-begin
-  Result:= ImGuiDataAuthority(not Ord(a));
-end;
-
-// ImGuiDataTypePrivate
-operator and (const a,b:ImGuiDataTypePrivate):ImGuiDataTypePrivate;inline;
-begin
-  Result:= ImGuiDataTypePrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDataTypePrivate):ImGuiDataTypePrivate;inline;
-begin
-  Result:= ImGuiDataTypePrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDataTypePrivate): ImGuiDataTypePrivate;
-begin
-  Result:= ImGuiDataTypePrivate(not Ord(a));
-end;
-
-// ImGuiDataType
-operator and (const a,b:ImGuiDataType):ImGuiDataType;inline;
-begin
-  Result:= ImGuiDataType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDataType):ImGuiDataType;inline;
-begin
-  Result:= ImGuiDataType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDataType): ImGuiDataType;
-begin
-  Result:= ImGuiDataType(not Ord(a));
-end;
-
-// ImGuiDebugLogFlags
-operator and (const a,b:ImGuiDebugLogFlags):ImGuiDebugLogFlags;inline;
-begin
-  Result:= ImGuiDebugLogFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDebugLogFlags):ImGuiDebugLogFlags;inline;
-begin
-  Result:= ImGuiDebugLogFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDebugLogFlags): ImGuiDebugLogFlags;
-begin
-  Result:= ImGuiDebugLogFlags(not Ord(a));
-end;
-
-// ImGuiDir
-operator and (const a,b:ImGuiDir):ImGuiDir;inline;
-begin
-  Result:= ImGuiDir(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDir):ImGuiDir;inline;
-begin
-  Result:= ImGuiDir(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDir): ImGuiDir;
-begin
-  Result:= ImGuiDir(not Ord(a));
-end;
-
-// ImGuiDockNodeFlagsPrivate
-operator and (const a,b:ImGuiDockNodeFlagsPrivate):ImGuiDockNodeFlagsPrivate;inline;
-begin
-  Result:= ImGuiDockNodeFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDockNodeFlagsPrivate):ImGuiDockNodeFlagsPrivate;inline;
-begin
-  Result:= ImGuiDockNodeFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDockNodeFlagsPrivate): ImGuiDockNodeFlagsPrivate;
-begin
-  Result:= ImGuiDockNodeFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiDockNodeFlags
-operator and (const a,b:ImGuiDockNodeFlags):ImGuiDockNodeFlags;inline;
-begin
-  Result:= ImGuiDockNodeFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDockNodeFlags):ImGuiDockNodeFlags;inline;
-begin
-  Result:= ImGuiDockNodeFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDockNodeFlags): ImGuiDockNodeFlags;
-begin
-  Result:= ImGuiDockNodeFlags(not Ord(a));
-end;
-
-// ImGuiDockNodeState
-operator and (const a,b:ImGuiDockNodeState):ImGuiDockNodeState;inline;
-begin
-  Result:= ImGuiDockNodeState(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDockNodeState):ImGuiDockNodeState;inline;
-begin
-  Result:= ImGuiDockNodeState(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDockNodeState): ImGuiDockNodeState;
-begin
-  Result:= ImGuiDockNodeState(not Ord(a));
-end;
-
-// ImGuiDragDropFlags
-operator and (const a,b:ImGuiDragDropFlags):ImGuiDragDropFlags;inline;
-begin
-  Result:= ImGuiDragDropFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiDragDropFlags):ImGuiDragDropFlags;inline;
-begin
-  Result:= ImGuiDragDropFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiDragDropFlags): ImGuiDragDropFlags;
-begin
-  Result:= ImGuiDragDropFlags(not Ord(a));
-end;
-
-// ImGuiFocusRequestFlags
-operator and (const a,b:ImGuiFocusRequestFlags):ImGuiFocusRequestFlags;inline;
-begin
-  Result:= ImGuiFocusRequestFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiFocusRequestFlags):ImGuiFocusRequestFlags;inline;
-begin
-  Result:= ImGuiFocusRequestFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiFocusRequestFlags): ImGuiFocusRequestFlags;
-begin
-  Result:= ImGuiFocusRequestFlags(not Ord(a));
-end;
-
-// ImGuiFocusedFlags
-operator and (const a,b:ImGuiFocusedFlags):ImGuiFocusedFlags;inline;
-begin
-  Result:= ImGuiFocusedFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiFocusedFlags):ImGuiFocusedFlags;inline;
-begin
-  Result:= ImGuiFocusedFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiFocusedFlags): ImGuiFocusedFlags;
-begin
-  Result:= ImGuiFocusedFlags(not Ord(a));
-end;
-
-// ImGuiHoveredFlagsPrivate
-operator and (const a,b:ImGuiHoveredFlagsPrivate):ImGuiHoveredFlagsPrivate;inline;
-begin
-  Result:= ImGuiHoveredFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiHoveredFlagsPrivate):ImGuiHoveredFlagsPrivate;inline;
-begin
-  Result:= ImGuiHoveredFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiHoveredFlagsPrivate): ImGuiHoveredFlagsPrivate;
-begin
-  Result:= ImGuiHoveredFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiHoveredFlags
-operator and (const a,b:ImGuiHoveredFlags):ImGuiHoveredFlags;inline;
-begin
-  Result:= ImGuiHoveredFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiHoveredFlags):ImGuiHoveredFlags;inline;
-begin
-  Result:= ImGuiHoveredFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiHoveredFlags): ImGuiHoveredFlags;
-begin
-  Result:= ImGuiHoveredFlags(not Ord(a));
-end;
-
-// ImGuiInputEventType
-operator and (const a,b:ImGuiInputEventType):ImGuiInputEventType;inline;
-begin
-  Result:= ImGuiInputEventType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiInputEventType):ImGuiInputEventType;inline;
-begin
-  Result:= ImGuiInputEventType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiInputEventType): ImGuiInputEventType;
-begin
-  Result:= ImGuiInputEventType(not Ord(a));
-end;
-
-// ImGuiInputFlags
-operator and (const a,b:ImGuiInputFlags):ImGuiInputFlags;inline;
-begin
-  Result:= ImGuiInputFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiInputFlags):ImGuiInputFlags;inline;
-begin
-  Result:= ImGuiInputFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiInputFlags): ImGuiInputFlags;
-begin
-  Result:= ImGuiInputFlags(not Ord(a));
-end;
-
-// ImGuiInputSource
-operator and (const a,b:ImGuiInputSource):ImGuiInputSource;inline;
-begin
-  Result:= ImGuiInputSource(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiInputSource):ImGuiInputSource;inline;
-begin
-  Result:= ImGuiInputSource(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiInputSource): ImGuiInputSource;
-begin
-  Result:= ImGuiInputSource(not Ord(a));
-end;
-
-// ImGuiInputTextFlagsPrivate
-operator and (const a,b:ImGuiInputTextFlagsPrivate):ImGuiInputTextFlagsPrivate;inline;
-begin
-  Result:= ImGuiInputTextFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiInputTextFlagsPrivate):ImGuiInputTextFlagsPrivate;inline;
-begin
-  Result:= ImGuiInputTextFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiInputTextFlagsPrivate): ImGuiInputTextFlagsPrivate;
-begin
-  Result:= ImGuiInputTextFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiInputTextFlags
-operator and (const a,b:ImGuiInputTextFlags):ImGuiInputTextFlags;inline;
-begin
-  Result:= ImGuiInputTextFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiInputTextFlags):ImGuiInputTextFlags;inline;
-begin
-  Result:= ImGuiInputTextFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiInputTextFlags): ImGuiInputTextFlags;
-begin
-  Result:= ImGuiInputTextFlags(not Ord(a));
-end;
-
-// ImGuiItemFlags
-operator and (const a,b:ImGuiItemFlags):ImGuiItemFlags;inline;
-begin
-  Result:= ImGuiItemFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiItemFlags):ImGuiItemFlags;inline;
-begin
-  Result:= ImGuiItemFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiItemFlags): ImGuiItemFlags;
-begin
-  Result:= ImGuiItemFlags(not Ord(a));
-end;
-
-// ImGuiItemStatusFlags
-operator and (const a,b:ImGuiItemStatusFlags):ImGuiItemStatusFlags;inline;
-begin
-  Result:= ImGuiItemStatusFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiItemStatusFlags):ImGuiItemStatusFlags;inline;
-begin
-  Result:= ImGuiItemStatusFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiItemStatusFlags): ImGuiItemStatusFlags;
-begin
-  Result:= ImGuiItemStatusFlags(not Ord(a));
-end;
-
-// ImGuiKey
-operator and (const a,b:ImGuiKey):ImGuiKey;inline;
-begin
-  Result:= ImGuiKey(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiKey):ImGuiKey;inline;
-begin
-  Result:= ImGuiKey(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiKey): ImGuiKey;
-begin
-  Result:= ImGuiKey(not Ord(a));
-end;
-
-// ImGuiLayoutType
-operator and (const a,b:ImGuiLayoutType):ImGuiLayoutType;inline;
-begin
-  Result:= ImGuiLayoutType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiLayoutType):ImGuiLayoutType;inline;
-begin
-  Result:= ImGuiLayoutType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiLayoutType): ImGuiLayoutType;
-begin
-  Result:= ImGuiLayoutType(not Ord(a));
-end;
-
-// ImGuiLocKey
-operator and (const a,b:ImGuiLocKey):ImGuiLocKey;inline;
-begin
-  Result:= ImGuiLocKey(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiLocKey):ImGuiLocKey;inline;
-begin
-  Result:= ImGuiLocKey(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiLocKey): ImGuiLocKey;
-begin
-  Result:= ImGuiLocKey(not Ord(a));
-end;
-
-// ImGuiLogType
-operator and (const a,b:ImGuiLogType):ImGuiLogType;inline;
-begin
-  Result:= ImGuiLogType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiLogType):ImGuiLogType;inline;
-begin
-  Result:= ImGuiLogType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiLogType): ImGuiLogType;
-begin
-  Result:= ImGuiLogType(not Ord(a));
-end;
-
-// ImGuiMouseButton
-operator and (const a,b:ImGuiMouseButton):ImGuiMouseButton;inline;
-begin
-  Result:= ImGuiMouseButton(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiMouseButton):ImGuiMouseButton;inline;
-begin
-  Result:= ImGuiMouseButton(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiMouseButton): ImGuiMouseButton;
-begin
-  Result:= ImGuiMouseButton(not Ord(a));
-end;
-
-// ImGuiMouseCursor
-operator and (const a,b:ImGuiMouseCursor):ImGuiMouseCursor;inline;
-begin
-  Result:= ImGuiMouseCursor(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiMouseCursor):ImGuiMouseCursor;inline;
-begin
-  Result:= ImGuiMouseCursor(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiMouseCursor): ImGuiMouseCursor;
-begin
-  Result:= ImGuiMouseCursor(not Ord(a));
-end;
-
-// ImGuiMouseSource
-operator and (const a,b:ImGuiMouseSource):ImGuiMouseSource;inline;
-begin
-  Result:= ImGuiMouseSource(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiMouseSource):ImGuiMouseSource;inline;
-begin
-  Result:= ImGuiMouseSource(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiMouseSource): ImGuiMouseSource;
-begin
-  Result:= ImGuiMouseSource(not Ord(a));
-end;
-
-// ImGuiNavHighlightFlags
-operator and (const a,b:ImGuiNavHighlightFlags):ImGuiNavHighlightFlags;inline;
-begin
-  Result:= ImGuiNavHighlightFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiNavHighlightFlags):ImGuiNavHighlightFlags;inline;
-begin
-  Result:= ImGuiNavHighlightFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiNavHighlightFlags): ImGuiNavHighlightFlags;
-begin
-  Result:= ImGuiNavHighlightFlags(not Ord(a));
-end;
-
-// ImGuiNavLayer
-operator and (const a,b:ImGuiNavLayer):ImGuiNavLayer;inline;
-begin
-  Result:= ImGuiNavLayer(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiNavLayer):ImGuiNavLayer;inline;
-begin
-  Result:= ImGuiNavLayer(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiNavLayer): ImGuiNavLayer;
-begin
-  Result:= ImGuiNavLayer(not Ord(a));
-end;
-
-// ImGuiNavMoveFlags
-operator and (const a,b:ImGuiNavMoveFlags):ImGuiNavMoveFlags;inline;
-begin
-  Result:= ImGuiNavMoveFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiNavMoveFlags):ImGuiNavMoveFlags;inline;
-begin
-  Result:= ImGuiNavMoveFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiNavMoveFlags): ImGuiNavMoveFlags;
-begin
-  Result:= ImGuiNavMoveFlags(not Ord(a));
-end;
-
-// ImGuiNextItemDataFlags
-operator and (const a,b:ImGuiNextItemDataFlags):ImGuiNextItemDataFlags;inline;
-begin
-  Result:= ImGuiNextItemDataFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiNextItemDataFlags):ImGuiNextItemDataFlags;inline;
-begin
-  Result:= ImGuiNextItemDataFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiNextItemDataFlags): ImGuiNextItemDataFlags;
-begin
-  Result:= ImGuiNextItemDataFlags(not Ord(a));
-end;
-
-// ImGuiNextWindowDataFlags
-operator and (const a,b:ImGuiNextWindowDataFlags):ImGuiNextWindowDataFlags;inline;
-begin
-  Result:= ImGuiNextWindowDataFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiNextWindowDataFlags):ImGuiNextWindowDataFlags;inline;
-begin
-  Result:= ImGuiNextWindowDataFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiNextWindowDataFlags): ImGuiNextWindowDataFlags;
-begin
-  Result:= ImGuiNextWindowDataFlags(not Ord(a));
-end;
-
-// ImGuiOldColumnFlags
-operator and (const a,b:ImGuiOldColumnFlags):ImGuiOldColumnFlags;inline;
-begin
-  Result:= ImGuiOldColumnFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiOldColumnFlags):ImGuiOldColumnFlags;inline;
-begin
-  Result:= ImGuiOldColumnFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiOldColumnFlags): ImGuiOldColumnFlags;
-begin
-  Result:= ImGuiOldColumnFlags(not Ord(a));
-end;
-
-// ImGuiPlotType
-operator and (const a,b:ImGuiPlotType):ImGuiPlotType;inline;
-begin
-  Result:= ImGuiPlotType(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiPlotType):ImGuiPlotType;inline;
-begin
-  Result:= ImGuiPlotType(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiPlotType): ImGuiPlotType;
-begin
-  Result:= ImGuiPlotType(not Ord(a));
-end;
-
-// ImGuiPopupFlags
-operator and (const a,b:ImGuiPopupFlags):ImGuiPopupFlags;inline;
-begin
-  Result:= ImGuiPopupFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiPopupFlags):ImGuiPopupFlags;inline;
-begin
-  Result:= ImGuiPopupFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiPopupFlags): ImGuiPopupFlags;
-begin
-  Result:= ImGuiPopupFlags(not Ord(a));
-end;
-
-// ImGuiPopupPositionPolicy
-operator and (const a,b:ImGuiPopupPositionPolicy):ImGuiPopupPositionPolicy;inline;
-begin
-  Result:= ImGuiPopupPositionPolicy(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiPopupPositionPolicy):ImGuiPopupPositionPolicy;inline;
-begin
-  Result:= ImGuiPopupPositionPolicy(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiPopupPositionPolicy): ImGuiPopupPositionPolicy;
-begin
-  Result:= ImGuiPopupPositionPolicy(not Ord(a));
-end;
-
-// ImGuiScrollFlags
-operator and (const a,b:ImGuiScrollFlags):ImGuiScrollFlags;inline;
-begin
-  Result:= ImGuiScrollFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiScrollFlags):ImGuiScrollFlags;inline;
-begin
-  Result:= ImGuiScrollFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiScrollFlags): ImGuiScrollFlags;
-begin
-  Result:= ImGuiScrollFlags(not Ord(a));
-end;
-
-// ImGuiSelectableFlagsPrivate
-operator and (const a,b:ImGuiSelectableFlagsPrivate):ImGuiSelectableFlagsPrivate;inline;
-begin
-  Result:= ImGuiSelectableFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSelectableFlagsPrivate):ImGuiSelectableFlagsPrivate;inline;
-begin
-  Result:= ImGuiSelectableFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSelectableFlagsPrivate): ImGuiSelectableFlagsPrivate;
-begin
-  Result:= ImGuiSelectableFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiSelectableFlags
-operator and (const a,b:ImGuiSelectableFlags):ImGuiSelectableFlags;inline;
-begin
-  Result:= ImGuiSelectableFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSelectableFlags):ImGuiSelectableFlags;inline;
-begin
-  Result:= ImGuiSelectableFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSelectableFlags): ImGuiSelectableFlags;
-begin
-  Result:= ImGuiSelectableFlags(not Ord(a));
-end;
-
-// ImGuiSeparatorFlags
-operator and (const a,b:ImGuiSeparatorFlags):ImGuiSeparatorFlags;inline;
-begin
-  Result:= ImGuiSeparatorFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSeparatorFlags):ImGuiSeparatorFlags;inline;
-begin
-  Result:= ImGuiSeparatorFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSeparatorFlags): ImGuiSeparatorFlags;
-begin
-  Result:= ImGuiSeparatorFlags(not Ord(a));
-end;
-
-// ImGuiSliderFlagsPrivate
-operator and (const a,b:ImGuiSliderFlagsPrivate):ImGuiSliderFlagsPrivate;inline;
-begin
-  Result:= ImGuiSliderFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSliderFlagsPrivate):ImGuiSliderFlagsPrivate;inline;
-begin
-  Result:= ImGuiSliderFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSliderFlagsPrivate): ImGuiSliderFlagsPrivate;
-begin
-  Result:= ImGuiSliderFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiSliderFlags
-operator and (const a,b:ImGuiSliderFlags):ImGuiSliderFlags;inline;
-begin
-  Result:= ImGuiSliderFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSliderFlags):ImGuiSliderFlags;inline;
-begin
-  Result:= ImGuiSliderFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSliderFlags): ImGuiSliderFlags;
-begin
-  Result:= ImGuiSliderFlags(not Ord(a));
-end;
-
-// ImGuiSortDirection
-operator and (const a,b:ImGuiSortDirection):ImGuiSortDirection;inline;
-begin
-  Result:= ImGuiSortDirection(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiSortDirection):ImGuiSortDirection;inline;
-begin
-  Result:= ImGuiSortDirection(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiSortDirection): ImGuiSortDirection;
-begin
-  Result:= ImGuiSortDirection(not Ord(a));
-end;
-
-// ImGuiStyleVar
-operator and (const a,b:ImGuiStyleVar):ImGuiStyleVar;inline;
-begin
-  Result:= ImGuiStyleVar(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiStyleVar):ImGuiStyleVar;inline;
-begin
-  Result:= ImGuiStyleVar(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiStyleVar): ImGuiStyleVar;
-begin
-  Result:= ImGuiStyleVar(not Ord(a));
-end;
-
-// ImGuiTabBarFlagsPrivate
-operator and (const a,b:ImGuiTabBarFlagsPrivate):ImGuiTabBarFlagsPrivate;inline;
-begin
-  Result:= ImGuiTabBarFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTabBarFlagsPrivate):ImGuiTabBarFlagsPrivate;inline;
-begin
-  Result:= ImGuiTabBarFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTabBarFlagsPrivate): ImGuiTabBarFlagsPrivate;
-begin
-  Result:= ImGuiTabBarFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiTabBarFlags
-operator and (const a,b:ImGuiTabBarFlags):ImGuiTabBarFlags;inline;
-begin
-  Result:= ImGuiTabBarFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTabBarFlags):ImGuiTabBarFlags;inline;
-begin
-  Result:= ImGuiTabBarFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTabBarFlags): ImGuiTabBarFlags;
-begin
-  Result:= ImGuiTabBarFlags(not Ord(a));
-end;
-
-// ImGuiTabItemFlagsPrivate
-operator and (const a,b:ImGuiTabItemFlagsPrivate):ImGuiTabItemFlagsPrivate;inline;
-begin
-  Result:= ImGuiTabItemFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTabItemFlagsPrivate):ImGuiTabItemFlagsPrivate;inline;
-begin
-  Result:= ImGuiTabItemFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTabItemFlagsPrivate): ImGuiTabItemFlagsPrivate;
-begin
-  Result:= ImGuiTabItemFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiTabItemFlags
-operator and (const a,b:ImGuiTabItemFlags):ImGuiTabItemFlags;inline;
-begin
-  Result:= ImGuiTabItemFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTabItemFlags):ImGuiTabItemFlags;inline;
-begin
-  Result:= ImGuiTabItemFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTabItemFlags): ImGuiTabItemFlags;
-begin
-  Result:= ImGuiTabItemFlags(not Ord(a));
-end;
-
-// ImGuiTableBgTarget
-operator and (const a,b:ImGuiTableBgTarget):ImGuiTableBgTarget;inline;
-begin
-  Result:= ImGuiTableBgTarget(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTableBgTarget):ImGuiTableBgTarget;inline;
-begin
-  Result:= ImGuiTableBgTarget(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTableBgTarget): ImGuiTableBgTarget;
-begin
-  Result:= ImGuiTableBgTarget(not Ord(a));
-end;
-
-// ImGuiTableColumnFlags
-operator and (const a,b:ImGuiTableColumnFlags):ImGuiTableColumnFlags;inline;
-begin
-  Result:= ImGuiTableColumnFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTableColumnFlags):ImGuiTableColumnFlags;inline;
-begin
-  Result:= ImGuiTableColumnFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTableColumnFlags): ImGuiTableColumnFlags;
-begin
-  Result:= ImGuiTableColumnFlags(not Ord(a));
-end;
-
-// ImGuiTableFlags
-operator and (const a,b:ImGuiTableFlags):ImGuiTableFlags;inline;
-begin
-  Result:= ImGuiTableFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTableFlags):ImGuiTableFlags;inline;
-begin
-  Result:= ImGuiTableFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTableFlags): ImGuiTableFlags;
-begin
-  Result:= ImGuiTableFlags(not Ord(a));
-end;
-
-// ImGuiTableRowFlags
-operator and (const a,b:ImGuiTableRowFlags):ImGuiTableRowFlags;inline;
-begin
-  Result:= ImGuiTableRowFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTableRowFlags):ImGuiTableRowFlags;inline;
-begin
-  Result:= ImGuiTableRowFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTableRowFlags): ImGuiTableRowFlags;
-begin
-  Result:= ImGuiTableRowFlags(not Ord(a));
-end;
-
-// ImGuiTextFlags
-operator and (const a,b:ImGuiTextFlags):ImGuiTextFlags;inline;
-begin
-  Result:= ImGuiTextFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTextFlags):ImGuiTextFlags;inline;
-begin
-  Result:= ImGuiTextFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTextFlags): ImGuiTextFlags;
-begin
-  Result:= ImGuiTextFlags(not Ord(a));
-end;
-
-// ImGuiTooltipFlags
-operator and (const a,b:ImGuiTooltipFlags):ImGuiTooltipFlags;inline;
-begin
-  Result:= ImGuiTooltipFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTooltipFlags):ImGuiTooltipFlags;inline;
-begin
-  Result:= ImGuiTooltipFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTooltipFlags): ImGuiTooltipFlags;
-begin
-  Result:= ImGuiTooltipFlags(not Ord(a));
-end;
-
-// ImGuiTreeNodeFlagsPrivate
-operator and (const a,b:ImGuiTreeNodeFlagsPrivate):ImGuiTreeNodeFlagsPrivate;inline;
-begin
-  Result:= ImGuiTreeNodeFlagsPrivate(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTreeNodeFlagsPrivate):ImGuiTreeNodeFlagsPrivate;inline;
-begin
-  Result:= ImGuiTreeNodeFlagsPrivate(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTreeNodeFlagsPrivate): ImGuiTreeNodeFlagsPrivate;
-begin
-  Result:= ImGuiTreeNodeFlagsPrivate(not Ord(a));
-end;
-
-// ImGuiTreeNodeFlags
-operator and (const a,b:ImGuiTreeNodeFlags):ImGuiTreeNodeFlags;inline;
-begin
-  Result:= ImGuiTreeNodeFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTreeNodeFlags):ImGuiTreeNodeFlags;inline;
-begin
-  Result:= ImGuiTreeNodeFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTreeNodeFlags): ImGuiTreeNodeFlags;
-begin
-  Result:= ImGuiTreeNodeFlags(not Ord(a));
-end;
-
-// ImGuiTypingSelectFlags
-operator and (const a,b:ImGuiTypingSelectFlags):ImGuiTypingSelectFlags;inline;
-begin
-  Result:= ImGuiTypingSelectFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiTypingSelectFlags):ImGuiTypingSelectFlags;inline;
-begin
-  Result:= ImGuiTypingSelectFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiTypingSelectFlags): ImGuiTypingSelectFlags;
-begin
-  Result:= ImGuiTypingSelectFlags(not Ord(a));
-end;
-
-// ImGuiViewportFlags
-operator and (const a,b:ImGuiViewportFlags):ImGuiViewportFlags;inline;
-begin
-  Result:= ImGuiViewportFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiViewportFlags):ImGuiViewportFlags;inline;
-begin
-  Result:= ImGuiViewportFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiViewportFlags): ImGuiViewportFlags;
-begin
-  Result:= ImGuiViewportFlags(not Ord(a));
-end;
-
-// ImGuiWindowDockStyleCol
-operator and (const a,b:ImGuiWindowDockStyleCol):ImGuiWindowDockStyleCol;inline;
-begin
-  Result:= ImGuiWindowDockStyleCol(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiWindowDockStyleCol):ImGuiWindowDockStyleCol;inline;
-begin
-  Result:= ImGuiWindowDockStyleCol(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiWindowDockStyleCol): ImGuiWindowDockStyleCol;
-begin
-  Result:= ImGuiWindowDockStyleCol(not Ord(a));
-end;
-
-// ImGuiWindowFlags
-operator and (const a,b:ImGuiWindowFlags):ImGuiWindowFlags;inline;
-begin
-  Result:= ImGuiWindowFlags(Ord(a) and Ord(b));
-end;
-operator or (const a,b:ImGuiWindowFlags):ImGuiWindowFlags;inline;
-begin
-  Result:= ImGuiWindowFlags(Ord(a) or Ord(b));
-end;
-operator not(const a: ImGuiWindowFlags): ImGuiWindowFlags;
-begin
-  Result:= ImGuiWindowFlags(not Ord(a));
-end;
+Const
+  ImGuiWindowFlags_None = 0;
+  ImGuiWindowFlags_NoTitleBar = 1 shl 0;
+  ImGuiWindowFlags_NoResize = 1 shl 1;
+  ImGuiWindowFlags_NoMove = 1 shl 2;
+  ImGuiWindowFlags_NoScrollbar = 1 shl 3;
+  ImGuiWindowFlags_NoScrollWithMouse = 1 shl 4;
+  ImGuiWindowFlags_NoCollapse = 1 shl 5;
+  ImGuiWindowFlags_AlwaysAutoResize = 1 shl 6;
+  ImGuiWindowFlags_NoBackground = 1 shl 7;
+  ImGuiWindowFlags_NoSavedSettings = 1 shl 8;
+  ImGuiWindowFlags_NoMouseInputs = 1 shl 9;
+  ImGuiWindowFlags_MenuBar = 1 shl 10;
+  ImGuiWindowFlags_HorizontalScrollbar = 1 shl 11;
+  ImGuiWindowFlags_NoFocusOnAppearing = 1 shl 12;
+  ImGuiWindowFlags_NoBringToFrontOnFocus = 1 shl 13;
+  ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 shl 14;
+  ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1shl 15;
+  ImGuiWindowFlags_NoNavInputs = 1 shl 16;
+  ImGuiWindowFlags_NoNavFocus = 1 shl 17;
+  ImGuiWindowFlags_UnsavedDocument = 1 shl 18;
+  ImGuiWindowFlags_NoDocking = 1 shl 19;
+  ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs or ImGuiWindowFlags_NoNavFocus;
+  ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar or ImGuiWindowFlags_NoResize or ImGuiWindowFlags_NoScrollbar or ImGuiWindowFlags_NoCollapse;
+  ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs or ImGuiWindowFlags_NoNavInputs or ImGuiWindowFlags_NoNavFocus;
+  ImGuiWindowFlags_NavFlattened = 1 shl 23;
+  ImGuiWindowFlags_ChildWindow = 1 shl 24;
+  ImGuiWindowFlags_Tooltip = 1 shl 25;
+  ImGuiWindowFlags_Popup = 1 shl 26;
+  ImGuiWindowFlags_Modal = 1 shl 27;
+  ImGuiWindowFlags_ChildMenu = 1 shl 28;
+  ImGuiWindowFlags_DockNodeHost = 1 shl 29;
+
+
+Const
+  ImGuiWindowDockStyleCol_Text = 0;
+  ImGuiWindowDockStyleCol_Tab = 1;
+  ImGuiWindowDockStyleCol_TabHovered = 2;
+  ImGuiWindowDockStyleCol_TabActive = 3;
+  ImGuiWindowDockStyleCol_TabUnfocused = 4;
+  ImGuiWindowDockStyleCol_TabUnfocusedActive = 5;
+  ImGuiWindowDockStyleCol_COUNT = 6;
+
+
+Const
+  ImGuiViewportFlags_None = 0;
+  ImGuiViewportFlags_IsPlatformWindow = 1 shl 0;
+  ImGuiViewportFlags_IsPlatformMonitor = 1 shl 1;
+  ImGuiViewportFlags_OwnedByApp = 1 shl 2;
+  ImGuiViewportFlags_NoDecoration = 1 shl 3;
+  ImGuiViewportFlags_NoTaskBarIcon = 1 shl 4;
+  ImGuiViewportFlags_NoFocusOnAppearing = 1 shl 5;
+  ImGuiViewportFlags_NoFocusOnClick = 1 shl 6;
+  ImGuiViewportFlags_NoInputs = 1 shl 7;
+  ImGuiViewportFlags_NoRendererClear = 1 shl 8;
+  ImGuiViewportFlags_NoAutoMerge = 1 shl 9;
+  ImGuiViewportFlags_TopMost = 1 shl 10;
+  ImGuiViewportFlags_CanHostOtherWindows = 1 shl 11;
+  ImGuiViewportFlags_IsMinimized = 1 shl 12;
+  ImGuiViewportFlags_IsFocused = 1 shl 13;
+
+
+Const
+  ImGuiTypingSelectFlags_None = 0;
+  ImGuiTypingSelectFlags_AllowBackspace = 1 shl 0;
+  ImGuiTypingSelectFlags_AllowSingleCharMode = 1 shl 1;
+
+
+Const
+  ImGuiTreeNodeFlags_None = 0;
+  ImGuiTreeNodeFlags_Selected = 1 shl 0;
+  ImGuiTreeNodeFlags_Framed = 1 shl 1;
+  ImGuiTreeNodeFlags_AllowOverlap = 1 shl 2;
+  ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 shl 3;
+  ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 shl 4;
+  ImGuiTreeNodeFlags_DefaultOpen = 1 shl 5;
+  ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 shl 6;
+  ImGuiTreeNodeFlags_OpenOnArrow = 1 shl 7;
+  ImGuiTreeNodeFlags_Leaf = 1 shl 8;
+  ImGuiTreeNodeFlags_Bullet = 1 shl 9;
+  ImGuiTreeNodeFlags_FramePadding = 1 shl 10;
+  ImGuiTreeNodeFlags_SpanAvailWidth = 1 shl 11;
+  ImGuiTreeNodeFlags_SpanFullWidth = 1 shl 12;
+  ImGuiTreeNodeFlags_SpanAllColumns = 1 shl 13;
+  ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 shl 14;
+  ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed or ImGuiTreeNodeFlags_NoTreePushOnOpen or ImGuiTreeNodeFlags_NoAutoOpenOnLog;
+
+
+Const
+  ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 shl 20;
+  ImGuiTreeNodeFlags_UpsideDownArrow = 1 shl 21;
+
+
+Const
+  ImGuiTooltipFlags_None = 0;
+  ImGuiTooltipFlags_OverridePrevious = 1 shl 1;
+
+
+Const
+  ImGuiTextFlags_None = 0;
+  ImGuiTextFlags_NoWidthForLargeClippedText = 1 shl 0;
+
+
+Const
+  ImGuiTableRowFlags_None = 0;
+  ImGuiTableRowFlags_Headers = 1 shl 0;
+
+
+Const
+  ImGuiTableFlags_None = 0;
+  ImGuiTableFlags_Resizable = 1 shl 0;
+  ImGuiTableFlags_Reorderable = 1 shl 1;
+  ImGuiTableFlags_Hideable = 1 shl 2;
+  ImGuiTableFlags_Sortable = 1 shl 3;
+  ImGuiTableFlags_NoSavedSettings = 1 shl 4;
+  ImGuiTableFlags_ContextMenuInBody = 1 shl 5;
+  ImGuiTableFlags_RowBg = 1 shl 6;
+  ImGuiTableFlags_BordersInnerH = 1 shl 7;
+  ImGuiTableFlags_BordersOuterH = 1 shl 8;
+  ImGuiTableFlags_BordersInnerV = 1 shl 9;
+  ImGuiTableFlags_BordersOuterV = 1 shl 10;
+  ImGuiTableFlags_BordersH = ImGuiTableFlags_BordersInnerH or ImGuiTableFlags_BordersOuterH;
+  ImGuiTableFlags_BordersV = ImGuiTableFlags_BordersInnerV or ImGuiTableFlags_BordersOuterV;
+  ImGuiTableFlags_BordersInner = ImGuiTableFlags_BordersInnerV or ImGuiTableFlags_BordersInnerH;
+  ImGuiTableFlags_BordersOuter = ImGuiTableFlags_BordersOuterV or ImGuiTableFlags_BordersOuterH;
+  ImGuiTableFlags_Borders = ImGuiTableFlags_BordersInner or ImGuiTableFlags_BordersOuter;
+  ImGuiTableFlags_NoBordersInBody = 1 shl 11;
+  ImGuiTableFlags_NoBordersInBodyUntilResize = 1 shl 12;
+  ImGuiTableFlags_SizingFixedFit = 1 shl 13;
+  ImGuiTableFlags_SizingFixedSame = 2 shl 13;
+  ImGuiTableFlags_SizingStretchProp = 3 shl 13;
+  ImGuiTableFlags_SizingStretchSame = 4 shl 13;
+  ImGuiTableFlags_NoHostExtendX = 1 shl 16;
+  ImGuiTableFlags_NoHostExtendY = 1 shl 17;
+  ImGuiTableFlags_NoKeepColumnsVisible = 1 shl 18;
+  ImGuiTableFlags_PreciseWidths = 1 shl 19;
+  ImGuiTableFlags_NoClip = 1 shl 20;
+  ImGuiTableFlags_PadOuterX = 1 shl 21;
+  ImGuiTableFlags_NoPadOuterX = 1 shl 22;
+  ImGuiTableFlags_NoPadInnerX = 1 shl 23;
+  ImGuiTableFlags_ScrollX = 1 shl 24;
+  ImGuiTableFlags_ScrollY = 1 shl 25;
+  ImGuiTableFlags_SortMulti = 1 shl 26;
+  ImGuiTableFlags_SortTristate = 1 shl 27;
+  ImGuiTableFlags_HighlightHoveredColumn = 1 shl 28;
+  ImGuiTableFlags_SizingMask_ = ImGuiTableFlags_SizingFixedFit or ImGuiTableFlags_SizingFixedSame or ImGuiTableFlags_SizingStretchProp or ImGuiTableFlags_SizingStretchSame;
+
+
+Const
+  ImGuiTableColumnFlags_None = 0;
+  ImGuiTableColumnFlags_Disabled = 1 shl 0;
+  ImGuiTableColumnFlags_DefaultHide = 1 shl 1;
+  ImGuiTableColumnFlags_DefaultSort = 1 shl 2;
+  ImGuiTableColumnFlags_WidthStretch = 1 shl 3;
+  ImGuiTableColumnFlags_WidthFixed = 1 shl 4;
+  ImGuiTableColumnFlags_NoResize = 1 shl 5;
+  ImGuiTableColumnFlags_NoReorder = 1 shl 6;
+  ImGuiTableColumnFlags_NoHide = 1 shl 7;
+  ImGuiTableColumnFlags_NoClip = 1 shl 8;
+  ImGuiTableColumnFlags_NoSort = 1 shl 9;
+  ImGuiTableColumnFlags_NoSortAscending = 1 shl 10;
+  ImGuiTableColumnFlags_NoSortDescending = 1 shl 11;
+  ImGuiTableColumnFlags_NoHeaderLabel = 1 shl 12;
+  ImGuiTableColumnFlags_NoHeaderWidth = 1 shl 13;
+  ImGuiTableColumnFlags_PreferSortAscending = 1 shl 14;
+  ImGuiTableColumnFlags_PreferSortDescending = 1 shl 15;
+  ImGuiTableColumnFlags_IndentEnable = 1 shl 16;
+  ImGuiTableColumnFlags_IndentDisable = 1 shl 17;
+  ImGuiTableColumnFlags_AngledHeader = 1 shl 18;
+  ImGuiTableColumnFlags_IsEnabled = 1 shl 24;
+  ImGuiTableColumnFlags_IsVisible = 1 shl 25;
+  ImGuiTableColumnFlags_IsSorted = 1 shl 26;
+  ImGuiTableColumnFlags_IsHovered = 1 shl 27;
+  ImGuiTableColumnFlags_WidthMask_ = ImGuiTableColumnFlags_WidthStretch or ImGuiTableColumnFlags_WidthFixed;
+  ImGuiTableColumnFlags_IndentMask_ = ImGuiTableColumnFlags_IndentEnable or ImGuiTableColumnFlags_IndentDisable;
+  ImGuiTableColumnFlags_StatusMask_ = ImGuiTableColumnFlags_IsEnabled or ImGuiTableColumnFlags_IsVisible or ImGuiTableColumnFlags_IsSorted or ImGuiTableColumnFlags_IsHovered;
+  ImGuiTableColumnFlags_NoDirectResize_ = 1 shl 30;
+
+
+Const
+  ImGuiTableBgTarget_None = 0;
+  ImGuiTableBgTarget_RowBg0 = 1;
+  ImGuiTableBgTarget_RowBg1 = 2;
+  ImGuiTableBgTarget_CellBg = 3;
+
+
+Const
+  ImGuiTabItemFlags_None = 0;
+  ImGuiTabItemFlags_UnsavedDocument = 1 shl 0;
+  ImGuiTabItemFlags_SetSelected = 1 shl 1;
+  ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 shl 2;
+  ImGuiTabItemFlags_NoPushId = 1 shl 3;
+  ImGuiTabItemFlags_NoTooltip = 1 shl 4;
+  ImGuiTabItemFlags_NoReorder = 1 shl 5;
+  ImGuiTabItemFlags_Leading = 1 shl 6;
+  ImGuiTabItemFlags_Trailing = 1 shl 7;
+
+
+Const
+  ImGuiTabItemFlags_SectionMask_ = ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing;
+  ImGuiTabItemFlags_NoCloseButton = 1 shl 20;
+  ImGuiTabItemFlags_Button = 1 shl 21;
+  ImGuiTabItemFlags_Unsorted = 1 shl 22;
+
+
+Const
+  ImGuiTabBarFlags_None = 0;
+  ImGuiTabBarFlags_Reorderable = 1 shl 0;
+  ImGuiTabBarFlags_AutoSelectNewTabs = 1 shl 1;
+  ImGuiTabBarFlags_TabListPopupButton = 1 shl 2;
+  ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 shl 3;
+  ImGuiTabBarFlags_NoTabListScrollingButtons = 1 shl 4;
+  ImGuiTabBarFlags_NoTooltip = 1 shl 5;
+  ImGuiTabBarFlags_FittingPolicyResizeDown = 1 shl 6;
+  ImGuiTabBarFlags_FittingPolicyScroll = 1 shl 7;
+  ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_FittingPolicyResizeDown or ImGuiTabBarFlags_FittingPolicyScroll;
+  ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown;
+
+
+Const
+  ImGuiTabBarFlags_DockNode = 1 shl 20;
+  ImGuiTabBarFlags_IsFocused = 1 shl 21;
+  ImGuiTabBarFlags_SaveSettings = 1 shl 22;
+
+
+Const
+  ImGuiStyleVar_Alpha = 0;
+  ImGuiStyleVar_DisabledAlpha = 1;
+  ImGuiStyleVar_WindowPadding = 2;
+  ImGuiStyleVar_WindowRounding = 3;
+  ImGuiStyleVar_WindowBorderSize = 4;
+  ImGuiStyleVar_WindowMinSize = 5;
+  ImGuiStyleVar_WindowTitleAlign = 6;
+  ImGuiStyleVar_ChildRounding = 7;
+  ImGuiStyleVar_ChildBorderSize = 8;
+  ImGuiStyleVar_PopupRounding = 9;
+  ImGuiStyleVar_PopupBorderSize = 10;
+  ImGuiStyleVar_FramePadding = 11;
+  ImGuiStyleVar_FrameRounding = 12;
+  ImGuiStyleVar_FrameBorderSize = 13;
+  ImGuiStyleVar_ItemSpacing = 14;
+  ImGuiStyleVar_ItemInnerSpacing = 15;
+  ImGuiStyleVar_IndentSpacing = 16;
+  ImGuiStyleVar_CellPadding = 17;
+  ImGuiStyleVar_ScrollbarSize = 18;
+  ImGuiStyleVar_ScrollbarRounding = 19;
+  ImGuiStyleVar_GrabMinSize = 20;
+  ImGuiStyleVar_GrabRounding = 21;
+  ImGuiStyleVar_TabRounding = 22;
+  ImGuiStyleVar_TabBarBorderSize = 23;
+  ImGuiStyleVar_ButtonTextAlign = 24;
+  ImGuiStyleVar_SelectableTextAlign = 25;
+  ImGuiStyleVar_SeparatorTextBorderSize = 26;
+  ImGuiStyleVar_SeparatorTextAlign = 27;
+  ImGuiStyleVar_SeparatorTextPadding = 28;
+  ImGuiStyleVar_DockingSeparatorSize = 29;
+  ImGuiStyleVar_COUNT = 30;
+
+
+Const
+  ImGuiSortDirection_None = 0;
+  ImGuiSortDirection_Ascending = 1;
+  ImGuiSortDirection_Descending = 2;
+
+
+Const
+  ImGuiSliderFlags_None = 0;
+  ImGuiSliderFlags_AlwaysClamp = 1 shl 4;
+  ImGuiSliderFlags_Logarithmic = 1 shl 5;
+  ImGuiSliderFlags_NoRoundToFormat = 1 shl 6;
+  ImGuiSliderFlags_NoInput = 1 shl 7;
+  ImGuiSliderFlags_InvalidMask_ = $7000000F;
+
+
+Const
+  ImGuiSliderFlags_Vertical = 1 shl 20;
+  ImGuiSliderFlags_ReadOnly = 1 shl 21;
+
+
+Const
+  ImGuiSeparatorFlags_None = 0;
+  ImGuiSeparatorFlags_Horizontal = 1 shl 0;
+  ImGuiSeparatorFlags_Vertical = 1 shl 1;
+  ImGuiSeparatorFlags_SpanAllColumns = 1 shl 2;
+
+
+Const
+  ImGuiSelectableFlags_None = 0;
+  ImGuiSelectableFlags_DontClosePopups = 1 shl 0;
+  ImGuiSelectableFlags_SpanAllColumns = 1 shl 1;
+  ImGuiSelectableFlags_AllowDoubleClick = 1 shl 2;
+  ImGuiSelectableFlags_Disabled = 1 shl 3;
+  ImGuiSelectableFlags_AllowOverlap = 1 shl 4;
+
+
+Const
+  ImGuiSelectableFlags_NoHoldingActiveID = 1 shl 20;
+  ImGuiSelectableFlags_SelectOnNav = 1 shl 21;
+  ImGuiSelectableFlags_SelectOnClick = 1 shl 22;
+  ImGuiSelectableFlags_SelectOnRelease = 1 shl 23;
+  ImGuiSelectableFlags_SpanAvailWidth = 1 shl 24;
+  ImGuiSelectableFlags_SetNavIdOnHover = 1 shl 25;
+  ImGuiSelectableFlags_NoPadWithHalfSpacing = 1 shl 26;
+  ImGuiSelectableFlags_NoSetKeyOwner = 1 shl 27;
+
+
+Const
+  ImGuiScrollFlags_None = 0;
+  ImGuiScrollFlags_KeepVisibleEdgeX = 1 shl 0;
+  ImGuiScrollFlags_KeepVisibleEdgeY = 1 shl 1;
+  ImGuiScrollFlags_KeepVisibleCenterX = 1 shl 2;
+  ImGuiScrollFlags_KeepVisibleCenterY = 1 shl 3;
+  ImGuiScrollFlags_AlwaysCenterX = 1 shl 4;
+  ImGuiScrollFlags_AlwaysCenterY = 1 shl 5;
+  ImGuiScrollFlags_NoScrollParent = 1 shl 6;
+  ImGuiScrollFlags_MaskX_ = ImGuiScrollFlags_KeepVisibleEdgeX or ImGuiScrollFlags_KeepVisibleCenterX or ImGuiScrollFlags_AlwaysCenterX;
+  ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY or ImGuiScrollFlags_KeepVisibleCenterY or ImGuiScrollFlags_AlwaysCenterY;
+
+
+Const
+  ImGuiPopupPositionPolicy_Default = 0;
+  ImGuiPopupPositionPolicy_ComboBox = 1;
+  ImGuiPopupPositionPolicy_Tooltip = 2;
+
+
+Const
+  ImGuiPopupFlags_None = 0;
+  ImGuiPopupFlags_MouseButtonLeft = 0;
+  ImGuiPopupFlags_MouseButtonRight = 1;
+  ImGuiPopupFlags_MouseButtonMiddle = 2;
+  ImGuiPopupFlags_MouseButtonMask_ = $1F;
+  ImGuiPopupFlags_MouseButtonDefault_ = 1;
+  ImGuiPopupFlags_NoOpenOverExistingPopup = 1 shl 5;
+  ImGuiPopupFlags_NoOpenOverItems = 1 shl 6;
+  ImGuiPopupFlags_AnyPopupId = 1 shl 7;
+  ImGuiPopupFlags_AnyPopupLevel = 1 shl 8;
+  ImGuiPopupFlags_AnyPopup = ImGuiPopupFlags_AnyPopupId or ImGuiPopupFlags_AnyPopupLevel;
+
+
+Const
+  ImGuiPlotType_Lines = 0;
+  ImGuiPlotType_Histogram = 1;
+
+
+Const
+  ImGuiOldColumnFlags_None = 0;
+  ImGuiOldColumnFlags_NoBorder = 1 shl 0;
+  ImGuiOldColumnFlags_NoResize = 1 shl 1;
+  ImGuiOldColumnFlags_NoPreserveWidths = 1 shl 2;
+  ImGuiOldColumnFlags_NoForceWithinWindow = 1 shl 3;
+  ImGuiOldColumnFlags_GrowParentContentsSize = 1 shl 4;
+
+
+Const
+  ImGuiNextWindowDataFlags_None = 0;
+  ImGuiNextWindowDataFlags_HasPos = 1 shl 0;
+  ImGuiNextWindowDataFlags_HasSize = 1 shl 1;
+  ImGuiNextWindowDataFlags_HasContentSize = 1 shl 2;
+  ImGuiNextWindowDataFlags_HasCollapsed = 1 shl 3;
+  ImGuiNextWindowDataFlags_HasSizeConstraint = 1 shl 4;
+  ImGuiNextWindowDataFlags_HasFocus = 1 shl 5;
+  ImGuiNextWindowDataFlags_HasBgAlpha = 1 shl 6;
+  ImGuiNextWindowDataFlags_HasScroll = 1 shl 7;
+  ImGuiNextWindowDataFlags_HasChildFlags = 1 shl 8;
+  ImGuiNextWindowDataFlags_HasViewport = 1 shl 9;
+  ImGuiNextWindowDataFlags_HasDock = 1 shl 10;
+  ImGuiNextWindowDataFlags_HasWindowClass = 1 shl 11;
+
+
+Const
+  ImGuiNextItemDataFlags_None = 0;
+  ImGuiNextItemDataFlags_HasWidth = 1 shl 0;
+  ImGuiNextItemDataFlags_HasOpen = 1 shl 1;
+
+
+Const
+  ImGuiNavMoveFlags_None = 0;
+  ImGuiNavMoveFlags_LoopX = 1 shl 0;
+  ImGuiNavMoveFlags_LoopY = 1 shl 1;
+  ImGuiNavMoveFlags_WrapX = 1 shl 2;
+  ImGuiNavMoveFlags_WrapY = 1 shl 3;
+  ImGuiNavMoveFlags_WrapMask_ = ImGuiNavMoveFlags_LoopX or ImGuiNavMoveFlags_LoopY or ImGuiNavMoveFlags_WrapX or ImGuiNavMoveFlags_WrapY;
+  ImGuiNavMoveFlags_AllowCurrentNavId = 1 shl 4;
+  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 shl 5;
+  ImGuiNavMoveFlags_ScrollToEdgeY = 1 shl 6;
+  ImGuiNavMoveFlags_Forwarded = 1 shl 7;
+  ImGuiNavMoveFlags_DebugNoResult = 1 shl 8;
+  ImGuiNavMoveFlags_FocusApi = 1 shl 9;
+  ImGuiNavMoveFlags_IsTabbing = 1 shl 10;
+  ImGuiNavMoveFlags_IsPageMove = 1 shl 11;
+  ImGuiNavMoveFlags_Activate = 1 shl 12;
+  ImGuiNavMoveFlags_NoSelect = 1 shl 13;
+  ImGuiNavMoveFlags_NoSetNavHighlight = 1 shl 14;
+
+
+Const
+  ImGuiNavLayer_Main = 0;
+  ImGuiNavLayer_Menu = 1;
+  ImGuiNavLayer_COUNT = 2;
+
+
+Const
+  ImGuiNavHighlightFlags_None = 0;
+  ImGuiNavHighlightFlags_TypeDefault = 1 shl 0;
+  ImGuiNavHighlightFlags_TypeThin = 1 shl 1;
+  ImGuiNavHighlightFlags_AlwaysDraw = 1 shl 2;
+  ImGuiNavHighlightFlags_NoRounding = 1 shl 3;
+
+
+Const
+  ImGuiMouseSource_Mouse = 0;
+  ImGuiMouseSource_TouchScreen = 1;
+  ImGuiMouseSource_Pen = 2;
+  ImGuiMouseSource_COUNT = 3;
+
+
+Const
+  ImGuiMouseCursor_None = -1;
+  ImGuiMouseCursor_Arrow = 0;
+  ImGuiMouseCursor_TextInput = 1;
+  ImGuiMouseCursor_ResizeAll = 2;
+  ImGuiMouseCursor_ResizeNS = 3;
+  ImGuiMouseCursor_ResizeEW = 4;
+  ImGuiMouseCursor_ResizeNESW = 5;
+  ImGuiMouseCursor_ResizeNWSE = 6;
+  ImGuiMouseCursor_Hand = 7;
+  ImGuiMouseCursor_NotAllowed = 8;
+  ImGuiMouseCursor_COUNT = 9;
+
+
+Const
+  ImGuiMouseButton_Left = 0;
+  ImGuiMouseButton_Right = 1;
+  ImGuiMouseButton_Middle = 2;
+  ImGuiMouseButton_COUNT = 5;
+
+
+Const
+  ImGuiLogType_None = 0;
+  ImGuiLogType_TTY = 1;
+  ImGuiLogType_File = 2;
+  ImGuiLogType_Buffer = 3;
+  ImGuiLogType_Clipboard = 4;
+
+
+Const
+  ImGuiLocKey_VersionStr = 0;
+  ImGuiLocKey_TableSizeOne = 1;
+  ImGuiLocKey_TableSizeAllFit = 2;
+  ImGuiLocKey_TableSizeAllDefault = 3;
+  ImGuiLocKey_TableResetOrder = 4;
+  ImGuiLocKey_WindowingMainMenuBar = 5;
+  ImGuiLocKey_WindowingPopup = 6;
+  ImGuiLocKey_WindowingUntitled = 7;
+  ImGuiLocKey_DockingHideTabBar = 8;
+  ImGuiLocKey_DockingHoldShiftToDock = 9;
+  ImGuiLocKey_DockingDragToUndockOrMoveNode = 10;
+  ImGuiLocKey_COUNT = 11;
+
+
+Const
+  ImGuiLayoutType_Horizontal = 0;
+  ImGuiLayoutType_Vertical = 1;
+
+
+Const
+  ImGuiKey_None = 0;
+  ImGuiKey_Tab = 512;
+  ImGuiKey_LeftArrow = 513;
+  ImGuiKey_RightArrow = 514;
+  ImGuiKey_UpArrow = 515;
+  ImGuiKey_DownArrow = 516;
+  ImGuiKey_PageUp = 517;
+  ImGuiKey_PageDown = 518;
+  ImGuiKey_Home = 519;
+  ImGuiKey_End = 520;
+  ImGuiKey_Insert = 521;
+  ImGuiKey_Delete = 522;
+  ImGuiKey_Backspace = 523;
+  ImGuiKey_Space = 524;
+  ImGuiKey_Enter = 525;
+  ImGuiKey_Escape = 526;
+  ImGuiKey_LeftCtrl = 527;
+  ImGuiKey_LeftShift = 528;
+  ImGuiKey_LeftAlt = 529;
+  ImGuiKey_LeftSuper = 530;
+  ImGuiKey_RightCtrl = 531;
+  ImGuiKey_RightShift = 532;
+  ImGuiKey_RightAlt = 533;
+  ImGuiKey_RightSuper = 534;
+  ImGuiKey_Menu = 535;
+  ImGuiKey_0 = 536;
+  ImGuiKey_1 = 537;
+  ImGuiKey_2 = 538;
+  ImGuiKey_3 = 539;
+  ImGuiKey_4 = 540;
+  ImGuiKey_5 = 541;
+  ImGuiKey_6 = 542;
+  ImGuiKey_7 = 543;
+  ImGuiKey_8 = 544;
+  ImGuiKey_9 = 545;
+  ImGuiKey_A = 546;
+  ImGuiKey_B = 547;
+  ImGuiKey_C = 548;
+  ImGuiKey_D = 549;
+  ImGuiKey_E = 550;
+  ImGuiKey_F = 551;
+  ImGuiKey_G = 552;
+  ImGuiKey_H = 553;
+  ImGuiKey_I = 554;
+  ImGuiKey_J = 555;
+  ImGuiKey_K = 556;
+  ImGuiKey_L = 557;
+  ImGuiKey_M = 558;
+  ImGuiKey_N = 559;
+  ImGuiKey_O = 560;
+  ImGuiKey_P = 561;
+  ImGuiKey_Q = 562;
+  ImGuiKey_R = 563;
+  ImGuiKey_S = 564;
+  ImGuiKey_T = 565;
+  ImGuiKey_U = 566;
+  ImGuiKey_V = 567;
+  ImGuiKey_W = 568;
+  ImGuiKey_X = 569;
+  ImGuiKey_Y = 570;
+  ImGuiKey_Z = 571;
+  ImGuiKey_F1 = 572;
+  ImGuiKey_F2 = 573;
+  ImGuiKey_F3 = 574;
+  ImGuiKey_F4 = 575;
+  ImGuiKey_F5 = 576;
+  ImGuiKey_F6 = 577;
+  ImGuiKey_F7 = 578;
+  ImGuiKey_F8 = 579;
+  ImGuiKey_F9 = 580;
+  ImGuiKey_F10 = 581;
+  ImGuiKey_F11 = 582;
+  ImGuiKey_F12 = 583;
+  ImGuiKey_F13 = 584;
+  ImGuiKey_F14 = 585;
+  ImGuiKey_F15 = 586;
+  ImGuiKey_F16 = 587;
+  ImGuiKey_F17 = 588;
+  ImGuiKey_F18 = 589;
+  ImGuiKey_F19 = 590;
+  ImGuiKey_F20 = 591;
+  ImGuiKey_F21 = 592;
+  ImGuiKey_F22 = 593;
+  ImGuiKey_F23 = 594;
+  ImGuiKey_F24 = 595;
+  ImGuiKey_Apostrophe = 596;
+  ImGuiKey_Comma = 597;
+  ImGuiKey_Minus = 598;
+  ImGuiKey_Period = 599;
+  ImGuiKey_Slash = 600;
+  ImGuiKey_Semicolon = 601;
+  ImGuiKey_Equal = 602;
+  ImGuiKey_LeftBracket = 603;
+  ImGuiKey_Backslash = 604;
+  ImGuiKey_RightBracket = 605;
+  ImGuiKey_GraveAccent = 606;
+  ImGuiKey_CapsLock = 607;
+  ImGuiKey_ScrollLock = 608;
+  ImGuiKey_NumLock = 609;
+  ImGuiKey_PrintScreen = 610;
+  ImGuiKey_Pause = 611;
+  ImGuiKey_Keypad0 = 612;
+  ImGuiKey_Keypad1 = 613;
+  ImGuiKey_Keypad2 = 614;
+  ImGuiKey_Keypad3 = 615;
+  ImGuiKey_Keypad4 = 616;
+  ImGuiKey_Keypad5 = 617;
+  ImGuiKey_Keypad6 = 618;
+  ImGuiKey_Keypad7 = 619;
+  ImGuiKey_Keypad8 = 620;
+  ImGuiKey_Keypad9 = 621;
+  ImGuiKey_KeypadDecimal = 622;
+  ImGuiKey_KeypadDivide = 623;
+  ImGuiKey_KeypadMultiply = 624;
+  ImGuiKey_KeypadSubtract = 625;
+  ImGuiKey_KeypadAdd = 626;
+  ImGuiKey_KeypadEnter = 627;
+  ImGuiKey_KeypadEqual = 628;
+  ImGuiKey_AppBack = 629;
+  ImGuiKey_AppForward = 630;
+  ImGuiKey_GamepadStart = 631;
+  ImGuiKey_GamepadBack = 632;
+  ImGuiKey_GamepadFaceLeft = 633;
+  ImGuiKey_GamepadFaceRight = 634;
+  ImGuiKey_GamepadFaceUp = 635;
+  ImGuiKey_GamepadFaceDown = 636;
+  ImGuiKey_GamepadDpadLeft = 637;
+  ImGuiKey_GamepadDpadRight = 638;
+  ImGuiKey_GamepadDpadUp = 639;
+  ImGuiKey_GamepadDpadDown = 640;
+  ImGuiKey_GamepadL1 = 641;
+  ImGuiKey_GamepadR1 = 642;
+  ImGuiKey_GamepadL2 = 643;
+  ImGuiKey_GamepadR2 = 644;
+  ImGuiKey_GamepadL3 = 645;
+  ImGuiKey_GamepadR3 = 646;
+  ImGuiKey_GamepadLStickLeft = 647;
+  ImGuiKey_GamepadLStickRight = 648;
+  ImGuiKey_GamepadLStickUp = 649;
+  ImGuiKey_GamepadLStickDown = 650;
+  ImGuiKey_GamepadRStickLeft = 651;
+  ImGuiKey_GamepadRStickRight = 652;
+  ImGuiKey_GamepadRStickUp = 653;
+  ImGuiKey_GamepadRStickDown = 654;
+  ImGuiKey_MouseLeft = 655;
+  ImGuiKey_MouseRight = 656;
+  ImGuiKey_MouseMiddle = 657;
+  ImGuiKey_MouseX1 = 658;
+  ImGuiKey_MouseX2 = 659;
+  ImGuiKey_MouseWheelX = 660;
+  ImGuiKey_MouseWheelY = 661;
+  ImGuiKey_ReservedForModCtrl = 662;
+  ImGuiKey_ReservedForModShift = 663;
+  ImGuiKey_ReservedForModAlt = 664;
+  ImGuiKey_ReservedForModSuper = 665;
+  ImGuiKey_COUNT = 666;
+  ImGuiMod_None = 0;
+  ImGuiMod_Ctrl = 1 shl 12;
+  ImGuiMod_Shift = 1 shl 13;
+  ImGuiMod_Alt = 1 shl 14;
+  ImGuiMod_Super = 1 shl 15;
+  ImGuiMod_Shortcut = 1 shl 11;
+  ImGuiMod_Mask_ = $F800;
+  ImGuiKey_NamedKey_BEGIN = 512;
+  ImGuiKey_NamedKey_END = ImGuiKey_COUNT;
+  ImGuiKey_NamedKey_COUNT = ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN;
+  ImGuiKey_KeysData_SIZE = ImGuiKey_NamedKey_COUNT;
+  ImGuiKey_KeysData_OFFSET = ImGuiKey_NamedKey_BEGIN;
+
+
+Const
+  ImGuiItemStatusFlags_None = 0;
+  ImGuiItemStatusFlags_HoveredRect = 1 shl 0;
+  ImGuiItemStatusFlags_HasDisplayRect = 1 shl 1;
+  ImGuiItemStatusFlags_Edited = 1 shl 2;
+  ImGuiItemStatusFlags_ToggledSelection = 1 shl 3;
+  ImGuiItemStatusFlags_ToggledOpen = 1 shl 4;
+  ImGuiItemStatusFlags_HasDeactivated = 1 shl 5;
+  ImGuiItemStatusFlags_Deactivated = 1 shl 6;
+  ImGuiItemStatusFlags_HoveredWindow = 1 shl 7;
+  ImGuiItemStatusFlags_FocusedByTabbing = 1 shl 8;
+  ImGuiItemStatusFlags_Visible = 1 shl 9;
+
+
+Const
+  ImGuiItemFlags_None = 0;
+  ImGuiItemFlags_NoTabStop = 1 shl 0;
+  ImGuiItemFlags_ButtonRepeat = 1 shl 1;
+  ImGuiItemFlags_Disabled = 1 shl 2;
+  ImGuiItemFlags_NoNav = 1 shl 3;
+  ImGuiItemFlags_NoNavDefaultFocus = 1 shl 4;
+  ImGuiItemFlags_SelectableDontClosePopup = 1 shl 5;
+  ImGuiItemFlags_MixedValue = 1 shl 6;
+  ImGuiItemFlags_ReadOnly = 1 shl 7;
+  ImGuiItemFlags_NoWindowHoverableCheck = 1 shl 8;
+  ImGuiItemFlags_AllowOverlap = 1 shl 9;
+  ImGuiItemFlags_Inputable = 1 shl 10;
+  ImGuiItemFlags_HasSelectionUserData = 1 shl 11;
+
+
+Const
+  ImGuiInputTextFlags_None = 0;
+  ImGuiInputTextFlags_CharsDecimal = 1 shl 0;
+  ImGuiInputTextFlags_CharsHexadecimal = 1 shl 1;
+  ImGuiInputTextFlags_CharsUppercase = 1 shl 2;
+  ImGuiInputTextFlags_CharsNoBlank = 1 shl 3;
+  ImGuiInputTextFlags_AutoSelectAll = 1 shl 4;
+  ImGuiInputTextFlags_EnterReturnsTrue = 1 shl 5;
+  ImGuiInputTextFlags_CallbackCompletion = 1 shl 6;
+  ImGuiInputTextFlags_CallbackHistory = 1 shl 7;
+  ImGuiInputTextFlags_CallbackAlways = 1 shl 8;
+  ImGuiInputTextFlags_CallbackCharFilter = 1 shl 9;
+  ImGuiInputTextFlags_AllowTabInput = 1 shl 10;
+  ImGuiInputTextFlags_CtrlEnterForNewLine = 1 shl 11;
+  ImGuiInputTextFlags_NoHorizontalScroll = 1 shl 12;
+  ImGuiInputTextFlags_AlwaysOverwrite = 1 shl 13;
+  ImGuiInputTextFlags_ReadOnly = 1 shl 14;
+  ImGuiInputTextFlags_Password = 1 shl 15;
+  ImGuiInputTextFlags_NoUndoRedo = 1 shl 16;
+  ImGuiInputTextFlags_CharsScientific = 1 shl 17;
+  ImGuiInputTextFlags_CallbackResize = 1 shl 18;
+  ImGuiInputTextFlags_CallbackEdit = 1 shl 19;
+  ImGuiInputTextFlags_EscapeClearsAll = 1 shl 20;
+
+
+Const
+  ImGuiInputTextFlags_Multiline = 1 shl 26;
+  ImGuiInputTextFlags_NoMarkEdited = 1 shl 27;
+  ImGuiInputTextFlags_MergedItem = 1 shl 28;
+
+
+Const
+  ImGuiInputSource_None = 0;
+  ImGuiInputSource_Mouse = 1;
+  ImGuiInputSource_Keyboard = 2;
+  ImGuiInputSource_Gamepad = 3;
+  ImGuiInputSource_Clipboard = 4;
+  ImGuiInputSource_COUNT = 5;
+
+
+Const
+  ImGuiInputFlags_None = 0;
+  ImGuiInputFlags_Repeat = 1 shl 0;
+  ImGuiInputFlags_RepeatRateDefault = 1 shl 1;
+  ImGuiInputFlags_RepeatRateNavMove = 1 shl 2;
+  ImGuiInputFlags_RepeatRateNavTweak = 1 shl 3;
+  ImGuiInputFlags_RepeatRateMask_ = ImGuiInputFlags_RepeatRateDefault or ImGuiInputFlags_RepeatRateNavMove or ImGuiInputFlags_RepeatRateNavTweak;
+  ImGuiInputFlags_CondHovered = 1 shl 4;
+  ImGuiInputFlags_CondActive = 1 shl 5;
+  ImGuiInputFlags_CondDefault_ = ImGuiInputFlags_CondHovered or ImGuiInputFlags_CondActive;
+  ImGuiInputFlags_CondMask_ = ImGuiInputFlags_CondHovered or ImGuiInputFlags_CondActive;
+  ImGuiInputFlags_LockThisFrame = 1 shl 6;
+  ImGuiInputFlags_LockUntilRelease = 1 shl 7;
+  ImGuiInputFlags_RouteFocused = 1 shl 8;
+  ImGuiInputFlags_RouteGlobalLow = 1 shl 9;
+  ImGuiInputFlags_RouteGlobal = 1 shl 10;
+  ImGuiInputFlags_RouteGlobalHigh = 1 shl 11;
+  ImGuiInputFlags_RouteMask_ = ImGuiInputFlags_RouteFocused or ImGuiInputFlags_RouteGlobal or ImGuiInputFlags_RouteGlobalLow or ImGuiInputFlags_RouteGlobalHigh;
+  ImGuiInputFlags_RouteAlways = 1 shl 12;
+  ImGuiInputFlags_RouteUnlessBgFocused = 1 shl 13;
+  ImGuiInputFlags_RouteExtraMask_ = ImGuiInputFlags_RouteAlways or ImGuiInputFlags_RouteUnlessBgFocused;
+  ImGuiInputFlags_SupportedByIsKeyPressed = ImGuiInputFlags_Repeat or ImGuiInputFlags_RepeatRateMask_;
+  ImGuiInputFlags_SupportedByShortcut = ImGuiInputFlags_Repeat or ImGuiInputFlags_RepeatRateMask_ or ImGuiInputFlags_RouteMask_ or ImGuiInputFlags_RouteExtraMask_;
+  ImGuiInputFlags_SupportedBySetKeyOwner = ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease;
+  ImGuiInputFlags_SupportedBySetItemKeyOwner = ImGuiInputFlags_SupportedBySetKeyOwner or ImGuiInputFlags_CondMask_;
+
+
+Const
+  ImGuiInputEventType_None = 0;
+  ImGuiInputEventType_MousePos = 1;
+  ImGuiInputEventType_MouseWheel = 2;
+  ImGuiInputEventType_MouseButton = 3;
+  ImGuiInputEventType_MouseViewport = 4;
+  ImGuiInputEventType_Key = 5;
+  ImGuiInputEventType_Text = 6;
+  ImGuiInputEventType_Focus = 7;
+  ImGuiInputEventType_COUNT = 8;
+
+
+Const
+  ImGuiHoveredFlags_None = 0;
+  ImGuiHoveredFlags_ChildWindows = 1 shl 0;
+  ImGuiHoveredFlags_RootWindow = 1 shl 1;
+  ImGuiHoveredFlags_AnyWindow = 1 shl 2;
+  ImGuiHoveredFlags_NoPopupHierarchy = 1 shl 3;
+  ImGuiHoveredFlags_DockHierarchy = 1 shl 4;
+  ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 shl 5;
+  ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 shl 7;
+  ImGuiHoveredFlags_AllowWhenOverlappedByItem = 1 shl 8;
+  ImGuiHoveredFlags_AllowWhenOverlappedByWindow = 1 shl 9;
+  ImGuiHoveredFlags_AllowWhenDisabled = 1 shl 10;
+  ImGuiHoveredFlags_NoNavOverride = 1 shl 11;
+  ImGuiHoveredFlags_AllowWhenOverlapped = ImGuiHoveredFlags_AllowWhenOverlappedByItem or ImGuiHoveredFlags_AllowWhenOverlappedByWindow;
+  ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup or ImGuiHoveredFlags_AllowWhenBlockedByActiveItem or ImGuiHoveredFlags_AllowWhenOverlapped;
+  ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow or ImGuiHoveredFlags_ChildWindows;
+  ImGuiHoveredFlags_ForTooltip = 1 shl 12;
+  ImGuiHoveredFlags_Stationary = 1 shl 13;
+  ImGuiHoveredFlags_DelayNone = 1 shl 14;
+  ImGuiHoveredFlags_DelayShort = 1 shl 15;
+  ImGuiHoveredFlags_DelayNormal = 1 shl 16;
+  ImGuiHoveredFlags_NoSharedDelay = 1 shl 17;
+
+
+Const
+  ImGuiHoveredFlags_DelayMask_ = ImGuiHoveredFlags_DelayNone or ImGuiHoveredFlags_DelayShort or ImGuiHoveredFlags_DelayNormal or ImGuiHoveredFlags_NoSharedDelay;
+  ImGuiHoveredFlags_AllowedMaskForIsWindowHovered = ImGuiHoveredFlags_ChildWindows or ImGuiHoveredFlags_RootWindow or ImGuiHoveredFlags_AnyWindow or ImGuiHoveredFlags_NoPopupHierarchy or ImGuiHoveredFlags_DockHierarchy or ImGuiHoveredFlags_AllowWhenBlockedByPopup or ImGuiHoveredFlags_AllowWhenBlockedByActiveItem or ImGuiHoveredFlags_ForTooltip or ImGuiHoveredFlags_Stationary;
+  ImGuiHoveredFlags_AllowedMaskForIsItemHovered = ImGuiHoveredFlags_AllowWhenBlockedByPopup or ImGuiHoveredFlags_AllowWhenBlockedByActiveItem or ImGuiHoveredFlags_AllowWhenOverlapped or ImGuiHoveredFlags_AllowWhenDisabled or ImGuiHoveredFlags_NoNavOverride or ImGuiHoveredFlags_ForTooltip or ImGuiHoveredFlags_Stationary or ImGuiHoveredFlags_DelayMask_;
+
+
+Const
+  ImGuiFocusedFlags_None = 0;
+  ImGuiFocusedFlags_ChildWindows = 1 shl 0;
+  ImGuiFocusedFlags_RootWindow = 1 shl 1;
+  ImGuiFocusedFlags_AnyWindow = 1 shl 2;
+  ImGuiFocusedFlags_NoPopupHierarchy = 1 shl 3;
+  ImGuiFocusedFlags_DockHierarchy = 1 shl 4;
+  ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow or ImGuiFocusedFlags_ChildWindows;
+
+
+Const
+  ImGuiFocusRequestFlags_None = 0;
+  ImGuiFocusRequestFlags_RestoreFocusedChild = 1 shl 0;
+  ImGuiFocusRequestFlags_UnlessBelowModal = 1 shl 1;
+
+
+Const
+  ImGuiDragDropFlags_None = 0;
+  ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 shl 0;
+  ImGuiDragDropFlags_SourceNoDisableHover = 1 shl 1;
+  ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 shl 2;
+  ImGuiDragDropFlags_SourceAllowNullID = 1 shl 3;
+  ImGuiDragDropFlags_SourceExtern = 1 shl 4;
+  ImGuiDragDropFlags_SourceAutoExpirePayload = 1 shl 5;
+  ImGuiDragDropFlags_AcceptBeforeDelivery = 1 shl 10;
+  ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 shl 11;
+  ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 shl 12;
+  ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery or ImGuiDragDropFlags_AcceptNoDrawDefaultRect;
+
+
+Const
+  ImGuiDockNodeState_Unknown = 0;
+  ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow = 1;
+  ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing = 2;
+  ImGuiDockNodeState_HostWindowVisible = 3;
+
+
+Const
+  ImGuiDockNodeFlags_None = 0;
+  ImGuiDockNodeFlags_KeepAliveOnly = 1 shl 0;
+  ImGuiDockNodeFlags_NoDockingOverCentralNode = 1 shl 2;
+  ImGuiDockNodeFlags_PassthruCentralNode = 1 shl 3;
+  ImGuiDockNodeFlags_NoDockingSplit = 1 shl 4;
+  ImGuiDockNodeFlags_NoResize = 1 shl 5;
+  ImGuiDockNodeFlags_AutoHideTabBar = 1 shl 6;
+  ImGuiDockNodeFlags_NoUndocking = 1 shl 7;
+
+
+Const
+  ImGuiDockNodeFlags_DockSpace = 1 shl 10;
+  ImGuiDockNodeFlags_CentralNode = 1 shl 11;
+  ImGuiDockNodeFlags_NoTabBar = 1 shl 12;
+  ImGuiDockNodeFlags_HiddenTabBar = 1 shl 13;
+  ImGuiDockNodeFlags_NoWindowMenuButton = 1 shl 14;
+  ImGuiDockNodeFlags_NoCloseButton = 1 shl 15;
+  ImGuiDockNodeFlags_NoResizeX = 1 shl 16;
+  ImGuiDockNodeFlags_NoResizeY = 1 shl 17;
+  ImGuiDockNodeFlags_NoDockingSplitOther = 1 shl 19;
+  ImGuiDockNodeFlags_NoDockingOverMe = 1 shl 20;
+  ImGuiDockNodeFlags_NoDockingOverOther = 1 shl 21;
+  ImGuiDockNodeFlags_NoDockingOverEmpty = 1 shl 22;
+  ImGuiDockNodeFlags_NoDocking = ImGuiDockNodeFlags_NoDockingOverMe or ImGuiDockNodeFlags_NoDockingOverOther or ImGuiDockNodeFlags_NoDockingOverEmpty or ImGuiDockNodeFlags_NoDockingSplit or ImGuiDockNodeFlags_NoDockingSplitOther;
+  ImGuiDockNodeFlags_SharedFlagsInheritMask_ = not 0;
+  ImGuiDockNodeFlags_NoResizeFlagsMask_ = ImGuiDockNodeFlags_NoResize or ImGuiDockNodeFlags_NoResizeX or ImGuiDockNodeFlags_NoResizeY;
+  ImGuiDockNodeFlags_LocalFlagsTransferMask_ = ImGuiDockNodeFlags_NoDockingSplit or ImGuiDockNodeFlags_NoResizeFlagsMask_ or ImGuiDockNodeFlags_AutoHideTabBar or ImGuiDockNodeFlags_CentralNode or ImGuiDockNodeFlags_NoTabBar or ImGuiDockNodeFlags_HiddenTabBar or ImGuiDockNodeFlags_NoWindowMenuButton or ImGuiDockNodeFlags_NoCloseButton;
+  ImGuiDockNodeFlags_SavedFlagsMask_ = ImGuiDockNodeFlags_NoResizeFlagsMask_ or ImGuiDockNodeFlags_DockSpace or ImGuiDockNodeFlags_CentralNode or ImGuiDockNodeFlags_NoTabBar or ImGuiDockNodeFlags_HiddenTabBar or ImGuiDockNodeFlags_NoWindowMenuButton or ImGuiDockNodeFlags_NoCloseButton;
+
+
+Const
+  ImGuiDir_None = -1;
+  ImGuiDir_Left = 0;
+  ImGuiDir_Right = 1;
+  ImGuiDir_Up = 2;
+  ImGuiDir_Down = 3;
+  ImGuiDir_COUNT = 4;
+
+
+Const
+  ImGuiDebugLogFlags_None = 0;
+  ImGuiDebugLogFlags_EventActiveId = 1 shl 0;
+  ImGuiDebugLogFlags_EventFocus = 1 shl 1;
+  ImGuiDebugLogFlags_EventPopup = 1 shl 2;
+  ImGuiDebugLogFlags_EventNav = 1 shl 3;
+  ImGuiDebugLogFlags_EventClipper = 1 shl 4;
+  ImGuiDebugLogFlags_EventSelection = 1 shl 5;
+  ImGuiDebugLogFlags_EventIO = 1 shl 6;
+  ImGuiDebugLogFlags_EventDocking = 1 shl 7;
+  ImGuiDebugLogFlags_EventViewport = 1 shl 8;
+  ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId or ImGuiDebugLogFlags_EventFocus or ImGuiDebugLogFlags_EventPopup or ImGuiDebugLogFlags_EventNav or ImGuiDebugLogFlags_EventClipper or ImGuiDebugLogFlags_EventSelection or ImGuiDebugLogFlags_EventIO or ImGuiDebugLogFlags_EventDocking or ImGuiDebugLogFlags_EventViewport;
+  ImGuiDebugLogFlags_OutputToTTY = 1 shl 10;
+  ImGuiDebugLogFlags_OutputToTestEngine = 1 shl 11;
+
+
+Const
+  ImGuiDataType_S8 = 0;
+  ImGuiDataType_U8 = 1;
+  ImGuiDataType_S16 = 2;
+  ImGuiDataType_U16 = 3;
+  ImGuiDataType_S32 = 4;
+  ImGuiDataType_U32 = 5;
+  ImGuiDataType_S64 = 6;
+  ImGuiDataType_U64 = 7;
+  ImGuiDataType_Float = 8;
+  ImGuiDataType_Double = 9;
+  ImGuiDataType_COUNT = 10;
+
+
+Const
+  ImGuiDataType_String = Ord(ImGuiDataType_COUNT) + (1);
+  ImGuiDataType_Pointer = Ord(ImGuiDataType_COUNT) + (1) + (1);
+  ImGuiDataType_ID = Ord(ImGuiDataType_COUNT) + (1) + (1) + (1);
+
+
+Const
+  ImGuiDataAuthority_Auto = 0;
+  ImGuiDataAuthority_DockNode = 1;
+  ImGuiDataAuthority_Window = 2;
+
+
+Const
+  ImGuiContextHookType_NewFramePre = 0;
+  ImGuiContextHookType_NewFramePost = 1;
+  ImGuiContextHookType_EndFramePre = 2;
+  ImGuiContextHookType_EndFramePost = 3;
+  ImGuiContextHookType_RenderPre = 4;
+  ImGuiContextHookType_RenderPost = 5;
+  ImGuiContextHookType_Shutdown = 6;
+  ImGuiContextHookType_PendingRemoval_ = 7;
+
+
+Const
+  ImGuiConfigFlags_None = 0;
+  ImGuiConfigFlags_NavEnableKeyboard = 1 shl 0;
+  ImGuiConfigFlags_NavEnableGamepad = 1 shl 1;
+  ImGuiConfigFlags_NavEnableSetMousePos = 1 shl 2;
+  ImGuiConfigFlags_NavNoCaptureKeyboard = 1 shl 3;
+  ImGuiConfigFlags_NoMouse = 1 shl 4;
+  ImGuiConfigFlags_NoMouseCursorChange = 1 shl 5;
+  ImGuiConfigFlags_DockingEnable = 1 shl 6;
+  ImGuiConfigFlags_ViewportsEnable = 1 shl 10;
+  ImGuiConfigFlags_DpiEnableScaleViewports = 1 shl 14;
+  ImGuiConfigFlags_DpiEnableScaleFonts = 1 shl 15;
+  ImGuiConfigFlags_IsSRGB = 1 shl 20;
+  ImGuiConfigFlags_IsTouchScreen = 1 shl 21;
+
+
+Const
+  ImGuiCond_None = 0;
+  ImGuiCond_Always = 1 shl 0;
+  ImGuiCond_Once = 1 shl 1;
+  ImGuiCond_FirstUseEver = 1 shl 2;
+  ImGuiCond_Appearing = 1 shl 3;
+
+
+Const
+  ImGuiComboFlags_None = 0;
+  ImGuiComboFlags_PopupAlignLeft = 1 shl 0;
+  ImGuiComboFlags_HeightSmall = 1 shl 1;
+  ImGuiComboFlags_HeightRegular = 1 shl 2;
+  ImGuiComboFlags_HeightLarge = 1 shl 3;
+  ImGuiComboFlags_HeightLargest = 1 shl 4;
+  ImGuiComboFlags_NoArrowButton = 1 shl 5;
+  ImGuiComboFlags_NoPreview = 1 shl 6;
+  ImGuiComboFlags_WidthFitPreview = 1 shl 7;
+  ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_HeightSmall or ImGuiComboFlags_HeightRegular or ImGuiComboFlags_HeightLarge or ImGuiComboFlags_HeightLargest;
+
+
+Const
+  ImGuiComboFlags_CustomPreview = 1 shl 20;
+
+
+Const
+  ImGuiColorEditFlags_None = 0;
+  ImGuiColorEditFlags_NoAlpha = 1 shl 1;
+  ImGuiColorEditFlags_NoPicker = 1 shl 2;
+  ImGuiColorEditFlags_NoOptions = 1 shl 3;
+  ImGuiColorEditFlags_NoSmallPreview = 1 shl 4;
+  ImGuiColorEditFlags_NoInputs = 1 shl 5;
+  ImGuiColorEditFlags_NoTooltip = 1 shl 6;
+  ImGuiColorEditFlags_NoLabel = 1 shl 7;
+  ImGuiColorEditFlags_NoSidePreview = 1 shl 8;
+  ImGuiColorEditFlags_NoDragDrop = 1 shl 9;
+  ImGuiColorEditFlags_NoBorder = 1 shl 10;
+  ImGuiColorEditFlags_AlphaBar = 1 shl 16;
+  ImGuiColorEditFlags_AlphaPreview = 1 shl 17;
+  ImGuiColorEditFlags_AlphaPreviewHalf = 1 shl 18;
+  ImGuiColorEditFlags_HDR = 1 shl 19;
+  ImGuiColorEditFlags_DisplayRGB = 1 shl 20;
+  ImGuiColorEditFlags_DisplayHSV = 1 shl 21;
+  ImGuiColorEditFlags_DisplayHex = 1 shl 22;
+  ImGuiColorEditFlags_Uint8 = 1 shl 23;
+  ImGuiColorEditFlags_Float = 1 shl 24;
+  ImGuiColorEditFlags_PickerHueBar = 1 shl 25;
+  ImGuiColorEditFlags_PickerHueWheel = 1 shl 26;
+  ImGuiColorEditFlags_InputRGB = 1 shl 27;
+  ImGuiColorEditFlags_InputHSV = 1 shl 28;
+  ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 or ImGuiColorEditFlags_DisplayRGB or ImGuiColorEditFlags_InputRGB or ImGuiColorEditFlags_PickerHueBar;
+  ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB or ImGuiColorEditFlags_DisplayHSV or ImGuiColorEditFlags_DisplayHex;
+  ImGuiColorEditFlags_DataTypeMask_ = ImGuiColorEditFlags_Uint8 or ImGuiColorEditFlags_Float;
+  ImGuiColorEditFlags_PickerMask_ = ImGuiColorEditFlags_PickerHueWheel or ImGuiColorEditFlags_PickerHueBar;
+  ImGuiColorEditFlags_InputMask_ = ImGuiColorEditFlags_InputRGB or ImGuiColorEditFlags_InputHSV;
+
+
+Const
+  ImGuiCol_Text = 0;
+  ImGuiCol_TextDisabled = 1;
+  ImGuiCol_WindowBg = 2;
+  ImGuiCol_ChildBg = 3;
+  ImGuiCol_PopupBg = 4;
+  ImGuiCol_Border = 5;
+  ImGuiCol_BorderShadow = 6;
+  ImGuiCol_FrameBg = 7;
+  ImGuiCol_FrameBgHovered = 8;
+  ImGuiCol_FrameBgActive = 9;
+  ImGuiCol_TitleBg = 10;
+  ImGuiCol_TitleBgActive = 11;
+  ImGuiCol_TitleBgCollapsed = 12;
+  ImGuiCol_MenuBarBg = 13;
+  ImGuiCol_ScrollbarBg = 14;
+  ImGuiCol_ScrollbarGrab = 15;
+  ImGuiCol_ScrollbarGrabHovered = 16;
+  ImGuiCol_ScrollbarGrabActive = 17;
+  ImGuiCol_CheckMark = 18;
+  ImGuiCol_SliderGrab = 19;
+  ImGuiCol_SliderGrabActive = 20;
+  ImGuiCol_Button = 21;
+  ImGuiCol_ButtonHovered = 22;
+  ImGuiCol_ButtonActive = 23;
+  ImGuiCol_Header = 24;
+  ImGuiCol_HeaderHovered = 25;
+  ImGuiCol_HeaderActive = 26;
+  ImGuiCol_Separator = 27;
+  ImGuiCol_SeparatorHovered = 28;
+  ImGuiCol_SeparatorActive = 29;
+  ImGuiCol_ResizeGrip = 30;
+  ImGuiCol_ResizeGripHovered = 31;
+  ImGuiCol_ResizeGripActive = 32;
+  ImGuiCol_Tab = 33;
+  ImGuiCol_TabHovered = 34;
+  ImGuiCol_TabActive = 35;
+  ImGuiCol_TabUnfocused = 36;
+  ImGuiCol_TabUnfocusedActive = 37;
+  ImGuiCol_DockingPreview = 38;
+  ImGuiCol_DockingEmptyBg = 39;
+  ImGuiCol_PlotLines = 40;
+  ImGuiCol_PlotLinesHovered = 41;
+  ImGuiCol_PlotHistogram = 42;
+  ImGuiCol_PlotHistogramHovered = 43;
+  ImGuiCol_TableHeaderBg = 44;
+  ImGuiCol_TableBorderStrong = 45;
+  ImGuiCol_TableBorderLight = 46;
+  ImGuiCol_TableRowBg = 47;
+  ImGuiCol_TableRowBgAlt = 48;
+  ImGuiCol_TextSelectedBg = 49;
+  ImGuiCol_DragDropTarget = 50;
+  ImGuiCol_NavHighlight = 51;
+  ImGuiCol_NavWindowingHighlight = 52;
+  ImGuiCol_NavWindowingDimBg = 53;
+  ImGuiCol_ModalWindowDimBg = 54;
+  ImGuiCol_COUNT = 55;
+
+
+Const
+  ImGuiChildFlags_None = 0;
+  ImGuiChildFlags_Border = 1 shl 0;
+  ImGuiChildFlags_AlwaysUseWindowPadding = 1 shl 1;
+  ImGuiChildFlags_ResizeX = 1 shl 2;
+  ImGuiChildFlags_ResizeY = 1 shl 3;
+  ImGuiChildFlags_AutoResizeX = 1 shl 4;
+  ImGuiChildFlags_AutoResizeY = 1 shl 5;
+  ImGuiChildFlags_AlwaysAutoResize = 1 shl 6;
+  ImGuiChildFlags_FrameStyle = 1 shl 7;
+
+
+Const
+  ImGuiButtonFlags_None = 0;
+  ImGuiButtonFlags_MouseButtonLeft = 1 shl 0;
+  ImGuiButtonFlags_MouseButtonRight = 1 shl 1;
+  ImGuiButtonFlags_MouseButtonMiddle = 1 shl 2;
+  ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft or ImGuiButtonFlags_MouseButtonRight or ImGuiButtonFlags_MouseButtonMiddle;
+  ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft;
+
+
+Const
+  ImGuiButtonFlags_PressedOnClick = 1 shl 4;
+  ImGuiButtonFlags_PressedOnClickRelease = 1 shl 5;
+  ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 shl 6;
+  ImGuiButtonFlags_PressedOnRelease = 1 shl 7;
+  ImGuiButtonFlags_PressedOnDoubleClick = 1 shl 8;
+  ImGuiButtonFlags_PressedOnDragDropHold = 1 shl 9;
+  ImGuiButtonFlags_Repeat = 1 shl 10;
+  ImGuiButtonFlags_FlattenChildren = 1 shl 11;
+  ImGuiButtonFlags_AllowOverlap = 1 shl 12;
+  ImGuiButtonFlags_DontClosePopups = 1 shl 13;
+  ImGuiButtonFlags_AlignTextBaseLine = 1 shl 15;
+  ImGuiButtonFlags_NoKeyModifiers = 1 shl 16;
+  ImGuiButtonFlags_NoHoldingActiveId = 1 shl 17;
+  ImGuiButtonFlags_NoNavFocus = 1 shl 18;
+  ImGuiButtonFlags_NoHoveredOnFocus = 1 shl 19;
+  ImGuiButtonFlags_NoSetKeyOwner = 1 shl 20;
+  ImGuiButtonFlags_NoTestKeyOwner = 1 shl 21;
+  ImGuiButtonFlags_PressedOnMask_ = ImGuiButtonFlags_PressedOnClick or ImGuiButtonFlags_PressedOnClickRelease or ImGuiButtonFlags_PressedOnClickReleaseAnywhere or ImGuiButtonFlags_PressedOnRelease or ImGuiButtonFlags_PressedOnDoubleClick or ImGuiButtonFlags_PressedOnDragDropHold;
+  ImGuiButtonFlags_PressedOnDefault_ = ImGuiButtonFlags_PressedOnClickRelease;
+
+
+Const
+  ImGuiBackendFlags_None = 0;
+  ImGuiBackendFlags_HasGamepad = 1 shl 0;
+  ImGuiBackendFlags_HasMouseCursors = 1 shl 1;
+  ImGuiBackendFlags_HasSetMousePos = 1 shl 2;
+  ImGuiBackendFlags_RendererHasVtxOffset = 1 shl 3;
+  ImGuiBackendFlags_PlatformHasViewports = 1 shl 10;
+  ImGuiBackendFlags_HasMouseHoveredViewport = 1 shl 11;
+  ImGuiBackendFlags_RendererHasViewports = 1 shl 12;
+
+
+Const
+  ImGuiAxis_None = -1;
+  ImGuiAxis_X = 0;
+  ImGuiAxis_Y = 1;
+
+
+Const
+  ImGuiActivateFlags_None = 0;
+  ImGuiActivateFlags_PreferInput = 1 shl 0;
+  ImGuiActivateFlags_PreferTweak = 1 shl 1;
+  ImGuiActivateFlags_TryToPreserveState = 1 shl 2;
+
+
+Const
+  ImFontAtlasFlags_None = 0;
+  ImFontAtlasFlags_NoPowerOfTwoHeight = 1 shl 0;
+  ImFontAtlasFlags_NoMouseCursors = 1 shl 1;
+  ImFontAtlasFlags_NoBakedLines = 1 shl 2;
+
+
+Const
+  ImDrawListFlags_None = 0;
+  ImDrawListFlags_AntiAliasedLines = 1 shl 0;
+  ImDrawListFlags_AntiAliasedLinesUseTex = 1 shl 1;
+  ImDrawListFlags_AntiAliasedFill = 1 shl 2;
+  ImDrawListFlags_AllowVtxOffset = 1 shl 3;
+
+
+Const
+  ImDrawFlags_None = 0;
+  ImDrawFlags_Closed = 1 shl 0;
+  ImDrawFlags_RoundCornersTopLeft = 1 shl 4;
+  ImDrawFlags_RoundCornersTopRight = 1 shl 5;
+  ImDrawFlags_RoundCornersBottomLeft = 1 shl 6;
+  ImDrawFlags_RoundCornersBottomRight = 1 shl 7;
+  ImDrawFlags_RoundCornersNone = 1 shl 8;
+  ImDrawFlags_RoundCornersTop = ImDrawFlags_RoundCornersTopLeft or ImDrawFlags_RoundCornersTopRight;
+  ImDrawFlags_RoundCornersBottom = ImDrawFlags_RoundCornersBottomLeft or ImDrawFlags_RoundCornersBottomRight;
+  ImDrawFlags_RoundCornersLeft = ImDrawFlags_RoundCornersBottomLeft or ImDrawFlags_RoundCornersTopLeft;
+  ImDrawFlags_RoundCornersRight = ImDrawFlags_RoundCornersBottomRight or ImDrawFlags_RoundCornersTopRight;
+  ImDrawFlags_RoundCornersAll = ImDrawFlags_RoundCornersTopLeft or ImDrawFlags_RoundCornersTopRight or ImDrawFlags_RoundCornersBottomLeft or ImDrawFlags_RoundCornersBottomRight;
+  ImDrawFlags_RoundCornersDefault_ = ImDrawFlags_RoundCornersAll;
+  ImDrawFlags_RoundCornersMask_ = ImDrawFlags_RoundCornersAll or ImDrawFlags_RoundCornersNone;
+
+
+implementation
 
 End.
 
+

+ 110 - 28
src/PasImGui.Types.pas

@@ -1,5 +1,5 @@
 {
-  FreePascal bindings for ImGui
+  FreePascal / Delphi bindings for ImGui
 
   Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
 
@@ -38,7 +38,9 @@ Type
   T2Bits = 0..3;
   T1Bit = 0..1;
 
-  size_t = NativeUInt;
+
+  QWord = NativeUInt;
+  size_t = QWord;
   ImS8 = Shortint;
   ImU8 = Byte;
   ImS16 = Smallint;
@@ -79,14 +81,92 @@ Type
   PImWchar32 = ^ImWchar32;
   PImWchar = ^ImWchar;
 
+  ImPoolIdx = Integer;
+
+  ImGuiWindowFlags = Integer;
+  ImGuiWindowDockStyleCol = Integer;
+  ImGuiViewportFlags = Integer;
+  ImGuiTypingSelectFlags = Integer;
+  ImGuiTreeNodeFlags = Integer;
+  ImGuiTreeNodeFlagsPrivate = Integer;
+  ImGuiTooltipFlags = Integer;
+  ImGuiTextFlags = Integer;
+  ImGuiTableRowFlags = Integer;
+  ImGuiTableFlags = Integer;
+  ImGuiTableColumnFlags = Integer;
+  ImGuiTableBgTarget = Integer;
+  ImGuiTabItemFlags = Integer;
+  ImGuiTabItemFlagsPrivate = Integer;
+  ImGuiTabBarFlags = Integer;
+  ImGuiTabBarFlagsPrivate = Integer;
+  ImGuiStyleVar = Integer;
+  ImGuiSortDirection = Integer;
+  ImGuiSliderFlags = Integer;
+  ImGuiSliderFlagsPrivate = Integer;
+  ImGuiSeparatorFlags = Integer;
+  ImGuiSelectableFlags = Integer;
+  ImGuiSelectableFlagsPrivate = Integer;
+  ImGuiScrollFlags = Integer;
+  ImGuiPopupPositionPolicy = Integer;
+  ImGuiPopupFlags = Integer;
+  ImGuiPlotType = Integer;
+  ImGuiOldColumnFlags = Integer;
+  ImGuiNextWindowDataFlags = Integer;
+  ImGuiNextItemDataFlags = Integer;
+  ImGuiNavMoveFlags = Integer;
+  ImGuiNavLayer = Integer;
+  ImGuiNavHighlightFlags = Integer;
+  ImGuiMouseSource = Integer;
+  ImGuiMouseCursor = Integer;
+  ImGuiMouseButton = Integer;
+  ImGuiLogType = Integer;
+  ImGuiLocKey = Integer;
+  ImGuiLayoutType = Integer;
+  ImGuiKey = Integer;
+  ImGuiItemStatusFlags = Integer;
+  ImGuiItemFlags = Integer;
+  ImGuiInputTextFlags = Integer;
+  ImGuiInputTextFlagsPrivate = Integer;
+  ImGuiInputSource = Integer;
+  ImGuiInputFlags = Integer;
+  ImGuiInputEventType = Integer;
+  ImGuiHoveredFlags = Integer;
+  ImGuiHoveredFlagsPrivate = Integer;
+  ImGuiFocusedFlags = Integer;
+  ImGuiFocusRequestFlags = Integer;
+  ImGuiDragDropFlags = Integer;
+  ImGuiDockNodeState = Integer;
+  ImGuiDockNodeFlags = Integer;
+  ImGuiDockNodeFlagsPrivate = Integer;
+  ImGuiDir = Integer;
+  ImGuiDebugLogFlags = Integer;
+  ImGuiDataType = Integer;
+  ImGuiDataTypePrivate = Integer;
+  ImGuiDataAuthority = Integer;
+  ImGuiContextHookType = Integer;
+  ImGuiConfigFlags = Integer;
+  ImGuiCond = Integer;
+  ImGuiComboFlags = Integer;
+  ImGuiComboFlagsPrivate = Integer;
+  ImGuiColorEditFlags = Integer;
+  ImGuiCol = Integer;
+  ImGuiChildFlags = Integer;
+  ImGuiButtonFlags = Integer;
+  ImGuiButtonFlagsPrivate = Integer;
+  ImGuiBackendFlags = Integer;
+  ImGuiAxis = Integer;
+  ImGuiActivateFlags = Integer;
+  ImFontAtlasFlags = Integer;
+  ImDrawListFlags = Integer;
+  ImDrawFlags = Integer;
+  ImGuiKeyChord = Integer;
 
+  PImRect = ^ImRect;
   PImGuiTableColumnIdx = ^ImGuiTableColumnIdx;
   PImGuiTableDrawChannelIdx = ^ImGuiTableDrawChannelIdx;
 
   PImGuiItemFlags = ^ImGuiItemFlags;
 
-  PImRect = ^ImRect;
-  ImPoolIdx = Integer;
   PImGuiWindowTempData = ^ImGuiWindowTempData;
   PImGuiWindowStackData = ^ImGuiWindowStackData;
   PImGuiWindowSettings = ^ImGuiWindowSettings;
@@ -152,14 +232,12 @@ Type
   PImGuiListClipperRange = ^ImGuiListClipperRange;
   PImGuiListClipperData = ^ImGuiListClipperData;
   PImGuiListClipper = ^ImGuiListClipper;
-  ImGuiLayoutType = Integer;
   PImGuiLastItemData = ^ImGuiLastItemData;
   PImGuiKeyRoutingTable = ^ImGuiKeyRoutingTable;
   ImGuiKeyRoutingIndex = ImS16;
   PImGuiKeyRoutingData = ^ImGuiKeyRoutingData;
   PImGuiKeyOwnerData = ^ImGuiKeyOwnerData;
   PImGuiKeyData = ^ImGuiKeyData;
-  ImGuiKeyChord = Integer;
   PImGuiInputTextState = ^ImGuiInputTextState;
   PImGuiInputTextDeactivatedState = ^ImGuiInputTextDeactivatedState;
   PImGuiInputTextCallbackData = ^ImGuiInputTextCallbackData;
@@ -176,18 +254,15 @@ Type
   PImGuiIDStackTool = ^ImGuiIDStackTool;
   ImGuiID = ImU32;
   PImGuiGroupData = ^ImGuiGroupData;
-  ImGuiErrorLogCallback = procedure(user_data : Pointer; fmt : PChar; args : array of const); Cdecl;
+  ImGuiErrorLogCallback = procedure(user_data : Pointer; fmt : PAnsiChar; args : array of const); Cdecl;
   PImGuiDockRequest = ^ImGuiDockRequest;
   PImGuiDockNodeSettings = ^ImGuiDockNodeSettings;
   PImGuiDockNode = ^ImGuiDockNode;
   PImGuiDockContext = ^ImGuiDockContext;
-  ImGuiDir = Integer;
   PImGuiDebugAllocInfo = ^ImGuiDebugAllocInfo;
   PImGuiDebugAllocEntry = ^ImGuiDebugAllocEntry;
   PImGuiDataVarInfo = ^ImGuiDataVarInfo;
   PImGuiDataTypeInfo = ^ImGuiDataTypeInfo;
-  ImGuiDataType = Byte;
-  ImGuiDataAuthority = Integer;
   PImGuiContextHook = ^ImGuiContextHook;
   PImGuiContext = ^ImGuiContext;
   ImGuiContextHookCallback = procedure(ctx : PImGuiContext; hook : PImGuiContextHook); Cdecl;
@@ -758,7 +833,7 @@ Type
     WantFullRebuild: Boolean;
   End;
 
-  ImGuiTableColumnSettings = Bitpacked Record
+  ImGuiTableColumnSettings = {$IFDEF FPC}Bitpacked{$ELSE}packed{$ENDIF} Record
     WidthOrWeight: Single;
     UserID: ImGuiID;
     Index: ImGuiTableColumnIdx;
@@ -841,7 +916,7 @@ Type
     TabsNames: ImGuiTextBuffer;
   End;
 
-  ImGuiTableColumn = bitpacked Record
+  ImGuiTableColumn = {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} Record
     Flags: ImGuiTableColumnFlags;
     WidthGiven: Single;
     MinX: Single;
@@ -1071,12 +1146,12 @@ Type
 
 
   ImGuiSettingsHandler = Record
-    TypeName : PChar;
+    TypeName : PAnsiChar;
     TypeHash : ImGuiID;
     ClearAllFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler) : Pointer;
     ReadInitFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler) : Pointer;
-    ReadOpenFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler; name : PChar) : Pointer;
-    ReadLineFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler; entry : Pointer; line : PChar) : Pointer;
+    ReadOpenFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler; name : PAnsiChar) : Pointer;
+    ReadLineFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler; entry : Pointer; line : PAnsiChar) : Pointer;
     ApplyAllFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler) : Pointer;
     WriteAllFn : function(ctx : PImGuiContext; handler : PImGuiSettingsHandler; out_buf : PImGuiTextBuffer) : Pointer;
     UserData : Pointer;
@@ -1266,8 +1341,8 @@ Type
     DisplaySize: ImVec2;
     DeltaTime: Single;
     IniSavingRate: Single;
-    IniFilename: PChar;
-    LogFilename: PChar;
+    IniFilename: PAnsiChar;
+    LogFilename: PAnsiChar;
     UserData: Pointer;
     Fonts: PImFontAtlas;
     FontGlobalScale: Single;
@@ -1300,13 +1375,13 @@ Type
     ConfigDebugBeginReturnValueLoop: Boolean;
     ConfigDebugIgnoreFocusLoss: Boolean;
     ConfigDebugIniSettings: Boolean;
-    BackendPlatformName: PChar;
-    BackendRendererName: PChar;
+    BackendPlatformName: PAnsiChar;
+    BackendRendererName: PAnsiChar;
     BackendPlatformUserData: Pointer;
     BackendRendererUserData: Pointer;
     BackendLanguageUserData: Pointer;
-    GetClipboardTextFn: function(user_data : Pointer) : PChar; Cdecl;
-    SetClipboardTextFn: procedure(user_data : Pointer; text : PChar); Cdecl;
+    GetClipboardTextFn: function(user_data : Pointer) : PAnsiChar; Cdecl;
+    SetClipboardTextFn: procedure(user_data : Pointer; text : PAnsiChar); Cdecl;
     ClipboardUserData: Pointer;
     SetPlatformImeDataFn: procedure(viewport : PImGuiViewport; data : PImGuiPlatformImeData); Cdecl;
     PlatformLocaleDecimalPoint: ImWchar;
@@ -1474,6 +1549,13 @@ Type
     DpiScale: Single;
     PlatformHandle: Pointer;
   End;
+  // Too much monitors :P
+  {$IFDEF FPC}
+  TMonArray = Array [0..99] of ImGuiPlatformMonitor;
+  {$ELSE}
+  TMonArray = Array of ImGuiPlatformMonitor;
+  {$ENDIF}
+
 
   ImGuiPlatformImeData = Record
     WantVisible: Boolean;
@@ -1512,7 +1594,7 @@ Type
     Platform_SetWindowFocus : procedure(viewport : PImGuiViewport); Cdecl;
     Platform_GetWindowFocus : function(viewport : PImGuiViewport) : Boolean; Cdecl;
     Platform_GetWindowMinimized : function(viewport : PImGuiViewport) : Boolean; Cdecl;
-    Platform_SetWindowTitle : procedure(viewport : PImGuiViewport; title : PChar); Cdecl;
+    Platform_SetWindowTitle : procedure(viewport : PImGuiViewport; title : PAnsiChar); Cdecl;
     Platform_SetWindowAlpha : procedure(viewport : PImGuiViewport; alpha : Single); Cdecl;
     Platform_UpdateWindow : procedure(viewport : PImGuiViewport); Cdecl;
     Platform_RenderWindow : procedure(viewport : PImGuiViewport; render_arg : Pointer); Cdecl;
@@ -1620,7 +1702,7 @@ Type
     Data: PImGuiWindow;
   End;
 
-  ImGuiDockNode = Bitpacked Record
+  ImGuiDockNode = {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} Record
     ID: ImGuiID;
     SharedFlags: ImGuiDockNodeFlags;
     LocalFlags: ImGuiDockNodeFlags;
@@ -1717,7 +1799,7 @@ Type
     Flags: ImDrawListFlags;
     _VtxCurrentIdx: ImU32;
     _Data: PImDrawListSharedData;
-    _OwnerName: PChar;
+    _OwnerName: PAnsiChar;
     _VtxWritePtr: PImDrawVert;
     _IdxWritePtr: PImDrawIdx;
     _ClipRectStack: ImVector_ImVec4;
@@ -2255,13 +2337,13 @@ Type
     SettingsTables: ImChunkStream_ImGuiTableSettings;
     Hooks: ImVector_ImGuiContextHook;
     HookIdNext: ImGuiID;
-    LocalizationTable: Array[0..11 - 1] of PChar;
+    LocalizationTable: Array[0..11 - 1] of PAnsiChar;
     LogEnabled: Boolean;
     LogType: ImGuiLogType;
     LogFile: ImFileHandle;
     LogBuffer: ImGuiTextBuffer;
-    LogNextPrefix: PChar;
-    LogNextSuffix: PChar;
+    LogNextPrefix: PAnsiChar;
+    LogNextSuffix: PAnsiChar;
     LogLinePosY: Single;
     LogLineFirstItem: Boolean;
     LogDepthRef: Integer;
@@ -2374,7 +2456,7 @@ Type
     constructor New(SplitAxis_: ImGuiAxis);
   End;
 
-  ImFontGlyph = bitpacked Record
+  ImFontGlyph = {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} Record
     Colored: T1Bit;
     Visible: T1Bit;
     Codepoint: T30Bits;

File diff suppressed because it is too large
+ 392 - 291
src/PasImGui.pas


Some files were not shown because too many files changed in this diff