Browse Source

A full refactor for the APIs and adding ImPlot support

Coldzer0 1 year ago
parent
commit
7f8e982b8b
10 changed files with 11923 additions and 5352 deletions
  1. 197 0
      src/ImGuiApis.Impl.inc
  2. 1 1
      src/ImGuiPasDef.inc
  3. 13 0
      src/ImPlotTypes.inc
  4. 11282 0
      src/PasImGui.Apis.inc
  5. 0 1442
      src/PasImGui.Apis.pas
  6. 0 1159
      src/PasImGui.Enums.pas
  7. 128 0
      src/PasImGui.ImPlot.pas
  8. 0 2706
      src/PasImGui.Types.pas
  9. 166 0
      src/PasImGui.Utils.pas
  10. 136 44
      src/PasImGui.pas

+ 197 - 0
src/ImGuiApis.Impl.inc

@@ -0,0 +1,197 @@
+{ImGuiTableColumnSortSpecs}
+
+function ImGuiTableColumnSortSpecs.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiTableColumnSortSpecs.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImFontGlyph}
+
+function ImFontGlyph.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImFontGlyph.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiDockNode}
+
+function ImGuiDockNode.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiDockNode.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiStackLevelInfo}
+
+function ImGuiStackLevelInfo.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiStackLevelInfo.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiWindow}
+
+function ImGuiWindow.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiWindow.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiWindow}
+
+function ImGuiWindow.GetData1Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data1 shr Offset) and Mask;
+end;
+
+procedure ImGuiWindow.SetData1Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data1 := (Data1 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiTableColumn}
+
+function ImGuiTableColumn.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiTableColumn.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiTable}
+
+function ImGuiTable.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiTable.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
+{ImGuiTableColumnSettings}
+
+function ImGuiTableColumnSettings.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiTableColumnSettings.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;

+ 1 - 1
src/ImGuiPasDef.inc

@@ -1,6 +1,6 @@
 {$Define DYNAMIC_LINK}
 {$IfDef FPC}
-  {$UnDef DYNAMIC_LINK}
+  {$UnDef DYNAMIC_LINK} // comment if you want to link with dynamic libs.
 {$EndIf}
 {$IfNDef FPC}
   {$If CompilerVersion>=22.0}

+ 13 - 0
src/ImPlotTypes.inc

@@ -0,0 +1,13 @@
+Type
+  tm = Record
+    tm_sec: Integer;     // seconds after the minute - [0,59]
+    tm_min: Integer;     // minutes after the hour - [0,59]
+    tm_hour: Integer;    // hours since midnight - [0,23]
+    tm_mday: Integer;    // day of the month - [1,31]
+    tm_mon: Integer;     // months since January - [0,11]
+    tm_year: Integer;    // years since 1900
+    tm_wday: Integer;    // days since Sunday - [0,6]
+    tm_yday: Integer;    // days since January 1 - [0,365]
+    tm_isdst: Integer;   // daylight savings time flag
+  End;
+  Ptm = ^tm;

+ 11282 - 0
src/PasImGui.Apis.inc

@@ -0,0 +1,11282 @@
+{ This unit is automatically generated by Chet:
+  https://github.com/neslib/Chet }
+
+type
+  ImGuiWindowFlags_ = Integer;
+  PImGuiWindowFlags_ = ^ImGuiWindowFlags_;
+
+const
+  ImGuiWindowFlags_None = 0;
+  ImGuiWindowFlags_NoTitleBar = 1;
+  ImGuiWindowFlags_NoResize = 2;
+  ImGuiWindowFlags_NoMove = 4;
+  ImGuiWindowFlags_NoScrollbar = 8;
+  ImGuiWindowFlags_NoScrollWithMouse = 16;
+  ImGuiWindowFlags_NoCollapse = 32;
+  ImGuiWindowFlags_AlwaysAutoResize = 64;
+  ImGuiWindowFlags_NoBackground = 128;
+  ImGuiWindowFlags_NoSavedSettings = 256;
+  ImGuiWindowFlags_NoMouseInputs = 512;
+  ImGuiWindowFlags_MenuBar = 1024;
+  ImGuiWindowFlags_HorizontalScrollbar = 2048;
+  ImGuiWindowFlags_NoFocusOnAppearing = 4096;
+  ImGuiWindowFlags_NoBringToFrontOnFocus = 8192;
+  ImGuiWindowFlags_AlwaysVerticalScrollbar = 16384;
+  ImGuiWindowFlags_AlwaysHorizontalScrollbar = 32768;
+  ImGuiWindowFlags_NoNavInputs = 65536;
+  ImGuiWindowFlags_NoNavFocus = 131072;
+  ImGuiWindowFlags_UnsavedDocument = 262144;
+  ImGuiWindowFlags_NoDocking = 524288;
+  ImGuiWindowFlags_NoNav = 196608;
+  ImGuiWindowFlags_NoDecoration = 43;
+  ImGuiWindowFlags_NoInputs = 197120;
+  ImGuiWindowFlags_NavFlattened = 8388608;
+  ImGuiWindowFlags_ChildWindow = 16777216;
+  ImGuiWindowFlags_Tooltip = 33554432;
+  ImGuiWindowFlags_Popup = 67108864;
+  ImGuiWindowFlags_Modal = 134217728;
+  ImGuiWindowFlags_ChildMenu = 268435456;
+  ImGuiWindowFlags_DockNodeHost = 536870912;
+
+type
+  ImGuiChildFlags_ = Integer;
+  PImGuiChildFlags_ = ^ImGuiChildFlags_;
+
+const
+  ImGuiChildFlags_None = 0;
+  ImGuiChildFlags_Border = 1;
+  ImGuiChildFlags_AlwaysUseWindowPadding = 2;
+  ImGuiChildFlags_ResizeX = 4;
+  ImGuiChildFlags_ResizeY = 8;
+  ImGuiChildFlags_AutoResizeX = 16;
+  ImGuiChildFlags_AutoResizeY = 32;
+  ImGuiChildFlags_AlwaysAutoResize = 64;
+  ImGuiChildFlags_FrameStyle = 128;
+
+type
+  ImGuiInputTextFlags_ = Integer;
+  PImGuiInputTextFlags_ = ^ImGuiInputTextFlags_;
+
+const
+  ImGuiInputTextFlags_None = 0;
+  ImGuiInputTextFlags_CharsDecimal = 1;
+  ImGuiInputTextFlags_CharsHexadecimal = 2;
+  ImGuiInputTextFlags_CharsUppercase = 4;
+  ImGuiInputTextFlags_CharsNoBlank = 8;
+  ImGuiInputTextFlags_AutoSelectAll = 16;
+  ImGuiInputTextFlags_EnterReturnsTrue = 32;
+  ImGuiInputTextFlags_CallbackCompletion = 64;
+  ImGuiInputTextFlags_CallbackHistory = 128;
+  ImGuiInputTextFlags_CallbackAlways = 256;
+  ImGuiInputTextFlags_CallbackCharFilter = 512;
+  ImGuiInputTextFlags_AllowTabInput = 1024;
+  ImGuiInputTextFlags_CtrlEnterForNewLine = 2048;
+  ImGuiInputTextFlags_NoHorizontalScroll = 4096;
+  ImGuiInputTextFlags_AlwaysOverwrite = 8192;
+  ImGuiInputTextFlags_ReadOnly = 16384;
+  ImGuiInputTextFlags_Password = 32768;
+  ImGuiInputTextFlags_NoUndoRedo = 65536;
+  ImGuiInputTextFlags_CharsScientific = 131072;
+  ImGuiInputTextFlags_CallbackResize = 262144;
+  ImGuiInputTextFlags_CallbackEdit = 524288;
+  ImGuiInputTextFlags_EscapeClearsAll = 1048576;
+
+type
+  ImGuiTreeNodeFlags_ = Integer;
+  PImGuiTreeNodeFlags_ = ^ImGuiTreeNodeFlags_;
+
+const
+  ImGuiTreeNodeFlags_None = 0;
+  ImGuiTreeNodeFlags_Selected = 1;
+  ImGuiTreeNodeFlags_Framed = 2;
+  ImGuiTreeNodeFlags_AllowOverlap = 4;
+  ImGuiTreeNodeFlags_NoTreePushOnOpen = 8;
+  ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16;
+  ImGuiTreeNodeFlags_DefaultOpen = 32;
+  ImGuiTreeNodeFlags_OpenOnDoubleClick = 64;
+  ImGuiTreeNodeFlags_OpenOnArrow = 128;
+  ImGuiTreeNodeFlags_Leaf = 256;
+  ImGuiTreeNodeFlags_Bullet = 512;
+  ImGuiTreeNodeFlags_FramePadding = 1024;
+  ImGuiTreeNodeFlags_SpanAvailWidth = 2048;
+  ImGuiTreeNodeFlags_SpanFullWidth = 4096;
+  ImGuiTreeNodeFlags_SpanAllColumns = 8192;
+  ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 16384;
+  ImGuiTreeNodeFlags_CollapsingHeader = 26;
+
+type
+  ImGuiPopupFlags_ = Integer;
+  PImGuiPopupFlags_ = ^ImGuiPopupFlags_;
+
+const
+  ImGuiPopupFlags_None = 0;
+  ImGuiPopupFlags_MouseButtonLeft = 0;
+  ImGuiPopupFlags_MouseButtonRight = 1;
+  ImGuiPopupFlags_MouseButtonMiddle = 2;
+  ImGuiPopupFlags_MouseButtonMask_ = 31;
+  ImGuiPopupFlags_MouseButtonDefault_ = 1;
+  ImGuiPopupFlags_NoOpenOverExistingPopup = 32;
+  ImGuiPopupFlags_NoOpenOverItems = 64;
+  ImGuiPopupFlags_AnyPopupId = 128;
+  ImGuiPopupFlags_AnyPopupLevel = 256;
+  ImGuiPopupFlags_AnyPopup = 384;
+
+type
+  ImGuiSelectableFlags_ = Integer;
+  PImGuiSelectableFlags_ = ^ImGuiSelectableFlags_;
+
+const
+  ImGuiSelectableFlags_None = 0;
+  ImGuiSelectableFlags_DontClosePopups = 1;
+  ImGuiSelectableFlags_SpanAllColumns = 2;
+  ImGuiSelectableFlags_AllowDoubleClick = 4;
+  ImGuiSelectableFlags_Disabled = 8;
+  ImGuiSelectableFlags_AllowOverlap = 16;
+
+type
+  ImGuiComboFlags_ = Integer;
+  PImGuiComboFlags_ = ^ImGuiComboFlags_;
+
+const
+  ImGuiComboFlags_None = 0;
+  ImGuiComboFlags_PopupAlignLeft = 1;
+  ImGuiComboFlags_HeightSmall = 2;
+  ImGuiComboFlags_HeightRegular = 4;
+  ImGuiComboFlags_HeightLarge = 8;
+  ImGuiComboFlags_HeightLargest = 16;
+  ImGuiComboFlags_NoArrowButton = 32;
+  ImGuiComboFlags_NoPreview = 64;
+  ImGuiComboFlags_WidthFitPreview = 128;
+  ImGuiComboFlags_HeightMask_ = 30;
+
+type
+  ImGuiTabBarFlags_ = Integer;
+  PImGuiTabBarFlags_ = ^ImGuiTabBarFlags_;
+
+const
+  ImGuiTabBarFlags_None = 0;
+  ImGuiTabBarFlags_Reorderable = 1;
+  ImGuiTabBarFlags_AutoSelectNewTabs = 2;
+  ImGuiTabBarFlags_TabListPopupButton = 4;
+  ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 8;
+  ImGuiTabBarFlags_NoTabListScrollingButtons = 16;
+  ImGuiTabBarFlags_NoTooltip = 32;
+  ImGuiTabBarFlags_FittingPolicyResizeDown = 64;
+  ImGuiTabBarFlags_FittingPolicyScroll = 128;
+  ImGuiTabBarFlags_FittingPolicyMask_ = 192;
+  ImGuiTabBarFlags_FittingPolicyDefault_ = 64;
+
+type
+  ImGuiTabItemFlags_ = Integer;
+  PImGuiTabItemFlags_ = ^ImGuiTabItemFlags_;
+
+const
+  ImGuiTabItemFlags_None = 0;
+  ImGuiTabItemFlags_UnsavedDocument = 1;
+  ImGuiTabItemFlags_SetSelected = 2;
+  ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 4;
+  ImGuiTabItemFlags_NoPushId = 8;
+  ImGuiTabItemFlags_NoTooltip = 16;
+  ImGuiTabItemFlags_NoReorder = 32;
+  ImGuiTabItemFlags_Leading = 64;
+  ImGuiTabItemFlags_Trailing = 128;
+
+type
+  ImGuiTableFlags_ = Integer;
+  PImGuiTableFlags_ = ^ImGuiTableFlags_;
+
+const
+  ImGuiTableFlags_None = 0;
+  ImGuiTableFlags_Resizable = 1;
+  ImGuiTableFlags_Reorderable = 2;
+  ImGuiTableFlags_Hideable = 4;
+  ImGuiTableFlags_Sortable = 8;
+  ImGuiTableFlags_NoSavedSettings = 16;
+  ImGuiTableFlags_ContextMenuInBody = 32;
+  ImGuiTableFlags_RowBg = 64;
+  ImGuiTableFlags_BordersInnerH = 128;
+  ImGuiTableFlags_BordersOuterH = 256;
+  ImGuiTableFlags_BordersInnerV = 512;
+  ImGuiTableFlags_BordersOuterV = 1024;
+  ImGuiTableFlags_BordersH = 384;
+  ImGuiTableFlags_BordersV = 1536;
+  ImGuiTableFlags_BordersInner = 640;
+  ImGuiTableFlags_BordersOuter = 1280;
+  ImGuiTableFlags_Borders = 1920;
+  ImGuiTableFlags_NoBordersInBody = 2048;
+  ImGuiTableFlags_NoBordersInBodyUntilResize = 4096;
+  ImGuiTableFlags_SizingFixedFit = 8192;
+  ImGuiTableFlags_SizingFixedSame = 16384;
+  ImGuiTableFlags_SizingStretchProp = 24576;
+  ImGuiTableFlags_SizingStretchSame = 32768;
+  ImGuiTableFlags_NoHostExtendX = 65536;
+  ImGuiTableFlags_NoHostExtendY = 131072;
+  ImGuiTableFlags_NoKeepColumnsVisible = 262144;
+  ImGuiTableFlags_PreciseWidths = 524288;
+  ImGuiTableFlags_NoClip = 1048576;
+  ImGuiTableFlags_PadOuterX = 2097152;
+  ImGuiTableFlags_NoPadOuterX = 4194304;
+  ImGuiTableFlags_NoPadInnerX = 8388608;
+  ImGuiTableFlags_ScrollX = 16777216;
+  ImGuiTableFlags_ScrollY = 33554432;
+  ImGuiTableFlags_SortMulti = 67108864;
+  ImGuiTableFlags_SortTristate = 134217728;
+  ImGuiTableFlags_HighlightHoveredColumn = 268435456;
+  ImGuiTableFlags_SizingMask_ = 57344;
+
+type
+  ImGuiTableColumnFlags_ = Integer;
+  PImGuiTableColumnFlags_ = ^ImGuiTableColumnFlags_;
+
+const
+  ImGuiTableColumnFlags_None = 0;
+  ImGuiTableColumnFlags_Disabled = 1;
+  ImGuiTableColumnFlags_DefaultHide = 2;
+  ImGuiTableColumnFlags_DefaultSort = 4;
+  ImGuiTableColumnFlags_WidthStretch = 8;
+  ImGuiTableColumnFlags_WidthFixed = 16;
+  ImGuiTableColumnFlags_NoResize = 32;
+  ImGuiTableColumnFlags_NoReorder = 64;
+  ImGuiTableColumnFlags_NoHide = 128;
+  ImGuiTableColumnFlags_NoClip = 256;
+  ImGuiTableColumnFlags_NoSort = 512;
+  ImGuiTableColumnFlags_NoSortAscending = 1024;
+  ImGuiTableColumnFlags_NoSortDescending = 2048;
+  ImGuiTableColumnFlags_NoHeaderLabel = 4096;
+  ImGuiTableColumnFlags_NoHeaderWidth = 8192;
+  ImGuiTableColumnFlags_PreferSortAscending = 16384;
+  ImGuiTableColumnFlags_PreferSortDescending = 32768;
+  ImGuiTableColumnFlags_IndentEnable = 65536;
+  ImGuiTableColumnFlags_IndentDisable = 131072;
+  ImGuiTableColumnFlags_AngledHeader = 262144;
+  ImGuiTableColumnFlags_IsEnabled = 16777216;
+  ImGuiTableColumnFlags_IsVisible = 33554432;
+  ImGuiTableColumnFlags_IsSorted = 67108864;
+  ImGuiTableColumnFlags_IsHovered = 134217728;
+  ImGuiTableColumnFlags_WidthMask_ = 24;
+  ImGuiTableColumnFlags_IndentMask_ = 196608;
+  ImGuiTableColumnFlags_StatusMask_ = 251658240;
+  ImGuiTableColumnFlags_NoDirectResize_ = 1073741824;
+
+type
+  ImGuiTableRowFlags_ = Integer;
+  PImGuiTableRowFlags_ = ^ImGuiTableRowFlags_;
+
+const
+  ImGuiTableRowFlags_None = 0;
+  ImGuiTableRowFlags_Headers = 1;
+
+type
+  ImGuiTableBgTarget_ = Integer;
+  PImGuiTableBgTarget_ = ^ImGuiTableBgTarget_;
+
+const
+  ImGuiTableBgTarget_None = 0;
+  ImGuiTableBgTarget_RowBg0 = 1;
+  ImGuiTableBgTarget_RowBg1 = 2;
+  ImGuiTableBgTarget_CellBg = 3;
+
+type
+  ImGuiFocusedFlags_ = Integer;
+  PImGuiFocusedFlags_ = ^ImGuiFocusedFlags_;
+
+const
+  ImGuiFocusedFlags_None = 0;
+  ImGuiFocusedFlags_ChildWindows = 1;
+  ImGuiFocusedFlags_RootWindow = 2;
+  ImGuiFocusedFlags_AnyWindow = 4;
+  ImGuiFocusedFlags_NoPopupHierarchy = 8;
+  ImGuiFocusedFlags_DockHierarchy = 16;
+  ImGuiFocusedFlags_RootAndChildWindows = 3;
+
+type
+  ImGuiHoveredFlags_ = Integer;
+  PImGuiHoveredFlags_ = ^ImGuiHoveredFlags_;
+
+const
+  ImGuiHoveredFlags_None = 0;
+  ImGuiHoveredFlags_ChildWindows = 1;
+  ImGuiHoveredFlags_RootWindow = 2;
+  ImGuiHoveredFlags_AnyWindow = 4;
+  ImGuiHoveredFlags_NoPopupHierarchy = 8;
+  ImGuiHoveredFlags_DockHierarchy = 16;
+  ImGuiHoveredFlags_AllowWhenBlockedByPopup = 32;
+  ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 128;
+  ImGuiHoveredFlags_AllowWhenOverlappedByItem = 256;
+  ImGuiHoveredFlags_AllowWhenOverlappedByWindow = 512;
+  ImGuiHoveredFlags_AllowWhenDisabled = 1024;
+  ImGuiHoveredFlags_NoNavOverride = 2048;
+  ImGuiHoveredFlags_AllowWhenOverlapped = 768;
+  ImGuiHoveredFlags_RectOnly = 928;
+  ImGuiHoveredFlags_RootAndChildWindows = 3;
+  ImGuiHoveredFlags_ForTooltip = 4096;
+  ImGuiHoveredFlags_Stationary = 8192;
+  ImGuiHoveredFlags_DelayNone = 16384;
+  ImGuiHoveredFlags_DelayShort = 32768;
+  ImGuiHoveredFlags_DelayNormal = 65536;
+  ImGuiHoveredFlags_NoSharedDelay = 131072;
+
+type
+  ImGuiDockNodeFlags_ = Integer;
+  PImGuiDockNodeFlags_ = ^ImGuiDockNodeFlags_;
+
+const
+  ImGuiDockNodeFlags_None = 0;
+  ImGuiDockNodeFlags_KeepAliveOnly = 1;
+  ImGuiDockNodeFlags_NoDockingOverCentralNode = 4;
+  ImGuiDockNodeFlags_PassthruCentralNode = 8;
+  ImGuiDockNodeFlags_NoDockingSplit = 16;
+  ImGuiDockNodeFlags_NoResize = 32;
+  ImGuiDockNodeFlags_AutoHideTabBar = 64;
+  ImGuiDockNodeFlags_NoUndocking = 128;
+
+type
+  ImGuiDragDropFlags_ = Integer;
+  PImGuiDragDropFlags_ = ^ImGuiDragDropFlags_;
+
+const
+  ImGuiDragDropFlags_None = 0;
+  ImGuiDragDropFlags_SourceNoPreviewTooltip = 1;
+  ImGuiDragDropFlags_SourceNoDisableHover = 2;
+  ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 4;
+  ImGuiDragDropFlags_SourceAllowNullID = 8;
+  ImGuiDragDropFlags_SourceExtern = 16;
+  ImGuiDragDropFlags_SourceAutoExpirePayload = 32;
+  ImGuiDragDropFlags_AcceptBeforeDelivery = 1024;
+  ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 2048;
+  ImGuiDragDropFlags_AcceptNoPreviewTooltip = 4096;
+  ImGuiDragDropFlags_AcceptPeekOnly = 3072;
+
+type
+  ImGuiDataType_ = Integer;
+  PImGuiDataType_ = ^ImGuiDataType_;
+
+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;
+
+type
+  ImGuiDir_ = Integer;
+  PImGuiDir_ = ^ImGuiDir_;
+
+const
+  ImGuiDir_None = -1;
+  ImGuiDir_Left = 0;
+  ImGuiDir_Right = 1;
+  ImGuiDir_Up = 2;
+  ImGuiDir_Down = 3;
+  ImGuiDir_COUNT = 4;
+
+type
+  ImGuiSortDirection_ = Integer;
+  PImGuiSortDirection_ = ^ImGuiSortDirection_;
+
+const
+  ImGuiSortDirection_None = 0;
+  ImGuiSortDirection_Ascending = 1;
+  ImGuiSortDirection_Descending = 2;
+
+type
+  ImGuiKey = Integer;
+  PImGuiKey = ^ImGuiKey;
+
+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 = 4096;
+  ImGuiMod_Shift = 8192;
+  ImGuiMod_Alt = 16384;
+  ImGuiMod_Super = 32768;
+  ImGuiMod_Shortcut = 2048;
+  ImGuiMod_Mask_ = 63488;
+  ImGuiKey_NamedKey_BEGIN = 512;
+  ImGuiKey_NamedKey_END = 666;
+  ImGuiKey_NamedKey_COUNT = 154;
+  ImGuiKey_KeysData_SIZE = 154;
+  ImGuiKey_KeysData_OFFSET = 512;
+
+type
+  ImGuiConfigFlags_ = Integer;
+  PImGuiConfigFlags_ = ^ImGuiConfigFlags_;
+
+const
+  ImGuiConfigFlags_None = 0;
+  ImGuiConfigFlags_NavEnableKeyboard = 1;
+  ImGuiConfigFlags_NavEnableGamepad = 2;
+  ImGuiConfigFlags_NavEnableSetMousePos = 4;
+  ImGuiConfigFlags_NavNoCaptureKeyboard = 8;
+  ImGuiConfigFlags_NoMouse = 16;
+  ImGuiConfigFlags_NoMouseCursorChange = 32;
+  ImGuiConfigFlags_DockingEnable = 64;
+  ImGuiConfigFlags_ViewportsEnable = 1024;
+  ImGuiConfigFlags_DpiEnableScaleViewports = 16384;
+  ImGuiConfigFlags_DpiEnableScaleFonts = 32768;
+  ImGuiConfigFlags_IsSRGB = 1048576;
+  ImGuiConfigFlags_IsTouchScreen = 2097152;
+
+type
+  ImGuiBackendFlags_ = Integer;
+  PImGuiBackendFlags_ = ^ImGuiBackendFlags_;
+
+const
+  ImGuiBackendFlags_None = 0;
+  ImGuiBackendFlags_HasGamepad = 1;
+  ImGuiBackendFlags_HasMouseCursors = 2;
+  ImGuiBackendFlags_HasSetMousePos = 4;
+  ImGuiBackendFlags_RendererHasVtxOffset = 8;
+  ImGuiBackendFlags_PlatformHasViewports = 1024;
+  ImGuiBackendFlags_HasMouseHoveredViewport = 2048;
+  ImGuiBackendFlags_RendererHasViewports = 4096;
+
+type
+  ImGuiCol_ = Integer;
+  PImGuiCol_ = ^ImGuiCol_;
+
+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;
+
+type
+  ImGuiStyleVar_ = Integer;
+  PImGuiStyleVar_ = ^ImGuiStyleVar_;
+
+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;
+
+type
+  ImGuiButtonFlags_ = Integer;
+  PImGuiButtonFlags_ = ^ImGuiButtonFlags_;
+
+const
+  ImGuiButtonFlags_None = 0;
+  ImGuiButtonFlags_MouseButtonLeft = 1;
+  ImGuiButtonFlags_MouseButtonRight = 2;
+  ImGuiButtonFlags_MouseButtonMiddle = 4;
+  ImGuiButtonFlags_MouseButtonMask_ = 7;
+  ImGuiButtonFlags_MouseButtonDefault_ = 1;
+
+type
+  ImGuiColorEditFlags_ = Integer;
+  PImGuiColorEditFlags_ = ^ImGuiColorEditFlags_;
+
+const
+  ImGuiColorEditFlags_None = 0;
+  ImGuiColorEditFlags_NoAlpha = 2;
+  ImGuiColorEditFlags_NoPicker = 4;
+  ImGuiColorEditFlags_NoOptions = 8;
+  ImGuiColorEditFlags_NoSmallPreview = 16;
+  ImGuiColorEditFlags_NoInputs = 32;
+  ImGuiColorEditFlags_NoTooltip = 64;
+  ImGuiColorEditFlags_NoLabel = 128;
+  ImGuiColorEditFlags_NoSidePreview = 256;
+  ImGuiColorEditFlags_NoDragDrop = 512;
+  ImGuiColorEditFlags_NoBorder = 1024;
+  ImGuiColorEditFlags_AlphaBar = 65536;
+  ImGuiColorEditFlags_AlphaPreview = 131072;
+  ImGuiColorEditFlags_AlphaPreviewHalf = 262144;
+  ImGuiColorEditFlags_HDR = 524288;
+  ImGuiColorEditFlags_DisplayRGB = 1048576;
+  ImGuiColorEditFlags_DisplayHSV = 2097152;
+  ImGuiColorEditFlags_DisplayHex = 4194304;
+  ImGuiColorEditFlags_Uint8 = 8388608;
+  ImGuiColorEditFlags_Float = 16777216;
+  ImGuiColorEditFlags_PickerHueBar = 33554432;
+  ImGuiColorEditFlags_PickerHueWheel = 67108864;
+  ImGuiColorEditFlags_InputRGB = 134217728;
+  ImGuiColorEditFlags_InputHSV = 268435456;
+  ImGuiColorEditFlags_DefaultOptions_ = 177209344;
+  ImGuiColorEditFlags_DisplayMask_ = 7340032;
+  ImGuiColorEditFlags_DataTypeMask_ = 25165824;
+  ImGuiColorEditFlags_PickerMask_ = 100663296;
+  ImGuiColorEditFlags_InputMask_ = 402653184;
+
+type
+  ImGuiSliderFlags_ = Integer;
+  PImGuiSliderFlags_ = ^ImGuiSliderFlags_;
+
+const
+  ImGuiSliderFlags_None = 0;
+  ImGuiSliderFlags_AlwaysClamp = 16;
+  ImGuiSliderFlags_Logarithmic = 32;
+  ImGuiSliderFlags_NoRoundToFormat = 64;
+  ImGuiSliderFlags_NoInput = 128;
+  ImGuiSliderFlags_InvalidMask_ = 1879048207;
+
+type
+  ImGuiMouseButton_ = Integer;
+  PImGuiMouseButton_ = ^ImGuiMouseButton_;
+
+const
+  ImGuiMouseButton_Left = 0;
+  ImGuiMouseButton_Right = 1;
+  ImGuiMouseButton_Middle = 2;
+  ImGuiMouseButton_COUNT = 5;
+
+type
+  ImGuiMouseCursor_ = Integer;
+  PImGuiMouseCursor_ = ^ImGuiMouseCursor_;
+
+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;
+
+type
+  ImGuiMouseSource = Integer;
+  PImGuiMouseSource = ^ImGuiMouseSource;
+
+const
+  ImGuiMouseSource_Mouse = 0;
+  ImGuiMouseSource_TouchScreen = 1;
+  ImGuiMouseSource_Pen = 2;
+  ImGuiMouseSource_COUNT = 3;
+
+type
+  ImGuiCond_ = Integer;
+  PImGuiCond_ = ^ImGuiCond_;
+
+const
+  ImGuiCond_None = 0;
+  ImGuiCond_Always = 1;
+  ImGuiCond_Once = 2;
+  ImGuiCond_FirstUseEver = 4;
+  ImGuiCond_Appearing = 8;
+
+type
+  ImDrawFlags_ = Integer;
+  PImDrawFlags_ = ^ImDrawFlags_;
+
+const
+  ImDrawFlags_None = 0;
+  ImDrawFlags_Closed = 1;
+  ImDrawFlags_RoundCornersTopLeft = 16;
+  ImDrawFlags_RoundCornersTopRight = 32;
+  ImDrawFlags_RoundCornersBottomLeft = 64;
+  ImDrawFlags_RoundCornersBottomRight = 128;
+  ImDrawFlags_RoundCornersNone = 256;
+  ImDrawFlags_RoundCornersTop = 48;
+  ImDrawFlags_RoundCornersBottom = 192;
+  ImDrawFlags_RoundCornersLeft = 80;
+  ImDrawFlags_RoundCornersRight = 160;
+  ImDrawFlags_RoundCornersAll = 240;
+  ImDrawFlags_RoundCornersDefault_ = 240;
+  ImDrawFlags_RoundCornersMask_ = 496;
+
+type
+  ImDrawListFlags_ = Integer;
+  PImDrawListFlags_ = ^ImDrawListFlags_;
+
+const
+  ImDrawListFlags_None = 0;
+  ImDrawListFlags_AntiAliasedLines = 1;
+  ImDrawListFlags_AntiAliasedLinesUseTex = 2;
+  ImDrawListFlags_AntiAliasedFill = 4;
+  ImDrawListFlags_AllowVtxOffset = 8;
+
+type
+  ImFontAtlasFlags_ = Integer;
+  PImFontAtlasFlags_ = ^ImFontAtlasFlags_;
+
+const
+  ImFontAtlasFlags_None = 0;
+  ImFontAtlasFlags_NoPowerOfTwoHeight = 1;
+  ImFontAtlasFlags_NoMouseCursors = 2;
+  ImFontAtlasFlags_NoBakedLines = 4;
+
+type
+  ImGuiViewportFlags_ = Integer;
+  PImGuiViewportFlags_ = ^ImGuiViewportFlags_;
+
+const
+  ImGuiViewportFlags_None = 0;
+  ImGuiViewportFlags_IsPlatformWindow = 1;
+  ImGuiViewportFlags_IsPlatformMonitor = 2;
+  ImGuiViewportFlags_OwnedByApp = 4;
+  ImGuiViewportFlags_NoDecoration = 8;
+  ImGuiViewportFlags_NoTaskBarIcon = 16;
+  ImGuiViewportFlags_NoFocusOnAppearing = 32;
+  ImGuiViewportFlags_NoFocusOnClick = 64;
+  ImGuiViewportFlags_NoInputs = 128;
+  ImGuiViewportFlags_NoRendererClear = 256;
+  ImGuiViewportFlags_NoAutoMerge = 512;
+  ImGuiViewportFlags_TopMost = 1024;
+  ImGuiViewportFlags_CanHostOtherWindows = 2048;
+  ImGuiViewportFlags_IsMinimized = 4096;
+  ImGuiViewportFlags_IsFocused = 8192;
+
+type
+  ImGuiItemFlags_ = Integer;
+  PImGuiItemFlags_ = ^ImGuiItemFlags_;
+
+const
+  ImGuiItemFlags_None = 0;
+  ImGuiItemFlags_NoTabStop = 1;
+  ImGuiItemFlags_ButtonRepeat = 2;
+  ImGuiItemFlags_Disabled = 4;
+  ImGuiItemFlags_NoNav = 8;
+  ImGuiItemFlags_NoNavDefaultFocus = 16;
+  ImGuiItemFlags_SelectableDontClosePopup = 32;
+  ImGuiItemFlags_MixedValue = 64;
+  ImGuiItemFlags_ReadOnly = 128;
+  ImGuiItemFlags_NoWindowHoverableCheck = 256;
+  ImGuiItemFlags_AllowOverlap = 512;
+  ImGuiItemFlags_Inputable = 1024;
+  ImGuiItemFlags_HasSelectionUserData = 2048;
+
+type
+  ImGuiItemStatusFlags_ = Integer;
+  PImGuiItemStatusFlags_ = ^ImGuiItemStatusFlags_;
+
+const
+  ImGuiItemStatusFlags_None = 0;
+  ImGuiItemStatusFlags_HoveredRect = 1;
+  ImGuiItemStatusFlags_HasDisplayRect = 2;
+  ImGuiItemStatusFlags_Edited = 4;
+  ImGuiItemStatusFlags_ToggledSelection = 8;
+  ImGuiItemStatusFlags_ToggledOpen = 16;
+  ImGuiItemStatusFlags_HasDeactivated = 32;
+  ImGuiItemStatusFlags_Deactivated = 64;
+  ImGuiItemStatusFlags_HoveredWindow = 128;
+  ImGuiItemStatusFlags_FocusedByTabbing = 256;
+  ImGuiItemStatusFlags_Visible = 512;
+
+type
+  ImGuiHoveredFlagsPrivate_ = Integer;
+  PImGuiHoveredFlagsPrivate_ = ^ImGuiHoveredFlagsPrivate_;
+
+const
+  ImGuiHoveredFlags_DelayMask_ = 245760;
+  ImGuiHoveredFlags_AllowedMaskForIsWindowHovered = 12479;
+  ImGuiHoveredFlags_AllowedMaskForIsItemHovered = 262048;
+
+type
+  ImGuiInputTextFlagsPrivate_ = Integer;
+  PImGuiInputTextFlagsPrivate_ = ^ImGuiInputTextFlagsPrivate_;
+
+const
+  ImGuiInputTextFlags_Multiline = 67108864;
+  ImGuiInputTextFlags_NoMarkEdited = 134217728;
+  ImGuiInputTextFlags_MergedItem = 268435456;
+
+type
+  ImGuiButtonFlagsPrivate_ = Integer;
+  PImGuiButtonFlagsPrivate_ = ^ImGuiButtonFlagsPrivate_;
+
+const
+  ImGuiButtonFlags_PressedOnClick = 16;
+  ImGuiButtonFlags_PressedOnClickRelease = 32;
+  ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 64;
+  ImGuiButtonFlags_PressedOnRelease = 128;
+  ImGuiButtonFlags_PressedOnDoubleClick = 256;
+  ImGuiButtonFlags_PressedOnDragDropHold = 512;
+  ImGuiButtonFlags_Repeat = 1024;
+  ImGuiButtonFlags_FlattenChildren = 2048;
+  ImGuiButtonFlags_AllowOverlap = 4096;
+  ImGuiButtonFlags_DontClosePopups = 8192;
+  ImGuiButtonFlags_AlignTextBaseLine = 32768;
+  ImGuiButtonFlags_NoKeyModifiers = 65536;
+  ImGuiButtonFlags_NoHoldingActiveId = 131072;
+  ImGuiButtonFlags_NoNavFocus = 262144;
+  ImGuiButtonFlags_NoHoveredOnFocus = 524288;
+  ImGuiButtonFlags_NoSetKeyOwner = 1048576;
+  ImGuiButtonFlags_NoTestKeyOwner = 2097152;
+  ImGuiButtonFlags_PressedOnMask_ = 1008;
+  ImGuiButtonFlags_PressedOnDefault_ = 32;
+
+type
+  ImGuiComboFlagsPrivate_ = Integer;
+  PImGuiComboFlagsPrivate_ = ^ImGuiComboFlagsPrivate_;
+
+const
+  ImGuiComboFlags_CustomPreview = 1048576;
+
+type
+  ImGuiSliderFlagsPrivate_ = Integer;
+  PImGuiSliderFlagsPrivate_ = ^ImGuiSliderFlagsPrivate_;
+
+const
+  ImGuiSliderFlags_Vertical = 1048576;
+  ImGuiSliderFlags_ReadOnly = 2097152;
+
+type
+  ImGuiSelectableFlagsPrivate_ = Integer;
+  PImGuiSelectableFlagsPrivate_ = ^ImGuiSelectableFlagsPrivate_;
+
+const
+  ImGuiSelectableFlags_NoHoldingActiveID = 1048576;
+  ImGuiSelectableFlags_SelectOnNav = 2097152;
+  ImGuiSelectableFlags_SelectOnClick = 4194304;
+  ImGuiSelectableFlags_SelectOnRelease = 8388608;
+  ImGuiSelectableFlags_SpanAvailWidth = 16777216;
+  ImGuiSelectableFlags_SetNavIdOnHover = 33554432;
+  ImGuiSelectableFlags_NoPadWithHalfSpacing = 67108864;
+  ImGuiSelectableFlags_NoSetKeyOwner = 134217728;
+
+type
+  ImGuiTreeNodeFlagsPrivate_ = Integer;
+  PImGuiTreeNodeFlagsPrivate_ = ^ImGuiTreeNodeFlagsPrivate_;
+
+const
+  ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1048576;
+  ImGuiTreeNodeFlags_UpsideDownArrow = 2097152;
+
+type
+  ImGuiSeparatorFlags_ = Integer;
+  PImGuiSeparatorFlags_ = ^ImGuiSeparatorFlags_;
+
+const
+  ImGuiSeparatorFlags_None = 0;
+  ImGuiSeparatorFlags_Horizontal = 1;
+  ImGuiSeparatorFlags_Vertical = 2;
+  ImGuiSeparatorFlags_SpanAllColumns = 4;
+
+type
+  ImGuiFocusRequestFlags_ = Integer;
+  PImGuiFocusRequestFlags_ = ^ImGuiFocusRequestFlags_;
+
+const
+  ImGuiFocusRequestFlags_None = 0;
+  ImGuiFocusRequestFlags_RestoreFocusedChild = 1;
+  ImGuiFocusRequestFlags_UnlessBelowModal = 2;
+
+type
+  ImGuiTextFlags_ = Integer;
+  PImGuiTextFlags_ = ^ImGuiTextFlags_;
+
+const
+  ImGuiTextFlags_None = 0;
+  ImGuiTextFlags_NoWidthForLargeClippedText = 1;
+
+type
+  ImGuiTooltipFlags_ = Integer;
+  PImGuiTooltipFlags_ = ^ImGuiTooltipFlags_;
+
+const
+  ImGuiTooltipFlags_None = 0;
+  ImGuiTooltipFlags_OverridePrevious = 2;
+
+type
+  ImGuiLayoutType_ = Integer;
+  PImGuiLayoutType_ = ^ImGuiLayoutType_;
+
+const
+  ImGuiLayoutType_Horizontal = 0;
+  ImGuiLayoutType_Vertical = 1;
+
+type
+  ImGuiLogType = Integer;
+  PImGuiLogType = ^ImGuiLogType;
+
+const
+  ImGuiLogType_None = 0;
+  ImGuiLogType_TTY = 1;
+  ImGuiLogType_File = 2;
+  ImGuiLogType_Buffer = 3;
+  ImGuiLogType_Clipboard = 4;
+
+type
+  ImGuiAxis = Integer;
+  PImGuiAxis = ^ImGuiAxis;
+
+const
+  ImGuiAxis_None = -1;
+  ImGuiAxis_X = 0;
+  ImGuiAxis_Y = 1;
+
+type
+  ImGuiPlotType = Integer;
+  PImGuiPlotType = ^ImGuiPlotType;
+
+const
+  ImGuiPlotType_Lines = 0;
+  ImGuiPlotType_Histogram = 1;
+
+type
+  ImGuiPopupPositionPolicy = Integer;
+  PImGuiPopupPositionPolicy = ^ImGuiPopupPositionPolicy;
+
+const
+  ImGuiPopupPositionPolicy_Default = 0;
+  ImGuiPopupPositionPolicy_ComboBox = 1;
+  ImGuiPopupPositionPolicy_Tooltip = 2;
+
+type
+  ImGuiDataTypePrivate_ = Integer;
+  PImGuiDataTypePrivate_ = ^ImGuiDataTypePrivate_;
+
+const
+  ImGuiDataType_String = 11;
+  ImGuiDataType_Pointer = 12;
+  ImGuiDataType_ID = 13;
+
+type
+  ImGuiNextWindowDataFlags_ = Integer;
+  PImGuiNextWindowDataFlags_ = ^ImGuiNextWindowDataFlags_;
+
+const
+  ImGuiNextWindowDataFlags_None = 0;
+  ImGuiNextWindowDataFlags_HasPos = 1;
+  ImGuiNextWindowDataFlags_HasSize = 2;
+  ImGuiNextWindowDataFlags_HasContentSize = 4;
+  ImGuiNextWindowDataFlags_HasCollapsed = 8;
+  ImGuiNextWindowDataFlags_HasSizeConstraint = 16;
+  ImGuiNextWindowDataFlags_HasFocus = 32;
+  ImGuiNextWindowDataFlags_HasBgAlpha = 64;
+  ImGuiNextWindowDataFlags_HasScroll = 128;
+  ImGuiNextWindowDataFlags_HasChildFlags = 256;
+  ImGuiNextWindowDataFlags_HasViewport = 512;
+  ImGuiNextWindowDataFlags_HasDock = 1024;
+  ImGuiNextWindowDataFlags_HasWindowClass = 2048;
+
+type
+  ImGuiNextItemDataFlags_ = Integer;
+  PImGuiNextItemDataFlags_ = ^ImGuiNextItemDataFlags_;
+
+const
+  ImGuiNextItemDataFlags_None = 0;
+  ImGuiNextItemDataFlags_HasWidth = 1;
+  ImGuiNextItemDataFlags_HasOpen = 2;
+
+type
+  ImGuiInputEventType = Integer;
+  PImGuiInputEventType = ^ImGuiInputEventType;
+
+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;
+
+type
+  ImGuiInputSource = Integer;
+  PImGuiInputSource = ^ImGuiInputSource;
+
+const
+  ImGuiInputSource_None = 0;
+  ImGuiInputSource_Mouse = 1;
+  ImGuiInputSource_Keyboard = 2;
+  ImGuiInputSource_Gamepad = 3;
+  ImGuiInputSource_Clipboard = 4;
+  ImGuiInputSource_COUNT = 5;
+
+type
+  ImGuiInputFlags_ = Integer;
+  PImGuiInputFlags_ = ^ImGuiInputFlags_;
+
+const
+  ImGuiInputFlags_None = 0;
+  ImGuiInputFlags_Repeat = 1;
+  ImGuiInputFlags_RepeatRateDefault = 2;
+  ImGuiInputFlags_RepeatRateNavMove = 4;
+  ImGuiInputFlags_RepeatRateNavTweak = 8;
+  ImGuiInputFlags_RepeatRateMask_ = 14;
+  ImGuiInputFlags_CondHovered = 16;
+  ImGuiInputFlags_CondActive = 32;
+  ImGuiInputFlags_CondDefault_ = 48;
+  ImGuiInputFlags_CondMask_ = 48;
+  ImGuiInputFlags_LockThisFrame = 64;
+  ImGuiInputFlags_LockUntilRelease = 128;
+  ImGuiInputFlags_RouteFocused = 256;
+  ImGuiInputFlags_RouteGlobalLow = 512;
+  ImGuiInputFlags_RouteGlobal = 1024;
+  ImGuiInputFlags_RouteGlobalHigh = 2048;
+  ImGuiInputFlags_RouteMask_ = 3840;
+  ImGuiInputFlags_RouteAlways = 4096;
+  ImGuiInputFlags_RouteUnlessBgFocused = 8192;
+  ImGuiInputFlags_RouteExtraMask_ = 12288;
+  ImGuiInputFlags_SupportedByIsKeyPressed = 15;
+  ImGuiInputFlags_SupportedByShortcut = 16143;
+  ImGuiInputFlags_SupportedBySetKeyOwner = 192;
+  ImGuiInputFlags_SupportedBySetItemKeyOwner = 240;
+
+type
+  ImGuiActivateFlags_ = Integer;
+  PImGuiActivateFlags_ = ^ImGuiActivateFlags_;
+
+const
+  ImGuiActivateFlags_None = 0;
+  ImGuiActivateFlags_PreferInput = 1;
+  ImGuiActivateFlags_PreferTweak = 2;
+  ImGuiActivateFlags_TryToPreserveState = 4;
+
+type
+  ImGuiScrollFlags_ = Integer;
+  PImGuiScrollFlags_ = ^ImGuiScrollFlags_;
+
+const
+  ImGuiScrollFlags_None = 0;
+  ImGuiScrollFlags_KeepVisibleEdgeX = 1;
+  ImGuiScrollFlags_KeepVisibleEdgeY = 2;
+  ImGuiScrollFlags_KeepVisibleCenterX = 4;
+  ImGuiScrollFlags_KeepVisibleCenterY = 8;
+  ImGuiScrollFlags_AlwaysCenterX = 16;
+  ImGuiScrollFlags_AlwaysCenterY = 32;
+  ImGuiScrollFlags_NoScrollParent = 64;
+  ImGuiScrollFlags_MaskX_ = 21;
+  ImGuiScrollFlags_MaskY_ = 42;
+
+type
+  ImGuiNavHighlightFlags_ = Integer;
+  PImGuiNavHighlightFlags_ = ^ImGuiNavHighlightFlags_;
+
+const
+  ImGuiNavHighlightFlags_None = 0;
+  ImGuiNavHighlightFlags_TypeDefault = 1;
+  ImGuiNavHighlightFlags_TypeThin = 2;
+  ImGuiNavHighlightFlags_AlwaysDraw = 4;
+  ImGuiNavHighlightFlags_NoRounding = 8;
+
+type
+  ImGuiNavMoveFlags_ = Integer;
+  PImGuiNavMoveFlags_ = ^ImGuiNavMoveFlags_;
+
+const
+  ImGuiNavMoveFlags_None = 0;
+  ImGuiNavMoveFlags_LoopX = 1;
+  ImGuiNavMoveFlags_LoopY = 2;
+  ImGuiNavMoveFlags_WrapX = 4;
+  ImGuiNavMoveFlags_WrapY = 8;
+  ImGuiNavMoveFlags_WrapMask_ = 15;
+  ImGuiNavMoveFlags_AllowCurrentNavId = 16;
+  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 32;
+  ImGuiNavMoveFlags_ScrollToEdgeY = 64;
+  ImGuiNavMoveFlags_Forwarded = 128;
+  ImGuiNavMoveFlags_DebugNoResult = 256;
+  ImGuiNavMoveFlags_FocusApi = 512;
+  ImGuiNavMoveFlags_IsTabbing = 1024;
+  ImGuiNavMoveFlags_IsPageMove = 2048;
+  ImGuiNavMoveFlags_Activate = 4096;
+  ImGuiNavMoveFlags_NoSelect = 8192;
+  ImGuiNavMoveFlags_NoSetNavHighlight = 16384;
+
+type
+  ImGuiNavLayer = Integer;
+  PImGuiNavLayer = ^ImGuiNavLayer;
+
+const
+  ImGuiNavLayer_Main = 0;
+  ImGuiNavLayer_Menu = 1;
+  ImGuiNavLayer_COUNT = 2;
+
+type
+  ImGuiTypingSelectFlags_ = Integer;
+  PImGuiTypingSelectFlags_ = ^ImGuiTypingSelectFlags_;
+
+const
+  ImGuiTypingSelectFlags_None = 0;
+  ImGuiTypingSelectFlags_AllowBackspace = 1;
+  ImGuiTypingSelectFlags_AllowSingleCharMode = 2;
+
+type
+  ImGuiOldColumnFlags_ = Integer;
+  PImGuiOldColumnFlags_ = ^ImGuiOldColumnFlags_;
+
+const
+  ImGuiOldColumnFlags_None = 0;
+  ImGuiOldColumnFlags_NoBorder = 1;
+  ImGuiOldColumnFlags_NoResize = 2;
+  ImGuiOldColumnFlags_NoPreserveWidths = 4;
+  ImGuiOldColumnFlags_NoForceWithinWindow = 8;
+  ImGuiOldColumnFlags_GrowParentContentsSize = 16;
+
+type
+  ImGuiDockNodeFlagsPrivate_ = Integer;
+  PImGuiDockNodeFlagsPrivate_ = ^ImGuiDockNodeFlagsPrivate_;
+
+const
+  ImGuiDockNodeFlags_DockSpace = 1024;
+  ImGuiDockNodeFlags_CentralNode = 2048;
+  ImGuiDockNodeFlags_NoTabBar = 4096;
+  ImGuiDockNodeFlags_HiddenTabBar = 8192;
+  ImGuiDockNodeFlags_NoWindowMenuButton = 16384;
+  ImGuiDockNodeFlags_NoCloseButton = 32768;
+  ImGuiDockNodeFlags_NoResizeX = 65536;
+  ImGuiDockNodeFlags_NoResizeY = 131072;
+  ImGuiDockNodeFlags_NoDockingSplitOther = 524288;
+  ImGuiDockNodeFlags_NoDockingOverMe = 1048576;
+  ImGuiDockNodeFlags_NoDockingOverOther = 2097152;
+  ImGuiDockNodeFlags_NoDockingOverEmpty = 4194304;
+  ImGuiDockNodeFlags_NoDocking = 7864336;
+  ImGuiDockNodeFlags_SharedFlagsInheritMask_ = -1;
+  ImGuiDockNodeFlags_NoResizeFlagsMask_ = 196640;
+  ImGuiDockNodeFlags_LocalFlagsTransferMask_ = 260208;
+  ImGuiDockNodeFlags_SavedFlagsMask_ = 261152;
+
+type
+  ImGuiDataAuthority_ = Integer;
+  PImGuiDataAuthority_ = ^ImGuiDataAuthority_;
+
+const
+  ImGuiDataAuthority_Auto = 0;
+  ImGuiDataAuthority_DockNode = 1;
+  ImGuiDataAuthority_Window = 2;
+
+type
+  ImGuiDockNodeState = Integer;
+  PImGuiDockNodeState = ^ImGuiDockNodeState;
+
+const
+  ImGuiDockNodeState_Unknown = 0;
+  ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow = 1;
+  ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing = 2;
+  ImGuiDockNodeState_HostWindowVisible = 3;
+
+type
+  ImGuiWindowDockStyleCol = Integer;
+  PImGuiWindowDockStyleCol = ^ImGuiWindowDockStyleCol;
+
+const
+  ImGuiWindowDockStyleCol_Text = 0;
+  ImGuiWindowDockStyleCol_Tab = 1;
+  ImGuiWindowDockStyleCol_TabHovered = 2;
+  ImGuiWindowDockStyleCol_TabActive = 3;
+  ImGuiWindowDockStyleCol_TabUnfocused = 4;
+  ImGuiWindowDockStyleCol_TabUnfocusedActive = 5;
+  ImGuiWindowDockStyleCol_COUNT = 6;
+
+type
+  ImGuiLocKey = Integer;
+  PImGuiLocKey = ^ImGuiLocKey;
+
+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;
+
+type
+  ImGuiDebugLogFlags_ = Integer;
+  PImGuiDebugLogFlags_ = ^ImGuiDebugLogFlags_;
+
+const
+  ImGuiDebugLogFlags_None = 0;
+  ImGuiDebugLogFlags_EventActiveId = 1;
+  ImGuiDebugLogFlags_EventFocus = 2;
+  ImGuiDebugLogFlags_EventPopup = 4;
+  ImGuiDebugLogFlags_EventNav = 8;
+  ImGuiDebugLogFlags_EventClipper = 16;
+  ImGuiDebugLogFlags_EventSelection = 32;
+  ImGuiDebugLogFlags_EventIO = 64;
+  ImGuiDebugLogFlags_EventDocking = 128;
+  ImGuiDebugLogFlags_EventViewport = 256;
+  ImGuiDebugLogFlags_EventMask_ = 511;
+  ImGuiDebugLogFlags_OutputToTTY = 1024;
+  ImGuiDebugLogFlags_OutputToTestEngine = 2048;
+
+type
+  ImGuiContextHookType = Integer;
+  PImGuiContextHookType = ^ImGuiContextHookType;
+
+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;
+
+type
+  ImGuiTabBarFlagsPrivate_ = Integer;
+  PImGuiTabBarFlagsPrivate_ = ^ImGuiTabBarFlagsPrivate_;
+
+const
+  ImGuiTabBarFlags_DockNode = 1048576;
+  ImGuiTabBarFlags_IsFocused = 2097152;
+  ImGuiTabBarFlags_SaveSettings = 4194304;
+
+type
+  ImGuiTabItemFlagsPrivate_ = Integer;
+  PImGuiTabItemFlagsPrivate_ = ^ImGuiTabItemFlagsPrivate_;
+
+const
+  ImGuiTabItemFlags_SectionMask_ = 192;
+  ImGuiTabItemFlags_NoCloseButton = 1048576;
+  ImGuiTabItemFlags_Button = 2097152;
+  ImGuiTabItemFlags_Unsorted = 4194304;
+
+type
+  ImAxis_ = Integer;
+  PImAxis_ = ^ImAxis_;
+
+const
+  ImAxis_X1 = 0;
+  ImAxis_X2 = 1;
+  ImAxis_X3 = 2;
+  ImAxis_Y1 = 3;
+  ImAxis_Y2 = 4;
+  ImAxis_Y3 = 5;
+  ImAxis_COUNT = 6;
+
+type
+  ImPlotFlags_ = Integer;
+  PImPlotFlags_ = ^ImPlotFlags_;
+
+const
+  ImPlotFlags_None = 0;
+  ImPlotFlags_NoTitle = 1;
+  ImPlotFlags_NoLegend = 2;
+  ImPlotFlags_NoMouseText = 4;
+  ImPlotFlags_NoInputs = 8;
+  ImPlotFlags_NoMenus = 16;
+  ImPlotFlags_NoBoxSelect = 32;
+  ImPlotFlags_NoFrame = 64;
+  ImPlotFlags_Equal = 128;
+  ImPlotFlags_Crosshairs = 256;
+  ImPlotFlags_CanvasOnly = 55;
+
+type
+  ImPlotAxisFlags_ = Integer;
+  PImPlotAxisFlags_ = ^ImPlotAxisFlags_;
+
+const
+  ImPlotAxisFlags_None = 0;
+  ImPlotAxisFlags_NoLabel = 1;
+  ImPlotAxisFlags_NoGridLines = 2;
+  ImPlotAxisFlags_NoTickMarks = 4;
+  ImPlotAxisFlags_NoTickLabels = 8;
+  ImPlotAxisFlags_NoInitialFit = 16;
+  ImPlotAxisFlags_NoMenus = 32;
+  ImPlotAxisFlags_NoSideSwitch = 64;
+  ImPlotAxisFlags_NoHighlight = 128;
+  ImPlotAxisFlags_Opposite = 256;
+  ImPlotAxisFlags_Foreground = 512;
+  ImPlotAxisFlags_Invert = 1024;
+  ImPlotAxisFlags_AutoFit = 2048;
+  ImPlotAxisFlags_RangeFit = 4096;
+  ImPlotAxisFlags_PanStretch = 8192;
+  ImPlotAxisFlags_LockMin = 16384;
+  ImPlotAxisFlags_LockMax = 32768;
+  ImPlotAxisFlags_Lock = 49152;
+  ImPlotAxisFlags_NoDecorations = 15;
+  ImPlotAxisFlags_AuxDefault = 258;
+
+type
+  ImPlotSubplotFlags_ = Integer;
+  PImPlotSubplotFlags_ = ^ImPlotSubplotFlags_;
+
+const
+  ImPlotSubplotFlags_None = 0;
+  ImPlotSubplotFlags_NoTitle = 1;
+  ImPlotSubplotFlags_NoLegend = 2;
+  ImPlotSubplotFlags_NoMenus = 4;
+  ImPlotSubplotFlags_NoResize = 8;
+  ImPlotSubplotFlags_NoAlign = 16;
+  ImPlotSubplotFlags_ShareItems = 32;
+  ImPlotSubplotFlags_LinkRows = 64;
+  ImPlotSubplotFlags_LinkCols = 128;
+  ImPlotSubplotFlags_LinkAllX = 256;
+  ImPlotSubplotFlags_LinkAllY = 512;
+  ImPlotSubplotFlags_ColMajor = 1024;
+
+type
+  ImPlotLegendFlags_ = Integer;
+  PImPlotLegendFlags_ = ^ImPlotLegendFlags_;
+
+const
+  ImPlotLegendFlags_None = 0;
+  ImPlotLegendFlags_NoButtons = 1;
+  ImPlotLegendFlags_NoHighlightItem = 2;
+  ImPlotLegendFlags_NoHighlightAxis = 4;
+  ImPlotLegendFlags_NoMenus = 8;
+  ImPlotLegendFlags_Outside = 16;
+  ImPlotLegendFlags_Horizontal = 32;
+  ImPlotLegendFlags_Sort = 64;
+
+type
+  ImPlotMouseTextFlags_ = Integer;
+  PImPlotMouseTextFlags_ = ^ImPlotMouseTextFlags_;
+
+const
+  ImPlotMouseTextFlags_None = 0;
+  ImPlotMouseTextFlags_NoAuxAxes = 1;
+  ImPlotMouseTextFlags_NoFormat = 2;
+  ImPlotMouseTextFlags_ShowAlways = 4;
+
+type
+  ImPlotDragToolFlags_ = Integer;
+  PImPlotDragToolFlags_ = ^ImPlotDragToolFlags_;
+
+const
+  ImPlotDragToolFlags_None = 0;
+  ImPlotDragToolFlags_NoCursors = 1;
+  ImPlotDragToolFlags_NoFit = 2;
+  ImPlotDragToolFlags_NoInputs = 4;
+  ImPlotDragToolFlags_Delayed = 8;
+
+type
+  ImPlotColormapScaleFlags_ = Integer;
+  PImPlotColormapScaleFlags_ = ^ImPlotColormapScaleFlags_;
+
+const
+  ImPlotColormapScaleFlags_None = 0;
+  ImPlotColormapScaleFlags_NoLabel = 1;
+  ImPlotColormapScaleFlags_Opposite = 2;
+  ImPlotColormapScaleFlags_Invert = 4;
+
+type
+  ImPlotItemFlags_ = Integer;
+  PImPlotItemFlags_ = ^ImPlotItemFlags_;
+
+const
+  ImPlotItemFlags_None = 0;
+  ImPlotItemFlags_NoLegend = 1;
+  ImPlotItemFlags_NoFit = 2;
+
+type
+  ImPlotLineFlags_ = Integer;
+  PImPlotLineFlags_ = ^ImPlotLineFlags_;
+
+const
+  ImPlotLineFlags_None = 0;
+  ImPlotLineFlags_Segments = 1024;
+  ImPlotLineFlags_Loop = 2048;
+  ImPlotLineFlags_SkipNaN = 4096;
+  ImPlotLineFlags_NoClip = 8192;
+  ImPlotLineFlags_Shaded = 16384;
+
+type
+  ImPlotScatterFlags_ = Integer;
+  PImPlotScatterFlags_ = ^ImPlotScatterFlags_;
+
+const
+  ImPlotScatterFlags_None = 0;
+  ImPlotScatterFlags_NoClip = 1024;
+
+type
+  ImPlotStairsFlags_ = Integer;
+  PImPlotStairsFlags_ = ^ImPlotStairsFlags_;
+
+const
+  ImPlotStairsFlags_None = 0;
+  ImPlotStairsFlags_PreStep = 1024;
+  ImPlotStairsFlags_Shaded = 2048;
+
+type
+  ImPlotShadedFlags_ = Integer;
+  PImPlotShadedFlags_ = ^ImPlotShadedFlags_;
+
+const
+  ImPlotShadedFlags_None = 0;
+
+type
+  ImPlotBarsFlags_ = Integer;
+  PImPlotBarsFlags_ = ^ImPlotBarsFlags_;
+
+const
+  ImPlotBarsFlags_None = 0;
+  ImPlotBarsFlags_Horizontal = 1024;
+
+type
+  ImPlotBarGroupsFlags_ = Integer;
+  PImPlotBarGroupsFlags_ = ^ImPlotBarGroupsFlags_;
+
+const
+  ImPlotBarGroupsFlags_None = 0;
+  ImPlotBarGroupsFlags_Horizontal = 1024;
+  ImPlotBarGroupsFlags_Stacked = 2048;
+
+type
+  ImPlotErrorBarsFlags_ = Integer;
+  PImPlotErrorBarsFlags_ = ^ImPlotErrorBarsFlags_;
+
+const
+  ImPlotErrorBarsFlags_None = 0;
+  ImPlotErrorBarsFlags_Horizontal = 1024;
+
+type
+  ImPlotStemsFlags_ = Integer;
+  PImPlotStemsFlags_ = ^ImPlotStemsFlags_;
+
+const
+  ImPlotStemsFlags_None = 0;
+  ImPlotStemsFlags_Horizontal = 1024;
+
+type
+  ImPlotInfLinesFlags_ = Integer;
+  PImPlotInfLinesFlags_ = ^ImPlotInfLinesFlags_;
+
+const
+  ImPlotInfLinesFlags_None = 0;
+  ImPlotInfLinesFlags_Horizontal = 1024;
+
+type
+  ImPlotPieChartFlags_ = Integer;
+  PImPlotPieChartFlags_ = ^ImPlotPieChartFlags_;
+
+const
+  ImPlotPieChartFlags_None = 0;
+  ImPlotPieChartFlags_Normalize = 1024;
+  ImPlotPieChartFlags_IgnoreHidden = 2048;
+
+type
+  ImPlotHeatmapFlags_ = Integer;
+  PImPlotHeatmapFlags_ = ^ImPlotHeatmapFlags_;
+
+const
+  ImPlotHeatmapFlags_None = 0;
+  ImPlotHeatmapFlags_ColMajor = 1024;
+
+type
+  ImPlotHistogramFlags_ = Integer;
+  PImPlotHistogramFlags_ = ^ImPlotHistogramFlags_;
+
+const
+  ImPlotHistogramFlags_None = 0;
+  ImPlotHistogramFlags_Horizontal = 1024;
+  ImPlotHistogramFlags_Cumulative = 2048;
+  ImPlotHistogramFlags_Density = 4096;
+  ImPlotHistogramFlags_NoOutliers = 8192;
+  ImPlotHistogramFlags_ColMajor = 16384;
+
+type
+  ImPlotDigitalFlags_ = Integer;
+  PImPlotDigitalFlags_ = ^ImPlotDigitalFlags_;
+
+const
+  ImPlotDigitalFlags_None = 0;
+
+type
+  ImPlotImageFlags_ = Integer;
+  PImPlotImageFlags_ = ^ImPlotImageFlags_;
+
+const
+  ImPlotImageFlags_None = 0;
+
+type
+  ImPlotTextFlags_ = Integer;
+  PImPlotTextFlags_ = ^ImPlotTextFlags_;
+
+const
+  ImPlotTextFlags_None = 0;
+  ImPlotTextFlags_Vertical = 1024;
+
+type
+  ImPlotDummyFlags_ = Integer;
+  PImPlotDummyFlags_ = ^ImPlotDummyFlags_;
+
+const
+  ImPlotDummyFlags_None = 0;
+
+type
+  ImPlotCond_ = Integer;
+  PImPlotCond_ = ^ImPlotCond_;
+
+const
+  ImPlotCond_None = 0;
+  ImPlotCond_Always = 1;
+  ImPlotCond_Once = 2;
+
+type
+  ImPlotCol_ = Integer;
+  PImPlotCol_ = ^ImPlotCol_;
+
+const
+  ImPlotCol_Line = 0;
+  ImPlotCol_Fill = 1;
+  ImPlotCol_MarkerOutline = 2;
+  ImPlotCol_MarkerFill = 3;
+  ImPlotCol_ErrorBar = 4;
+  ImPlotCol_FrameBg = 5;
+  ImPlotCol_PlotBg = 6;
+  ImPlotCol_PlotBorder = 7;
+  ImPlotCol_LegendBg = 8;
+  ImPlotCol_LegendBorder = 9;
+  ImPlotCol_LegendText = 10;
+  ImPlotCol_TitleText = 11;
+  ImPlotCol_InlayText = 12;
+  ImPlotCol_AxisText = 13;
+  ImPlotCol_AxisGrid = 14;
+  ImPlotCol_AxisTick = 15;
+  ImPlotCol_AxisBg = 16;
+  ImPlotCol_AxisBgHovered = 17;
+  ImPlotCol_AxisBgActive = 18;
+  ImPlotCol_Selection = 19;
+  ImPlotCol_Crosshairs = 20;
+  ImPlotCol_COUNT = 21;
+
+type
+  ImPlotStyleVar_ = Integer;
+  PImPlotStyleVar_ = ^ImPlotStyleVar_;
+
+const
+  ImPlotStyleVar_LineWeight = 0;
+  ImPlotStyleVar_Marker = 1;
+  ImPlotStyleVar_MarkerSize = 2;
+  ImPlotStyleVar_MarkerWeight = 3;
+  ImPlotStyleVar_FillAlpha = 4;
+  ImPlotStyleVar_ErrorBarSize = 5;
+  ImPlotStyleVar_ErrorBarWeight = 6;
+  ImPlotStyleVar_DigitalBitHeight = 7;
+  ImPlotStyleVar_DigitalBitGap = 8;
+  ImPlotStyleVar_PlotBorderSize = 9;
+  ImPlotStyleVar_MinorAlpha = 10;
+  ImPlotStyleVar_MajorTickLen = 11;
+  ImPlotStyleVar_MinorTickLen = 12;
+  ImPlotStyleVar_MajorTickSize = 13;
+  ImPlotStyleVar_MinorTickSize = 14;
+  ImPlotStyleVar_MajorGridSize = 15;
+  ImPlotStyleVar_MinorGridSize = 16;
+  ImPlotStyleVar_PlotPadding = 17;
+  ImPlotStyleVar_LabelPadding = 18;
+  ImPlotStyleVar_LegendPadding = 19;
+  ImPlotStyleVar_LegendInnerPadding = 20;
+  ImPlotStyleVar_LegendSpacing = 21;
+  ImPlotStyleVar_MousePosPadding = 22;
+  ImPlotStyleVar_AnnotationPadding = 23;
+  ImPlotStyleVar_FitPadding = 24;
+  ImPlotStyleVar_PlotDefaultSize = 25;
+  ImPlotStyleVar_PlotMinSize = 26;
+  ImPlotStyleVar_COUNT = 27;
+
+type
+  ImPlotScale_ = Integer;
+  PImPlotScale_ = ^ImPlotScale_;
+
+const
+  ImPlotScale_Linear = 0;
+  ImPlotScale_Time = 1;
+  ImPlotScale_Log10 = 2;
+  ImPlotScale_SymLog = 3;
+
+type
+  ImPlotMarker_ = Integer;
+  PImPlotMarker_ = ^ImPlotMarker_;
+
+const
+  ImPlotMarker_None = -1;
+  ImPlotMarker_Circle = 0;
+  ImPlotMarker_Square = 1;
+  ImPlotMarker_Diamond = 2;
+  ImPlotMarker_Up = 3;
+  ImPlotMarker_Down = 4;
+  ImPlotMarker_Left = 5;
+  ImPlotMarker_Right = 6;
+  ImPlotMarker_Cross = 7;
+  ImPlotMarker_Plus = 8;
+  ImPlotMarker_Asterisk = 9;
+  ImPlotMarker_COUNT = 10;
+
+type
+  ImPlotColormap_ = Integer;
+  PImPlotColormap_ = ^ImPlotColormap_;
+
+const
+  ImPlotColormap_Deep = 0;
+  ImPlotColormap_Dark = 1;
+  ImPlotColormap_Pastel = 2;
+  ImPlotColormap_Paired = 3;
+  ImPlotColormap_Viridis = 4;
+  ImPlotColormap_Plasma = 5;
+  ImPlotColormap_Hot = 6;
+  ImPlotColormap_Cool = 7;
+  ImPlotColormap_Pink = 8;
+  ImPlotColormap_Jet = 9;
+  ImPlotColormap_Twilight = 10;
+  ImPlotColormap_RdBu = 11;
+  ImPlotColormap_BrBG = 12;
+  ImPlotColormap_PiYG = 13;
+  ImPlotColormap_Spectral = 14;
+  ImPlotColormap_Greys = 15;
+
+type
+  ImPlotLocation_ = Integer;
+  PImPlotLocation_ = ^ImPlotLocation_;
+
+const
+  ImPlotLocation_Center = 0;
+  ImPlotLocation_North = 1;
+  ImPlotLocation_South = 2;
+  ImPlotLocation_West = 4;
+  ImPlotLocation_East = 8;
+  ImPlotLocation_NorthWest = 5;
+  ImPlotLocation_NorthEast = 9;
+  ImPlotLocation_SouthWest = 6;
+  ImPlotLocation_SouthEast = 10;
+
+type
+  ImPlotBin_ = Integer;
+  PImPlotBin_ = ^ImPlotBin_;
+
+const
+  ImPlotBin_Sqrt = -1;
+  ImPlotBin_Sturges = -2;
+  ImPlotBin_Rice = -3;
+  ImPlotBin_Scott = -4;
+
+type
+  ImPlotTimeUnit_ = Integer;
+  PImPlotTimeUnit_ = ^ImPlotTimeUnit_;
+
+const
+  ImPlotTimeUnit_Us = 0;
+  ImPlotTimeUnit_Ms = 1;
+  ImPlotTimeUnit_S = 2;
+  ImPlotTimeUnit_Min = 3;
+  ImPlotTimeUnit_Hr = 4;
+  ImPlotTimeUnit_Day = 5;
+  ImPlotTimeUnit_Mo = 6;
+  ImPlotTimeUnit_Yr = 7;
+  ImPlotTimeUnit_COUNT = 8;
+
+type
+  ImPlotDateFmt_ = Integer;
+  PImPlotDateFmt_ = ^ImPlotDateFmt_;
+
+const
+  ImPlotDateFmt_None = 0;
+  ImPlotDateFmt_DayMo = 1;
+  ImPlotDateFmt_DayMoYr = 2;
+  ImPlotDateFmt_MoYr = 3;
+  ImPlotDateFmt_Mo = 4;
+  ImPlotDateFmt_Yr = 5;
+
+type
+  ImPlotTimeFmt_ = Integer;
+  PImPlotTimeFmt_ = ^ImPlotTimeFmt_;
+
+const
+  ImPlotTimeFmt_None = 0;
+  ImPlotTimeFmt_Us = 1;
+  ImPlotTimeFmt_SUs = 2;
+  ImPlotTimeFmt_SMs = 3;
+  ImPlotTimeFmt_S = 4;
+  ImPlotTimeFmt_MinSMs = 5;
+  ImPlotTimeFmt_HrMinSMs = 6;
+  ImPlotTimeFmt_HrMinS = 7;
+  ImPlotTimeFmt_HrMin = 8;
+  ImPlotTimeFmt_Hr = 9;
+
+type
+  // Forward declarations
+  PPAnsiChar = ^PAnsiChar;
+  PPByte = ^PByte;
+  PNativeUInt = ^NativeUInt;
+  PImVector_const_charPtr = ^ImVector_const_charPtr;
+  PImVec2 = ^ImVec2;
+  PImVec4 = ^ImVec4;
+  PImGuiStyle = ^ImGuiStyle;
+  PImGuiKeyData = ^ImGuiKeyData;
+  PImVector_ImWchar = ^ImVector_ImWchar;
+  PImGuiIO = ^ImGuiIO;
+  PImGuiInputTextCallbackData = ^ImGuiInputTextCallbackData;
+  PImGuiSizeCallbackData = ^ImGuiSizeCallbackData;
+  PImGuiWindowClass = ^ImGuiWindowClass;
+  PImGuiPayload = ^ImGuiPayload;
+  PImGuiTableColumnSortSpecs = ^ImGuiTableColumnSortSpecs;
+  PImGuiTableSortSpecs = ^ImGuiTableSortSpecs;
+  PImGuiOnceUponAFrame = ^ImGuiOnceUponAFrame;
+  PImGuiTextRange = ^ImGuiTextRange;
+  PImVector_ImGuiTextRange = ^ImVector_ImGuiTextRange;
+  PImGuiTextFilter = ^ImGuiTextFilter;
+  PImVector_char = ^ImVector_char;
+  PImGuiTextBuffer = ^ImGuiTextBuffer;
+  PImGuiStoragePair = ^ImGuiStoragePair;
+  PImVector_ImGuiStoragePair = ^ImVector_ImGuiStoragePair;
+  PImGuiStorage = ^ImGuiStorage;
+  PImGuiListClipper = ^ImGuiListClipper;
+  PImColor = ^ImColor;
+  PImDrawCmd = ^ImDrawCmd;
+  PImDrawVert = ^ImDrawVert;
+  PImDrawCmdHeader = ^ImDrawCmdHeader;
+  PImVector_ImDrawCmd = ^ImVector_ImDrawCmd;
+  PImVector_ImDrawIdx = ^ImVector_ImDrawIdx;
+  PImDrawChannel = ^ImDrawChannel;
+  PImVector_ImDrawChannel = ^ImVector_ImDrawChannel;
+  PImDrawListSplitter = ^ImDrawListSplitter;
+  PImVector_ImDrawVert = ^ImVector_ImDrawVert;
+  PImVector_ImVec4 = ^ImVector_ImVec4;
+  PImVector_ImTextureID = ^ImVector_ImTextureID;
+  PImVector_ImVec2 = ^ImVector_ImVec2;
+  PImDrawList = ^ImDrawList;
+  PPImDrawList = ^PImDrawList;
+  PImVector_ImDrawListPtr = ^ImVector_ImDrawListPtr;
+  PImDrawData = ^ImDrawData;
+  PImFontConfig = ^ImFontConfig;
+  PImFontGlyph = ^ImFontGlyph;
+  PImVector_ImU32 = ^ImVector_ImU32;
+  PImFontGlyphRangesBuilder = ^ImFontGlyphRangesBuilder;
+  PImFontAtlasCustomRect = ^ImFontAtlasCustomRect;
+  PImVector_ImFontPtr = ^ImVector_ImFontPtr;
+  PImVector_ImFontAtlasCustomRect = ^ImVector_ImFontAtlasCustomRect;
+  PImVector_ImFontConfig = ^ImVector_ImFontConfig;
+  PImFontAtlas = ^ImFontAtlas;
+  PImVector_float = ^ImVector_float;
+  PImVector_ImFontGlyph = ^ImVector_ImFontGlyph;
+  PImFont = ^ImFont;
+  PPImFont = ^PImFont;
+  PImGuiViewport = ^ImGuiViewport;
+  PPImGuiViewport = ^PImGuiViewport;
+  PImVector_ImGuiPlatformMonitor = ^ImVector_ImGuiPlatformMonitor;
+  PImVector_ImGuiViewportPtr = ^ImVector_ImGuiViewportPtr;
+  PImGuiPlatformIO = ^ImGuiPlatformIO;
+  PImGuiPlatformMonitor = ^ImGuiPlatformMonitor;
+  PImGuiPlatformImeData = ^ImGuiPlatformImeData;
+  PStbUndoRecord = ^StbUndoRecord;
+  PStbUndoState = ^StbUndoState;
+  PSTB_TexteditState = ^STB_TexteditState;
+  PStbTexteditRow = ^StbTexteditRow;
+  PImVec1 = ^ImVec1;
+  PImVec2ih = ^ImVec2ih;
+  PImRect = ^ImRect;
+  PImBitVector = ^ImBitVector;
+  PImVector_int = ^ImVector_int;
+  PImGuiTextIndex = ^ImGuiTextIndex;
+  PImDrawListSharedData = ^ImDrawListSharedData;
+  PImDrawDataBuilder = ^ImDrawDataBuilder;
+  PImGuiDataVarInfo = ^ImGuiDataVarInfo;
+  PImGuiDataTypeTempStorage = ^ImGuiDataTypeTempStorage;
+  PImGuiDataTypeInfo = ^ImGuiDataTypeInfo;
+  PImGuiColorMod = ^ImGuiColorMod;
+  PImGuiStyleMod = ^ImGuiStyleMod;
+  PImGuiComboPreviewData = ^ImGuiComboPreviewData;
+  PImGuiGroupData = ^ImGuiGroupData;
+  PImGuiMenuColumns = ^ImGuiMenuColumns;
+  PImGuiInputTextDeactivatedState = ^ImGuiInputTextDeactivatedState;
+  PImGuiInputTextState = ^ImGuiInputTextState;
+  PImGuiPopupData = ^ImGuiPopupData;
+  PImGuiNextWindowData = ^ImGuiNextWindowData;
+  PImGuiNextItemData = ^ImGuiNextItemData;
+  PImGuiLastItemData = ^ImGuiLastItemData;
+  PImGuiNavTreeNodeData = ^ImGuiNavTreeNodeData;
+  PImGuiStackSizes = ^ImGuiStackSizes;
+  PImGuiWindowStackData = ^ImGuiWindowStackData;
+  PImGuiShrinkWidthItem = ^ImGuiShrinkWidthItem;
+  PImGuiPtrOrIndex = ^ImGuiPtrOrIndex;
+  PImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN = ^ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN;
+  PImGuiInputEventMousePos = ^ImGuiInputEventMousePos;
+  PImGuiInputEventMouseWheel = ^ImGuiInputEventMouseWheel;
+  PImGuiInputEventMouseButton = ^ImGuiInputEventMouseButton;
+  PImGuiInputEventMouseViewport = ^ImGuiInputEventMouseViewport;
+  PImGuiInputEventKey = ^ImGuiInputEventKey;
+  PImGuiInputEventText = ^ImGuiInputEventText;
+  PImGuiInputEventAppFocused = ^ImGuiInputEventAppFocused;
+  PImGuiInputEvent = ^ImGuiInputEvent;
+  PImGuiKeyRoutingData = ^ImGuiKeyRoutingData;
+  PImVector_ImGuiKeyRoutingData = ^ImVector_ImGuiKeyRoutingData;
+  PImGuiKeyRoutingTable = ^ImGuiKeyRoutingTable;
+  PImGuiKeyOwnerData = ^ImGuiKeyOwnerData;
+  PImGuiListClipperRange = ^ImGuiListClipperRange;
+  PImVector_ImGuiListClipperRange = ^ImVector_ImGuiListClipperRange;
+  PImGuiListClipperData = ^ImGuiListClipperData;
+  PImGuiNavItemData = ^ImGuiNavItemData;
+  PImGuiTypingSelectRequest = ^ImGuiTypingSelectRequest;
+  PImGuiTypingSelectState = ^ImGuiTypingSelectState;
+  PImGuiOldColumnData = ^ImGuiOldColumnData;
+  PImVector_ImGuiOldColumnData = ^ImVector_ImGuiOldColumnData;
+  PImGuiOldColumns = ^ImGuiOldColumns;
+  PImVector_ImGuiWindowPtr = ^ImVector_ImGuiWindowPtr;
+  PImGuiDockNode = ^ImGuiDockNode;
+  PImGuiWindowDockStyle = ^ImGuiWindowDockStyle;
+  PImVector_ImGuiDockRequest = ^ImVector_ImGuiDockRequest;
+  PImVector_ImGuiDockNodeSettings = ^ImVector_ImGuiDockNodeSettings;
+  PImGuiDockContext = ^ImGuiDockContext;
+  PImGuiViewportP = ^ImGuiViewportP;
+  PPImGuiViewportP = ^PImGuiViewportP;
+  PImGuiWindowSettings = ^ImGuiWindowSettings;
+  PImGuiSettingsHandler = ^ImGuiSettingsHandler;
+  PImGuiLocEntry = ^ImGuiLocEntry;
+  PImGuiDebugAllocEntry = ^ImGuiDebugAllocEntry;
+  PImGuiDebugAllocInfo = ^ImGuiDebugAllocInfo;
+  PImGuiMetricsConfig = ^ImGuiMetricsConfig;
+  PImGuiStackLevelInfo = ^ImGuiStackLevelInfo;
+  PImVector_ImGuiStackLevelInfo = ^ImVector_ImGuiStackLevelInfo;
+  PImGuiIDStackTool = ^ImGuiIDStackTool;
+  PImGuiContextHook = ^ImGuiContextHook;
+  PImVector_ImGuiInputEvent = ^ImVector_ImGuiInputEvent;
+  PImVector_ImGuiWindowStackData = ^ImVector_ImGuiWindowStackData;
+  PImVector_ImGuiColorMod = ^ImVector_ImGuiColorMod;
+  PImVector_ImGuiStyleMod = ^ImVector_ImGuiStyleMod;
+  PImVector_ImGuiID = ^ImVector_ImGuiID;
+  PImVector_ImGuiItemFlags = ^ImVector_ImGuiItemFlags;
+  PImVector_ImGuiGroupData = ^ImVector_ImGuiGroupData;
+  PImVector_ImGuiPopupData = ^ImVector_ImGuiPopupData;
+  PImVector_ImGuiNavTreeNodeData = ^ImVector_ImGuiNavTreeNodeData;
+  PImVector_ImGuiViewportPPtr = ^ImVector_ImGuiViewportPPtr;
+  PImVector_unsigned_char = ^ImVector_unsigned_char;
+  PImVector_ImGuiListClipperData = ^ImVector_ImGuiListClipperData;
+  PImVector_ImGuiTableTempData = ^ImVector_ImGuiTableTempData;
+  PImVector_ImGuiTable = ^ImVector_ImGuiTable;
+  PImPool_ImGuiTable = ^ImPool_ImGuiTable;
+  PImVector_ImGuiTabBar = ^ImVector_ImGuiTabBar;
+  PImPool_ImGuiTabBar = ^ImPool_ImGuiTabBar;
+  PImVector_ImGuiPtrOrIndex = ^ImVector_ImGuiPtrOrIndex;
+  PImVector_ImGuiShrinkWidthItem = ^ImVector_ImGuiShrinkWidthItem;
+  PImVector_ImGuiSettingsHandler = ^ImVector_ImGuiSettingsHandler;
+  PImChunkStream_ImGuiWindowSettings = ^ImChunkStream_ImGuiWindowSettings;
+  PImChunkStream_ImGuiTableSettings = ^ImChunkStream_ImGuiTableSettings;
+  PImVector_ImGuiContextHook = ^ImVector_ImGuiContextHook;
+  PImGuiContext = ^ImGuiContext;
+  PImGuiWindowTempData = ^ImGuiWindowTempData;
+  PImVector_ImGuiOldColumns = ^ImVector_ImGuiOldColumns;
+  PImGuiWindow = ^ImGuiWindow;
+  PPImGuiWindow = ^PImGuiWindow;
+  PImGuiTabItem = ^ImGuiTabItem;
+  PImVector_ImGuiTabItem = ^ImVector_ImGuiTabItem;
+  PImGuiTabBar = ^ImGuiTabBar;
+  PImGuiTableColumn = ^ImGuiTableColumn;
+  PImGuiTableCellData = ^ImGuiTableCellData;
+  PImGuiTableInstanceData = ^ImGuiTableInstanceData;
+  PImSpan_ImGuiTableColumn = ^ImSpan_ImGuiTableColumn;
+  PImSpan_ImGuiTableColumnIdx = ^ImSpan_ImGuiTableColumnIdx;
+  PImSpan_ImGuiTableCellData = ^ImSpan_ImGuiTableCellData;
+  PImVector_ImGuiTableInstanceData = ^ImVector_ImGuiTableInstanceData;
+  PImVector_ImGuiTableColumnSortSpecs = ^ImVector_ImGuiTableColumnSortSpecs;
+  PImGuiTable = ^ImGuiTable;
+  PImGuiTableTempData = ^ImGuiTableTempData;
+  PImGuiTableColumnSettings = ^ImGuiTableColumnSettings;
+  PImGuiTableSettings = ^ImGuiTableSettings;
+  PImFontBuilderIO = ^ImFontBuilderIO;
+  PImVector_ImS16 = ^ImVector_ImS16;
+  PImVector_ImS32 = ^ImVector_ImS32;
+  PImVector_ImS64 = ^ImVector_ImS64;
+  PImVector_ImS8 = ^ImVector_ImS8;
+  PImVector_ImU16 = ^ImVector_ImU16;
+  PImVector_ImU64 = ^ImVector_ImU64;
+  PImVector_ImU8 = ^ImVector_ImU8;
+  PImPlotPoint = ^ImPlotPoint;
+  PImPlotRange = ^ImPlotRange;
+  PImPlotRect = ^ImPlotRect;
+  PImPlotStyle = ^ImPlotStyle;
+  PImPlotInputMap = ^ImPlotInputMap;
+  PImPlotDateTimeSpec = ^ImPlotDateTimeSpec;
+  PImPlotTime = ^ImPlotTime;
+  PImVector_bool = ^ImVector_bool;
+  PImPlotColormapData = ^ImPlotColormapData;
+  PImPlotPointError = ^ImPlotPointError;
+  PImPlotAnnotation = ^ImPlotAnnotation;
+  PImVector_ImPlotAnnotation = ^ImVector_ImPlotAnnotation;
+  PImPlotAnnotationCollection = ^ImPlotAnnotationCollection;
+  PImPlotTag = ^ImPlotTag;
+  PImVector_ImPlotTag = ^ImVector_ImPlotTag;
+  PImPlotTagCollection = ^ImPlotTagCollection;
+  PImPlotTick = ^ImPlotTick;
+  PImVector_ImPlotTick = ^ImVector_ImPlotTick;
+  PImPlotTicker = ^ImPlotTicker;
+  PImPlotAxis = ^ImPlotAxis;
+  PImPlotAlignmentData = ^ImPlotAlignmentData;
+  PImPlotItem = ^ImPlotItem;
+  PImPlotLegend = ^ImPlotLegend;
+  PImVector_ImPlotItem = ^ImVector_ImPlotItem;
+  PImPool_ImPlotItem = ^ImPool_ImPlotItem;
+  PImPlotItemGroup = ^ImPlotItemGroup;
+  PImPlotPlot = ^ImPlotPlot;
+  PImVector_ImPlotAlignmentData = ^ImVector_ImPlotAlignmentData;
+  PImVector_ImPlotRange = ^ImVector_ImPlotRange;
+  PImPlotSubplot = ^ImPlotSubplot;
+  PImPlotNextPlotData = ^ImPlotNextPlotData;
+  PImPlotNextItemData = ^ImPlotNextItemData;
+  PImVector_ImPlotPlot = ^ImVector_ImPlotPlot;
+  PImPool_ImPlotPlot = ^ImPool_ImPlotPlot;
+  PImVector_ImPlotSubplot = ^ImVector_ImPlotSubplot;
+  PImPool_ImPlotSubplot = ^ImPool_ImPlotSubplot;
+  PImVector_ImPlotColormap = ^ImVector_ImPlotColormap;
+  PImVector_double = ^ImVector_double;
+  PImPool_ImPlotAlignmentData = ^ImPool_ImPlotAlignmentData;
+  PImPlotContext = ^ImPlotContext;
+  PFormatter_Time_Data = ^Formatter_Time_Data;
+
+  ImU64 = UInt64;
+  PImU64 = ^ImU64;
+  PImGuiDockRequest = Pointer;
+  PPImGuiDockRequest = ^PImGuiDockRequest;
+  PImGuiDockNodeSettings = Pointer;
+  PPImGuiDockNodeSettings = ^PImGuiDockNodeSettings;
+  PImGuiInputTextDeactivateData = Pointer;
+  PPImGuiInputTextDeactivateData = ^PImGuiInputTextDeactivateData;
+  PImGuiTableColumnsSettings = Pointer;
+  PPImGuiTableColumnsSettings = ^PImGuiTableColumnsSettings;
+
+  ImVector_const_charPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPAnsiChar;
+  end;
+
+  ImGuiCol = Integer;
+  ImGuiCond = Integer;
+  ImGuiDataType = Integer;
+  ImGuiDir = Integer;
+  PImGuiDir = ^ImGuiDir;
+  ImGuiMouseButton = Integer;
+  ImGuiMouseCursor = Integer;
+  ImGuiSortDirection = Integer;
+  ImGuiStyleVar = Integer;
+  ImGuiTableBgTarget = Integer;
+  ImDrawFlags = Integer;
+  ImDrawListFlags = Integer;
+  ImFontAtlasFlags = Integer;
+  ImGuiBackendFlags = Integer;
+  ImGuiButtonFlags = Integer;
+  ImGuiChildFlags = Integer;
+  ImGuiColorEditFlags = Integer;
+  ImGuiConfigFlags = Integer;
+  ImGuiComboFlags = Integer;
+  ImGuiDockNodeFlags = Integer;
+  ImGuiDragDropFlags = Integer;
+  ImGuiFocusedFlags = Integer;
+  ImGuiHoveredFlags = Integer;
+  ImGuiInputTextFlags = Integer;
+  ImGuiKeyChord = Integer;
+  ImGuiPopupFlags = Integer;
+  ImGuiSelectableFlags = Integer;
+  ImGuiSliderFlags = Integer;
+  ImGuiTabBarFlags = Integer;
+  ImGuiTabItemFlags = Integer;
+  ImGuiTableFlags = Integer;
+  ImGuiTableColumnFlags = Integer;
+  ImGuiTableRowFlags = Integer;
+  ImGuiTreeNodeFlags = Integer;
+  ImGuiViewportFlags = Integer;
+  ImGuiWindowFlags = Integer;
+  ImTextureID = Pointer;
+  PImTextureID = ^ImTextureID;
+  ImDrawIdx = Word;
+  PImDrawIdx = ^ImDrawIdx;
+  ImGuiID = Cardinal;
+  PImGuiID = ^ImGuiID;
+  ImS8 = AnsiChar;
+  PImS8 = ^ImS8;
+  ImU8 = Byte;
+  PImU8 = ^ImU8;
+  ImS16 = Smallint;
+  PImS16 = ^ImS16;
+  ImU16 = Word;
+  PImU16 = ^ImU16;
+  ImS32 = Integer;
+  PImS32 = ^ImS32;
+  ImU32 = Cardinal;
+  PImU32 = ^ImU32;
+  ImS64 = Int64;
+  PImS64 = ^ImS64;
+  ImWchar32 = Cardinal;
+  ImWchar16 = Word;
+  ImWchar = ImWchar16;
+  PImWchar = ^ImWchar;
+
+  ImGuiInputTextCallback = function(data: PImGuiInputTextCallbackData): Integer; cdecl;
+
+  ImGuiSizeCallback = procedure(data: PImGuiSizeCallbackData); cdecl;
+
+  ImGuiMemAllocFunc = function(sz: NativeUInt; user_data: Pointer): Pointer; cdecl;
+  PImGuiMemAllocFunc = ^ImGuiMemAllocFunc;
+
+  ImGuiMemFreeFunc = procedure(ptr: Pointer; user_data: Pointer); cdecl;
+  PImGuiMemFreeFunc = ^ImGuiMemFreeFunc;
+
+  { ImVec2 }
+
+  ImVec2 = record
+    x: Single;
+    y: Single;
+    class operator Add(lhs, rhs: ImVec2): ImVec2;
+    class operator Subtract(lhs, rhs: ImVec2): ImVec2;
+  end;
+
+  ImVec4 = record
+    x: Single;
+    y: Single;
+    z: Single;
+    w: Single;
+  end;
+
+  ImGuiStyle = record
+    Alpha: Single;
+    DisabledAlpha: Single;
+    WindowPadding: ImVec2;
+    WindowRounding: Single;
+    WindowBorderSize: Single;
+    WindowMinSize: ImVec2;
+    WindowTitleAlign: ImVec2;
+    WindowMenuButtonPosition: ImGuiDir;
+    ChildRounding: Single;
+    ChildBorderSize: Single;
+    PopupRounding: Single;
+    PopupBorderSize: Single;
+    FramePadding: ImVec2;
+    FrameRounding: Single;
+    FrameBorderSize: Single;
+    ItemSpacing: ImVec2;
+    ItemInnerSpacing: ImVec2;
+    CellPadding: ImVec2;
+    TouchExtraPadding: ImVec2;
+    IndentSpacing: Single;
+    ColumnsMinSpacing: Single;
+    ScrollbarSize: Single;
+    ScrollbarRounding: Single;
+    GrabMinSize: Single;
+    GrabRounding: Single;
+    LogSliderDeadzone: Single;
+    TabRounding: Single;
+    TabBorderSize: Single;
+    TabMinWidthForCloseButton: Single;
+    TabBarBorderSize: Single;
+    TableAngledHeadersAngle: Single;
+    ColorButtonPosition: ImGuiDir;
+    ButtonTextAlign: ImVec2;
+    SelectableTextAlign: ImVec2;
+    SeparatorTextBorderSize: Single;
+    SeparatorTextAlign: ImVec2;
+    SeparatorTextPadding: ImVec2;
+    DisplayWindowPadding: ImVec2;
+    DisplaySafeAreaPadding: ImVec2;
+    DockingSeparatorSize: Single;
+    MouseCursorScale: Single;
+    AntiAliasedLines: Boolean;
+    AntiAliasedLinesUseTex: Boolean;
+    AntiAliasedFill: Boolean;
+    CurveTessellationTol: Single;
+    CircleTessellationMaxError: Single;
+    Colors: array [0..54] of ImVec4;
+    HoverStationaryDelay: Single;
+    HoverDelayShort: Single;
+    HoverDelayNormal: Single;
+    HoverFlagsForTooltipMouse: ImGuiHoveredFlags;
+    HoverFlagsForTooltipNav: ImGuiHoveredFlags;
+  end;
+
+  ImGuiKeyData = record
+    Down: Boolean;
+    DownDuration: Single;
+    DownDurationPrev: Single;
+    AnalogValue: Single;
+  end;
+
+  ImVector_ImWchar = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImWchar;
+  end;
+
+  ImGuiIO = record
+    ConfigFlags: ImGuiConfigFlags;
+    BackendFlags: ImGuiBackendFlags;
+    DisplaySize: ImVec2;
+    DeltaTime: Single;
+    IniSavingRate: Single;
+    IniFilename: PAnsiChar;
+    LogFilename: PAnsiChar;
+    UserData: Pointer;
+    Fonts: PImFontAtlas;
+    FontGlobalScale: Single;
+    FontAllowUserScaling: Boolean;
+    FontDefault: PImFont;
+    DisplayFramebufferScale: ImVec2;
+    ConfigDockingNoSplit: Boolean;
+    ConfigDockingWithShift: Boolean;
+    ConfigDockingAlwaysTabBar: Boolean;
+    ConfigDockingTransparentPayload: Boolean;
+    ConfigViewportsNoAutoMerge: Boolean;
+    ConfigViewportsNoTaskBarIcon: Boolean;
+    ConfigViewportsNoDecoration: Boolean;
+    ConfigViewportsNoDefaultParent: Boolean;
+    MouseDrawCursor: Boolean;
+    ConfigMacOSXBehaviors: Boolean;
+    ConfigInputTrickleEventQueue: Boolean;
+    ConfigInputTextCursorBlink: Boolean;
+    ConfigInputTextEnterKeepActive: Boolean;
+    ConfigDragClickToInputText: Boolean;
+    ConfigWindowsResizeFromEdges: Boolean;
+    ConfigWindowsMoveFromTitleBarOnly: Boolean;
+    ConfigMemoryCompactTimer: Single;
+    MouseDoubleClickTime: Single;
+    MouseDoubleClickMaxDist: Single;
+    MouseDragThreshold: Single;
+    KeyRepeatDelay: Single;
+    KeyRepeatRate: Single;
+    ConfigDebugBeginReturnValueOnce: Boolean;
+    ConfigDebugBeginReturnValueLoop: Boolean;
+    ConfigDebugIgnoreFocusLoss: Boolean;
+    ConfigDebugIniSettings: Boolean;
+    BackendPlatformName: PAnsiChar;
+    BackendRendererName: PAnsiChar;
+    BackendPlatformUserData: Pointer;
+    BackendRendererUserData: Pointer;
+    BackendLanguageUserData: Pointer;
+    GetClipboardTextFn: function(user_data: Pointer): PAnsiChar; cdecl;
+    SetClipboardTextFn: procedure(user_data: Pointer; const text: PAnsiChar); cdecl;
+    ClipboardUserData: Pointer;
+    SetPlatformImeDataFn: procedure(viewport: PImGuiViewport; data: PImGuiPlatformImeData); cdecl;
+    PlatformLocaleDecimalPoint: ImWchar;
+    WantCaptureMouse: Boolean;
+    WantCaptureKeyboard: Boolean;
+    WantTextInput: Boolean;
+    WantSetMousePos: Boolean;
+    WantSaveIniSettings: Boolean;
+    NavActive: Boolean;
+    NavVisible: Boolean;
+    Framerate: Single;
+    MetricsRenderVertices: Integer;
+    MetricsRenderIndices: Integer;
+    MetricsRenderWindows: Integer;
+    MetricsActiveWindows: Integer;
+    MouseDelta: ImVec2;
+    _UnusedPadding: Pointer;
+    Ctx: PImGuiContext;
+    MousePos: ImVec2;
+    MouseDown: array [0..4] of Boolean;
+    MouseWheel: Single;
+    MouseWheelH: Single;
+    MouseSource: ImGuiMouseSource;
+    MouseHoveredViewport: ImGuiID;
+    KeyCtrl: Boolean;
+    KeyShift: Boolean;
+    KeyAlt: Boolean;
+    KeySuper: Boolean;
+    KeyMods: ImGuiKeyChord;
+    KeysData: array [0..153] of ImGuiKeyData;
+    WantCaptureMouseUnlessPopupClose: Boolean;
+    MousePosPrev: ImVec2;
+    MouseClickedPos: array [0..4] of ImVec2;
+    MouseClickedTime: array [0..4] of Double;
+    MouseClicked: array [0..4] of Boolean;
+    MouseDoubleClicked: array [0..4] of Boolean;
+    MouseClickedCount: array [0..4] of ImU16;
+    MouseClickedLastCount: array [0..4] of ImU16;
+    MouseReleased: array [0..4] of Boolean;
+    MouseDownOwned: array [0..4] of Boolean;
+    MouseDownOwnedUnlessPopupClose: array [0..4] of Boolean;
+    MouseWheelRequestAxisSwap: Boolean;
+    MouseDownDuration: array [0..4] of Single;
+    MouseDownDurationPrev: array [0..4] of Single;
+    MouseDragMaxDistanceAbs: array [0..4] of ImVec2;
+    MouseDragMaxDistanceSqr: array [0..4] of Single;
+    PenPressure: Single;
+    AppFocusLost: Boolean;
+    AppAcceptingEvents: Boolean;
+    BackendUsingLegacyKeyArrays: ImS8;
+    BackendUsingLegacyNavInputArray: Boolean;
+    InputQueueSurrogate: ImWchar16;
+    InputQueueCharacters: ImVector_ImWchar;
+  end;
+
+  ImGuiInputTextCallbackData = record
+    Ctx: PImGuiContext;
+    EventFlag: ImGuiInputTextFlags;
+    Flags: ImGuiInputTextFlags;
+    UserData: Pointer;
+    EventChar: ImWchar;
+    EventKey: ImGuiKey;
+    Buf: PAnsiChar;
+    BufTextLen: Integer;
+    BufSize: Integer;
+    BufDirty: Boolean;
+    CursorPos: Integer;
+    SelectionStart: Integer;
+    SelectionEnd: Integer;
+  end;
+
+  ImGuiSizeCallbackData = record
+    UserData: Pointer;
+    Pos: ImVec2;
+    CurrentSize: ImVec2;
+    DesiredSize: ImVec2;
+  end;
+
+  ImGuiWindowClass = record
+    ClassId: ImGuiID;
+    ParentViewportId: ImGuiID;
+    ViewportFlagsOverrideSet: ImGuiViewportFlags;
+    ViewportFlagsOverrideClear: ImGuiViewportFlags;
+    TabItemFlagsOverrideSet: ImGuiTabItemFlags;
+    DockNodeFlagsOverrideSet: ImGuiDockNodeFlags;
+    DockingAlwaysTabBar: Boolean;
+    DockingAllowUnclassed: Boolean;
+  end;
+
+  ImGuiPayload = record
+    Data: Pointer;
+    DataSize: Integer;
+    SourceId: ImGuiID;
+    SourceParentId: ImGuiID;
+    DataFrameCount: Integer;
+    DataType: array [0..32] of AnsiChar;
+    Preview: Boolean;
+    Delivery: Boolean;
+  end;
+
+  ImGuiTableColumnSortSpecs = record
+    ColumnUserID: ImGuiID;
+    ColumnIndex: ImS16;
+    SortOrder: ImS16;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property SortDirection: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
+  end;
+
+  ImGuiTableSortSpecs = record
+    Specs: PImGuiTableColumnSortSpecs;
+    SpecsCount: Integer;
+    SpecsDirty: Boolean;
+  end;
+
+  ImGuiOnceUponAFrame = record
+    RefFrame: Integer;
+  end;
+
+  ImGuiTextRange = record
+    b: PAnsiChar;
+    e: PAnsiChar;
+  end;
+
+  ImVector_ImGuiTextRange = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTextRange;
+  end;
+
+  ImGuiTextFilter = record
+    InputBuf: array [0..255] of AnsiChar;
+    Filters: ImVector_ImGuiTextRange;
+    CountGrep: Integer;
+  end;
+
+  ImVector_char = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PAnsiChar;
+  end;
+
+  ImGuiTextBuffer = record
+    Buf: ImVector_char;
+  end;
+
+  P_anonymous_type_1 = ^_anonymous_type_1;
+  _anonymous_type_1 = record
+    case Integer of
+      0: (val_i: Integer);
+      1: (val_f: Single);
+      2: (val_p: Pointer);
+  end;
+
+  ImGuiStoragePair = record
+    key: ImGuiID;
+    f2: _anonymous_type_1;
+  end;
+
+  ImVector_ImGuiStoragePair = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiStoragePair;
+  end;
+
+  ImGuiStorage = record
+    Data: ImVector_ImGuiStoragePair;
+  end;
+
+  ImGuiListClipper = record
+    Ctx: PImGuiContext;
+    DisplayStart: Integer;
+    DisplayEnd: Integer;
+    ItemsCount: Integer;
+    ItemsHeight: Single;
+    StartPosY: Single;
+    TempData: Pointer;
+  end;
+
+  ImColor = record
+    Value: ImVec4;
+  end;
+
+  ImDrawCallback = procedure(const parent_list: PImDrawList; const cmd: PImDrawCmd); cdecl;
+
+  ImDrawCmd = record
+    ClipRect: ImVec4;
+    TextureId: ImTextureID;
+    VtxOffset: Cardinal;
+    IdxOffset: Cardinal;
+    ElemCount: Cardinal;
+    UserCallback: ImDrawCallback;
+    UserCallbackData: Pointer;
+  end;
+
+  ImDrawVert = record
+    pos: ImVec2;
+    uv: ImVec2;
+    col: ImU32;
+  end;
+
+  ImDrawCmdHeader = record
+    ClipRect: ImVec4;
+    TextureId: ImTextureID;
+    VtxOffset: Cardinal;
+  end;
+
+  ImVector_ImDrawCmd = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImDrawCmd;
+  end;
+
+  ImVector_ImDrawIdx = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImDrawIdx;
+  end;
+
+  ImDrawChannel = record
+    _CmdBuffer: ImVector_ImDrawCmd;
+    _IdxBuffer: ImVector_ImDrawIdx;
+  end;
+
+  ImVector_ImDrawChannel = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImDrawChannel;
+  end;
+
+  ImDrawListSplitter = record
+    _Current: Integer;
+    _Count: Integer;
+    _Channels: ImVector_ImDrawChannel;
+  end;
+
+  ImVector_ImDrawVert = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImDrawVert;
+  end;
+
+  ImVector_ImVec4 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImVec4;
+  end;
+
+  ImVector_ImTextureID = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImTextureID;
+  end;
+
+  ImVector_ImVec2 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImVec2;
+  end;
+
+  ImDrawList = record
+    CmdBuffer: ImVector_ImDrawCmd;
+    IdxBuffer: ImVector_ImDrawIdx;
+    VtxBuffer: ImVector_ImDrawVert;
+    Flags: ImDrawListFlags;
+    _VtxCurrentIdx: Cardinal;
+    _Data: PImDrawListSharedData;
+    _OwnerName: PAnsiChar;
+    _VtxWritePtr: PImDrawVert;
+    _IdxWritePtr: PImDrawIdx;
+    _ClipRectStack: ImVector_ImVec4;
+    _TextureIdStack: ImVector_ImTextureID;
+    _Path: ImVector_ImVec2;
+    _CmdHeader: ImDrawCmdHeader;
+    _Splitter: ImDrawListSplitter;
+    _FringeScale: Single;
+  end;
+
+  ImVector_ImDrawListPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPImDrawList;
+  end;
+
+  ImDrawData = record
+    Valid: Boolean;
+    CmdListsCount: Integer;
+    TotalIdxCount: Integer;
+    TotalVtxCount: Integer;
+    CmdLists: ImVector_ImDrawListPtr;
+    DisplayPos: ImVec2;
+    DisplaySize: ImVec2;
+    FramebufferScale: ImVec2;
+    OwnerViewport: PImGuiViewport;
+  end;
+
+  ImFontConfig = record
+    FontData: Pointer;
+    FontDataSize: Integer;
+    FontDataOwnedByAtlas: Boolean;
+    FontNo: Integer;
+    SizePixels: Single;
+    OversampleH: Integer;
+    OversampleV: Integer;
+    PixelSnapH: Boolean;
+    GlyphExtraSpacing: ImVec2;
+    GlyphOffset: ImVec2;
+    GlyphRanges: PImWchar;
+    GlyphMinAdvanceX: Single;
+    GlyphMaxAdvanceX: Single;
+    MergeMode: Boolean;
+    FontBuilderFlags: Cardinal;
+    RasterizerMultiply: Single;
+    RasterizerDensity: Single;
+    EllipsisChar: ImWchar;
+    Name: array [0..39] of AnsiChar;
+    DstFont: PImFont;
+  end;
+
+  ImFontGlyph = record
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property Colored: Cardinal index $0001 read GetData0Value write SetData0Value; // 1 bits at offset 0 in Data0
+    property Visible: Cardinal index $0101 read GetData0Value write SetData0Value; // 1 bits at offset 1 in Data0
+    property Codepoint: Cardinal index $021E read GetData0Value write SetData0Value; // 30 bits at offset 2 in Data0
+  var
+    AdvanceX: Single;
+    X0: Single;
+    Y0: Single;
+    X1: Single;
+    Y1: Single;
+    U0: Single;
+    V0: Single;
+    U1: Single;
+    V1: Single;
+  end;
+
+  ImVector_ImU32 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImU32;
+  end;
+
+  ImFontGlyphRangesBuilder = record
+    UsedChars: ImVector_ImU32;
+  end;
+
+  ImFontAtlasCustomRect = record
+    Width: Word;
+    Height: Word;
+    X: Word;
+    Y: Word;
+    GlyphID: Cardinal;
+    GlyphAdvanceX: Single;
+    GlyphOffset: ImVec2;
+    Font: PImFont;
+  end;
+
+  ImVector_ImFontPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPImFont;
+  end;
+
+  ImVector_ImFontAtlasCustomRect = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImFontAtlasCustomRect;
+  end;
+
+  ImVector_ImFontConfig = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImFontConfig;
+  end;
+
+  ImFontAtlas = record
+    Flags: ImFontAtlasFlags;
+    TexID: ImTextureID;
+    TexDesiredWidth: Integer;
+    TexGlyphPadding: Integer;
+    Locked: Boolean;
+    UserData: Pointer;
+    TexReady: Boolean;
+    TexPixelsUseColors: Boolean;
+    TexPixelsAlpha8: PByte;
+    TexPixelsRGBA32: PCardinal;
+    TexWidth: Integer;
+    TexHeight: Integer;
+    TexUvScale: ImVec2;
+    TexUvWhitePixel: ImVec2;
+    Fonts: ImVector_ImFontPtr;
+    CustomRects: ImVector_ImFontAtlasCustomRect;
+    ConfigData: ImVector_ImFontConfig;
+    TexUvLines: array [0..63] of ImVec4;
+    FontBuilderIO: PImFontBuilderIO;
+    FontBuilderFlags: Cardinal;
+    PackIdMouseCursors: Integer;
+    PackIdLines: Integer;
+  end;
+
+  ImVector_float = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PSingle;
+  end;
+
+  ImVector_ImFontGlyph = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImFontGlyph;
+  end;
+
+  ImFont = record
+    IndexAdvanceX: ImVector_float;
+    FallbackAdvanceX: Single;
+    FontSize: Single;
+    IndexLookup: ImVector_ImWchar;
+    Glyphs: ImVector_ImFontGlyph;
+    FallbackGlyph: PImFontGlyph;
+    ContainerAtlas: PImFontAtlas;
+    ConfigData: PImFontConfig;
+    ConfigDataCount: Smallint;
+    FallbackChar: ImWchar;
+    EllipsisChar: ImWchar;
+    EllipsisCharCount: Smallint;
+    EllipsisWidth: Single;
+    EllipsisCharStep: Single;
+    DirtyLookupTables: Boolean;
+    Scale: Single;
+    Ascent: Single;
+    Descent: Single;
+    MetricsTotalSurface: Integer;
+    Used4kPagesMap: array [0..1] of ImU8;
+  end;
+
+  ImGuiViewport = record
+    ID: ImGuiID;
+    Flags: ImGuiViewportFlags;
+    Pos: ImVec2;
+    Size: ImVec2;
+    WorkPos: ImVec2;
+    WorkSize: ImVec2;
+    DpiScale: Single;
+    ParentViewportId: ImGuiID;
+    DrawData: PImDrawData;
+    RendererUserData: Pointer;
+    PlatformUserData: Pointer;
+    PlatformHandle: Pointer;
+    PlatformHandleRaw: Pointer;
+    PlatformWindowCreated: Boolean;
+    PlatformRequestMove: Boolean;
+    PlatformRequestResize: Boolean;
+    PlatformRequestClose: Boolean;
+  end;
+
+  ImVector_ImGuiPlatformMonitor = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiPlatformMonitor;
+  end;
+
+  ImVector_ImGuiViewportPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPImGuiViewport;
+  end;
+
+  ImGuiPlatformIO = record
+    Platform_CreateWindow: procedure(vp: PImGuiViewport); cdecl;
+    Platform_DestroyWindow: procedure(vp: PImGuiViewport); cdecl;
+    Platform_ShowWindow: procedure(vp: PImGuiViewport); cdecl;
+    Platform_SetWindowPos: procedure(vp: PImGuiViewport; pos: ImVec2); cdecl;
+    Platform_GetWindowPos: function(vp: PImGuiViewport): ImVec2; cdecl;
+    Platform_SetWindowSize: procedure(vp: PImGuiViewport; size: ImVec2); cdecl;
+    Platform_GetWindowSize: function(vp: PImGuiViewport): ImVec2; cdecl;
+    Platform_SetWindowFocus: procedure(vp: PImGuiViewport); cdecl;
+    Platform_GetWindowFocus: function(vp: PImGuiViewport): Boolean; cdecl;
+    Platform_GetWindowMinimized: function(vp: PImGuiViewport): Boolean; cdecl;
+    Platform_SetWindowTitle: procedure(vp: PImGuiViewport; const str: PAnsiChar); cdecl;
+    Platform_SetWindowAlpha: procedure(vp: PImGuiViewport; alpha: Single); cdecl;
+    Platform_UpdateWindow: procedure(vp: PImGuiViewport); cdecl;
+    Platform_RenderWindow: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
+    Platform_SwapBuffers: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
+    Platform_GetWindowDpiScale: function(vp: PImGuiViewport): Single; cdecl;
+    Platform_OnChangedViewport: procedure(vp: PImGuiViewport); cdecl;
+    Platform_CreateVkSurface: function(vp: PImGuiViewport; vk_inst: ImU64; const vk_allocators: Pointer; out_vk_surface: PImU64): Integer; cdecl;
+    Renderer_CreateWindow: procedure(vp: PImGuiViewport); cdecl;
+    Renderer_DestroyWindow: procedure(vp: PImGuiViewport); cdecl;
+    Renderer_SetWindowSize: procedure(vp: PImGuiViewport; size: ImVec2); cdecl;
+    Renderer_RenderWindow: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
+    Renderer_SwapBuffers: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
+    Monitors: ImVector_ImGuiPlatformMonitor;
+    Viewports: ImVector_ImGuiViewportPtr;
+  end;
+
+  ImGuiPlatformMonitor = record
+    MainPos: ImVec2;
+    MainSize: ImVec2;
+    WorkPos: ImVec2;
+    WorkSize: ImVec2;
+    DpiScale: Single;
+    PlatformHandle: Pointer;
+  end;
+
+  ImGuiPlatformImeData = record
+    WantVisible: Boolean;
+    InputPos: ImVec2;
+    InputLineHeight: Single;
+  end;
+
+  ImGuiDataAuthority = Integer;
+  ImGuiLayoutType = Integer;
+  ImGuiActivateFlags = Integer;
+  ImGuiDebugLogFlags = Integer;
+  ImGuiFocusRequestFlags = Integer;
+  ImGuiInputFlags = Integer;
+  ImGuiItemFlags = Integer;
+  PImGuiItemFlags = ^ImGuiItemFlags;
+  ImGuiItemStatusFlags = Integer;
+  ImGuiOldColumnFlags = Integer;
+  ImGuiNavHighlightFlags = Integer;
+  ImGuiNavMoveFlags = Integer;
+  ImGuiNextItemDataFlags = Integer;
+  ImGuiNextWindowDataFlags = Integer;
+  ImGuiScrollFlags = Integer;
+  ImGuiSeparatorFlags = Integer;
+  ImGuiTextFlags = Integer;
+  ImGuiTooltipFlags = Integer;
+  ImGuiTypingSelectFlags = Integer;
+
+  ImGuiErrorLogCallback = procedure(user_data: Pointer; const fmt: PAnsiChar) varargs; cdecl;
+
+  StbUndoRecord = record
+    where: Integer;
+    insert_length: Integer;
+    delete_length: Integer;
+    char_storage: Integer;
+  end;
+
+  StbUndoState = record
+    undo_rec: array [0..98] of StbUndoRecord;
+    undo_char: array [0..998] of ImWchar;
+    undo_point: Smallint;
+    redo_point: Smallint;
+    undo_char_point: Integer;
+    redo_char_point: Integer;
+  end;
+
+  STB_TexteditState = record
+    cursor: Integer;
+    select_start: Integer;
+    select_end: Integer;
+    insert_mode: Byte;
+    row_count_per_page: Integer;
+    cursor_at_end_of_line: Byte;
+    initialized: Byte;
+    has_preferred_x: Byte;
+    single_line: Byte;
+    padding1: Byte;
+    padding2: Byte;
+    padding3: Byte;
+    preferred_x: Single;
+    undostate: StbUndoState;
+  end;
+
+  StbTexteditRow = record
+    x0: Single;
+    x1: Single;
+    baseline_y_delta: Single;
+    ymin: Single;
+    ymax: Single;
+    num_chars: Integer;
+  end;
+
+  ImFileHandle = PPointer;
+
+  ImVec1 = record
+    x: Single;
+  end;
+
+  ImVec2ih = record
+    x: Smallint;
+    y: Smallint;
+  end;
+
+  ImRect = record
+    Min: ImVec2;
+    Max: ImVec2;
+  end;
+
+  ImBitArrayPtr = PImU32;
+
+  ImBitVector = record
+    Storage: ImVector_ImU32;
+  end;
+
+  ImPoolIdx = Integer;
+
+  ImVector_int = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PInteger;
+  end;
+
+  ImGuiTextIndex = record
+    LineOffsets: ImVector_int;
+    EndOffset: Integer;
+  end;
+
+  ImDrawListSharedData = record
+    TexUvWhitePixel: ImVec2;
+    Font: PImFont;
+    FontSize: Single;
+    CurveTessellationTol: Single;
+    CircleSegmentMaxError: Single;
+    ClipRectFullscreen: ImVec4;
+    InitialFlags: ImDrawListFlags;
+    TempBuffer: ImVector_ImVec2;
+    ArcFastVtx: array [0..47] of ImVec2;
+    ArcFastRadiusCutoff: Single;
+    CircleSegmentCounts: array [0..63] of ImU8;
+    TexUvLines: PImVec4;
+  end;
+
+  ImDrawDataBuilder = record
+    Layers: array [0..1] of PImVector_ImDrawListPtr;
+    LayerData1: ImVector_ImDrawListPtr;
+  end;
+
+  ImGuiDataVarInfo = record
+    Type_: ImGuiDataType;
+    Count: ImU32;
+    Offset: ImU32;
+  end;
+
+  ImGuiDataTypeTempStorage = record
+    Data: array [0..7] of ImU8;
+  end;
+
+  ImGuiDataTypeInfo = record
+    Size: NativeUInt;
+    Name: PAnsiChar;
+    PrintFmt: PAnsiChar;
+    ScanFmt: PAnsiChar;
+  end;
+
+  ImGuiColorMod = record
+    Col: ImGuiCol;
+    BackupValue: ImVec4;
+  end;
+
+  P_anonymous_type_2 = ^_anonymous_type_2;
+  _anonymous_type_2 = record
+    case Integer of
+      0: (BackupInt: array [0..1] of Integer);
+      1: (BackupFloat: array [0..1] of Single);
+  end;
+
+  ImGuiStyleMod = record
+    VarIdx: ImGuiStyleVar;
+    f2: _anonymous_type_2;
+  end;
+
+  ImGuiComboPreviewData = record
+    PreviewRect: ImRect;
+    BackupCursorPos: ImVec2;
+    BackupCursorMaxPos: ImVec2;
+    BackupCursorPosPrevLine: ImVec2;
+    BackupPrevLineTextBaseOffset: Single;
+    BackupLayout: ImGuiLayoutType;
+  end;
+
+  ImGuiGroupData = record
+    WindowID: ImGuiID;
+    BackupCursorPos: ImVec2;
+    BackupCursorMaxPos: ImVec2;
+    BackupCursorPosPrevLine: ImVec2;
+    BackupIndent: ImVec1;
+    BackupGroupOffset: ImVec1;
+    BackupCurrLineSize: ImVec2;
+    BackupCurrLineTextBaseOffset: Single;
+    BackupActiveIdIsAlive: ImGuiID;
+    BackupActiveIdPreviousFrameIsAlive: Boolean;
+    BackupHoveredIdIsAlive: Boolean;
+    BackupIsSameLine: Boolean;
+    EmitItem: Boolean;
+  end;
+
+  ImGuiMenuColumns = record
+    TotalWidth: ImU32;
+    NextTotalWidth: ImU32;
+    Spacing: ImU16;
+    OffsetIcon: ImU16;
+    OffsetLabel: ImU16;
+    OffsetShortcut: ImU16;
+    OffsetMark: ImU16;
+    Widths: array [0..3] of ImU16;
+  end;
+
+  ImGuiInputTextDeactivatedState = record
+    ID: ImGuiID;
+    TextA: ImVector_char;
+  end;
+
+  ImGuiInputTextState = record
+    Ctx: PImGuiContext;
+    ID: ImGuiID;
+    CurLenW: Integer;
+    CurLenA: Integer;
+    TextW: ImVector_ImWchar;
+    TextA: ImVector_char;
+    InitialTextA: ImVector_char;
+    TextAIsValid: Boolean;
+    BufCapacityA: Integer;
+    ScrollX: Single;
+    Stb: STB_TexteditState;
+    CursorAnim: Single;
+    CursorFollow: Boolean;
+    SelectedAllMouseLock: Boolean;
+    Edited: Boolean;
+    Flags: ImGuiInputTextFlags;
+  end;
+
+  ImGuiPopupData = record
+    PopupId: ImGuiID;
+    Window: PImGuiWindow;
+    BackupNavWindow: PImGuiWindow;
+    ParentNavLayer: Integer;
+    OpenFrameCount: Integer;
+    OpenParentId: ImGuiID;
+    OpenPopupPos: ImVec2;
+    OpenMousePos: ImVec2;
+  end;
+
+  ImGuiNextWindowData = record
+    Flags: ImGuiNextWindowDataFlags;
+    PosCond: ImGuiCond;
+    SizeCond: ImGuiCond;
+    CollapsedCond: ImGuiCond;
+    DockCond: ImGuiCond;
+    PosVal: ImVec2;
+    PosPivotVal: ImVec2;
+    SizeVal: ImVec2;
+    ContentSizeVal: ImVec2;
+    ScrollVal: ImVec2;
+    ChildFlags: ImGuiChildFlags;
+    PosUndock: Boolean;
+    CollapsedVal: Boolean;
+    SizeConstraintRect: ImRect;
+    SizeCallback: ImGuiSizeCallback;
+    SizeCallbackUserData: Pointer;
+    BgAlphaVal: Single;
+    ViewportId: ImGuiID;
+    DockId: ImGuiID;
+    WindowClass: ImGuiWindowClass;
+    MenuBarOffsetMinVal: ImVec2;
+  end;
+
+  ImGuiSelectionUserData = ImS64;
+
+  ImGuiNextItemData = record
+    Flags: ImGuiNextItemDataFlags;
+    ItemFlags: ImGuiItemFlags;
+    Width: Single;
+    SelectionUserData: ImGuiSelectionUserData;
+    OpenCond: ImGuiCond;
+    OpenVal: Boolean;
+  end;
+
+  ImGuiLastItemData = record
+    ID: ImGuiID;
+    InFlags: ImGuiItemFlags;
+    StatusFlags: ImGuiItemStatusFlags;
+    Rect: ImRect;
+    NavRect: ImRect;
+    DisplayRect: ImRect;
+  end;
+
+  ImGuiNavTreeNodeData = record
+    ID: ImGuiID;
+    InFlags: ImGuiItemFlags;
+    NavRect: ImRect;
+  end;
+
+  ImGuiStackSizes = record
+    SizeOfIDStack: Smallint;
+    SizeOfColorStack: Smallint;
+    SizeOfStyleVarStack: Smallint;
+    SizeOfFontStack: Smallint;
+    SizeOfFocusScopeStack: Smallint;
+    SizeOfGroupStack: Smallint;
+    SizeOfItemFlagsStack: Smallint;
+    SizeOfBeginPopupStack: Smallint;
+    SizeOfDisabledStack: Smallint;
+  end;
+
+  ImGuiWindowStackData = record
+    Window: PImGuiWindow;
+    ParentLastItemDataBackup: ImGuiLastItemData;
+    StackSizesOnBegin: ImGuiStackSizes;
+  end;
+
+  ImGuiShrinkWidthItem = record
+    Index: Integer;
+    Width: Single;
+    InitialWidth: Single;
+  end;
+
+  ImGuiPtrOrIndex = record
+    Ptr: Pointer;
+    Index: Integer;
+  end;
+
+  ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN = record
+    Storage: array [0..4] of ImU32;
+  end;
+
+  ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN;
+
+  ImGuiInputEventMousePos = record
+    PosX: Single;
+    PosY: Single;
+    MouseSource: ImGuiMouseSource;
+  end;
+
+  ImGuiInputEventMouseWheel = record
+    WheelX: Single;
+    WheelY: Single;
+    MouseSource: ImGuiMouseSource;
+  end;
+
+  ImGuiInputEventMouseButton = record
+    Button: Integer;
+    Down: Boolean;
+    MouseSource: ImGuiMouseSource;
+  end;
+
+  ImGuiInputEventMouseViewport = record
+    HoveredViewportID: ImGuiID;
+  end;
+
+  ImGuiInputEventKey = record
+    Key: ImGuiKey;
+    Down: Boolean;
+    AnalogValue: Single;
+  end;
+
+  ImGuiInputEventText = record
+    Char: Cardinal;
+  end;
+
+  ImGuiInputEventAppFocused = record
+    Focused: Boolean;
+  end;
+
+  P_anonymous_type_3 = ^_anonymous_type_3;
+  _anonymous_type_3 = record
+    case Integer of
+      0: (MousePos: ImGuiInputEventMousePos);
+      1: (MouseWheel: ImGuiInputEventMouseWheel);
+      2: (MouseButton: ImGuiInputEventMouseButton);
+      3: (MouseViewport: ImGuiInputEventMouseViewport);
+      4: (Key: ImGuiInputEventKey);
+      5: (Text: ImGuiInputEventText);
+      6: (AppFocused: ImGuiInputEventAppFocused);
+  end;
+
+  ImGuiInputEvent = record
+    Type_: ImGuiInputEventType;
+    Source: ImGuiInputSource;
+    EventId: ImU32;
+    f4: _anonymous_type_3;
+    AddedByTestEngine: Boolean;
+  end;
+
+  ImGuiKeyRoutingIndex = ImS16;
+
+  ImGuiKeyRoutingData = record
+    NextEntryIndex: ImGuiKeyRoutingIndex;
+    Mods: ImU16;
+    RoutingNextScore: ImU8;
+    RoutingCurr: ImGuiID;
+    RoutingNext: ImGuiID;
+  end;
+
+  ImVector_ImGuiKeyRoutingData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiKeyRoutingData;
+  end;
+
+  ImGuiKeyRoutingTable = record
+    Index: array [0..153] of ImGuiKeyRoutingIndex;
+    Entries: ImVector_ImGuiKeyRoutingData;
+    EntriesNext: ImVector_ImGuiKeyRoutingData;
+  end;
+
+  ImGuiKeyOwnerData = record
+    OwnerCurr: ImGuiID;
+    OwnerNext: ImGuiID;
+    LockThisFrame: Boolean;
+    LockUntilRelease: Boolean;
+  end;
+
+  ImGuiListClipperRange = record
+    Min: Integer;
+    Max: Integer;
+    PosToIndexConvert: Boolean;
+    PosToIndexOffsetMin: ImS8;
+    PosToIndexOffsetMax: ImS8;
+  end;
+
+  ImVector_ImGuiListClipperRange = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiListClipperRange;
+  end;
+
+  ImGuiListClipperData = record
+    ListClipper: PImGuiListClipper;
+    LossynessOffset: Single;
+    StepNo: Integer;
+    ItemsFrozen: Integer;
+    Ranges: ImVector_ImGuiListClipperRange;
+  end;
+
+  ImGuiNavItemData = record
+    Window: PImGuiWindow;
+    ID: ImGuiID;
+    FocusScopeId: ImGuiID;
+    RectRel: ImRect;
+    InFlags: ImGuiItemFlags;
+    SelectionUserData: ImGuiSelectionUserData;
+    DistBox: Single;
+    DistCenter: Single;
+    DistAxial: Single;
+  end;
+
+  ImGuiTypingSelectRequest = record
+    Flags: ImGuiTypingSelectFlags;
+    SearchBufferLen: Integer;
+    SearchBuffer: PAnsiChar;
+    SelectRequest: Boolean;
+    SingleCharMode: Boolean;
+    SingleCharSize: ImS8;
+  end;
+
+  ImGuiTypingSelectState = record
+    Request: ImGuiTypingSelectRequest;
+    SearchBuffer: array [0..63] of AnsiChar;
+    FocusScope: ImGuiID;
+    LastRequestFrame: Integer;
+    LastRequestTime: Single;
+    SingleCharModeLock: Boolean;
+  end;
+
+  ImGuiOldColumnData = record
+    OffsetNorm: Single;
+    OffsetNormBeforeResize: Single;
+    Flags: ImGuiOldColumnFlags;
+    ClipRect: ImRect;
+  end;
+
+  ImVector_ImGuiOldColumnData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiOldColumnData;
+  end;
+
+  ImGuiOldColumns = record
+    ID: ImGuiID;
+    Flags: ImGuiOldColumnFlags;
+    IsFirstFrame: Boolean;
+    IsBeingResized: Boolean;
+    Current: Integer;
+    Count: Integer;
+    OffMinX: Single;
+    OffMaxX: Single;
+    LineMinY: Single;
+    LineMaxY: Single;
+    HostCursorPosY: Single;
+    HostCursorMaxPosX: Single;
+    HostInitialClipRect: ImRect;
+    HostBackupClipRect: ImRect;
+    HostBackupParentWorkRect: ImRect;
+    Columns: ImVector_ImGuiOldColumnData;
+    Splitter: ImDrawListSplitter;
+  end;
+
+  ImVector_ImGuiWindowPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPImGuiWindow;
+  end;
+
+  ImGuiDockNode = record
+    ID: ImGuiID;
+    SharedFlags: ImGuiDockNodeFlags;
+    LocalFlags: ImGuiDockNodeFlags;
+    LocalFlagsInWindows: ImGuiDockNodeFlags;
+    MergedFlags: ImGuiDockNodeFlags;
+    State: ImGuiDockNodeState;
+    ParentNode: PImGuiDockNode;
+    ChildNodes: array [0..1] of PImGuiDockNode;
+    Windows: ImVector_ImGuiWindowPtr;
+    TabBar: PImGuiTabBar;
+    Pos: ImVec2;
+    Size: ImVec2;
+    SizeRef: ImVec2;
+    SplitAxis: ImGuiAxis;
+    WindowClass: ImGuiWindowClass;
+    LastBgColor: ImU32;
+    HostWindow: PImGuiWindow;
+    VisibleWindow: PImGuiWindow;
+    CentralNode: PImGuiDockNode;
+    OnlyNodeWithWindows: PImGuiDockNode;
+    CountNodeWithWindows: Integer;
+    LastFrameAlive: Integer;
+    LastFrameActive: Integer;
+    LastFrameFocused: Integer;
+    LastFocusedNodeId: ImGuiID;
+    SelectedTabId: ImGuiID;
+    WantCloseTabId: ImGuiID;
+    RefViewportId: ImGuiID;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property AuthorityForPos: Cardinal index $0003 read GetData0Value write SetData0Value; // 3 bits at offset 0 in Data0
+    property AuthorityForSize: Cardinal index $0303 read GetData0Value write SetData0Value; // 3 bits at offset 3 in Data0
+    property AuthorityForViewport: Cardinal index $0603 read GetData0Value write SetData0Value; // 3 bits at offset 6 in Data0
+    property IsVisible: Cardinal index $901 read GetData0Value write SetData0Value; // 1 bits at offset 9 in Data0
+    property IsFocused: Cardinal index $A01 read GetData0Value write SetData0Value; // 1 bits at offset 10 in Data0
+    property IsBgDrawnThisFrame: Cardinal index $B01 read GetData0Value write SetData0Value; // 1 bits at offset 11 in Data0
+    property HasCloseButton: Cardinal index $C01 read GetData0Value write SetData0Value; // 1 bits at offset 12 in Data0
+    property HasWindowMenuButton: Cardinal index $D01 read GetData0Value write SetData0Value; // 1 bits at offset 13 in Data0
+    property HasCentralNodeChild: Cardinal index $E01 read GetData0Value write SetData0Value; // 1 bits at offset 14 in Data0
+    property WantCloseAll: Cardinal index $F01 read GetData0Value write SetData0Value; // 1 bits at offset 15 in Data0
+    property WantLockSizeOnce: Cardinal index $1001 read GetData0Value write SetData0Value; // 1 bits at offset 16 in Data0
+    property WantMouseMove: Cardinal index $1101 read GetData0Value write SetData0Value; // 1 bits at offset 17 in Data0
+    property WantHiddenTabBarUpdate: Cardinal index $1201 read GetData0Value write SetData0Value; // 1 bits at offset 18 in Data0
+    property WantHiddenTabBarToggle: Cardinal index $1301 read GetData0Value write SetData0Value; // 1 bits at offset 19 in Data0
+  end;
+
+  ImGuiWindowDockStyle = record
+    Colors: array [0..5] of ImU32;
+  end;
+
+  ImVector_ImGuiDockRequest = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiDockRequest;
+  end;
+
+  ImVector_ImGuiDockNodeSettings = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiDockNodeSettings;
+  end;
+
+  ImGuiDockContext = record
+    Nodes: ImGuiStorage;
+    Requests: ImVector_ImGuiDockRequest;
+    NodesSettings: ImVector_ImGuiDockNodeSettings;
+    WantFullRebuild: Boolean;
+  end;
+
+  ImGuiViewportP = record
+    _ImGuiViewport: ImGuiViewport;
+    Window: PImGuiWindow;
+    Idx: Integer;
+    LastFrameActive: Integer;
+    LastFocusedStampCount: Integer;
+    LastNameHash: ImGuiID;
+    LastPos: ImVec2;
+    Alpha: Single;
+    LastAlpha: Single;
+    LastFocusedHadNavWindow: Boolean;
+    PlatformMonitor: Smallint;
+    BgFgDrawListsLastFrame: array [0..1] of Integer;
+    BgFgDrawLists: array [0..1] of PImDrawList;
+    DrawDataP: ImDrawData;
+    DrawDataBuilder: ImDrawDataBuilder;
+    LastPlatformPos: ImVec2;
+    LastPlatformSize: ImVec2;
+    LastRendererSize: ImVec2;
+    WorkOffsetMin: ImVec2;
+    WorkOffsetMax: ImVec2;
+    BuildWorkOffsetMin: ImVec2;
+    BuildWorkOffsetMax: ImVec2;
+  end;
+
+  ImGuiWindowSettings = record
+    ID: ImGuiID;
+    Pos: ImVec2ih;
+    Size: ImVec2ih;
+    ViewportPos: ImVec2ih;
+    ViewportId: ImGuiID;
+    DockId: ImGuiID;
+    ClassId: ImGuiID;
+    DockOrder: Smallint;
+    Collapsed: Boolean;
+    IsChild: Boolean;
+    WantApply: Boolean;
+    WantDelete: Boolean;
+  end;
+
+  ImGuiSettingsHandler = record
+    TypeName: PAnsiChar;
+    TypeHash: ImGuiID;
+    ClearAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
+    ReadInitFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
+    ReadOpenFn: function(ctx: PImGuiContext; handler: PImGuiSettingsHandler; const name: PAnsiChar): Pointer; cdecl;
+    ReadLineFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler; entry: Pointer; const line: PAnsiChar); cdecl;
+    ApplyAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
+    WriteAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler; out_buf: PImGuiTextBuffer); cdecl;
+    UserData: Pointer;
+  end;
+
+  ImGuiLocEntry = record
+    Key: ImGuiLocKey;
+    Text: PAnsiChar;
+  end;
+
+  ImGuiDebugAllocEntry = record
+    FrameCount: Integer;
+    AllocCount: ImS16;
+    FreeCount: ImS16;
+  end;
+
+  ImGuiDebugAllocInfo = record
+    TotalAllocCount: Integer;
+    TotalFreeCount: Integer;
+    LastEntriesIdx: ImS16;
+    LastEntriesBuf: array [0..5] of ImGuiDebugAllocEntry;
+  end;
+
+  ImGuiMetricsConfig = record
+    ShowDebugLog: Boolean;
+    ShowIDStackTool: Boolean;
+    ShowWindowsRects: Boolean;
+    ShowWindowsBeginOrder: Boolean;
+    ShowTablesRects: Boolean;
+    ShowDrawCmdMesh: Boolean;
+    ShowDrawCmdBoundingBoxes: Boolean;
+    ShowAtlasTintedWithTextColor: Boolean;
+    ShowDockingNodes: Boolean;
+    ShowWindowsRectsType: Integer;
+    ShowTablesRectsType: Integer;
+  end;
+
+  ImGuiStackLevelInfo = record
+    ID: ImGuiID;
+    QueryFrameCount: ImS8;
+    QuerySuccess: Boolean;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property DataType: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
+  var
+    Desc: array [0..56] of AnsiChar;
+  end;
+
+  ImVector_ImGuiStackLevelInfo = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiStackLevelInfo;
+  end;
+
+  ImGuiIDStackTool = record
+    LastActiveFrame: Integer;
+    StackLevel: Integer;
+    QueryId: ImGuiID;
+    Results: ImVector_ImGuiStackLevelInfo;
+    CopyToClipboardOnCtrlC: Boolean;
+    CopyToClipboardLastTime: Single;
+  end;
+
+  ImGuiContextHookCallback = procedure(ctx: PImGuiContext; hook: PImGuiContextHook); cdecl;
+
+  ImGuiContextHook = record
+    HookId: ImGuiID;
+    Type_: ImGuiContextHookType;
+    Owner: ImGuiID;
+    Callback: ImGuiContextHookCallback;
+    UserData: Pointer;
+  end;
+
+  ImVector_ImGuiInputEvent = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiInputEvent;
+  end;
+
+  ImVector_ImGuiWindowStackData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiWindowStackData;
+  end;
+
+  ImVector_ImGuiColorMod = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiColorMod;
+  end;
+
+  ImVector_ImGuiStyleMod = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiStyleMod;
+  end;
+
+  ImVector_ImGuiID = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiID;
+  end;
+
+  ImVector_ImGuiItemFlags = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiItemFlags;
+  end;
+
+  ImVector_ImGuiGroupData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiGroupData;
+  end;
+
+  ImVector_ImGuiPopupData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiPopupData;
+  end;
+
+  ImVector_ImGuiNavTreeNodeData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiNavTreeNodeData;
+  end;
+
+  ImVector_ImGuiViewportPPtr = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PPImGuiViewportP;
+  end;
+
+  ImVector_unsigned_char = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PByte;
+  end;
+
+  ImVector_ImGuiListClipperData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiListClipperData;
+  end;
+
+  ImVector_ImGuiTableTempData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTableTempData;
+  end;
+
+  ImVector_ImGuiTable = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTable;
+  end;
+
+  ImPool_ImGuiTable = record
+    Buf: ImVector_ImGuiTable;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImVector_ImGuiTabBar = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTabBar;
+  end;
+
+  ImPool_ImGuiTabBar = record
+    Buf: ImVector_ImGuiTabBar;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImVector_ImGuiPtrOrIndex = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiPtrOrIndex;
+  end;
+
+  ImVector_ImGuiShrinkWidthItem = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiShrinkWidthItem;
+  end;
+
+  ImVector_ImGuiSettingsHandler = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiSettingsHandler;
+  end;
+
+  ImChunkStream_ImGuiWindowSettings = record
+    Buf: ImVector_char;
+  end;
+
+  ImChunkStream_ImGuiTableSettings = record
+    Buf: ImVector_char;
+  end;
+
+  ImVector_ImGuiContextHook = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiContextHook;
+  end;
+
+  ImGuiContext = record
+    Initialized: Boolean;
+    FontAtlasOwnedByContext: Boolean;
+    IO: ImGuiIO;
+    PlatformIO: ImGuiPlatformIO;
+    Style: ImGuiStyle;
+    ConfigFlagsCurrFrame: ImGuiConfigFlags;
+    ConfigFlagsLastFrame: ImGuiConfigFlags;
+    Font: PImFont;
+    FontSize: Single;
+    FontBaseSize: Single;
+    DrawListSharedData: ImDrawListSharedData;
+    Time: Double;
+    FrameCount: Integer;
+    FrameCountEnded: Integer;
+    FrameCountPlatformEnded: Integer;
+    FrameCountRendered: Integer;
+    WithinFrameScope: Boolean;
+    WithinFrameScopeWithImplicitWindow: Boolean;
+    WithinEndChild: Boolean;
+    GcCompactAll: Boolean;
+    TestEngineHookItems: Boolean;
+    TestEngine: Pointer;
+    InputEventsQueue: ImVector_ImGuiInputEvent;
+    InputEventsTrail: ImVector_ImGuiInputEvent;
+    InputEventsNextMouseSource: ImGuiMouseSource;
+    InputEventsNextEventId: ImU32;
+    Windows: ImVector_ImGuiWindowPtr;
+    WindowsFocusOrder: ImVector_ImGuiWindowPtr;
+    WindowsTempSortBuffer: ImVector_ImGuiWindowPtr;
+    CurrentWindowStack: ImVector_ImGuiWindowStackData;
+    WindowsById: ImGuiStorage;
+    WindowsActiveCount: Integer;
+    WindowsHoverPadding: ImVec2;
+    CurrentWindow: PImGuiWindow;
+    HoveredWindow: PImGuiWindow;
+    HoveredWindowUnderMovingWindow: PImGuiWindow;
+    MovingWindow: PImGuiWindow;
+    WheelingWindow: PImGuiWindow;
+    WheelingWindowRefMousePos: ImVec2;
+    WheelingWindowStartFrame: Integer;
+    WheelingWindowScrolledFrame: Integer;
+    WheelingWindowReleaseTimer: Single;
+    WheelingWindowWheelRemainder: ImVec2;
+    WheelingAxisAvg: ImVec2;
+    DebugHookIdInfo: ImGuiID;
+    HoveredId: ImGuiID;
+    HoveredIdPreviousFrame: ImGuiID;
+    HoveredIdAllowOverlap: Boolean;
+    HoveredIdDisabled: Boolean;
+    HoveredIdTimer: Single;
+    HoveredIdNotActiveTimer: Single;
+    ActiveId: ImGuiID;
+    ActiveIdIsAlive: ImGuiID;
+    ActiveIdTimer: Single;
+    ActiveIdIsJustActivated: Boolean;
+    ActiveIdAllowOverlap: Boolean;
+    ActiveIdNoClearOnFocusLoss: Boolean;
+    ActiveIdHasBeenPressedBefore: Boolean;
+    ActiveIdHasBeenEditedBefore: Boolean;
+    ActiveIdHasBeenEditedThisFrame: Boolean;
+    ActiveIdClickOffset: ImVec2;
+    ActiveIdWindow: PImGuiWindow;
+    ActiveIdSource: ImGuiInputSource;
+    ActiveIdMouseButton: Integer;
+    ActiveIdPreviousFrame: ImGuiID;
+    ActiveIdPreviousFrameIsAlive: Boolean;
+    ActiveIdPreviousFrameHasBeenEditedBefore: Boolean;
+    ActiveIdPreviousFrameWindow: PImGuiWindow;
+    LastActiveId: ImGuiID;
+    LastActiveIdTimer: Single;
+    KeysOwnerData: array [0..153] of ImGuiKeyOwnerData;
+    KeysRoutingTable: ImGuiKeyRoutingTable;
+    ActiveIdUsingNavDirMask: ImU32;
+    ActiveIdUsingAllKeyboardKeys: Boolean;
+    CurrentFocusScopeId: ImGuiID;
+    CurrentItemFlags: ImGuiItemFlags;
+    DebugLocateId: ImGuiID;
+    NextItemData: ImGuiNextItemData;
+    LastItemData: ImGuiLastItemData;
+    NextWindowData: ImGuiNextWindowData;
+    DebugShowGroupRects: Boolean;
+    ColorStack: ImVector_ImGuiColorMod;
+    StyleVarStack: ImVector_ImGuiStyleMod;
+    FontStack: ImVector_ImFontPtr;
+    FocusScopeStack: ImVector_ImGuiID;
+    ItemFlagsStack: ImVector_ImGuiItemFlags;
+    GroupStack: ImVector_ImGuiGroupData;
+    OpenPopupStack: ImVector_ImGuiPopupData;
+    BeginPopupStack: ImVector_ImGuiPopupData;
+    NavTreeNodeStack: ImVector_ImGuiNavTreeNodeData;
+    BeginMenuCount: Integer;
+    Viewports: ImVector_ImGuiViewportPPtr;
+    CurrentDpiScale: Single;
+    CurrentViewport: PImGuiViewportP;
+    MouseViewport: PImGuiViewportP;
+    MouseLastHoveredViewport: PImGuiViewportP;
+    PlatformLastFocusedViewportId: ImGuiID;
+    FallbackMonitor: ImGuiPlatformMonitor;
+    ViewportCreatedCount: Integer;
+    PlatformWindowsCreatedCount: Integer;
+    ViewportFocusedStampCount: Integer;
+    NavWindow: PImGuiWindow;
+    NavId: ImGuiID;
+    NavFocusScopeId: ImGuiID;
+    NavActivateId: ImGuiID;
+    NavActivateDownId: ImGuiID;
+    NavActivatePressedId: ImGuiID;
+    NavActivateFlags: ImGuiActivateFlags;
+    NavJustMovedToId: ImGuiID;
+    NavJustMovedToFocusScopeId: ImGuiID;
+    NavJustMovedToKeyMods: ImGuiKeyChord;
+    NavNextActivateId: ImGuiID;
+    NavNextActivateFlags: ImGuiActivateFlags;
+    NavInputSource: ImGuiInputSource;
+    NavLayer: ImGuiNavLayer;
+    NavLastValidSelectionUserData: ImGuiSelectionUserData;
+    NavIdIsAlive: Boolean;
+    NavMousePosDirty: Boolean;
+    NavDisableHighlight: Boolean;
+    NavDisableMouseHover: Boolean;
+    NavAnyRequest: Boolean;
+    NavInitRequest: Boolean;
+    NavInitRequestFromMove: Boolean;
+    NavInitResult: ImGuiNavItemData;
+    NavMoveSubmitted: Boolean;
+    NavMoveScoringItems: Boolean;
+    NavMoveForwardToNextFrame: Boolean;
+    NavMoveFlags: ImGuiNavMoveFlags;
+    NavMoveScrollFlags: ImGuiScrollFlags;
+    NavMoveKeyMods: ImGuiKeyChord;
+    NavMoveDir: ImGuiDir;
+    NavMoveDirForDebug: ImGuiDir;
+    NavMoveClipDir: ImGuiDir;
+    NavScoringRect: ImRect;
+    NavScoringNoClipRect: ImRect;
+    NavScoringDebugCount: Integer;
+    NavTabbingDir: Integer;
+    NavTabbingCounter: Integer;
+    NavMoveResultLocal: ImGuiNavItemData;
+    NavMoveResultLocalVisible: ImGuiNavItemData;
+    NavMoveResultOther: ImGuiNavItemData;
+    NavTabbingResultFirst: ImGuiNavItemData;
+    ConfigNavWindowingKeyNext: ImGuiKeyChord;
+    ConfigNavWindowingKeyPrev: ImGuiKeyChord;
+    NavWindowingTarget: PImGuiWindow;
+    NavWindowingTargetAnim: PImGuiWindow;
+    NavWindowingListWindow: PImGuiWindow;
+    NavWindowingTimer: Single;
+    NavWindowingHighlightAlpha: Single;
+    NavWindowingToggleLayer: Boolean;
+    NavWindowingAccumDeltaPos: ImVec2;
+    NavWindowingAccumDeltaSize: ImVec2;
+    DimBgRatio: Single;
+    DragDropActive: Boolean;
+    DragDropWithinSource: Boolean;
+    DragDropWithinTarget: Boolean;
+    DragDropSourceFlags: ImGuiDragDropFlags;
+    DragDropSourceFrameCount: Integer;
+    DragDropMouseButton: Integer;
+    DragDropPayload: ImGuiPayload;
+    DragDropTargetRect: ImRect;
+    DragDropTargetId: ImGuiID;
+    DragDropAcceptFlags: ImGuiDragDropFlags;
+    DragDropAcceptIdCurrRectSurface: Single;
+    DragDropAcceptIdCurr: ImGuiID;
+    DragDropAcceptIdPrev: ImGuiID;
+    DragDropAcceptFrameCount: Integer;
+    DragDropHoldJustPressedId: ImGuiID;
+    DragDropPayloadBufHeap: ImVector_unsigned_char;
+    DragDropPayloadBufLocal: array [0..15] of Byte;
+    ClipperTempDataStacked: Integer;
+    ClipperTempData: ImVector_ImGuiListClipperData;
+    CurrentTable: PImGuiTable;
+    TablesTempDataStacked: Integer;
+    TablesTempData: ImVector_ImGuiTableTempData;
+    Tables: ImPool_ImGuiTable;
+    TablesLastTimeActive: ImVector_float;
+    DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel;
+    CurrentTabBar: PImGuiTabBar;
+    TabBars: ImPool_ImGuiTabBar;
+    CurrentTabBarStack: ImVector_ImGuiPtrOrIndex;
+    ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem;
+    HoverItemDelayId: ImGuiID;
+    HoverItemDelayIdPreviousFrame: ImGuiID;
+    HoverItemDelayTimer: Single;
+    HoverItemDelayClearTimer: Single;
+    HoverItemUnlockedStationaryId: ImGuiID;
+    HoverWindowUnlockedStationaryId: ImGuiID;
+    MouseCursor: ImGuiMouseCursor;
+    MouseStationaryTimer: Single;
+    MouseLastValidPos: ImVec2;
+    InputTextState: ImGuiInputTextState;
+    InputTextDeactivatedState: ImGuiInputTextDeactivatedState;
+    InputTextPasswordFont: ImFont;
+    TempInputId: ImGuiID;
+    ColorEditOptions: ImGuiColorEditFlags;
+    ColorEditCurrentID: ImGuiID;
+    ColorEditSavedID: ImGuiID;
+    ColorEditSavedHue: Single;
+    ColorEditSavedSat: Single;
+    ColorEditSavedColor: ImU32;
+    ColorPickerRef: ImVec4;
+    ComboPreviewData: ImGuiComboPreviewData;
+    WindowResizeBorderExpectedRect: ImRect;
+    WindowResizeRelativeMode: Boolean;
+    SliderGrabClickOffset: Single;
+    SliderCurrentAccum: Single;
+    SliderCurrentAccumDirty: Boolean;
+    DragCurrentAccumDirty: Boolean;
+    DragCurrentAccum: Single;
+    DragSpeedDefaultRatio: Single;
+    ScrollbarClickDeltaToGrabCenter: Single;
+    DisabledAlphaBackup: Single;
+    DisabledStackSize: Smallint;
+    LockMarkEdited: Smallint;
+    TooltipOverrideCount: Smallint;
+    ClipboardHandlerData: ImVector_char;
+    MenusIdSubmittedThisFrame: ImVector_ImGuiID;
+    TypingSelectState: ImGuiTypingSelectState;
+    PlatformImeData: ImGuiPlatformImeData;
+    PlatformImeDataPrev: ImGuiPlatformImeData;
+    PlatformImeViewport: ImGuiID;
+    DockContext: ImGuiDockContext;
+    DockNodeWindowMenuHandler: procedure(ctx: PImGuiContext; node: PImGuiDockNode; tab_bar: PImGuiTabBar); cdecl;
+    SettingsLoaded: Boolean;
+    SettingsDirtyTimer: Single;
+    SettingsIniData: ImGuiTextBuffer;
+    SettingsHandlers: ImVector_ImGuiSettingsHandler;
+    SettingsWindows: ImChunkStream_ImGuiWindowSettings;
+    SettingsTables: ImChunkStream_ImGuiTableSettings;
+    Hooks: ImVector_ImGuiContextHook;
+    HookIdNext: ImGuiID;
+    LocalizationTable: array [0..10] of PAnsiChar;
+    LogEnabled: Boolean;
+    LogType: ImGuiLogType;
+    LogFile: ImFileHandle;
+    LogBuffer: ImGuiTextBuffer;
+    LogNextPrefix: PAnsiChar;
+    LogNextSuffix: PAnsiChar;
+    LogLinePosY: Single;
+    LogLineFirstItem: Boolean;
+    LogDepthRef: Integer;
+    LogDepthToExpand: Integer;
+    LogDepthToExpandDefault: Integer;
+    DebugLogFlags: ImGuiDebugLogFlags;
+    DebugLogBuf: ImGuiTextBuffer;
+    DebugLogIndex: ImGuiTextIndex;
+    DebugLogClipperAutoDisableFrames: ImU8;
+    DebugLocateFrames: ImU8;
+    DebugBeginReturnValueCullDepth: ImS8;
+    DebugItemPickerActive: Boolean;
+    DebugItemPickerMouseButton: ImU8;
+    DebugItemPickerBreakId: ImGuiID;
+    DebugMetricsConfig: ImGuiMetricsConfig;
+    DebugIDStackTool: ImGuiIDStackTool;
+    DebugAllocInfo: ImGuiDebugAllocInfo;
+    DebugHoveredDockNode: PImGuiDockNode;
+    FramerateSecPerFrame: array [0..59] of Single;
+    FramerateSecPerFrameIdx: Integer;
+    FramerateSecPerFrameCount: Integer;
+    FramerateSecPerFrameAccum: Single;
+    WantCaptureMouseNextFrame: Integer;
+    WantCaptureKeyboardNextFrame: Integer;
+    WantTextInputNextFrame: Integer;
+    TempBuffer: ImVector_char;
+  end;
+
+  ImGuiWindowTempData = record
+    CursorPos: ImVec2;
+    CursorPosPrevLine: ImVec2;
+    CursorStartPos: ImVec2;
+    CursorMaxPos: ImVec2;
+    IdealMaxPos: ImVec2;
+    CurrLineSize: ImVec2;
+    PrevLineSize: ImVec2;
+    CurrLineTextBaseOffset: Single;
+    PrevLineTextBaseOffset: Single;
+    IsSameLine: Boolean;
+    IsSetPos: Boolean;
+    Indent: ImVec1;
+    ColumnsOffset: ImVec1;
+    GroupOffset: ImVec1;
+    CursorStartPosLossyness: ImVec2;
+    NavLayerCurrent: ImGuiNavLayer;
+    NavLayersActiveMask: Smallint;
+    NavLayersActiveMaskNext: Smallint;
+    NavIsScrollPushableX: Boolean;
+    NavHideHighlightOneFrame: Boolean;
+    NavWindowHasScrollY: Boolean;
+    MenuBarAppending: Boolean;
+    MenuBarOffset: ImVec2;
+    MenuColumns: ImGuiMenuColumns;
+    TreeDepth: Integer;
+    TreeJumpToParentOnPopMask: ImU32;
+    ChildWindows: ImVector_ImGuiWindowPtr;
+    StateStorage: PImGuiStorage;
+    CurrentColumns: PImGuiOldColumns;
+    CurrentTableIdx: Integer;
+    LayoutType: ImGuiLayoutType;
+    ParentLayoutType: ImGuiLayoutType;
+    ItemWidth: Single;
+    TextWrapPos: Single;
+    ItemWidthStack: ImVector_float;
+    TextWrapPosStack: ImVector_float;
+  end;
+
+  ImVector_ImGuiOldColumns = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiOldColumns;
+  end;
+
+  ImGuiWindow = record
+    Ctx: PImGuiContext;
+    Name: PAnsiChar;
+    ID: ImGuiID;
+    Flags: ImGuiWindowFlags;
+    FlagsPreviousFrame: ImGuiWindowFlags;
+    ChildFlags: ImGuiChildFlags;
+    WindowClass: ImGuiWindowClass;
+    Viewport: PImGuiViewportP;
+    ViewportId: ImGuiID;
+    ViewportPos: ImVec2;
+    ViewportAllowPlatformMonitorExtend: Integer;
+    Pos: ImVec2;
+    Size: ImVec2;
+    SizeFull: ImVec2;
+    ContentSize: ImVec2;
+    ContentSizeIdeal: ImVec2;
+    ContentSizeExplicit: ImVec2;
+    WindowPadding: ImVec2;
+    WindowRounding: Single;
+    WindowBorderSize: Single;
+    DecoOuterSizeX1: Single;
+    DecoOuterSizeY1: Single;
+    DecoOuterSizeX2: Single;
+    DecoOuterSizeY2: Single;
+    DecoInnerSizeX1: Single;
+    DecoInnerSizeY1: Single;
+    NameBufLen: Integer;
+    MoveId: ImGuiID;
+    TabId: ImGuiID;
+    ChildId: ImGuiID;
+    Scroll: ImVec2;
+    ScrollMax: ImVec2;
+    ScrollTarget: ImVec2;
+    ScrollTargetCenterRatio: ImVec2;
+    ScrollTargetEdgeSnapDist: ImVec2;
+    ScrollbarSizes: ImVec2;
+    ScrollbarX: Boolean;
+    ScrollbarY: Boolean;
+    ViewportOwned: Boolean;
+    Active: Boolean;
+    WasActive: Boolean;
+    WriteAccessed: Boolean;
+    Collapsed: Boolean;
+    WantCollapseToggle: Boolean;
+    SkipItems: Boolean;
+    Appearing: Boolean;
+    Hidden: Boolean;
+    IsFallbackWindow: Boolean;
+    IsExplicitChild: Boolean;
+    HasCloseButton: Boolean;
+    ResizeBorderHovered: AnsiChar;
+    ResizeBorderHeld: AnsiChar;
+    BeginCount: Smallint;
+    BeginCountPreviousFrame: Smallint;
+    BeginOrderWithinParent: Smallint;
+    BeginOrderWithinContext: Smallint;
+    FocusOrder: Smallint;
+    PopupId: ImGuiID;
+    AutoFitFramesX: ImS8;
+    AutoFitFramesY: ImS8;
+    AutoFitOnlyGrows: Boolean;
+    AutoPosLastDirection: ImGuiDir;
+    HiddenFramesCanSkipItems: ImS8;
+    HiddenFramesCannotSkipItems: ImS8;
+    HiddenFramesForRenderOnly: ImS8;
+    DisableInputsFrames: ImS8;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property SetWindowPosAllowFlags: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
+    property SetWindowSizeAllowFlags: Cardinal index $0808 read GetData0Value write SetData0Value; // 8 bits at offset 8 in Data0
+    property SetWindowCollapsedAllowFlags: Cardinal index $1008 read GetData0Value write SetData0Value; // 8 bits at offset 16 in Data0
+    property SetWindowDockAllowFlags: Cardinal index $1808 read GetData0Value write SetData0Value; // 8 bits at offset 24 in Data0
+  var
+    SetWindowPosVal: ImVec2;
+    SetWindowPosPivot: ImVec2;
+    IDStack: ImVector_ImGuiID;
+    DC: ImGuiWindowTempData;
+    OuterRectClipped: ImRect;
+    InnerRect: ImRect;
+    InnerClipRect: ImRect;
+    WorkRect: ImRect;
+    ParentWorkRect: ImRect;
+    ClipRect: ImRect;
+    ContentRegionRect: ImRect;
+    HitTestHoleSize: ImVec2ih;
+    HitTestHoleOffset: ImVec2ih;
+    LastFrameActive: Integer;
+    LastFrameJustFocused: Integer;
+    LastTimeActive: Single;
+    ItemWidthDefault: Single;
+    StateStorage: ImGuiStorage;
+    ColumnsStorage: ImVector_ImGuiOldColumns;
+    FontWindowScale: Single;
+    FontDpiScale: Single;
+    SettingsOffset: Integer;
+    DrawList: PImDrawList;
+    DrawListInst: ImDrawList;
+    ParentWindow: PImGuiWindow;
+    ParentWindowInBeginStack: PImGuiWindow;
+    RootWindow: PImGuiWindow;
+    RootWindowPopupTree: PImGuiWindow;
+    RootWindowDockTree: PImGuiWindow;
+    RootWindowForTitleBarHighlight: PImGuiWindow;
+    RootWindowForNav: PImGuiWindow;
+    NavLastChildNavWindow: PImGuiWindow;
+    NavLastIds: array [0..1] of ImGuiID;
+    NavRectRel: array [0..1] of ImRect;
+    NavPreferredScoringPosRel: array [0..1] of ImVec2;
+    NavRootFocusScopeId: ImGuiID;
+    MemoryDrawListIdxCapacity: Integer;
+    MemoryDrawListVtxCapacity: Integer;
+    MemoryCompacted: Boolean;
+  private
+    Data1: Cardinal;
+    function GetData1Value(const AIndex: Integer): Cardinal;
+    procedure SetData1Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property DockIsActive: Cardinal index $1 read GetData1Value write SetData1Value; // 1 bits at offset 0 in Data1
+    property DockNodeIsVisible: Cardinal index $101 read GetData1Value write SetData1Value; // 1 bits at offset 1 in Data1
+    property DockTabIsVisible: Cardinal index $201 read GetData1Value write SetData1Value; // 1 bits at offset 2 in Data1
+    property DockTabWantClose: Cardinal index $301 read GetData1Value write SetData1Value; // 1 bits at offset 3 in Data1
+  var
+    DockOrder: Smallint;
+    DockStyle: ImGuiWindowDockStyle;
+    DockNode: PImGuiDockNode;
+    DockNodeAsHost: PImGuiDockNode;
+    DockId: ImGuiID;
+    DockTabItemStatusFlags: ImGuiItemStatusFlags;
+    DockTabItemRect: ImRect;
+  end;
+
+  ImGuiTabItem = record
+    ID: ImGuiID;
+    Flags: ImGuiTabItemFlags;
+    Window: PImGuiWindow;
+    LastFrameVisible: Integer;
+    LastFrameSelected: Integer;
+    Offset: Single;
+    Width: Single;
+    ContentWidth: Single;
+    RequestedWidth: Single;
+    NameOffset: ImS32;
+    BeginOrder: ImS16;
+    IndexDuringLayout: ImS16;
+    WantClose: Boolean;
+  end;
+
+  ImVector_ImGuiTabItem = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTabItem;
+  end;
+
+  ImGuiTabBar = record
+    Tabs: ImVector_ImGuiTabItem;
+    Flags: ImGuiTabBarFlags;
+    ID: ImGuiID;
+    SelectedTabId: ImGuiID;
+    NextSelectedTabId: ImGuiID;
+    VisibleTabId: ImGuiID;
+    CurrFrameVisible: Integer;
+    PrevFrameVisible: Integer;
+    BarRect: ImRect;
+    CurrTabsContentsHeight: Single;
+    PrevTabsContentsHeight: Single;
+    WidthAllTabs: Single;
+    WidthAllTabsIdeal: Single;
+    ScrollingAnim: Single;
+    ScrollingTarget: Single;
+    ScrollingTargetDistToVisibility: Single;
+    ScrollingSpeed: Single;
+    ScrollingRectMinX: Single;
+    ScrollingRectMaxX: Single;
+    SeparatorMinX: Single;
+    SeparatorMaxX: Single;
+    ReorderRequestTabId: ImGuiID;
+    ReorderRequestOffset: ImS16;
+    BeginCount: ImS8;
+    WantLayout: Boolean;
+    VisibleTabWasSubmitted: Boolean;
+    TabsAddedNew: Boolean;
+    TabsActiveCount: ImS16;
+    LastTabItemIdx: ImS16;
+    ItemSpacingY: Single;
+    FramePadding: ImVec2;
+    BackupCursorPos: ImVec2;
+    TabsNames: ImGuiTextBuffer;
+  end;
+
+  ImGuiTableColumnIdx = ImS16;
+  PImGuiTableColumnIdx = ^ImGuiTableColumnIdx;
+  ImGuiTableDrawChannelIdx = ImU16;
+
+  ImGuiTableColumn = record
+    Flags: ImGuiTableColumnFlags;
+    WidthGiven: Single;
+    MinX: Single;
+    MaxX: Single;
+    WidthRequest: Single;
+    WidthAuto: Single;
+    StretchWeight: Single;
+    InitStretchWeightOrWidth: Single;
+    ClipRect: ImRect;
+    UserID: ImGuiID;
+    WorkMinX: Single;
+    WorkMaxX: Single;
+    ItemWidth: Single;
+    ContentMaxXFrozen: Single;
+    ContentMaxXUnfrozen: Single;
+    ContentMaxXHeadersUsed: Single;
+    ContentMaxXHeadersIdeal: Single;
+    NameOffset: ImS16;
+    DisplayOrder: ImGuiTableColumnIdx;
+    IndexWithinEnabledSet: ImGuiTableColumnIdx;
+    PrevEnabledColumn: ImGuiTableColumnIdx;
+    NextEnabledColumn: ImGuiTableColumnIdx;
+    SortOrder: ImGuiTableColumnIdx;
+    DrawChannelCurrent: ImGuiTableDrawChannelIdx;
+    DrawChannelFrozen: ImGuiTableDrawChannelIdx;
+    DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
+    IsEnabled: Boolean;
+    IsUserEnabled: Boolean;
+    IsUserEnabledNextFrame: Boolean;
+    IsVisibleX: Boolean;
+    IsVisibleY: Boolean;
+    IsRequestOutput: Boolean;
+    IsSkipItems: Boolean;
+    IsPreserveWidthAuto: Boolean;
+    NavLayerCurrent: ImS8;
+    AutoFitQueue: ImU8;
+    CannotSkipItemsQueue: ImU8;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property SortDirection: Cardinal index $2 read GetData0Value write SetData0Value; // 2 bits at offset 0 in Data0
+    property SortDirectionsAvailCount: Cardinal index $202 read GetData0Value write SetData0Value; // 2 bits at offset 2 in Data0
+    property SortDirectionsAvailMask: Cardinal index $404 read GetData0Value write SetData0Value; // 4 bits at offset 4 in Data0
+  var
+    SortDirectionsAvailList: ImU8;
+  end;
+
+  ImGuiTableCellData = record
+    BgColor: ImU32;
+    Column: ImGuiTableColumnIdx;
+  end;
+
+  ImGuiTableInstanceData = record
+    TableInstanceID: ImGuiID;
+    LastOuterHeight: Single;
+    LastTopHeadersRowHeight: Single;
+    LastFrozenHeight: Single;
+    HoveredRowLast: Integer;
+    HoveredRowNext: Integer;
+  end;
+
+  ImSpan_ImGuiTableColumn = record
+    Data: PImGuiTableColumn;
+    DataEnd: PImGuiTableColumn;
+  end;
+
+  ImSpan_ImGuiTableColumnIdx = record
+    Data: PImGuiTableColumnIdx;
+    DataEnd: PImGuiTableColumnIdx;
+  end;
+
+  ImSpan_ImGuiTableCellData = record
+    Data: PImGuiTableCellData;
+    DataEnd: PImGuiTableCellData;
+  end;
+
+  ImVector_ImGuiTableInstanceData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTableInstanceData;
+  end;
+
+  ImVector_ImGuiTableColumnSortSpecs = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiTableColumnSortSpecs;
+  end;
+
+  ImGuiTable = record
+    ID: ImGuiID;
+    Flags: ImGuiTableFlags;
+    RawData: Pointer;
+    TempData: PImGuiTableTempData;
+    Columns: ImSpan_ImGuiTableColumn;
+    DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx;
+    RowCellData: ImSpan_ImGuiTableCellData;
+    EnabledMaskByDisplayOrder: ImBitArrayPtr;
+    EnabledMaskByIndex: ImBitArrayPtr;
+    VisibleMaskByIndex: ImBitArrayPtr;
+    SettingsLoadedFlags: ImGuiTableFlags;
+    SettingsOffset: Integer;
+    LastFrameActive: Integer;
+    ColumnsCount: Integer;
+    CurrentRow: Integer;
+    CurrentColumn: Integer;
+    InstanceCurrent: ImS16;
+    InstanceInteracted: ImS16;
+    RowPosY1: Single;
+    RowPosY2: Single;
+    RowMinHeight: Single;
+    RowCellPaddingY: Single;
+    RowTextBaseline: Single;
+    RowIndentOffsetX: Single;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property RowFlags: Cardinal index $0010 read GetData0Value write SetData0Value; // 16 bits at offset 0 in Data0
+    property LastRowFlags: Cardinal index $1010 read GetData0Value write SetData0Value; // 16 bits at offset 16 in Data0
+  var
+    RowBgColorCounter: Integer;
+    RowBgColor: array [0..1] of ImU32;
+    BorderColorStrong: ImU32;
+    BorderColorLight: ImU32;
+    BorderX1: Single;
+    BorderX2: Single;
+    HostIndentX: Single;
+    MinColumnWidth: Single;
+    OuterPaddingX: Single;
+    CellPaddingX: Single;
+    CellSpacingX1: Single;
+    CellSpacingX2: Single;
+    InnerWidth: Single;
+    ColumnsGivenWidth: Single;
+    ColumnsAutoFitWidth: Single;
+    ColumnsStretchSumWeights: Single;
+    ResizedColumnNextWidth: Single;
+    ResizeLockMinContentsX2: Single;
+    RefScale: Single;
+    AngledHeadersHeight: Single;
+    AngledHeadersSlope: Single;
+    OuterRect: ImRect;
+    InnerRect: ImRect;
+    WorkRect: ImRect;
+    InnerClipRect: ImRect;
+    BgClipRect: ImRect;
+    Bg0ClipRectForDrawCmd: ImRect;
+    Bg2ClipRectForDrawCmd: ImRect;
+    HostClipRect: ImRect;
+    HostBackupInnerClipRect: ImRect;
+    OuterWindow: PImGuiWindow;
+    InnerWindow: PImGuiWindow;
+    ColumnsNames: ImGuiTextBuffer;
+    DrawSplitter: PImDrawListSplitter;
+    InstanceDataFirst: ImGuiTableInstanceData;
+    InstanceDataExtra: ImVector_ImGuiTableInstanceData;
+    SortSpecsSingle: ImGuiTableColumnSortSpecs;
+    SortSpecsMulti: ImVector_ImGuiTableColumnSortSpecs;
+    SortSpecs: ImGuiTableSortSpecs;
+    SortSpecsCount: ImGuiTableColumnIdx;
+    ColumnsEnabledCount: ImGuiTableColumnIdx;
+    ColumnsEnabledFixedCount: ImGuiTableColumnIdx;
+    DeclColumnsCount: ImGuiTableColumnIdx;
+    AngledHeadersCount: ImGuiTableColumnIdx;
+    HoveredColumnBody: ImGuiTableColumnIdx;
+    HoveredColumnBorder: ImGuiTableColumnIdx;
+    HighlightColumnHeader: ImGuiTableColumnIdx;
+    AutoFitSingleColumn: ImGuiTableColumnIdx;
+    ResizedColumn: ImGuiTableColumnIdx;
+    LastResizedColumn: ImGuiTableColumnIdx;
+    HeldHeaderColumn: ImGuiTableColumnIdx;
+    ReorderColumn: ImGuiTableColumnIdx;
+    ReorderColumnDir: ImGuiTableColumnIdx;
+    LeftMostEnabledColumn: ImGuiTableColumnIdx;
+    RightMostEnabledColumn: ImGuiTableColumnIdx;
+    LeftMostStretchedColumn: ImGuiTableColumnIdx;
+    RightMostStretchedColumn: ImGuiTableColumnIdx;
+    ContextPopupColumn: ImGuiTableColumnIdx;
+    FreezeRowsRequest: ImGuiTableColumnIdx;
+    FreezeRowsCount: ImGuiTableColumnIdx;
+    FreezeColumnsRequest: ImGuiTableColumnIdx;
+    FreezeColumnsCount: ImGuiTableColumnIdx;
+    RowCellDataCurrent: ImGuiTableColumnIdx;
+    DummyDrawChannel: ImGuiTableDrawChannelIdx;
+    Bg2DrawChannelCurrent: ImGuiTableDrawChannelIdx;
+    Bg2DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
+    IsLayoutLocked: Boolean;
+    IsInsideRow: Boolean;
+    IsInitializing: Boolean;
+    IsSortSpecsDirty: Boolean;
+    IsUsingHeaders: Boolean;
+    IsContextPopupOpen: Boolean;
+    DisableDefaultContextMenu: Boolean;
+    IsSettingsRequestLoad: Boolean;
+    IsSettingsDirty: Boolean;
+    IsDefaultDisplayOrder: Boolean;
+    IsResetAllRequest: Boolean;
+    IsResetDisplayOrderRequest: Boolean;
+    IsUnfrozenRows: Boolean;
+    IsDefaultSizingPolicy: Boolean;
+    IsActiveIdAliveBeforeTable: Boolean;
+    IsActiveIdInTable: Boolean;
+    HasScrollbarYCurr: Boolean;
+    HasScrollbarYPrev: Boolean;
+    MemoryCompacted: Boolean;
+    HostSkipItems: Boolean;
+  end;
+
+  ImGuiTableTempData = record
+    TableIndex: Integer;
+    LastTimeActive: Single;
+    AngledheadersExtraWidth: Single;
+    UserOuterSize: ImVec2;
+    DrawSplitter: ImDrawListSplitter;
+    HostBackupWorkRect: ImRect;
+    HostBackupParentWorkRect: ImRect;
+    HostBackupPrevLineSize: ImVec2;
+    HostBackupCurrLineSize: ImVec2;
+    HostBackupCursorMaxPos: ImVec2;
+    HostBackupColumnsOffset: ImVec1;
+    HostBackupItemWidth: Single;
+    HostBackupItemWidthStackSize: Integer;
+  end;
+
+  ImGuiTableColumnSettings = record
+    WidthOrWeight: Single;
+    UserID: ImGuiID;
+    Index: ImGuiTableColumnIdx;
+    DisplayOrder: ImGuiTableColumnIdx;
+    SortOrder: ImGuiTableColumnIdx;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property SortDirection: Cardinal index $2 read GetData0Value write SetData0Value; // 2 bits at offset 0 in Data0
+    property IsEnabled: Cardinal index $201 read GetData0Value write SetData0Value; // 1 bits at offset 2 in Data0
+    property IsStretch: Cardinal index $301 read GetData0Value write SetData0Value; // 1 bits at offset 3 in Data0
+  end;
+
+  ImGuiTableSettings = record
+    ID: ImGuiID;
+    SaveFlags: ImGuiTableFlags;
+    RefScale: Single;
+    ColumnsCount: ImGuiTableColumnIdx;
+    ColumnsCountMax: ImGuiTableColumnIdx;
+    WantApply: Boolean;
+  end;
+
+  ImFontBuilderIO = record
+    FontBuilder_Build: function(atlas: PImFontAtlas): Boolean; cdecl;
+  end;
+
+  PImPlotAxisColor = Pointer;
+  PPImPlotAxisColor = ^PImPlotAxisColor;
+
+  ImVector_ImS16 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImS16;
+  end;
+
+  ImVector_ImS32 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImS32;
+  end;
+
+  ImVector_ImS64 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImS64;
+  end;
+
+  ImVector_ImS8 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImS8;
+  end;
+
+  ImVector_ImU16 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImU16;
+  end;
+
+  ImVector_ImU64 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImU64;
+  end;
+
+  ImVector_ImU8 = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImU8;
+  end;
+
+  ImAxis = Integer;
+  ImPlotFlags = Integer;
+  ImPlotAxisFlags = Integer;
+  ImPlotSubplotFlags = Integer;
+  ImPlotLegendFlags = Integer;
+  ImPlotMouseTextFlags = Integer;
+  ImPlotDragToolFlags = Integer;
+  ImPlotColormapScaleFlags = Integer;
+  ImPlotItemFlags = Integer;
+  ImPlotLineFlags = Integer;
+  ImPlotScatterFlags = Integer;
+  ImPlotStairsFlags = Integer;
+  ImPlotShadedFlags = Integer;
+  ImPlotBarsFlags = Integer;
+  ImPlotBarGroupsFlags = Integer;
+  ImPlotErrorBarsFlags = Integer;
+  ImPlotStemsFlags = Integer;
+  ImPlotInfLinesFlags = Integer;
+  ImPlotPieChartFlags = Integer;
+  ImPlotHeatmapFlags = Integer;
+  ImPlotHistogramFlags = Integer;
+  ImPlotDigitalFlags = Integer;
+  ImPlotImageFlags = Integer;
+  ImPlotTextFlags = Integer;
+  ImPlotDummyFlags = Integer;
+  ImPlotCond = Integer;
+  ImPlotCol = Integer;
+  ImPlotStyleVar = Integer;
+  ImPlotScale = Integer;
+  ImPlotMarker = Integer;
+  ImPlotColormap = Integer;
+  PImPlotColormap = ^ImPlotColormap;
+  ImPlotLocation = Integer;
+  ImPlotBin = Integer;
+
+  ImPlotPoint = record
+    x: Double;
+    y: Double;
+  end;
+
+  ImPlotRange = record
+    Min: Double;
+    Max: Double;
+  end;
+
+  ImPlotRect = record
+    X: ImPlotRange;
+    Y: ImPlotRange;
+  end;
+
+  ImPlotStyle = record
+    LineWeight: Single;
+    Marker: Integer;
+    MarkerSize: Single;
+    MarkerWeight: Single;
+    FillAlpha: Single;
+    ErrorBarSize: Single;
+    ErrorBarWeight: Single;
+    DigitalBitHeight: Single;
+    DigitalBitGap: Single;
+    PlotBorderSize: Single;
+    MinorAlpha: Single;
+    MajorTickLen: ImVec2;
+    MinorTickLen: ImVec2;
+    MajorTickSize: ImVec2;
+    MinorTickSize: ImVec2;
+    MajorGridSize: ImVec2;
+    MinorGridSize: ImVec2;
+    PlotPadding: ImVec2;
+    LabelPadding: ImVec2;
+    LegendPadding: ImVec2;
+    LegendInnerPadding: ImVec2;
+    LegendSpacing: ImVec2;
+    MousePosPadding: ImVec2;
+    AnnotationPadding: ImVec2;
+    FitPadding: ImVec2;
+    PlotDefaultSize: ImVec2;
+    PlotMinSize: ImVec2;
+    Colors: array [0..20] of ImVec4;
+    Colormap: ImPlotColormap;
+    UseLocalTime: Boolean;
+    UseISO8601: Boolean;
+    Use24HourClock: Boolean;
+  end;
+
+  ImPlotInputMap = record
+    Pan: ImGuiMouseButton;
+    PanMod: Integer;
+    Fit: ImGuiMouseButton;
+    Select: ImGuiMouseButton;
+    SelectCancel: ImGuiMouseButton;
+    SelectMod: Integer;
+    SelectHorzMod: Integer;
+    SelectVertMod: Integer;
+    Menu: ImGuiMouseButton;
+    OverrideMod: Integer;
+    ZoomMod: Integer;
+    ZoomRate: Single;
+  end;
+
+  ImPlotFormatter = function(value: Double; buff: PAnsiChar; size: Integer; user_data: Pointer): Integer; cdecl;
+
+  ImPlotGetter = function(idx: Integer; user_data: Pointer): ImPlotPoint; cdecl;
+
+  ImPlotTransform = function(value: Double; user_data: Pointer): Double; cdecl;
+  ImPlotTimeUnit = Integer;
+  ImPlotDateFmt = Integer;
+  ImPlotTimeFmt = Integer;
+
+  ImPlotLocator = procedure(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
+
+  ImPlotDateTimeSpec = record
+    Date: ImPlotDateFmt;
+    Time: ImPlotTimeFmt;
+    UseISO8601: Boolean;
+    Use24HourClock: Boolean;
+  end;
+
+  ImPlotTime = record
+    S: Longint;
+    Us: Integer;
+  end;
+
+  ImVector_bool = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PBoolean;
+  end;
+
+  ImPlotColormapData = record
+    Keys: ImVector_ImU32;
+    KeyCounts: ImVector_int;
+    KeyOffsets: ImVector_int;
+    Tables: ImVector_ImU32;
+    TableSizes: ImVector_int;
+    TableOffsets: ImVector_int;
+    Text: ImGuiTextBuffer;
+    TextOffsets: ImVector_int;
+    Quals: ImVector_bool;
+    Map: ImGuiStorage;
+    Count: Integer;
+  end;
+
+  ImPlotPointError = record
+    X: Double;
+    Y: Double;
+    Neg: Double;
+    Pos: Double;
+  end;
+
+  ImPlotAnnotation = record
+    Pos: ImVec2;
+    Offset: ImVec2;
+    ColorBg: ImU32;
+    ColorFg: ImU32;
+    TextOffset: Integer;
+    Clamp: Boolean;
+  end;
+
+  ImVector_ImPlotAnnotation = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotAnnotation;
+  end;
+
+  ImPlotAnnotationCollection = record
+    Annotations: ImVector_ImPlotAnnotation;
+    TextBuffer: ImGuiTextBuffer;
+    Size: Integer;
+  end;
+
+  ImPlotTag = record
+    Axis: ImAxis;
+    Value: Double;
+    ColorBg: ImU32;
+    ColorFg: ImU32;
+    TextOffset: Integer;
+  end;
+
+  ImVector_ImPlotTag = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotTag;
+  end;
+
+  ImPlotTagCollection = record
+    Tags: ImVector_ImPlotTag;
+    TextBuffer: ImGuiTextBuffer;
+    Size: Integer;
+  end;
+
+  ImPlotTick = record
+    PlotPos: Double;
+    PixelPos: Single;
+    LabelSize: ImVec2;
+    TextOffset: Integer;
+    Major: Boolean;
+    ShowLabel: Boolean;
+    Level: Integer;
+    Idx: Integer;
+  end;
+
+  ImVector_ImPlotTick = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotTick;
+  end;
+
+  ImPlotTicker = record
+    Ticks: ImVector_ImPlotTick;
+    TextBuffer: ImGuiTextBuffer;
+    MaxSize: ImVec2;
+    LateSize: ImVec2;
+    Levels: Integer;
+  end;
+
+  ImPlotAxis = record
+    ID: ImGuiID;
+    Flags: ImPlotAxisFlags;
+    PreviousFlags: ImPlotAxisFlags;
+    Range: ImPlotRange;
+    RangeCond: ImPlotCond;
+    Scale: ImPlotScale;
+    FitExtents: ImPlotRange;
+    OrthoAxis: PImPlotAxis;
+    ConstraintRange: ImPlotRange;
+    ConstraintZoom: ImPlotRange;
+    Ticker: ImPlotTicker;
+    Formatter: ImPlotFormatter;
+    FormatterData: Pointer;
+    FormatSpec: array [0..15] of AnsiChar;
+    Locator: ImPlotLocator;
+    LinkedMin: PDouble;
+    LinkedMax: PDouble;
+    PickerLevel: Integer;
+    PickerTimeMin: ImPlotTime;
+    PickerTimeMax: ImPlotTime;
+    TransformForward: ImPlotTransform;
+    TransformInverse: ImPlotTransform;
+    TransformData: Pointer;
+    PixelMin: Single;
+    PixelMax: Single;
+    ScaleMin: Double;
+    ScaleMax: Double;
+    ScaleToPixel: Double;
+    Datum1: Single;
+    Datum2: Single;
+    HoverRect: ImRect;
+    LabelOffset: Integer;
+    ColorMaj: ImU32;
+    ColorMin: ImU32;
+    ColorTick: ImU32;
+    ColorTxt: ImU32;
+    ColorBg: ImU32;
+    ColorHov: ImU32;
+    ColorAct: ImU32;
+    ColorHiLi: ImU32;
+    Enabled: Boolean;
+    Vertical: Boolean;
+    FitThisFrame: Boolean;
+    HasRange: Boolean;
+    HasFormatSpec: Boolean;
+    ShowDefaultTicks: Boolean;
+    Hovered: Boolean;
+    Held: Boolean;
+  end;
+
+  ImPlotAlignmentData = record
+    Vertical: Boolean;
+    PadA: Single;
+    PadB: Single;
+    PadAMax: Single;
+    PadBMax: Single;
+  end;
+
+  ImPlotItem = record
+    ID: ImGuiID;
+    Color: ImU32;
+    LegendHoverRect: ImRect;
+    NameOffset: Integer;
+    Show: Boolean;
+    LegendHovered: Boolean;
+    SeenThisFrame: Boolean;
+  end;
+
+  ImPlotLegend = record
+    Flags: ImPlotLegendFlags;
+    PreviousFlags: ImPlotLegendFlags;
+    Location: ImPlotLocation;
+    PreviousLocation: ImPlotLocation;
+    Scroll: ImVec2;
+    Indices: ImVector_int;
+    Labels: ImGuiTextBuffer;
+    Rect: ImRect;
+    RectClamped: ImRect;
+    Hovered: Boolean;
+    Held: Boolean;
+    CanGoInside: Boolean;
+  end;
+
+  ImVector_ImPlotItem = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotItem;
+  end;
+
+  ImPool_ImPlotItem = record
+    Buf: ImVector_ImPlotItem;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImPlotItemGroup = record
+    ID: ImGuiID;
+    Legend: ImPlotLegend;
+    ItemPool: ImPool_ImPlotItem;
+    ColormapIdx: Integer;
+  end;
+
+  ImPlotPlot = record
+    ID: ImGuiID;
+    Flags: ImPlotFlags;
+    PreviousFlags: ImPlotFlags;
+    MouseTextLocation: ImPlotLocation;
+    MouseTextFlags: ImPlotMouseTextFlags;
+    Axes: array [0..5] of ImPlotAxis;
+    TextBuffer: ImGuiTextBuffer;
+    Items: ImPlotItemGroup;
+    CurrentX: ImAxis;
+    CurrentY: ImAxis;
+    FrameRect: ImRect;
+    CanvasRect: ImRect;
+    PlotRect: ImRect;
+    AxesRect: ImRect;
+    SelectRect: ImRect;
+    SelectStart: ImVec2;
+    TitleOffset: Integer;
+    JustCreated: Boolean;
+    Initialized: Boolean;
+    SetupLocked: Boolean;
+    FitThisFrame: Boolean;
+    Hovered: Boolean;
+    Held: Boolean;
+    Selecting: Boolean;
+    Selected: Boolean;
+    ContextLocked: Boolean;
+  end;
+
+  ImVector_ImPlotAlignmentData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotAlignmentData;
+  end;
+
+  ImVector_ImPlotRange = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotRange;
+  end;
+
+  ImPlotSubplot = record
+    ID: ImGuiID;
+    Flags: ImPlotSubplotFlags;
+    PreviousFlags: ImPlotSubplotFlags;
+    Items: ImPlotItemGroup;
+    Rows: Integer;
+    Cols: Integer;
+    CurrentIdx: Integer;
+    FrameRect: ImRect;
+    GridRect: ImRect;
+    CellSize: ImVec2;
+    RowAlignmentData: ImVector_ImPlotAlignmentData;
+    ColAlignmentData: ImVector_ImPlotAlignmentData;
+    RowRatios: ImVector_float;
+    ColRatios: ImVector_float;
+    RowLinkData: ImVector_ImPlotRange;
+    ColLinkData: ImVector_ImPlotRange;
+    TempSizes: array [0..1] of Single;
+    FrameHovered: Boolean;
+    HasTitle: Boolean;
+  end;
+
+  ImPlotNextPlotData = record
+    RangeCond: array [0..5] of ImPlotCond;
+    Range: array [0..5] of ImPlotRange;
+    HasRange: array [0..5] of Boolean;
+    Fit: array [0..5] of Boolean;
+    LinkedMin: array [0..5] of PDouble;
+    LinkedMax: array [0..5] of PDouble;
+  end;
+
+  ImPlotNextItemData = record
+    Colors: array [0..4] of ImVec4;
+    LineWeight: Single;
+    Marker: ImPlotMarker;
+    MarkerSize: Single;
+    MarkerWeight: Single;
+    FillAlpha: Single;
+    ErrorBarSize: Single;
+    ErrorBarWeight: Single;
+    DigitalBitHeight: Single;
+    DigitalBitGap: Single;
+    RenderLine: Boolean;
+    RenderFill: Boolean;
+    RenderMarkerLine: Boolean;
+    RenderMarkerFill: Boolean;
+    HasHidden: Boolean;
+    Hidden: Boolean;
+    HiddenCond: ImPlotCond;
+  end;
+
+  ImVector_ImPlotPlot = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotPlot;
+  end;
+
+  ImPool_ImPlotPlot = record
+    Buf: ImVector_ImPlotPlot;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImVector_ImPlotSubplot = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotSubplot;
+  end;
+
+  ImPool_ImPlotSubplot = record
+    Buf: ImVector_ImPlotSubplot;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImVector_ImPlotColormap = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImPlotColormap;
+  end;
+
+  ImVector_double = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PDouble;
+  end;
+
+  ImPool_ImPlotAlignmentData = record
+    Buf: ImVector_ImPlotAlignmentData;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
+  ImPlotContext = record
+    Plots: ImPool_ImPlotPlot;
+    Subplots: ImPool_ImPlotSubplot;
+    CurrentPlot: PImPlotPlot;
+    CurrentSubplot: PImPlotSubplot;
+    CurrentItems: PImPlotItemGroup;
+    CurrentItem: PImPlotItem;
+    PreviousItem: PImPlotItem;
+    CTicker: ImPlotTicker;
+    Annotations: ImPlotAnnotationCollection;
+    Tags: ImPlotTagCollection;
+    Style: ImPlotStyle;
+    ColorModifiers: ImVector_ImGuiColorMod;
+    StyleModifiers: ImVector_ImGuiStyleMod;
+    ColormapData: ImPlotColormapData;
+    ColormapModifiers: ImVector_ImPlotColormap;
+    Tm: tm;
+    TempDouble1: ImVector_double;
+    TempDouble2: ImVector_double;
+    TempInt1: ImVector_int;
+    DigitalPlotItemCnt: Integer;
+    DigitalPlotOffset: Integer;
+    NextPlotData: ImPlotNextPlotData;
+    NextItemData: ImPlotNextItemData;
+    InputMap: ImPlotInputMap;
+    OpenContextThisFrame: Boolean;
+    MousePosStringBuilder: ImGuiTextBuffer;
+    SortItems: PImPlotItemGroup;
+    AlignmentData: ImPool_ImPlotAlignmentData;
+    CurrentAlignmentH: PImPlotAlignmentData;
+    CurrentAlignmentV: PImPlotAlignmentData;
+  end;
+
+  Formatter_Time_Data = record
+    Time: ImPlotTime;
+    Spec: ImPlotDateTimeSpec;
+    UserFormatter: ImPlotFormatter;
+    UserFormatterData: Pointer;
+  end;
+
+  ImPlotPoint_getter = function(data: Pointer; idx: Integer; point: PImPlotPoint): Pointer; cdecl;
+
+function ImVec2_ImVec2_Nil(): PImVec2; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_ImVec2_Nil';
+
+procedure ImVec2_destroy(self: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_destroy';
+
+function ImVec2_ImVec2_Float(_x: Single; _y: Single): PImVec2; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_ImVec2_Float';
+
+function ImVec4_ImVec4_Nil(): PImVec4; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_ImVec4_Nil';
+
+procedure ImVec4_destroy(self: PImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_destroy';
+
+function ImVec4_ImVec4_Float(_x: Single; _y: Single; _z: Single; _w: Single): PImVec4; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_ImVec4_Float';
+
+function igCreateContext(shared_font_atlas: PImFontAtlas): PImGuiContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCreateContext';
+
+procedure igDestroyContext(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyContext';
+
+function igGetCurrentContext(): PImGuiContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentContext';
+
+procedure igSetCurrentContext(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentContext';
+
+function igGetIO(): PImGuiIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIO';
+
+function igGetStyle(): PImGuiStyle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyle';
+
+procedure igNewFrame(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNewFrame';
+
+procedure igEndFrame(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndFrame';
+
+procedure igRender(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRender';
+
+function igGetDrawData(): PImDrawData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDrawData';
+
+procedure igShowDemoWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowDemoWindow';
+
+procedure igShowMetricsWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowMetricsWindow';
+
+procedure igShowDebugLogWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowDebugLogWindow';
+
+procedure igShowIDStackToolWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowIDStackToolWindow';
+
+procedure igShowAboutWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowAboutWindow';
+
+procedure igShowStyleEditor(ref: PImGuiStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowStyleEditor';
+
+function igShowStyleSelector(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowStyleSelector';
+
+procedure igShowFontSelector(const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowFontSelector';
+
+procedure igShowUserGuide(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowUserGuide';
+
+function igGetVersion(): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetVersion';
+
+procedure igStyleColorsDark(dst: PImGuiStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsDark';
+
+procedure igStyleColorsLight(dst: PImGuiStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsLight';
+
+procedure igStyleColorsClassic(dst: PImGuiStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsClassic';
+
+function igBegin(const name: PAnsiChar; p_open: PBoolean; flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBegin';
+
+procedure igEnd(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEnd';
+
+function igBeginChild_Str(const str_id: PAnsiChar; size: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChild_Str';
+
+function igBeginChild_ID(id: ImGuiID; size: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChild_ID';
+
+procedure igEndChild(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndChild';
+
+function igIsWindowAppearing(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowAppearing';
+
+function igIsWindowCollapsed(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowCollapsed';
+
+function igIsWindowFocused(flags: ImGuiFocusedFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowFocused';
+
+function igIsWindowHovered(flags: ImGuiHoveredFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowHovered';
+
+function igGetWindowDrawList(): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDrawList';
+
+function igGetWindowDpiScale(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDpiScale';
+
+procedure igGetWindowPos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowPos';
+
+procedure igGetWindowSize(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowSize';
+
+function igGetWindowWidth(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowWidth';
+
+function igGetWindowHeight(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowHeight';
+
+function igGetWindowViewport(): PImGuiViewport; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowViewport';
+
+procedure igSetNextWindowPos(pos: ImVec2; cond: ImGuiCond; pivot: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowPos';
+
+procedure igSetNextWindowSize(size: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowSize';
+
+procedure igSetNextWindowSizeConstraints(size_min: ImVec2; size_max: ImVec2; custom_callback: ImGuiSizeCallback; custom_callback_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowSizeConstraints';
+
+procedure igSetNextWindowContentSize(size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowContentSize';
+
+procedure igSetNextWindowCollapsed(collapsed: Boolean; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowCollapsed';
+
+procedure igSetNextWindowFocus(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowFocus';
+
+procedure igSetNextWindowScroll(scroll: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowScroll';
+
+procedure igSetNextWindowBgAlpha(alpha: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowBgAlpha';
+
+procedure igSetNextWindowViewport(viewport_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowViewport';
+
+procedure igSetWindowPos_Vec2(pos: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_Vec2';
+
+procedure igSetWindowSize_Vec2(size: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_Vec2';
+
+procedure igSetWindowCollapsed_Bool(collapsed: Boolean; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_Bool';
+
+procedure igSetWindowFocus_Nil(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Nil';
+
+procedure igSetWindowFontScale(scale: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFontScale';
+
+procedure igSetWindowPos_Str(const name: PAnsiChar; pos: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_Str';
+
+procedure igSetWindowSize_Str(const name: PAnsiChar; size: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_Str';
+
+procedure igSetWindowCollapsed_Str(const name: PAnsiChar; collapsed: Boolean; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_Str';
+
+procedure igSetWindowFocus_Str(const name: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Str';
+
+procedure igGetContentRegionAvail(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionAvail';
+
+procedure igGetContentRegionMax(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionMax';
+
+procedure igGetWindowContentRegionMin(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowContentRegionMin';
+
+procedure igGetWindowContentRegionMax(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowContentRegionMax';
+
+function igGetScrollX(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollX';
+
+function igGetScrollY(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollY';
+
+procedure igSetScrollX_Float(scroll_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollX_Float';
+
+procedure igSetScrollY_Float(scroll_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollY_Float';
+
+function igGetScrollMaxX(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollMaxX';
+
+function igGetScrollMaxY(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollMaxY';
+
+procedure igSetScrollHereX(center_x_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollHereX';
+
+procedure igSetScrollHereY(center_y_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollHereY';
+
+procedure igSetScrollFromPosX_Float(local_x: Single; center_x_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosX_Float';
+
+procedure igSetScrollFromPosY_Float(local_y: Single; center_y_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosY_Float';
+
+procedure igPushFont(font: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushFont';
+
+procedure igPopFont(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopFont';
+
+procedure igPushStyleColor_U32(idx: ImGuiCol; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleColor_U32';
+
+procedure igPushStyleColor_Vec4(idx: ImGuiCol; col: ImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleColor_Vec4';
+
+procedure igPopStyleColor(count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleColor';
+
+procedure igPushStyleVar_Float(idx: ImGuiStyleVar; val: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleVar_Float';
+
+procedure igPushStyleVar_Vec2(idx: ImGuiStyleVar; val: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleVar_Vec2';
+
+procedure igPopStyleVar(count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleVar';
+
+procedure igPushTabStop(tab_stop: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushTabStop';
+
+procedure igPopTabStop(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopTabStop';
+
+procedure igPushButtonRepeat(repeat_: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushButtonRepeat';
+
+procedure igPopButtonRepeat(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopButtonRepeat';
+
+procedure igPushItemWidth(item_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemWidth';
+
+procedure igPopItemWidth(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemWidth';
+
+procedure igSetNextItemWidth(item_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemWidth';
+
+function igCalcItemWidth(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcItemWidth';
+
+procedure igPushTextWrapPos(wrap_local_pos_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushTextWrapPos';
+
+procedure igPopTextWrapPos(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopTextWrapPos';
+
+function igGetFont(): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFont';
+
+function igGetFontSize(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFontSize';
+
+procedure igGetFontTexUvWhitePixel(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFontTexUvWhitePixel';
+
+function igGetColorU32_Col(idx: ImGuiCol; alpha_mul: Single): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_Col';
+
+function igGetColorU32_Vec4(col: ImVec4): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_Vec4';
+
+function igGetColorU32_U32(col: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_U32';
+
+function igGetStyleColorVec4(idx: ImGuiCol): PImVec4; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleColorVec4';
+
+procedure igGetCursorScreenPos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorScreenPos';
+
+procedure igSetCursorScreenPos(pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorScreenPos';
+
+procedure igGetCursorPos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPos';
+
+function igGetCursorPosX(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPosX';
+
+function igGetCursorPosY(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPosY';
+
+procedure igSetCursorPos(local_pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPos';
+
+procedure igSetCursorPosX(local_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPosX';
+
+procedure igSetCursorPosY(local_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPosY';
+
+procedure igGetCursorStartPos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorStartPos';
+
+procedure igSeparator(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparator';
+
+procedure igSameLine(offset_from_start_x: Single; spacing: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSameLine';
+
+procedure igNewLine(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNewLine';
+
+procedure igSpacing(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSpacing';
+
+procedure igDummy(size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDummy';
+
+procedure igIndent(indent_w: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIndent';
+
+procedure igUnindent(indent_w: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUnindent';
+
+procedure igBeginGroup(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginGroup';
+
+procedure igEndGroup(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndGroup';
+
+procedure igAlignTextToFramePadding(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAlignTextToFramePadding';
+
+function igGetTextLineHeight(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTextLineHeight';
+
+function igGetTextLineHeightWithSpacing(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTextLineHeightWithSpacing';
+
+function igGetFrameHeight(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameHeight';
+
+function igGetFrameHeightWithSpacing(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameHeightWithSpacing';
+
+procedure igPushID_Str(const str_id: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Str';
+
+procedure igPushID_StrStr(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_StrStr';
+
+procedure igPushID_Ptr(const ptr_id: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Ptr';
+
+procedure igPushID_Int(int_id: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Int';
+
+procedure igPopID(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopID';
+
+function igGetID_Str(const str_id: PAnsiChar): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Str';
+
+function igGetID_StrStr(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_StrStr';
+
+function igGetID_Ptr(const ptr_id: Pointer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Ptr';
+
+procedure igTextUnformatted(const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextUnformatted';
+
+procedure igText(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igText';
+
+procedure igTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextV';
+
+procedure igTextColored(col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextColored';
+
+procedure igTextColoredV(col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextColoredV';
+
+procedure igTextDisabled(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextDisabled';
+
+procedure igTextDisabledV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextDisabledV';
+
+procedure igTextWrapped(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextWrapped';
+
+procedure igTextWrappedV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextWrappedV';
+
+procedure igLabelText(const label_: PAnsiChar; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLabelText';
+
+procedure igLabelTextV(const label_: PAnsiChar; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLabelTextV';
+
+procedure igBulletText(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBulletText';
+
+procedure igBulletTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBulletTextV';
+
+procedure igSeparatorText(const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorText';
+
+function igButton(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButton';
+
+function igSmallButton(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSmallButton';
+
+function igInvisibleButton(const str_id: PAnsiChar; size: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInvisibleButton';
+
+function igArrowButton(const str_id: PAnsiChar; dir: ImGuiDir): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igArrowButton';
+
+function igCheckbox(const label_: PAnsiChar; v: PBoolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckbox';
+
+function igCheckboxFlags_IntPtr(const label_: PAnsiChar; flags: PInteger; flags_value: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_IntPtr';
+
+function igCheckboxFlags_UintPtr(const label_: PAnsiChar; flags: PCardinal; flags_value: Cardinal): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_UintPtr';
+
+function igRadioButton_Bool(const label_: PAnsiChar; active: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRadioButton_Bool';
+
+function igRadioButton_IntPtr(const label_: PAnsiChar; v: PInteger; v_button: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRadioButton_IntPtr';
+
+procedure igProgressBar(fraction: Single; size_arg: ImVec2; const overlay: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igProgressBar';
+
+procedure igBullet(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBullet';
+
+procedure igImage(user_texture_id: ImTextureID; size: ImVec2; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; border_col: ImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImage';
+
+function igImageButton(const str_id: PAnsiChar; user_texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; bg_col: ImVec4; tint_col: ImVec4): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImageButton';
+
+function igBeginCombo(const label_: PAnsiChar; const preview_value: PAnsiChar; flags: ImGuiComboFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginCombo';
+
+procedure igEndCombo(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndCombo';
+
+function igCombo_Str_arr(const label_: PAnsiChar; current_item: PInteger; items: PPAnsiChar; items_count: Integer; popup_max_height_in_items: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_Str_arr';
+
+function igCombo_Str(const label_: PAnsiChar; current_item: PInteger; const items_separated_by_zeros: PAnsiChar; popup_max_height_in_items: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_Str';
+
+type
+  igCombo_FnStrPtr_getter = function(user_data: Pointer; idx: Integer): PAnsiChar; cdecl;
+
+function igCombo_FnStrPtr(const label_: PAnsiChar; current_item: PInteger; getter: igCombo_FnStrPtr_getter; user_data: Pointer; items_count: Integer; popup_max_height_in_items: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_FnStrPtr';
+
+function igDragFloat(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat';
+
+function igDragFloat2(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat2';
+
+function igDragFloat3(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat3';
+
+function igDragFloat4(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat4';
+
+function igDragFloatRange2(const label_: PAnsiChar; v_current_min: PSingle; v_current_max: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; const format_max: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloatRange2';
+
+function igDragInt(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt';
+
+function igDragInt2(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt2';
+
+function igDragInt3(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt3';
+
+function igDragInt4(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt4';
+
+function igDragIntRange2(const label_: PAnsiChar; v_current_min: PInteger; v_current_max: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; const format_max: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragIntRange2';
+
+function igDragScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragScalar';
+
+function igDragScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragScalarN';
+
+function igSliderFloat(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat';
+
+function igSliderFloat2(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat2';
+
+function igSliderFloat3(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat3';
+
+function igSliderFloat4(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat4';
+
+function igSliderAngle(const label_: PAnsiChar; v_rad: PSingle; v_degrees_min: Single; v_degrees_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderAngle';
+
+function igSliderInt(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt';
+
+function igSliderInt2(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt2';
+
+function igSliderInt3(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt3';
+
+function igSliderInt4(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt4';
+
+function igSliderScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderScalar';
+
+function igSliderScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderScalarN';
+
+function igVSliderFloat(const label_: PAnsiChar; size: ImVec2; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderFloat';
+
+function igVSliderInt(const label_: PAnsiChar; size: ImVec2; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderInt';
+
+function igVSliderScalar(const label_: PAnsiChar; size: ImVec2; data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderScalar';
+
+function igInputText(const label_: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputText';
+
+function igInputTextMultiline(const label_: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; size: ImVec2; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextMultiline';
+
+function igInputTextWithHint(const label_: PAnsiChar; const hint: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextWithHint';
+
+function igInputFloat(const label_: PAnsiChar; v: PSingle; step: Single; step_fast: Single; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat';
+
+function igInputFloat2(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat2';
+
+function igInputFloat3(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat3';
+
+function igInputFloat4(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat4';
+
+function igInputInt(const label_: PAnsiChar; v: PInteger; step: Integer; step_fast: Integer; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt';
+
+function igInputInt2(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt2';
+
+function igInputInt3(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt3';
+
+function igInputInt4(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt4';
+
+function igInputDouble(const label_: PAnsiChar; v: PDouble; step: Double; step_fast: Double; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputDouble';
+
+function igInputScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const p_step: Pointer; const p_step_fast: Pointer; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputScalar';
+
+function igInputScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; const p_step: Pointer; const p_step_fast: Pointer; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputScalarN';
+
+function igColorEdit3(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEdit3';
+
+function igColorEdit4(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEdit4';
+
+function igColorPicker3(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPicker3';
+
+function igColorPicker4(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags; const ref_col: PSingle): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPicker4';
+
+function igColorButton(const desc_id: PAnsiChar; col: ImVec4; flags: ImGuiColorEditFlags; size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorButton';
+
+procedure igSetColorEditOptions(flags: ImGuiColorEditFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColorEditOptions';
+
+function igTreeNode_Str(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_Str';
+
+function igTreeNode_StrStr(const str_id: PAnsiChar; const fmt: PAnsiChar): Boolean varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_StrStr';
+
+function igTreeNode_Ptr(const ptr_id: Pointer; const fmt: PAnsiChar): Boolean varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_Ptr';
+
+function igTreeNodeV_Str(const str_id: PAnsiChar; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeV_Str';
+
+function igTreeNodeV_Ptr(const ptr_id: Pointer; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeV_Ptr';
+
+function igTreeNodeEx_Str(const label_: PAnsiChar; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_Str';
+
+function igTreeNodeEx_StrStr(const str_id: PAnsiChar; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar): Boolean varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_StrStr';
+
+function igTreeNodeEx_Ptr(const ptr_id: Pointer; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar): Boolean varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_Ptr';
+
+function igTreeNodeExV_Str(const str_id: PAnsiChar; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeExV_Str';
+
+function igTreeNodeExV_Ptr(const ptr_id: Pointer; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeExV_Ptr';
+
+procedure igTreePush_Str(const str_id: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePush_Str';
+
+procedure igTreePush_Ptr(const ptr_id: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePush_Ptr';
+
+procedure igTreePop(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePop';
+
+function igGetTreeNodeToLabelSpacing(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTreeNodeToLabelSpacing';
+
+function igCollapsingHeader_TreeNodeFlags(const label_: PAnsiChar; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapsingHeader_TreeNodeFlags';
+
+function igCollapsingHeader_BoolPtr(const label_: PAnsiChar; p_visible: PBoolean; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapsingHeader_BoolPtr';
+
+procedure igSetNextItemOpen(is_open: Boolean; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemOpen';
+
+function igSelectable_Bool(const label_: PAnsiChar; selected: Boolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_Bool';
+
+function igSelectable_BoolPtr(const label_: PAnsiChar; p_selected: PBoolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_BoolPtr';
+
+function igBeginListBox(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginListBox';
+
+procedure igEndListBox(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndListBox';
+
+function igListBox_Str_arr(const label_: PAnsiChar; current_item: PInteger; items: PPAnsiChar; items_count: Integer; height_in_items: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igListBox_Str_arr';
+
+type
+  igListBox_FnStrPtr_getter = function(user_data: Pointer; idx: Integer): PAnsiChar; cdecl;
+
+function igListBox_FnStrPtr(const label_: PAnsiChar; current_item: PInteger; getter: igListBox_FnStrPtr_getter; user_data: Pointer; items_count: Integer; height_in_items: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igListBox_FnStrPtr';
+
+procedure igPlotLines_FloatPtr(const label_: PAnsiChar; const values: PSingle; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotLines_FloatPtr';
+
+type
+  igPlotLines_FnFloatPtr_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;
+
+procedure igPlotLines_FnFloatPtr(const label_: PAnsiChar; values_getter: igPlotLines_FnFloatPtr_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotLines_FnFloatPtr';
+
+procedure igPlotHistogram_FloatPtr(const label_: PAnsiChar; const values: PSingle; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotHistogram_FloatPtr';
+
+type
+  igPlotHistogram_FnFloatPtr_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;
+
+procedure igPlotHistogram_FnFloatPtr(const label_: PAnsiChar; values_getter: igPlotHistogram_FnFloatPtr_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotHistogram_FnFloatPtr';
+
+procedure igValue_Bool(const prefix: PAnsiChar; b: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Bool';
+
+procedure igValue_Int(const prefix: PAnsiChar; v: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Int';
+
+procedure igValue_Uint(const prefix: PAnsiChar; v: Cardinal); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Uint';
+
+procedure igValue_Float(const prefix: PAnsiChar; v: Single; const float_format: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Float';
+
+function igBeginMenuBar(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenuBar';
+
+procedure igEndMenuBar(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMenuBar';
+
+function igBeginMainMenuBar(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMainMenuBar';
+
+procedure igEndMainMenuBar(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMainMenuBar';
+
+function igBeginMenu(const label_: PAnsiChar; enabled: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenu';
+
+procedure igEndMenu(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMenu';
+
+function igMenuItem_Bool(const label_: PAnsiChar; const shortcut: PAnsiChar; selected: Boolean; enabled: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItem_Bool';
+
+function igMenuItem_BoolPtr(const label_: PAnsiChar; const shortcut: PAnsiChar; p_selected: PBoolean; enabled: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItem_BoolPtr';
+
+function igBeginTooltip(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltip';
+
+procedure igEndTooltip(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTooltip';
+
+procedure igSetTooltip(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTooltip';
+
+procedure igSetTooltipV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTooltipV';
+
+function igBeginItemTooltip(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginItemTooltip';
+
+procedure igSetItemTooltip(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemTooltip';
+
+procedure igSetItemTooltipV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemTooltipV';
+
+function igBeginPopup(const str_id: PAnsiChar; flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopup';
+
+function igBeginPopupModal(const name: PAnsiChar; p_open: PBoolean; flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupModal';
+
+procedure igEndPopup(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndPopup';
+
+procedure igOpenPopup_Str(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopup_Str';
+
+procedure igOpenPopup_ID(id: ImGuiID; popup_flags: ImGuiPopupFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopup_ID';
+
+procedure igOpenPopupOnItemClick(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopupOnItemClick';
+
+procedure igCloseCurrentPopup(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCloseCurrentPopup';
+
+function igBeginPopupContextItem(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextItem';
+
+function igBeginPopupContextWindow(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextWindow';
+
+function igBeginPopupContextVoid(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextVoid';
+
+function igIsPopupOpen_Str(const str_id: PAnsiChar; flags: ImGuiPopupFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsPopupOpen_Str';
+
+function igBeginTable(const str_id: PAnsiChar; column: Integer; flags: ImGuiTableFlags; outer_size: ImVec2; inner_width: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTable';
+
+procedure igEndTable(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTable';
+
+procedure igTableNextRow(row_flags: ImGuiTableRowFlags; min_row_height: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableNextRow';
+
+function igTableNextColumn(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableNextColumn';
+
+function igTableSetColumnIndex(column_n: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnIndex';
+
+procedure igTableSetupColumn(const label_: PAnsiChar; flags: ImGuiTableColumnFlags; init_width_or_weight: Single; user_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupColumn';
+
+procedure igTableSetupScrollFreeze(cols: Integer; rows: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupScrollFreeze';
+
+procedure igTableHeader(const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableHeader';
+
+procedure igTableHeadersRow(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableHeadersRow';
+
+procedure igTableAngledHeadersRow(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableAngledHeadersRow';
+
+function igTableGetSortSpecs(): PImGuiTableSortSpecs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetSortSpecs';
+
+function igTableGetColumnCount(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnCount';
+
+function igTableGetColumnIndex(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnIndex';
+
+function igTableGetRowIndex(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetRowIndex';
+
+function igTableGetColumnName_Int(column_n: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnName_Int';
+
+function igTableGetColumnFlags(column_n: Integer): ImGuiTableColumnFlags; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnFlags';
+
+procedure igTableSetColumnEnabled(column_n: Integer; v: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnEnabled';
+
+procedure igTableSetBgColor(target: ImGuiTableBgTarget; color: ImU32; column_n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetBgColor';
+
+procedure igColumns(count: Integer; const id: PAnsiChar; border: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColumns';
+
+procedure igNextColumn(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNextColumn';
+
+function igGetColumnIndex(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnIndex';
+
+function igGetColumnWidth(column_index: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnWidth';
+
+procedure igSetColumnWidth(column_index: Integer; width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColumnWidth';
+
+function igGetColumnOffset(column_index: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnOffset';
+
+procedure igSetColumnOffset(column_index: Integer; offset_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColumnOffset';
+
+function igGetColumnsCount(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnsCount';
+
+function igBeginTabBar(const str_id: PAnsiChar; flags: ImGuiTabBarFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabBar';
+
+procedure igEndTabBar(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTabBar';
+
+function igBeginTabItem(const label_: PAnsiChar; p_open: PBoolean; flags: ImGuiTabItemFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabItem';
+
+procedure igEndTabItem(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTabItem';
+
+function igTabItemButton(const label_: PAnsiChar; flags: ImGuiTabItemFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemButton';
+
+procedure igSetTabItemClosed(const tab_or_docked_window_label: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTabItemClosed';
+
+function igDockSpace(id: ImGuiID; size: ImVec2; flags: ImGuiDockNodeFlags; const window_class: PImGuiWindowClass): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockSpace';
+
+function igDockSpaceOverViewport(const viewport: PImGuiViewport; flags: ImGuiDockNodeFlags; const window_class: PImGuiWindowClass): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockSpaceOverViewport';
+
+procedure igSetNextWindowDockID(dock_id: ImGuiID; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowDockID';
+
+procedure igSetNextWindowClass(const window_class: PImGuiWindowClass); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowClass';
+
+function igGetWindowDockID(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDockID';
+
+function igIsWindowDocked(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowDocked';
+
+procedure igLogToTTY(auto_open_depth: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToTTY';
+
+procedure igLogToFile(auto_open_depth: Integer; const filename: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToFile';
+
+procedure igLogToClipboard(auto_open_depth: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToClipboard';
+
+procedure igLogFinish(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogFinish';
+
+procedure igLogButtons(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogButtons';
+
+procedure igLogTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogTextV';
+
+function igBeginDragDropSource(flags: ImGuiDragDropFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropSource';
+
+function igSetDragDropPayload(const type_: PAnsiChar; const data: Pointer; sz: NativeUInt; cond: ImGuiCond): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetDragDropPayload';
+
+procedure igEndDragDropSource(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDragDropSource';
+
+function igBeginDragDropTarget(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropTarget';
+
+function igAcceptDragDropPayload(const type_: PAnsiChar; flags: ImGuiDragDropFlags): PImGuiPayload; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAcceptDragDropPayload';
+
+procedure igEndDragDropTarget(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDragDropTarget';
+
+function igGetDragDropPayload(): PImGuiPayload; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDragDropPayload';
+
+procedure igBeginDisabled(disabled: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDisabled';
+
+procedure igEndDisabled(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDisabled';
+
+procedure igPushClipRect(clip_rect_min: ImVec2; clip_rect_max: ImVec2; intersect_with_current_clip_rect: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushClipRect';
+
+procedure igPopClipRect(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopClipRect';
+
+procedure igSetItemDefaultFocus(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemDefaultFocus';
+
+procedure igSetKeyboardFocusHere(offset: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyboardFocusHere';
+
+procedure igSetNextItemAllowOverlap(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemAllowOverlap';
+
+function igIsItemHovered(flags: ImGuiHoveredFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemHovered';
+
+function igIsItemActive(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemActive';
+
+function igIsItemFocused(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemFocused';
+
+function igIsItemClicked(mouse_button: ImGuiMouseButton): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemClicked';
+
+function igIsItemVisible(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemVisible';
+
+function igIsItemEdited(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemEdited';
+
+function igIsItemActivated(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemActivated';
+
+function igIsItemDeactivated(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemDeactivated';
+
+function igIsItemDeactivatedAfterEdit(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemDeactivatedAfterEdit';
+
+function igIsItemToggledOpen(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledOpen';
+
+function igIsAnyItemHovered(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemHovered';
+
+function igIsAnyItemActive(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemActive';
+
+function igIsAnyItemFocused(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemFocused';
+
+function igGetItemID(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemID';
+
+procedure igGetItemRectMin(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectMin';
+
+procedure igGetItemRectMax(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectMax';
+
+procedure igGetItemRectSize(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectSize';
+
+function igGetMainViewport(): PImGuiViewport; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMainViewport';
+
+function igGetBackgroundDrawList_Nil(): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetBackgroundDrawList_Nil';
+
+function igGetForegroundDrawList_Nil(): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetForegroundDrawList_Nil';
+
+function igGetBackgroundDrawList_ViewportPtr(viewport: PImGuiViewport): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetBackgroundDrawList_ViewportPtr';
+
+function igGetForegroundDrawList_ViewportPtr(viewport: PImGuiViewport): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetForegroundDrawList_ViewportPtr';
+
+function igIsRectVisible_Nil(size: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsRectVisible_Nil';
+
+function igIsRectVisible_Vec2(rect_min: ImVec2; rect_max: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsRectVisible_Vec2';
+
+function igGetTime(): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTime';
+
+function igGetFrameCount(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameCount';
+
+function igGetDrawListSharedData(): PImDrawListSharedData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDrawListSharedData';
+
+function igGetStyleColorName(idx: ImGuiCol): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleColorName';
+
+procedure igSetStateStorage(storage: PImGuiStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetStateStorage';
+
+function igGetStateStorage(): PImGuiStorage; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStateStorage';
+
+procedure igCalcTextSize(pOut: PImVec2; const text: PAnsiChar; const text_end: PAnsiChar; hide_text_after_double_hash: Boolean; wrap_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcTextSize';
+
+procedure igColorConvertU32ToFloat4(pOut: PImVec4; in_: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertU32ToFloat4';
+
+function igColorConvertFloat4ToU32(in_: ImVec4): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertFloat4ToU32';
+
+procedure igColorConvertRGBtoHSV(r: Single; g: Single; b: Single; out_h: PSingle; out_s: PSingle; out_v: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertRGBtoHSV';
+
+procedure igColorConvertHSVtoRGB(h: Single; s: Single; v: Single; out_r: PSingle; out_g: PSingle; out_b: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertHSVtoRGB';
+
+function igIsKeyDown_Nil(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyDown_Nil';
+
+function igIsKeyPressed_Bool(key: ImGuiKey; repeat_: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyPressed_Bool';
+
+function igIsKeyReleased_Nil(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyReleased_Nil';
+
+function igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyChordPressed_Nil';
+
+function igGetKeyPressedAmount(key: ImGuiKey; repeat_delay: Single; rate: Single): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyPressedAmount';
+
+function igGetKeyName(key: ImGuiKey): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyName';
+
+procedure igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextFrameWantCaptureKeyboard';
+
+function igIsMouseDown_Nil(button: ImGuiMouseButton): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_Nil';
+
+function igIsMouseClicked_Bool(button: ImGuiMouseButton; repeat_: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseClicked_Bool';
+
+function igIsMouseReleased_Nil(button: ImGuiMouseButton): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseReleased_Nil';
+
+function igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDoubleClicked_Nil';
+
+function igGetMouseClickedCount(button: ImGuiMouseButton): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseClickedCount';
+
+function igIsMouseHoveringRect(r_min: ImVec2; r_max: ImVec2; clip: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseHoveringRect';
+
+function igIsMousePosValid(const mouse_pos: PImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMousePosValid';
+
+function igIsAnyMouseDown(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyMouseDown';
+
+procedure igGetMousePos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMousePos';
+
+procedure igGetMousePosOnOpeningCurrentPopup(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMousePosOnOpeningCurrentPopup';
+
+function igIsMouseDragging(button: ImGuiMouseButton; lock_threshold: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDragging';
+
+procedure igGetMouseDragDelta(pOut: PImVec2; button: ImGuiMouseButton; lock_threshold: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseDragDelta';
+
+procedure igResetMouseDragDelta(button: ImGuiMouseButton); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igResetMouseDragDelta';
+
+function igGetMouseCursor(): ImGuiMouseCursor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseCursor';
+
+procedure igSetMouseCursor(cursor_type: ImGuiMouseCursor); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetMouseCursor';
+
+procedure igSetNextFrameWantCaptureMouse(want_capture_mouse: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextFrameWantCaptureMouse';
+
+function igGetClipboardText(): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetClipboardText';
+
+procedure igSetClipboardText(const text: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetClipboardText';
+
+procedure igLoadIniSettingsFromDisk(const ini_filename: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLoadIniSettingsFromDisk';
+
+procedure igLoadIniSettingsFromMemory(const ini_data: PAnsiChar; ini_size: NativeUInt); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLoadIniSettingsFromMemory';
+
+procedure igSaveIniSettingsToDisk(const ini_filename: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSaveIniSettingsToDisk';
+
+function igSaveIniSettingsToMemory(out_ini_size: PNativeUInt): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSaveIniSettingsToMemory';
+
+procedure igDebugTextEncoding(const text: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugTextEncoding';
+
+function igDebugCheckVersionAndDataLayout(const version_str: PAnsiChar; sz_io: NativeUInt; sz_style: NativeUInt; sz_vec2: NativeUInt; sz_vec4: NativeUInt; sz_drawvert: NativeUInt; sz_drawidx: NativeUInt): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugCheckVersionAndDataLayout';
+
+procedure igSetAllocatorFunctions(alloc_func: ImGuiMemAllocFunc; free_func: ImGuiMemFreeFunc; user_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetAllocatorFunctions';
+
+procedure igGetAllocatorFunctions(p_alloc_func: PImGuiMemAllocFunc; p_free_func: PImGuiMemFreeFunc; p_user_data: PPointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetAllocatorFunctions';
+
+function igMemAlloc(size: NativeUInt): Pointer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMemAlloc';
+
+procedure igMemFree(ptr: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMemFree';
+
+function igGetPlatformIO(): PImGuiPlatformIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetPlatformIO';
+
+procedure igUpdatePlatformWindows(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdatePlatformWindows';
+
+procedure igRenderPlatformWindowsDefault(platform_render_arg: Pointer; renderer_render_arg: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderPlatformWindowsDefault';
+
+procedure igDestroyPlatformWindows(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyPlatformWindows';
+
+function igFindViewportByID(id: ImGuiID): PImGuiViewport; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindViewportByID';
+
+function igFindViewportByPlatformHandle(platform_handle: Pointer): PImGuiViewport; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindViewportByPlatformHandle';
+
+function ImGuiStyle_ImGuiStyle(): PImGuiStyle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_ImGuiStyle';
+
+procedure ImGuiStyle_destroy(self: PImGuiStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_destroy';
+
+procedure ImGuiStyle_ScaleAllSizes(self: PImGuiStyle; scale_factor: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_ScaleAllSizes';
+
+procedure ImGuiIO_AddKeyEvent(self: PImGuiIO; key: ImGuiKey; down: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddKeyEvent';
+
+procedure ImGuiIO_AddKeyAnalogEvent(self: PImGuiIO; key: ImGuiKey; down: Boolean; v: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddKeyAnalogEvent';
+
+procedure ImGuiIO_AddMousePosEvent(self: PImGuiIO; x: Single; y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMousePosEvent';
+
+procedure ImGuiIO_AddMouseButtonEvent(self: PImGuiIO; button: Integer; down: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseButtonEvent';
+
+procedure ImGuiIO_AddMouseWheelEvent(self: PImGuiIO; wheel_x: Single; wheel_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseWheelEvent';
+
+procedure ImGuiIO_AddMouseSourceEvent(self: PImGuiIO; source: ImGuiMouseSource); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseSourceEvent';
+
+procedure ImGuiIO_AddMouseViewportEvent(self: PImGuiIO; id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseViewportEvent';
+
+procedure ImGuiIO_AddFocusEvent(self: PImGuiIO; focused: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddFocusEvent';
+
+procedure ImGuiIO_AddInputCharacter(self: PImGuiIO; c: Cardinal); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharacter';
+
+procedure ImGuiIO_AddInputCharacterUTF16(self: PImGuiIO; c: ImWchar16); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharacterUTF16';
+
+procedure ImGuiIO_AddInputCharactersUTF8(self: PImGuiIO; const str: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharactersUTF8';
+
+procedure ImGuiIO_SetKeyEventNativeData(self: PImGuiIO; key: ImGuiKey; native_keycode: Integer; native_scancode: Integer; native_legacy_index: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_SetKeyEventNativeData';
+
+procedure ImGuiIO_SetAppAcceptingEvents(self: PImGuiIO; accepting_events: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_SetAppAcceptingEvents';
+
+procedure ImGuiIO_ClearEventsQueue(self: PImGuiIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ClearEventsQueue';
+
+procedure ImGuiIO_ClearInputKeys(self: PImGuiIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ClearInputKeys';
+
+function ImGuiIO_ImGuiIO(): PImGuiIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ImGuiIO';
+
+procedure ImGuiIO_destroy(self: PImGuiIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_destroy';
+
+function ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(): PImGuiInputTextCallbackData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_ImGuiInputTextCallbackData';
+
+procedure ImGuiInputTextCallbackData_destroy(self: PImGuiInputTextCallbackData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_destroy';
+
+procedure ImGuiInputTextCallbackData_DeleteChars(self: PImGuiInputTextCallbackData; pos: Integer; bytes_count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_DeleteChars';
+
+procedure ImGuiInputTextCallbackData_InsertChars(self: PImGuiInputTextCallbackData; pos: Integer; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_InsertChars';
+
+procedure ImGuiInputTextCallbackData_SelectAll(self: PImGuiInputTextCallbackData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_SelectAll';
+
+procedure ImGuiInputTextCallbackData_ClearSelection(self: PImGuiInputTextCallbackData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_ClearSelection';
+
+function ImGuiInputTextCallbackData_HasSelection(self: PImGuiInputTextCallbackData): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_HasSelection';
+
+function ImGuiWindowClass_ImGuiWindowClass(): PImGuiWindowClass; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowClass_ImGuiWindowClass';
+
+procedure ImGuiWindowClass_destroy(self: PImGuiWindowClass); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowClass_destroy';
+
+function ImGuiPayload_ImGuiPayload(): PImGuiPayload; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_ImGuiPayload';
+
+procedure ImGuiPayload_destroy(self: PImGuiPayload); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_destroy';
+
+procedure ImGuiPayload_Clear(self: PImGuiPayload); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_Clear';
+
+function ImGuiPayload_IsDataType(self: PImGuiPayload; const type_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsDataType';
+
+function ImGuiPayload_IsPreview(self: PImGuiPayload): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsPreview';
+
+function ImGuiPayload_IsDelivery(self: PImGuiPayload): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsDelivery';
+
+function ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs(): PImGuiTableColumnSortSpecs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs';
+
+procedure ImGuiTableColumnSortSpecs_destroy(self: PImGuiTableColumnSortSpecs); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSortSpecs_destroy';
+
+function ImGuiTableSortSpecs_ImGuiTableSortSpecs(): PImGuiTableSortSpecs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSortSpecs_ImGuiTableSortSpecs';
+
+procedure ImGuiTableSortSpecs_destroy(self: PImGuiTableSortSpecs); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSortSpecs_destroy';
+
+function ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(): PImGuiOnceUponAFrame; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOnceUponAFrame_ImGuiOnceUponAFrame';
+
+procedure ImGuiOnceUponAFrame_destroy(self: PImGuiOnceUponAFrame); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOnceUponAFrame_destroy';
+
+function ImGuiTextFilter_ImGuiTextFilter(const default_filter: PAnsiChar): PImGuiTextFilter; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_ImGuiTextFilter';
+
+procedure ImGuiTextFilter_destroy(self: PImGuiTextFilter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_destroy';
+
+function ImGuiTextFilter_Draw(self: PImGuiTextFilter; const label_: PAnsiChar; width: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Draw';
+
+function ImGuiTextFilter_PassFilter(self: PImGuiTextFilter; const text: PAnsiChar; const text_end: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_PassFilter';
+
+procedure ImGuiTextFilter_Build(self: PImGuiTextFilter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Build';
+
+procedure ImGuiTextFilter_Clear(self: PImGuiTextFilter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Clear';
+
+function ImGuiTextFilter_IsActive(self: PImGuiTextFilter): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_IsActive';
+
+function ImGuiTextRange_ImGuiTextRange_Nil(): PImGuiTextRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_ImGuiTextRange_Nil';
+
+procedure ImGuiTextRange_destroy(self: PImGuiTextRange); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_destroy';
+
+function ImGuiTextRange_ImGuiTextRange_Str(const _b: PAnsiChar; const _e: PAnsiChar): PImGuiTextRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_ImGuiTextRange_Str';
+
+function ImGuiTextRange_empty(self: PImGuiTextRange): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_empty';
+
+procedure ImGuiTextRange_split(self: PImGuiTextRange; separator: AnsiChar; out_: PImVector_ImGuiTextRange); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_split';
+
+function ImGuiTextBuffer_ImGuiTextBuffer(): PImGuiTextBuffer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_ImGuiTextBuffer';
+
+procedure ImGuiTextBuffer_destroy(self: PImGuiTextBuffer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_destroy';
+
+function ImGuiTextBuffer_begin(self: PImGuiTextBuffer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_begin';
+
+function ImGuiTextBuffer_end(self: PImGuiTextBuffer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_end';
+
+function ImGuiTextBuffer_size(self: PImGuiTextBuffer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_size';
+
+function ImGuiTextBuffer_empty(self: PImGuiTextBuffer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_empty';
+
+procedure ImGuiTextBuffer_clear(self: PImGuiTextBuffer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_clear';
+
+procedure ImGuiTextBuffer_reserve(self: PImGuiTextBuffer; capacity: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_reserve';
+
+function ImGuiTextBuffer_c_str(self: PImGuiTextBuffer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_c_str';
+
+procedure ImGuiTextBuffer_append(self: PImGuiTextBuffer; const str: PAnsiChar; const str_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_append';
+
+procedure ImGuiTextBuffer_appendfv(self: PImGuiTextBuffer; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_appendfv';
+
+function ImGuiStoragePair_ImGuiStoragePair_Int(_key: ImGuiID; _val: Integer): PImGuiStoragePair; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Int';
+
+procedure ImGuiStoragePair_destroy(self: PImGuiStoragePair); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_destroy';
+
+function ImGuiStoragePair_ImGuiStoragePair_Float(_key: ImGuiID; _val: Single): PImGuiStoragePair; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Float';
+
+function ImGuiStoragePair_ImGuiStoragePair_Ptr(_key: ImGuiID; _val: Pointer): PImGuiStoragePair; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Ptr';
+
+procedure ImGuiStorage_Clear(self: PImGuiStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_Clear';
+
+function ImGuiStorage_GetInt(self: PImGuiStorage; key: ImGuiID; default_val: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetInt';
+
+procedure ImGuiStorage_SetInt(self: PImGuiStorage; key: ImGuiID; val: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetInt';
+
+function ImGuiStorage_GetBool(self: PImGuiStorage; key: ImGuiID; default_val: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetBool';
+
+procedure ImGuiStorage_SetBool(self: PImGuiStorage; key: ImGuiID; val: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetBool';
+
+function ImGuiStorage_GetFloat(self: PImGuiStorage; key: ImGuiID; default_val: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetFloat';
+
+procedure ImGuiStorage_SetFloat(self: PImGuiStorage; key: ImGuiID; val: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetFloat';
+
+function ImGuiStorage_GetVoidPtr(self: PImGuiStorage; key: ImGuiID): Pointer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetVoidPtr';
+
+procedure ImGuiStorage_SetVoidPtr(self: PImGuiStorage; key: ImGuiID; val: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetVoidPtr';
+
+function ImGuiStorage_GetIntRef(self: PImGuiStorage; key: ImGuiID; default_val: Integer): PInteger; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetIntRef';
+
+function ImGuiStorage_GetBoolRef(self: PImGuiStorage; key: ImGuiID; default_val: Boolean): PBoolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetBoolRef';
+
+function ImGuiStorage_GetFloatRef(self: PImGuiStorage; key: ImGuiID; default_val: Single): PSingle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetFloatRef';
+
+function ImGuiStorage_GetVoidPtrRef(self: PImGuiStorage; key: ImGuiID; default_val: Pointer): PPointer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetVoidPtrRef';
+
+procedure ImGuiStorage_BuildSortByKey(self: PImGuiStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_BuildSortByKey';
+
+procedure ImGuiStorage_SetAllInt(self: PImGuiStorage; val: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetAllInt';
+
+function ImGuiListClipper_ImGuiListClipper(): PImGuiListClipper; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_ImGuiListClipper';
+
+procedure ImGuiListClipper_destroy(self: PImGuiListClipper); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_destroy';
+
+procedure ImGuiListClipper_Begin(self: PImGuiListClipper; items_count: Integer; items_height: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_Begin';
+
+procedure ImGuiListClipper_End(self: PImGuiListClipper); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_End';
+
+function ImGuiListClipper_Step(self: PImGuiListClipper): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_Step';
+
+procedure ImGuiListClipper_IncludeItemByIndex(self: PImGuiListClipper; item_index: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemByIndex';
+
+procedure ImGuiListClipper_IncludeItemsByIndex(self: PImGuiListClipper; item_begin: Integer; item_end: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemsByIndex';
+
+function ImColor_ImColor_Nil(): PImColor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Nil';
+
+procedure ImColor_destroy(self: PImColor); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_destroy';
+
+function ImColor_ImColor_Float(r: Single; g: Single; b: Single; a: Single): PImColor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Float';
+
+function ImColor_ImColor_Vec4(col: ImVec4): PImColor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Vec4';
+
+function ImColor_ImColor_Int(r: Integer; g: Integer; b: Integer; a: Integer): PImColor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Int';
+
+function ImColor_ImColor_U32(rgba: ImU32): PImColor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_U32';
+
+procedure ImColor_SetHSV(self: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_SetHSV';
+
+procedure ImColor_HSV(pOut: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_HSV';
+
+function ImDrawCmd_ImDrawCmd(): PImDrawCmd; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_ImDrawCmd';
+
+procedure ImDrawCmd_destroy(self: PImDrawCmd); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_destroy';
+
+function ImDrawCmd_GetTexID(self: PImDrawCmd): ImTextureID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_GetTexID';
+
+function ImDrawListSplitter_ImDrawListSplitter(): PImDrawListSplitter; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_ImDrawListSplitter';
+
+procedure ImDrawListSplitter_destroy(self: PImDrawListSplitter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_destroy';
+
+procedure ImDrawListSplitter_Clear(self: PImDrawListSplitter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Clear';
+
+procedure ImDrawListSplitter_ClearFreeMemory(self: PImDrawListSplitter); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_ClearFreeMemory';
+
+procedure ImDrawListSplitter_Split(self: PImDrawListSplitter; draw_list: PImDrawList; count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Split';
+
+procedure ImDrawListSplitter_Merge(self: PImDrawListSplitter; draw_list: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Merge';
+
+procedure ImDrawListSplitter_SetCurrentChannel(self: PImDrawListSplitter; draw_list: PImDrawList; channel_idx: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_SetCurrentChannel';
+
+function ImDrawList_ImDrawList(shared_data: PImDrawListSharedData): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ImDrawList';
+
+procedure ImDrawList_destroy(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_destroy';
+
+procedure ImDrawList_PushClipRect(self: PImDrawList; clip_rect_min: ImVec2; clip_rect_max: ImVec2; intersect_with_current_clip_rect: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushClipRect';
+
+procedure ImDrawList_PushClipRectFullScreen(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushClipRectFullScreen';
+
+procedure ImDrawList_PopClipRect(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PopClipRect';
+
+procedure ImDrawList_PushTextureID(self: PImDrawList; texture_id: ImTextureID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushTextureID';
+
+procedure ImDrawList_PopTextureID(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PopTextureID';
+
+procedure ImDrawList_GetClipRectMin(pOut: PImVec2; self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_GetClipRectMin';
+
+procedure ImDrawList_GetClipRectMax(pOut: PImVec2; self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_GetClipRectMax';
+
+procedure ImDrawList_AddLine(self: PImDrawList; p1: ImVec2; p2: ImVec2; col: ImU32; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddLine';
+
+procedure ImDrawList_AddRect(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRect';
+
+procedure ImDrawList_AddRectFilled(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRectFilled';
+
+procedure ImDrawList_AddRectFilledMultiColor(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col_upr_left: ImU32; col_upr_right: ImU32; col_bot_right: ImU32; col_bot_left: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRectFilledMultiColor';
+
+procedure ImDrawList_AddQuad(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddQuad';
+
+procedure ImDrawList_AddQuadFilled(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddQuadFilled';
+
+procedure ImDrawList_AddTriangle(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddTriangle';
+
+procedure ImDrawList_AddTriangleFilled(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddTriangleFilled';
+
+procedure ImDrawList_AddCircle(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCircle';
+
+procedure ImDrawList_AddCircleFilled(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCircleFilled';
+
+procedure ImDrawList_AddNgon(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddNgon';
+
+procedure ImDrawList_AddNgonFilled(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddNgonFilled';
+
+procedure ImDrawList_AddEllipse(self: PImDrawList; center: ImVec2; radius_x: Single; radius_y: Single; col: ImU32; rot: Single; num_segments: Integer; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddEllipse';
+
+procedure ImDrawList_AddEllipseFilled(self: PImDrawList; center: ImVec2; radius_x: Single; radius_y: Single; col: ImU32; rot: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddEllipseFilled';
+
+procedure ImDrawList_AddText_Vec2(self: PImDrawList; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddText_Vec2';
+
+procedure ImDrawList_AddText_FontPtr(self: PImDrawList; const font: PImFont; font_size: Single; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single; const cpu_fine_clip_rect: PImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddText_FontPtr';
+
+procedure ImDrawList_AddPolyline(self: PImDrawList; const points: PImVec2; num_points: Integer; col: ImU32; flags: ImDrawFlags; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddPolyline';
+
+procedure ImDrawList_AddConvexPolyFilled(self: PImDrawList; const points: PImVec2; num_points: Integer; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddConvexPolyFilled';
+
+procedure ImDrawList_AddBezierCubic(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32; thickness: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddBezierCubic';
+
+procedure ImDrawList_AddBezierQuadratic(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32; thickness: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddBezierQuadratic';
+
+procedure ImDrawList_AddImage(self: PImDrawList; user_texture_id: ImTextureID; p_min: ImVec2; p_max: ImVec2; uv_min: ImVec2; uv_max: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImage';
+
+procedure ImDrawList_AddImageQuad(self: PImDrawList; user_texture_id: ImTextureID; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; uv1: ImVec2; uv2: ImVec2; uv3: ImVec2; uv4: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImageQuad';
+
+procedure ImDrawList_AddImageRounded(self: PImDrawList; user_texture_id: ImTextureID; p_min: ImVec2; p_max: ImVec2; uv_min: ImVec2; uv_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImageRounded';
+
+procedure ImDrawList_PathClear(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathClear';
+
+procedure ImDrawList_PathLineTo(self: PImDrawList; pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathLineTo';
+
+procedure ImDrawList_PathLineToMergeDuplicate(self: PImDrawList; pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathLineToMergeDuplicate';
+
+procedure ImDrawList_PathFillConvex(self: PImDrawList; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathFillConvex';
+
+procedure ImDrawList_PathStroke(self: PImDrawList; col: ImU32; flags: ImDrawFlags; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathStroke';
+
+procedure ImDrawList_PathArcTo(self: PImDrawList; center: ImVec2; radius: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathArcTo';
+
+procedure ImDrawList_PathArcToFast(self: PImDrawList; center: ImVec2; radius: Single; a_min_of_12: Integer; a_max_of_12: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathArcToFast';
+
+procedure ImDrawList_PathEllipticalArcTo(self: PImDrawList; center: ImVec2; radius_x: Single; radius_y: Single; rot: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathEllipticalArcTo';
+
+procedure ImDrawList_PathBezierCubicCurveTo(self: PImDrawList; p2: ImVec2; p3: ImVec2; p4: ImVec2; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathBezierCubicCurveTo';
+
+procedure ImDrawList_PathBezierQuadraticCurveTo(self: PImDrawList; p2: ImVec2; p3: ImVec2; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathBezierQuadraticCurveTo';
+
+procedure ImDrawList_PathRect(self: PImDrawList; rect_min: ImVec2; rect_max: ImVec2; rounding: Single; flags: ImDrawFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathRect';
+
+procedure ImDrawList_AddCallback(self: PImDrawList; callback: ImDrawCallback; callback_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCallback';
+
+procedure ImDrawList_AddDrawCmd(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddDrawCmd';
+
+function ImDrawList_CloneOutput(self: PImDrawList): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_CloneOutput';
+
+procedure ImDrawList_ChannelsSplit(self: PImDrawList; count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsSplit';
+
+procedure ImDrawList_ChannelsMerge(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsMerge';
+
+procedure ImDrawList_ChannelsSetCurrent(self: PImDrawList; n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsSetCurrent';
+
+procedure ImDrawList_PrimReserve(self: PImDrawList; idx_count: Integer; vtx_count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimReserve';
+
+procedure ImDrawList_PrimUnreserve(self: PImDrawList; idx_count: Integer; vtx_count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimUnreserve';
+
+procedure ImDrawList_PrimRect(self: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimRect';
+
+procedure ImDrawList_PrimRectUV(self: PImDrawList; a: ImVec2; b: ImVec2; uv_a: ImVec2; uv_b: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimRectUV';
+
+procedure ImDrawList_PrimQuadUV(self: PImDrawList; a: ImVec2; b: ImVec2; c: ImVec2; d: ImVec2; uv_a: ImVec2; uv_b: ImVec2; uv_c: ImVec2; uv_d: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimQuadUV';
+
+procedure ImDrawList_PrimWriteVtx(self: PImDrawList; pos: ImVec2; uv: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimWriteVtx';
+
+procedure ImDrawList_PrimWriteIdx(self: PImDrawList; idx: ImDrawIdx); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimWriteIdx';
+
+procedure ImDrawList_PrimVtx(self: PImDrawList; pos: ImVec2; uv: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimVtx';
+
+procedure ImDrawList__ResetForNewFrame(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__ResetForNewFrame';
+
+procedure ImDrawList__ClearFreeMemory(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__ClearFreeMemory';
+
+procedure ImDrawList__PopUnusedDrawCmd(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PopUnusedDrawCmd';
+
+procedure ImDrawList__TryMergeDrawCmds(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__TryMergeDrawCmds';
+
+procedure ImDrawList__OnChangedClipRect(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedClipRect';
+
+procedure ImDrawList__OnChangedTextureID(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedTextureID';
+
+procedure ImDrawList__OnChangedVtxOffset(self: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedVtxOffset';
+
+function ImDrawList__CalcCircleAutoSegmentCount(self: PImDrawList; radius: Single): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__CalcCircleAutoSegmentCount';
+
+procedure ImDrawList__PathArcToFastEx(self: PImDrawList; center: ImVec2; radius: Single; a_min_sample: Integer; a_max_sample: Integer; a_step: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PathArcToFastEx';
+
+procedure ImDrawList__PathArcToN(self: PImDrawList; center: ImVec2; radius: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PathArcToN';
+
+function ImDrawData_ImDrawData(): PImDrawData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_ImDrawData';
+
+procedure ImDrawData_destroy(self: PImDrawData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_destroy';
+
+procedure ImDrawData_Clear(self: PImDrawData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_Clear';
+
+procedure ImDrawData_AddDrawList(self: PImDrawData; draw_list: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_AddDrawList';
+
+procedure ImDrawData_DeIndexAllBuffers(self: PImDrawData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_DeIndexAllBuffers';
+
+procedure ImDrawData_ScaleClipRects(self: PImDrawData; fb_scale: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_ScaleClipRects';
+
+function ImFontConfig_ImFontConfig(): PImFontConfig; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontConfig_ImFontConfig';
+
+procedure ImFontConfig_destroy(self: PImFontConfig); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontConfig_destroy';
+
+function ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder(): PImFontGlyphRangesBuilder; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder';
+
+procedure ImFontGlyphRangesBuilder_destroy(self: PImFontGlyphRangesBuilder); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_destroy';
+
+procedure ImFontGlyphRangesBuilder_Clear(self: PImFontGlyphRangesBuilder); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_Clear';
+
+function ImFontGlyphRangesBuilder_GetBit(self: PImFontGlyphRangesBuilder; n: NativeUInt): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_GetBit';
+
+procedure ImFontGlyphRangesBuilder_SetBit(self: PImFontGlyphRangesBuilder; n: NativeUInt); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_SetBit';
+
+procedure ImFontGlyphRangesBuilder_AddChar(self: PImFontGlyphRangesBuilder; c: ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddChar';
+
+procedure ImFontGlyphRangesBuilder_AddText(self: PImFontGlyphRangesBuilder; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddText';
+
+procedure ImFontGlyphRangesBuilder_AddRanges(self: PImFontGlyphRangesBuilder; const ranges: PImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddRanges';
+
+procedure ImFontGlyphRangesBuilder_BuildRanges(self: PImFontGlyphRangesBuilder; out_ranges: PImVector_ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_BuildRanges';
+
+function ImFontAtlasCustomRect_ImFontAtlasCustomRect(): PImFontAtlasCustomRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_ImFontAtlasCustomRect';
+
+procedure ImFontAtlasCustomRect_destroy(self: PImFontAtlasCustomRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_destroy';
+
+function ImFontAtlasCustomRect_IsPacked(self: PImFontAtlasCustomRect): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_IsPacked';
+
+function ImFontAtlas_ImFontAtlas(): PImFontAtlas; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ImFontAtlas';
+
+procedure ImFontAtlas_destroy(self: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_destroy';
+
+function ImFontAtlas_AddFont(self: PImFontAtlas; const font_cfg: PImFontConfig): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFont';
+
+function ImFontAtlas_AddFontDefault(self: PImFontAtlas; const font_cfg: PImFontConfig): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontDefault';
+
+function ImFontAtlas_AddFontFromFileTTF(self: PImFontAtlas; const filename: PAnsiChar; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromFileTTF';
+
+function ImFontAtlas_AddFontFromMemoryTTF(self: PImFontAtlas; font_data: Pointer; font_data_size: Integer; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryTTF';
+
+function ImFontAtlas_AddFontFromMemoryCompressedTTF(self: PImFontAtlas; const compressed_font_data: Pointer; compressed_font_data_size: Integer; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryCompressedTTF';
+
+function ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(self: PImFontAtlas; const compressed_font_data_base85: PAnsiChar; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryCompressedBase85TTF';
+
+procedure ImFontAtlas_ClearInputData(self: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearInputData';
+
+procedure ImFontAtlas_ClearTexData(self: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearTexData';
+
+procedure ImFontAtlas_ClearFonts(self: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearFonts';
+
+procedure ImFontAtlas_Clear(self: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_Clear';
+
+function ImFontAtlas_Build(self: PImFontAtlas): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_Build';
+
+procedure ImFontAtlas_GetTexDataAsAlpha8(self: PImFontAtlas; out_pixels: PPByte; out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetTexDataAsAlpha8';
+
+procedure ImFontAtlas_GetTexDataAsRGBA32(self: PImFontAtlas; out_pixels: PPByte; out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetTexDataAsRGBA32';
+
+function ImFontAtlas_IsBuilt(self: PImFontAtlas): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_IsBuilt';
+
+procedure ImFontAtlas_SetTexID(self: PImFontAtlas; id: ImTextureID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_SetTexID';
+
+function ImFontAtlas_GetGlyphRangesDefault(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesDefault';
+
+function ImFontAtlas_GetGlyphRangesGreek(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesGreek';
+
+function ImFontAtlas_GetGlyphRangesKorean(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesKorean';
+
+function ImFontAtlas_GetGlyphRangesJapanese(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesJapanese';
+
+function ImFontAtlas_GetGlyphRangesChineseFull(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesChineseFull';
+
+function ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon';
+
+function ImFontAtlas_GetGlyphRangesCyrillic(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesCyrillic';
+
+function ImFontAtlas_GetGlyphRangesThai(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesThai';
+
+function ImFontAtlas_GetGlyphRangesVietnamese(self: PImFontAtlas): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesVietnamese';
+
+function ImFontAtlas_AddCustomRectRegular(self: PImFontAtlas; width: Integer; height: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddCustomRectRegular';
+
+function ImFontAtlas_AddCustomRectFontGlyph(self: PImFontAtlas; font: PImFont; id: ImWchar; width: Integer; height: Integer; advance_x: Single; offset: ImVec2): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddCustomRectFontGlyph';
+
+function ImFontAtlas_GetCustomRectByIndex(self: PImFontAtlas; index: Integer): PImFontAtlasCustomRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetCustomRectByIndex';
+
+procedure ImFontAtlas_CalcCustomRectUV(self: PImFontAtlas; const rect: PImFontAtlasCustomRect; out_uv_min: PImVec2; out_uv_max: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_CalcCustomRectUV';
+
+function ImFontAtlas_GetMouseCursorTexData(self: PImFontAtlas; cursor: ImGuiMouseCursor; out_offset: PImVec2; out_size: PImVec2; out_uv_border: PImVec2; out_uv_fill: PImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetMouseCursorTexData';
+
+function ImFont_ImFont(): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_ImFont';
+
+procedure ImFont_destroy(self: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_destroy';
+
+function ImFont_FindGlyph(self: PImFont; c: ImWchar): PImFontGlyph; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_FindGlyph';
+
+function ImFont_FindGlyphNoFallback(self: PImFont; c: ImWchar): PImFontGlyph; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_FindGlyphNoFallback';
+
+function ImFont_GetCharAdvance(self: PImFont; c: ImWchar): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GetCharAdvance';
+
+function ImFont_IsLoaded(self: PImFont): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_IsLoaded';
+
+function ImFont_GetDebugName(self: PImFont): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GetDebugName';
+
+procedure ImFont_CalcTextSizeA(pOut: PImVec2; self: PImFont; size: Single; max_width: Single; wrap_width: Single; const text_begin: PAnsiChar; const text_end: PAnsiChar; remaining: PPAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_CalcTextSizeA';
+
+function ImFont_CalcWordWrapPositionA(self: PImFont; scale: Single; const text: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_CalcWordWrapPositionA';
+
+procedure ImFont_RenderChar(self: PImFont; draw_list: PImDrawList; size: Single; pos: ImVec2; col: ImU32; c: ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_RenderChar';
+
+procedure ImFont_RenderText(self: PImFont; draw_list: PImDrawList; size: Single; pos: ImVec2; col: ImU32; clip_rect: ImVec4; const text_begin: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single; cpu_fine_clip: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_RenderText';
+
+procedure ImFont_BuildLookupTable(self: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_BuildLookupTable';
+
+procedure ImFont_ClearOutputData(self: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_ClearOutputData';
+
+procedure ImFont_GrowIndex(self: PImFont; new_size: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GrowIndex';
+
+procedure ImFont_AddGlyph(self: PImFont; const src_cfg: PImFontConfig; c: ImWchar; x0: Single; y0: Single; x1: Single; y1: Single; u0: Single; v0: Single; u1: Single; v1: Single; advance_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_AddGlyph';
+
+procedure ImFont_AddRemapChar(self: PImFont; dst: ImWchar; src: ImWchar; overwrite_dst: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_AddRemapChar';
+
+procedure ImFont_SetGlyphVisible(self: PImFont; c: ImWchar; visible: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_SetGlyphVisible';
+
+function ImFont_IsGlyphRangeUnused(self: PImFont; c_begin: Cardinal; c_last: Cardinal): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_IsGlyphRangeUnused';
+
+function ImGuiViewport_ImGuiViewport(): PImGuiViewport; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_ImGuiViewport';
+
+procedure ImGuiViewport_destroy(self: PImGuiViewport); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_destroy';
+
+procedure ImGuiViewport_GetCenter(pOut: PImVec2; self: PImGuiViewport); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_GetCenter';
+
+procedure ImGuiViewport_GetWorkCenter(pOut: PImVec2; self: PImGuiViewport); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_GetWorkCenter';
+
+function ImGuiPlatformIO_ImGuiPlatformIO(): PImGuiPlatformIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_ImGuiPlatformIO';
+
+procedure ImGuiPlatformIO_destroy(self: PImGuiPlatformIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_destroy';
+
+function ImGuiPlatformMonitor_ImGuiPlatformMonitor(): PImGuiPlatformMonitor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformMonitor_ImGuiPlatformMonitor';
+
+procedure ImGuiPlatformMonitor_destroy(self: PImGuiPlatformMonitor); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformMonitor_destroy';
+
+function ImGuiPlatformImeData_ImGuiPlatformImeData(): PImGuiPlatformImeData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformImeData_ImGuiPlatformImeData';
+
+procedure ImGuiPlatformImeData_destroy(self: PImGuiPlatformImeData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformImeData_destroy';
+
+function igGetKeyIndex(key: ImGuiKey): ImGuiKey; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyIndex';
+
+function igImHashData(const data: Pointer; data_size: NativeUInt; seed: ImGuiID): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImHashData';
+
+function igImHashStr(const data: PAnsiChar; data_size: NativeUInt; seed: ImGuiID): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImHashStr';
+
+type
+  igImQsort_compare_func = function(const p1: Pointer; const p2: Pointer): Integer; cdecl;
+
+procedure igImQsort(base: Pointer; count: NativeUInt; size_of_element: NativeUInt; compare_func: igImQsort_compare_func); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImQsort';
+
+function igImAlphaBlendColors(col_a: ImU32; col_b: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAlphaBlendColors';
+
+function igImIsPowerOfTwo_Int(v: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsPowerOfTwo_Int';
+
+function igImIsPowerOfTwo_U64(v: ImU64): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsPowerOfTwo_U64';
+
+function igImUpperPowerOfTwo(v: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImUpperPowerOfTwo';
+
+function igImStricmp(const str1: PAnsiChar; const str2: PAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStricmp';
+
+function igImStrnicmp(const str1: PAnsiChar; const str2: PAnsiChar; count: NativeUInt): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrnicmp';
+
+procedure igImStrncpy(dst: PAnsiChar; const src: PAnsiChar; count: NativeUInt); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrncpy';
+
+function igImStrdup(const str: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrdup';
+
+function igImStrdupcpy(dst: PAnsiChar; p_dst_size: PNativeUInt; const str: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrdupcpy';
+
+function igImStrchrRange(const str_begin: PAnsiChar; const str_end: PAnsiChar; c: AnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrchrRange';
+
+function igImStreolRange(const str: PAnsiChar; const str_end: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStreolRange';
+
+function igImStristr(const haystack: PAnsiChar; const haystack_end: PAnsiChar; const needle: PAnsiChar; const needle_end: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStristr';
+
+procedure igImStrTrimBlanks(str: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrTrimBlanks';
+
+function igImStrSkipBlank(const str: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrSkipBlank';
+
+function igImStrlenW(const str: PImWchar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrlenW';
+
+function igImStrbolW(const buf_mid_line: PImWchar; const buf_begin: PImWchar): PImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrbolW';
+
+function igImToUpper(c: AnsiChar): AnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImToUpper';
+
+function igImCharIsBlankA(c: AnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankA';
+
+function igImCharIsBlankW(c: Cardinal): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankW';
+
+function igImFormatString(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar): Integer varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatString';
+
+function igImFormatStringV(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar; args: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringV';
+
+procedure igImFormatStringToTempBuffer(out_buf: PPAnsiChar; out_buf_end: PPAnsiChar; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringToTempBuffer';
+
+procedure igImFormatStringToTempBufferV(out_buf: PPAnsiChar; out_buf_end: PPAnsiChar; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringToTempBufferV';
+
+function igImParseFormatFindStart(const format: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatFindStart';
+
+function igImParseFormatFindEnd(const format: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatFindEnd';
+
+function igImParseFormatTrimDecorations(const format: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatTrimDecorations';
+
+procedure igImParseFormatSanitizeForPrinting(const fmt_in: PAnsiChar; fmt_out: PAnsiChar; fmt_out_size: NativeUInt); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatSanitizeForPrinting';
+
+function igImParseFormatSanitizeForScanning(const fmt_in: PAnsiChar; fmt_out: PAnsiChar; fmt_out_size: NativeUInt): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatSanitizeForScanning';
+
+function igImParseFormatPrecision(const format: PAnsiChar; default_value: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatPrecision';
+
+function igImTextCharToUtf8(out_buf: PAnsiChar; c: Cardinal): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCharToUtf8';
+
+function igImTextStrToUtf8(out_buf: PAnsiChar; out_buf_size: Integer; const in_text: PImWchar; const in_text_end: PImWchar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextStrToUtf8';
+
+function igImTextCharFromUtf8(out_char: PCardinal; const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCharFromUtf8';
+
+function igImTextStrFromUtf8(out_buf: PImWchar; out_buf_size: Integer; const in_text: PAnsiChar; const in_text_end: PAnsiChar; in_remaining: PPAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextStrFromUtf8';
+
+function igImTextCountCharsFromUtf8(const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountCharsFromUtf8';
+
+function igImTextCountUtf8BytesFromChar(const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountUtf8BytesFromChar';
+
+function igImTextCountUtf8BytesFromStr(const in_text: PImWchar; const in_text_end: PImWchar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountUtf8BytesFromStr';
+
+function igImTextFindPreviousUtf8Codepoint(const in_text_start: PAnsiChar; const in_text_curr: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextFindPreviousUtf8Codepoint';
+
+function igImFileOpen(const filename: PAnsiChar; const mode: PAnsiChar): ImFileHandle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileOpen';
+
+function igImFileClose(file_: ImFileHandle): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileClose';
+
+function igImFileGetSize(file_: ImFileHandle): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileGetSize';
+
+function igImFileRead(data: Pointer; size: ImU64; count: ImU64; file_: ImFileHandle): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileRead';
+
+function igImFileWrite(const data: Pointer; size: ImU64; count: ImU64; file_: ImFileHandle): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileWrite';
+
+function igImFileLoadToMemory(const filename: PAnsiChar; const mode: PAnsiChar; out_file_size: PNativeUInt; padding_bytes: Integer): Pointer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileLoadToMemory';
+
+function igImPow_Float(x: Single; y: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImPow_Float';
+
+function igImPow_double(x: Double; y: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImPow_double';
+
+function igImLog_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLog_Float';
+
+function igImLog_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLog_double';
+
+function igImAbs_Int(x: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_Int';
+
+function igImAbs_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_Float';
+
+function igImAbs_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_double';
+
+function igImSign_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSign_Float';
+
+function igImSign_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSign_double';
+
+function igImRsqrt_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRsqrt_Float';
+
+function igImRsqrt_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRsqrt_double';
+
+procedure igImMin(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMin';
+
+procedure igImMax(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMax';
+
+procedure igImClamp(pOut: PImVec2; v: ImVec2; mn: ImVec2; mx: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImClamp';
+
+procedure igImLerp_Vec2Float(pOut: PImVec2; a: ImVec2; b: ImVec2; t: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec2Float';
+
+procedure igImLerp_Vec2Vec2(pOut: PImVec2; a: ImVec2; b: ImVec2; t: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec2Vec2';
+
+procedure igImLerp_Vec4(pOut: PImVec4; a: ImVec4; b: ImVec4; t: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec4';
+
+function igImSaturate(f: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSaturate';
+
+function igImLengthSqr_Vec2(lhs: ImVec2): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLengthSqr_Vec2';
+
+function igImLengthSqr_Vec4(lhs: ImVec4): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLengthSqr_Vec4';
+
+function igImInvLength(lhs: ImVec2; fail_value: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImInvLength';
+
+function igImTrunc_Float(f: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTrunc_Float';
+
+procedure igImTrunc_Vec2(pOut: PImVec2; v: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTrunc_Vec2';
+
+function igImFloor_Float(f: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFloor_Float';
+
+procedure igImFloor_Vec2(pOut: PImVec2; v: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFloor_Vec2';
+
+function igImModPositive(a: Integer; b: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImModPositive';
+
+function igImDot(a: ImVec2; b: ImVec2): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImDot';
+
+procedure igImRotate(pOut: PImVec2; v: ImVec2; cos_a: Single; sin_a: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRotate';
+
+function igImLinearSweep(current: Single; target: Single; speed: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearSweep';
+
+procedure igImMul(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMul';
+
+function igImIsFloatAboveGuaranteedIntegerPrecision(f: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsFloatAboveGuaranteedIntegerPrecision';
+
+function igImExponentialMovingAverage(avg: Single; sample: Single; n: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImExponentialMovingAverage';
+
+procedure igImBezierCubicCalc(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; t: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicCalc';
+
+procedure igImBezierCubicClosestPoint(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; p: ImVec2; num_segments: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicClosestPoint';
+
+procedure igImBezierCubicClosestPointCasteljau(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; p: ImVec2; tess_tol: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicClosestPointCasteljau';
+
+procedure igImBezierQuadraticCalc(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; t: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierQuadraticCalc';
+
+procedure igImLineClosestPoint(pOut: PImVec2; a: ImVec2; b: ImVec2; p: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLineClosestPoint';
+
+function igImTriangleContainsPoint(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleContainsPoint';
+
+procedure igImTriangleClosestPoint(pOut: PImVec2; a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleClosestPoint';
+
+procedure igImTriangleBarycentricCoords(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2; out_u: PSingle; out_v: PSingle; out_w: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleBarycentricCoords';
+
+function igImTriangleArea(a: ImVec2; b: ImVec2; c: ImVec2): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleArea';
+
+function ImVec1_ImVec1_Nil(): PImVec1; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_ImVec1_Nil';
+
+procedure ImVec1_destroy(self: PImVec1); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_destroy';
+
+function ImVec1_ImVec1_Float(_x: Single): PImVec1; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_ImVec1_Float';
+
+function ImVec2ih_ImVec2ih_Nil(): PImVec2ih; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_Nil';
+
+procedure ImVec2ih_destroy(self: PImVec2ih); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_destroy';
+
+function ImVec2ih_ImVec2ih_short(_x: Smallint; _y: Smallint): PImVec2ih; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_short';
+
+function ImVec2ih_ImVec2ih_Vec2(rhs: ImVec2): PImVec2ih; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_Vec2';
+
+function ImRect_ImRect_Nil(): PImRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Nil';
+
+procedure ImRect_destroy(self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_destroy';
+
+function ImRect_ImRect_Vec2(min: ImVec2; max: ImVec2): PImRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Vec2';
+
+function ImRect_ImRect_Vec4(v: ImVec4): PImRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Vec4';
+
+function ImRect_ImRect_Float(x1: Single; y1: Single; x2: Single; y2: Single): PImRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Float';
+
+procedure ImRect_GetCenter(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetCenter';
+
+procedure ImRect_GetSize(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetSize';
+
+function ImRect_GetWidth(self: PImRect): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetWidth';
+
+function ImRect_GetHeight(self: PImRect): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetHeight';
+
+function ImRect_GetArea(self: PImRect): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetArea';
+
+procedure ImRect_GetTL(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetTL';
+
+procedure ImRect_GetTR(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetTR';
+
+procedure ImRect_GetBL(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetBL';
+
+procedure ImRect_GetBR(pOut: PImVec2; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetBR';
+
+function ImRect_Contains_Vec2(self: PImRect; p: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Contains_Vec2';
+
+function ImRect_Contains_Rect(self: PImRect; r: ImRect): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Contains_Rect';
+
+function ImRect_ContainsWithPad(self: PImRect; p: ImVec2; pad: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ContainsWithPad';
+
+function ImRect_Overlaps(self: PImRect; r: ImRect): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Overlaps';
+
+procedure ImRect_Add_Vec2(self: PImRect; p: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Add_Vec2';
+
+procedure ImRect_Add_Rect(self: PImRect; r: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Add_Rect';
+
+procedure ImRect_Expand_Float(self: PImRect; const amount: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Expand_Float';
+
+procedure ImRect_Expand_Vec2(self: PImRect; amount: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Expand_Vec2';
+
+procedure ImRect_Translate(self: PImRect; d: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Translate';
+
+procedure ImRect_TranslateX(self: PImRect; dx: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_TranslateX';
+
+procedure ImRect_TranslateY(self: PImRect; dy: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_TranslateY';
+
+procedure ImRect_ClipWith(self: PImRect; r: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ClipWith';
+
+procedure ImRect_ClipWithFull(self: PImRect; r: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ClipWithFull';
+
+procedure ImRect_Floor(self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Floor';
+
+function ImRect_IsInverted(self: PImRect): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_IsInverted';
+
+procedure ImRect_ToVec4(pOut: PImVec4; self: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ToVec4';
+
+function igImBitArrayGetStorageSizeInBytes(bitcount: Integer): NativeUInt; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayGetStorageSizeInBytes';
+
+procedure igImBitArrayClearAllBits(arr: PImU32; bitcount: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayClearAllBits';
+
+function igImBitArrayTestBit(const arr: PImU32; n: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayTestBit';
+
+procedure igImBitArrayClearBit(arr: PImU32; n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayClearBit';
+
+procedure igImBitArraySetBit(arr: PImU32; n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArraySetBit';
+
+procedure igImBitArraySetBitRange(arr: PImU32; n: Integer; n2: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArraySetBitRange';
+
+procedure ImBitVector_Create(self: PImBitVector; sz: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_Create';
+
+procedure ImBitVector_Clear(self: PImBitVector); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_Clear';
+
+function ImBitVector_TestBit(self: PImBitVector; n: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_TestBit';
+
+procedure ImBitVector_SetBit(self: PImBitVector; n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_SetBit';
+
+procedure ImBitVector_ClearBit(self: PImBitVector; n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_ClearBit';
+
+procedure ImGuiTextIndex_clear(self: PImGuiTextIndex); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_clear';
+
+function ImGuiTextIndex_size(self: PImGuiTextIndex): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_size';
+
+function ImGuiTextIndex_get_line_begin(self: PImGuiTextIndex; const base: PAnsiChar; n: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_get_line_begin';
+
+function ImGuiTextIndex_get_line_end(self: PImGuiTextIndex; const base: PAnsiChar; n: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_get_line_end';
+
+procedure ImGuiTextIndex_append(self: PImGuiTextIndex; const base: PAnsiChar; old_size: Integer; new_size: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_append';
+
+function ImDrawListSharedData_ImDrawListSharedData(): PImDrawListSharedData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_ImDrawListSharedData';
+
+procedure ImDrawListSharedData_destroy(self: PImDrawListSharedData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_destroy';
+
+procedure ImDrawListSharedData_SetCircleTessellationMaxError(self: PImDrawListSharedData; max_error: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_SetCircleTessellationMaxError';
+
+function ImDrawDataBuilder_ImDrawDataBuilder(): PImDrawDataBuilder; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawDataBuilder_ImDrawDataBuilder';
+
+procedure ImDrawDataBuilder_destroy(self: PImDrawDataBuilder); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawDataBuilder_destroy';
+
+function ImGuiDataVarInfo_GetVarPtr(self: PImGuiDataVarInfo; parent: Pointer): Pointer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDataVarInfo_GetVarPtr';
+
+function ImGuiStyleMod_ImGuiStyleMod_Int(idx: ImGuiStyleVar; v: Integer): PImGuiStyleMod; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Int';
+
+procedure ImGuiStyleMod_destroy(self: PImGuiStyleMod); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_destroy';
+
+function ImGuiStyleMod_ImGuiStyleMod_Float(idx: ImGuiStyleVar; v: Single): PImGuiStyleMod; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Float';
+
+function ImGuiStyleMod_ImGuiStyleMod_Vec2(idx: ImGuiStyleVar; v: ImVec2): PImGuiStyleMod; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Vec2';
+
+function ImGuiComboPreviewData_ImGuiComboPreviewData(): PImGuiComboPreviewData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiComboPreviewData_ImGuiComboPreviewData';
+
+procedure ImGuiComboPreviewData_destroy(self: PImGuiComboPreviewData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiComboPreviewData_destroy';
+
+function ImGuiMenuColumns_ImGuiMenuColumns(): PImGuiMenuColumns; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_ImGuiMenuColumns';
+
+procedure ImGuiMenuColumns_destroy(self: PImGuiMenuColumns); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_destroy';
+
+procedure ImGuiMenuColumns_Update(self: PImGuiMenuColumns; spacing: Single; window_reappearing: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_Update';
+
+function ImGuiMenuColumns_DeclColumns(self: PImGuiMenuColumns; w_icon: Single; w_label: Single; w_shortcut: Single; w_mark: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_DeclColumns';
+
+procedure ImGuiMenuColumns_CalcNextTotalWidth(self: PImGuiMenuColumns; update_offsets: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_CalcNextTotalWidth';
+
+function ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState(): PImGuiInputTextDeactivatedState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState';
+
+procedure ImGuiInputTextDeactivatedState_destroy(self: PImGuiInputTextDeactivatedState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_destroy';
+
+procedure ImGuiInputTextDeactivatedState_ClearFreeMemory(self: PImGuiInputTextDeactivatedState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_ClearFreeMemory';
+
+function ImGuiInputTextState_ImGuiInputTextState(): PImGuiInputTextState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ImGuiInputTextState';
+
+procedure ImGuiInputTextState_destroy(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_destroy';
+
+procedure ImGuiInputTextState_ClearText(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearText';
+
+procedure ImGuiInputTextState_ClearFreeMemory(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearFreeMemory';
+
+function ImGuiInputTextState_GetUndoAvailCount(self: PImGuiInputTextState): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetUndoAvailCount';
+
+function ImGuiInputTextState_GetRedoAvailCount(self: PImGuiInputTextState): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetRedoAvailCount';
+
+procedure ImGuiInputTextState_OnKeyPressed(self: PImGuiInputTextState; key: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_OnKeyPressed';
+
+procedure ImGuiInputTextState_CursorAnimReset(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_CursorAnimReset';
+
+procedure ImGuiInputTextState_CursorClamp(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_CursorClamp';
+
+function ImGuiInputTextState_HasSelection(self: PImGuiInputTextState): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_HasSelection';
+
+procedure ImGuiInputTextState_ClearSelection(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearSelection';
+
+function ImGuiInputTextState_GetCursorPos(self: PImGuiInputTextState): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetCursorPos';
+
+function ImGuiInputTextState_GetSelectionStart(self: PImGuiInputTextState): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetSelectionStart';
+
+function ImGuiInputTextState_GetSelectionEnd(self: PImGuiInputTextState): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetSelectionEnd';
+
+procedure ImGuiInputTextState_SelectAll(self: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_SelectAll';
+
+function ImGuiPopupData_ImGuiPopupData(): PImGuiPopupData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPopupData_ImGuiPopupData';
+
+procedure ImGuiPopupData_destroy(self: PImGuiPopupData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPopupData_destroy';
+
+function ImGuiNextWindowData_ImGuiNextWindowData(): PImGuiNextWindowData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_ImGuiNextWindowData';
+
+procedure ImGuiNextWindowData_destroy(self: PImGuiNextWindowData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_destroy';
+
+procedure ImGuiNextWindowData_ClearFlags(self: PImGuiNextWindowData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_ClearFlags';
+
+function ImGuiNextItemData_ImGuiNextItemData(): PImGuiNextItemData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_ImGuiNextItemData';
+
+procedure ImGuiNextItemData_destroy(self: PImGuiNextItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_destroy';
+
+procedure ImGuiNextItemData_ClearFlags(self: PImGuiNextItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_ClearFlags';
+
+function ImGuiLastItemData_ImGuiLastItemData(): PImGuiLastItemData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiLastItemData_ImGuiLastItemData';
+
+procedure ImGuiLastItemData_destroy(self: PImGuiLastItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiLastItemData_destroy';
+
+function ImGuiStackSizes_ImGuiStackSizes(): PImGuiStackSizes; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_ImGuiStackSizes';
+
+procedure ImGuiStackSizes_destroy(self: PImGuiStackSizes); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_destroy';
+
+procedure ImGuiStackSizes_SetToContextState(self: PImGuiStackSizes; ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_SetToContextState';
+
+procedure ImGuiStackSizes_CompareWithContextState(self: PImGuiStackSizes; ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_CompareWithContextState';
+
+function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(ptr: Pointer): PImGuiPtrOrIndex; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr';
+
+procedure ImGuiPtrOrIndex_destroy(self: PImGuiPtrOrIndex); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_destroy';
+
+function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: Integer): PImGuiPtrOrIndex; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int';
+
+function ImGuiInputEvent_ImGuiInputEvent(): PImGuiInputEvent; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputEvent_ImGuiInputEvent';
+
+procedure ImGuiInputEvent_destroy(self: PImGuiInputEvent); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputEvent_destroy';
+
+function ImGuiKeyRoutingData_ImGuiKeyRoutingData(): PImGuiKeyRoutingData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingData_ImGuiKeyRoutingData';
+
+procedure ImGuiKeyRoutingData_destroy(self: PImGuiKeyRoutingData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingData_destroy';
+
+function ImGuiKeyRoutingTable_ImGuiKeyRoutingTable(): PImGuiKeyRoutingTable; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_ImGuiKeyRoutingTable';
+
+procedure ImGuiKeyRoutingTable_destroy(self: PImGuiKeyRoutingTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_destroy';
+
+procedure ImGuiKeyRoutingTable_Clear(self: PImGuiKeyRoutingTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_Clear';
+
+function ImGuiKeyOwnerData_ImGuiKeyOwnerData(): PImGuiKeyOwnerData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyOwnerData_ImGuiKeyOwnerData';
+
+procedure ImGuiKeyOwnerData_destroy(self: PImGuiKeyOwnerData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyOwnerData_destroy';
+
+function ImGuiListClipperRange_FromIndices(min: Integer; max: Integer): ImGuiListClipperRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperRange_FromIndices';
+
+function ImGuiListClipperRange_FromPositions(y1: Single; y2: Single; off_min: Integer; off_max: Integer): ImGuiListClipperRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperRange_FromPositions';
+
+function ImGuiListClipperData_ImGuiListClipperData(): PImGuiListClipperData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_ImGuiListClipperData';
+
+procedure ImGuiListClipperData_destroy(self: PImGuiListClipperData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_destroy';
+
+procedure ImGuiListClipperData_Reset(self: PImGuiListClipperData; clipper: PImGuiListClipper); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_Reset';
+
+function ImGuiNavItemData_ImGuiNavItemData(): PImGuiNavItemData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_ImGuiNavItemData';
+
+procedure ImGuiNavItemData_destroy(self: PImGuiNavItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_destroy';
+
+procedure ImGuiNavItemData_Clear(self: PImGuiNavItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_Clear';
+
+function ImGuiTypingSelectState_ImGuiTypingSelectState(): PImGuiTypingSelectState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_ImGuiTypingSelectState';
+
+procedure ImGuiTypingSelectState_destroy(self: PImGuiTypingSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_destroy';
+
+procedure ImGuiTypingSelectState_Clear(self: PImGuiTypingSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_Clear';
+
+function ImGuiOldColumnData_ImGuiOldColumnData(): PImGuiOldColumnData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumnData_ImGuiOldColumnData';
+
+procedure ImGuiOldColumnData_destroy(self: PImGuiOldColumnData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumnData_destroy';
+
+function ImGuiOldColumns_ImGuiOldColumns(): PImGuiOldColumns; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_ImGuiOldColumns';
+
+procedure ImGuiOldColumns_destroy(self: PImGuiOldColumns); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_destroy';
+
+function ImGuiDockNode_ImGuiDockNode(id: ImGuiID): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_ImGuiDockNode';
+
+procedure ImGuiDockNode_destroy(self: PImGuiDockNode); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_destroy';
+
+function ImGuiDockNode_IsRootNode(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsRootNode';
+
+function ImGuiDockNode_IsDockSpace(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsDockSpace';
+
+function ImGuiDockNode_IsFloatingNode(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsFloatingNode';
+
+function ImGuiDockNode_IsCentralNode(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsCentralNode';
+
+function ImGuiDockNode_IsHiddenTabBar(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsHiddenTabBar';
+
+function ImGuiDockNode_IsNoTabBar(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsNoTabBar';
+
+function ImGuiDockNode_IsSplitNode(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsSplitNode';
+
+function ImGuiDockNode_IsLeafNode(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsLeafNode';
+
+function ImGuiDockNode_IsEmpty(self: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsEmpty';
+
+procedure ImGuiDockNode_Rect(pOut: PImRect; self: PImGuiDockNode); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_Rect';
+
+procedure ImGuiDockNode_SetLocalFlags(self: PImGuiDockNode; flags: ImGuiDockNodeFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_SetLocalFlags';
+
+procedure ImGuiDockNode_UpdateMergedFlags(self: PImGuiDockNode); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_UpdateMergedFlags';
+
+function ImGuiDockContext_ImGuiDockContext(): PImGuiDockContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockContext_ImGuiDockContext';
+
+procedure ImGuiDockContext_destroy(self: PImGuiDockContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockContext_destroy';
+
+function ImGuiViewportP_ImGuiViewportP(): PImGuiViewportP; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_ImGuiViewportP';
+
+procedure ImGuiViewportP_destroy(self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_destroy';
+
+procedure ImGuiViewportP_ClearRequestFlags(self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_ClearRequestFlags';
+
+procedure ImGuiViewportP_CalcWorkRectPos(pOut: PImVec2; self: PImGuiViewportP; off_min: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_CalcWorkRectPos';
+
+procedure ImGuiViewportP_CalcWorkRectSize(pOut: PImVec2; self: PImGuiViewportP; off_min: ImVec2; off_max: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_CalcWorkRectSize';
+
+procedure ImGuiViewportP_UpdateWorkRect(self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_UpdateWorkRect';
+
+procedure ImGuiViewportP_GetMainRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetMainRect';
+
+procedure ImGuiViewportP_GetWorkRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetWorkRect';
+
+procedure ImGuiViewportP_GetBuildWorkRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetBuildWorkRect';
+
+function ImGuiWindowSettings_ImGuiWindowSettings(): PImGuiWindowSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_ImGuiWindowSettings';
+
+procedure ImGuiWindowSettings_destroy(self: PImGuiWindowSettings); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_destroy';
+
+function ImGuiWindowSettings_GetName(self: PImGuiWindowSettings): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_GetName';
+
+function ImGuiSettingsHandler_ImGuiSettingsHandler(): PImGuiSettingsHandler; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSettingsHandler_ImGuiSettingsHandler';
+
+procedure ImGuiSettingsHandler_destroy(self: PImGuiSettingsHandler); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSettingsHandler_destroy';
+
+function ImGuiDebugAllocInfo_ImGuiDebugAllocInfo(): PImGuiDebugAllocInfo; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDebugAllocInfo_ImGuiDebugAllocInfo';
+
+procedure ImGuiDebugAllocInfo_destroy(self: PImGuiDebugAllocInfo); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDebugAllocInfo_destroy';
+
+function ImGuiStackLevelInfo_ImGuiStackLevelInfo(): PImGuiStackLevelInfo; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackLevelInfo_ImGuiStackLevelInfo';
+
+procedure ImGuiStackLevelInfo_destroy(self: PImGuiStackLevelInfo); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackLevelInfo_destroy';
+
+function ImGuiIDStackTool_ImGuiIDStackTool(): PImGuiIDStackTool; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIDStackTool_ImGuiIDStackTool';
+
+procedure ImGuiIDStackTool_destroy(self: PImGuiIDStackTool); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIDStackTool_destroy';
+
+function ImGuiContextHook_ImGuiContextHook(): PImGuiContextHook; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContextHook_ImGuiContextHook';
+
+procedure ImGuiContextHook_destroy(self: PImGuiContextHook); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContextHook_destroy';
+
+function ImGuiContext_ImGuiContext(shared_font_atlas: PImFontAtlas): PImGuiContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContext_ImGuiContext';
+
+procedure ImGuiContext_destroy(self: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContext_destroy';
+
+function ImGuiWindow_ImGuiWindow(context: PImGuiContext; const name: PAnsiChar): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_ImGuiWindow';
+
+procedure ImGuiWindow_destroy(self: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_destroy';
+
+function ImGuiWindow_GetID_Str(self: PImGuiWindow; const str: PAnsiChar; const str_end: PAnsiChar): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Str';
+
+function ImGuiWindow_GetID_Ptr(self: PImGuiWindow; const ptr: Pointer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Ptr';
+
+function ImGuiWindow_GetID_Int(self: PImGuiWindow; n: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Int';
+
+function ImGuiWindow_GetIDFromRectangle(self: PImGuiWindow; r_abs: ImRect): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetIDFromRectangle';
+
+procedure ImGuiWindow_Rect(pOut: PImRect; self: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_Rect';
+
+function ImGuiWindow_CalcFontSize(self: PImGuiWindow): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_CalcFontSize';
+
+function ImGuiWindow_TitleBarHeight(self: PImGuiWindow): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_TitleBarHeight';
+
+procedure ImGuiWindow_TitleBarRect(pOut: PImRect; self: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_TitleBarRect';
+
+function ImGuiWindow_MenuBarHeight(self: PImGuiWindow): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_MenuBarHeight';
+
+procedure ImGuiWindow_MenuBarRect(pOut: PImRect; self: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_MenuBarRect';
+
+function ImGuiTabItem_ImGuiTabItem(): PImGuiTabItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabItem_ImGuiTabItem';
+
+procedure ImGuiTabItem_destroy(self: PImGuiTabItem); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabItem_destroy';
+
+function ImGuiTabBar_ImGuiTabBar(): PImGuiTabBar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabBar_ImGuiTabBar';
+
+procedure ImGuiTabBar_destroy(self: PImGuiTabBar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabBar_destroy';
+
+function ImGuiTableColumn_ImGuiTableColumn(): PImGuiTableColumn; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumn_ImGuiTableColumn';
+
+procedure ImGuiTableColumn_destroy(self: PImGuiTableColumn); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumn_destroy';
+
+function ImGuiTableInstanceData_ImGuiTableInstanceData(): PImGuiTableInstanceData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableInstanceData_ImGuiTableInstanceData';
+
+procedure ImGuiTableInstanceData_destroy(self: PImGuiTableInstanceData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableInstanceData_destroy';
+
+function ImGuiTable_ImGuiTable(): PImGuiTable; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTable_ImGuiTable';
+
+procedure ImGuiTable_destroy(self: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTable_destroy';
+
+function ImGuiTableTempData_ImGuiTableTempData(): PImGuiTableTempData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableTempData_ImGuiTableTempData';
+
+procedure ImGuiTableTempData_destroy(self: PImGuiTableTempData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableTempData_destroy';
+
+function ImGuiTableColumnSettings_ImGuiTableColumnSettings(): PImGuiTableColumnSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSettings_ImGuiTableColumnSettings';
+
+procedure ImGuiTableColumnSettings_destroy(self: PImGuiTableColumnSettings); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSettings_destroy';
+
+function ImGuiTableSettings_ImGuiTableSettings(): PImGuiTableSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_ImGuiTableSettings';
+
+procedure ImGuiTableSettings_destroy(self: PImGuiTableSettings); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_destroy';
+
+function ImGuiTableSettings_GetColumnSettings(self: PImGuiTableSettings): PImGuiTableColumnSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_GetColumnSettings';
+
+function igGetCurrentWindowRead(): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentWindowRead';
+
+function igGetCurrentWindow(): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentWindow';
+
+function igFindWindowByID(id: ImGuiID): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowByID';
+
+function igFindWindowByName(const name: PAnsiChar): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowByName';
+
+procedure igUpdateWindowParentAndRootLinks(window: PImGuiWindow; flags: ImGuiWindowFlags; parent_window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateWindowParentAndRootLinks';
+
+procedure igCalcWindowNextAutoFitSize(pOut: PImVec2; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcWindowNextAutoFitSize';
+
+function igIsWindowChildOf(window: PImGuiWindow; potential_parent: PImGuiWindow; popup_hierarchy: Boolean; dock_hierarchy: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowChildOf';
+
+function igIsWindowWithinBeginStackOf(window: PImGuiWindow; potential_parent: PImGuiWindow): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowWithinBeginStackOf';
+
+function igIsWindowAbove(potential_above: PImGuiWindow; potential_below: PImGuiWindow): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowAbove';
+
+function igIsWindowNavFocusable(window: PImGuiWindow): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowNavFocusable';
+
+procedure igSetWindowPos_WindowPtr(window: PImGuiWindow; pos: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_WindowPtr';
+
+procedure igSetWindowSize_WindowPtr(window: PImGuiWindow; size: ImVec2; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_WindowPtr';
+
+procedure igSetWindowCollapsed_WindowPtr(window: PImGuiWindow; collapsed: Boolean; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_WindowPtr';
+
+procedure igSetWindowHitTestHole(window: PImGuiWindow; pos: ImVec2; size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowHitTestHole';
+
+procedure igSetWindowHiddendAndSkipItemsForCurrentFrame(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowHiddendAndSkipItemsForCurrentFrame';
+
+procedure igWindowRectAbsToRel(pOut: PImRect; window: PImGuiWindow; r: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowRectAbsToRel';
+
+procedure igWindowRectRelToAbs(pOut: PImRect; window: PImGuiWindow; r: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowRectRelToAbs';
+
+procedure igWindowPosRelToAbs(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosRelToAbs';
+
+procedure igFocusWindow(window: PImGuiWindow; flags: ImGuiFocusRequestFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusWindow';
+
+procedure igFocusTopMostWindowUnderOne(under_this_window: PImGuiWindow; ignore_window: PImGuiWindow; filter_viewport: PImGuiViewport; flags: ImGuiFocusRequestFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusTopMostWindowUnderOne';
+
+procedure igBringWindowToFocusFront(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToFocusFront';
+
+procedure igBringWindowToDisplayFront(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayFront';
+
+procedure igBringWindowToDisplayBack(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayBack';
+
+procedure igBringWindowToDisplayBehind(window: PImGuiWindow; above_window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayBehind';
+
+function igFindWindowDisplayIndex(window: PImGuiWindow): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowDisplayIndex';
+
+function igFindBottomMostVisibleWindowWithinBeginStack(window: PImGuiWindow): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBottomMostVisibleWindowWithinBeginStack';
+
+procedure igSetCurrentFont(font: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentFont';
+
+function igGetDefaultFont(): PImFont; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDefaultFont';
+
+function igGetForegroundDrawList_WindowPtr(window: PImGuiWindow): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetForegroundDrawList_WindowPtr';
+
+procedure igAddDrawListToDrawDataEx(draw_data: PImDrawData; out_list: PImVector_ImDrawListPtr; draw_list: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddDrawListToDrawDataEx';
+
+procedure igInitialize(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInitialize';
+
+procedure igShutdown(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShutdown';
+
+procedure igUpdateInputEvents(trickle_fast_inputs: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateInputEvents';
+
+procedure igUpdateHoveredWindowAndCaptureFlags(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateHoveredWindowAndCaptureFlags';
+
+procedure igStartMouseMovingWindow(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStartMouseMovingWindow';
+
+procedure igStartMouseMovingWindowOrNode(window: PImGuiWindow; node: PImGuiDockNode; undock: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStartMouseMovingWindowOrNode';
+
+procedure igUpdateMouseMovingWindowNewFrame(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateMouseMovingWindowNewFrame';
+
+procedure igUpdateMouseMovingWindowEndFrame(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateMouseMovingWindowEndFrame';
+
+function igAddContextHook(context: PImGuiContext; const hook: PImGuiContextHook): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddContextHook';
+
+procedure igRemoveContextHook(context: PImGuiContext; hook_to_remove: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRemoveContextHook';
+
+procedure igCallContextHooks(context: PImGuiContext; type_: ImGuiContextHookType); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCallContextHooks';
+
+procedure igTranslateWindowsInViewport(viewport: PImGuiViewportP; old_pos: ImVec2; new_pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTranslateWindowsInViewport';
+
+procedure igScaleWindowsInViewport(viewport: PImGuiViewportP; scale: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScaleWindowsInViewport';
+
+procedure igDestroyPlatformWindow(viewport: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyPlatformWindow';
+
+procedure igSetWindowViewport(window: PImGuiWindow; viewport: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowViewport';
+
+procedure igSetCurrentViewport(window: PImGuiWindow; viewport: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentViewport';
+
+function igGetViewportPlatformMonitor(viewport: PImGuiViewport): PImGuiPlatformMonitor; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetViewportPlatformMonitor';
+
+function igFindHoveredViewportFromPlatformWindowStack(mouse_platform_pos: ImVec2): PImGuiViewportP; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindHoveredViewportFromPlatformWindowStack';
+
+procedure igMarkIniSettingsDirty_Nil(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkIniSettingsDirty_Nil';
+
+procedure igMarkIniSettingsDirty_WindowPtr(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkIniSettingsDirty_WindowPtr';
+
+procedure igClearIniSettings(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearIniSettings';
+
+procedure igAddSettingsHandler(const handler: PImGuiSettingsHandler); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddSettingsHandler';
+
+procedure igRemoveSettingsHandler(const type_name: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRemoveSettingsHandler';
+
+function igFindSettingsHandler(const type_name: PAnsiChar): PImGuiSettingsHandler; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindSettingsHandler';
+
+function igCreateNewWindowSettings(const name: PAnsiChar): PImGuiWindowSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCreateNewWindowSettings';
+
+function igFindWindowSettingsByID(id: ImGuiID): PImGuiWindowSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowSettingsByID';
+
+function igFindWindowSettingsByWindow(window: PImGuiWindow): PImGuiWindowSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowSettingsByWindow';
+
+procedure igClearWindowSettings(const name: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearWindowSettings';
+
+procedure igLocalizeRegisterEntries(const entries: PImGuiLocEntry; count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLocalizeRegisterEntries';
+
+function igLocalizeGetMsg(key: ImGuiLocKey): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLocalizeGetMsg';
+
+procedure igSetScrollX_WindowPtr(window: PImGuiWindow; scroll_x: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollX_WindowPtr';
+
+procedure igSetScrollY_WindowPtr(window: PImGuiWindow; scroll_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollY_WindowPtr';
+
+procedure igSetScrollFromPosX_WindowPtr(window: PImGuiWindow; local_x: Single; center_x_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosX_WindowPtr';
+
+procedure igSetScrollFromPosY_WindowPtr(window: PImGuiWindow; local_y: Single; center_y_ratio: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosY_WindowPtr';
+
+procedure igScrollToItem(flags: ImGuiScrollFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToItem';
+
+procedure igScrollToRect(window: PImGuiWindow; rect: ImRect; flags: ImGuiScrollFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToRect';
+
+procedure igScrollToRectEx(pOut: PImVec2; window: PImGuiWindow; rect: ImRect; flags: ImGuiScrollFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToRectEx';
+
+procedure igScrollToBringRectIntoView(window: PImGuiWindow; rect: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToBringRectIntoView';
+
+function igGetItemStatusFlags(): ImGuiItemStatusFlags; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemStatusFlags';
+
+function igGetItemFlags(): ImGuiItemFlags; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemFlags';
+
+function igGetActiveID(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetActiveID';
+
+function igGetFocusID(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFocusID';
+
+procedure igSetActiveID(id: ImGuiID; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetActiveID';
+
+procedure igSetFocusID(id: ImGuiID; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetFocusID';
+
+procedure igClearActiveID(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearActiveID';
+
+function igGetHoveredID(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetHoveredID';
+
+procedure igSetHoveredID(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetHoveredID';
+
+procedure igKeepAliveID(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igKeepAliveID';
+
+procedure igMarkItemEdited(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkItemEdited';
+
+procedure igPushOverrideID(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushOverrideID';
+
+function igGetIDWithSeed_Str(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar; seed: ImGuiID): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIDWithSeed_Str';
+
+function igGetIDWithSeed_Int(n: Integer; seed: ImGuiID): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIDWithSeed_Int';
+
+procedure igItemSize_Vec2(size: ImVec2; text_baseline_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemSize_Vec2';
+
+procedure igItemSize_Rect(bb: ImRect; text_baseline_y: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemSize_Rect';
+
+function igItemAdd(bb: ImRect; id: ImGuiID; const nav_bb: PImRect; extra_flags: ImGuiItemFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemAdd';
+
+function igItemHoverable(bb: ImRect; id: ImGuiID; item_flags: ImGuiItemFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemHoverable';
+
+function igIsWindowContentHoverable(window: PImGuiWindow; flags: ImGuiHoveredFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowContentHoverable';
+
+function igIsClippedEx(bb: ImRect; id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsClippedEx';
+
+procedure igSetLastItemData(item_id: ImGuiID; in_flags: ImGuiItemFlags; status_flags: ImGuiItemStatusFlags; item_rect: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetLastItemData';
+
+procedure igCalcItemSize(pOut: PImVec2; size: ImVec2; default_w: Single; default_h: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcItemSize';
+
+function igCalcWrapWidthForPos(pos: ImVec2; wrap_pos_x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcWrapWidthForPos';
+
+procedure igPushMultiItemsWidths(components: Integer; width_full: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushMultiItemsWidths';
+
+function igIsItemToggledSelection(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledSelection';
+
+procedure igGetContentRegionMaxAbs(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionMaxAbs';
+
+procedure igShrinkWidths(items: PImGuiShrinkWidthItem; count: Integer; width_excess: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShrinkWidths';
+
+procedure igPushItemFlag(option: ImGuiItemFlags; enabled: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemFlag';
+
+procedure igPopItemFlag(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemFlag';
+
+function igGetStyleVarInfo(idx: ImGuiStyleVar): PImGuiDataVarInfo; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleVarInfo';
+
+procedure igLogBegin(type_: ImGuiLogType; auto_open_depth: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogBegin';
+
+procedure igLogToBuffer(auto_open_depth: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToBuffer';
+
+procedure igLogRenderedText(const ref_pos: PImVec2; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogRenderedText';
+
+procedure igLogSetNextTextDecoration(const prefix: PAnsiChar; const suffix: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogSetNextTextDecoration';
+
+function igBeginChildEx(const name: PAnsiChar; id: ImGuiID; size_arg: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChildEx';
+
+procedure igOpenPopupEx(id: ImGuiID; popup_flags: ImGuiPopupFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopupEx';
+
+procedure igClosePopupToLevel(remaining: Integer; restore_focus_to_window_under_popup: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupToLevel';
+
+procedure igClosePopupsOverWindow(ref_window: PImGuiWindow; restore_focus_to_window_under_popup: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupsOverWindow';
+
+procedure igClosePopupsExceptModals(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupsExceptModals';
+
+function igIsPopupOpen_ID(id: ImGuiID; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsPopupOpen_ID';
+
+function igBeginPopupEx(id: ImGuiID; extra_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupEx';
+
+function igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags; extra_window_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltipEx';
+
+function igBeginTooltipHidden(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltipHidden';
+
+procedure igGetPopupAllowedExtentRect(pOut: PImRect; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetPopupAllowedExtentRect';
+
+function igGetTopMostPopupModal(): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTopMostPopupModal';
+
+function igGetTopMostAndVisiblePopupModal(): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTopMostAndVisiblePopupModal';
+
+function igFindBlockingModal(window: PImGuiWindow): PImGuiWindow; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBlockingModal';
+
+procedure igFindBestWindowPosForPopup(pOut: PImVec2; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBestWindowPosForPopup';
+
+procedure igFindBestWindowPosForPopupEx(pOut: PImVec2; ref_pos: ImVec2; size: ImVec2; last_dir: PImGuiDir; r_outer: ImRect; r_avoid: ImRect; policy: ImGuiPopupPositionPolicy); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBestWindowPosForPopupEx';
+
+function igBeginViewportSideBar(const name: PAnsiChar; viewport: PImGuiViewport; dir: ImGuiDir; size: Single; window_flags: ImGuiWindowFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginViewportSideBar';
+
+function igBeginMenuEx(const label_: PAnsiChar; const icon: PAnsiChar; enabled: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenuEx';
+
+function igMenuItemEx(const label_: PAnsiChar; const icon: PAnsiChar; const shortcut: PAnsiChar; selected: Boolean; enabled: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItemEx';
+
+function igBeginComboPopup(popup_id: ImGuiID; bb: ImRect; flags: ImGuiComboFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginComboPopup';
+
+function igBeginComboPreview(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginComboPreview';
+
+procedure igEndComboPreview(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndComboPreview';
+
+procedure igNavInitWindow(window: PImGuiWindow; force_reinit: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavInitWindow';
+
+procedure igNavInitRequestApplyResult(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavInitRequestApplyResult';
+
+function igNavMoveRequestButNoResultYet(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestButNoResultYet';
+
+procedure igNavMoveRequestSubmit(move_dir: ImGuiDir; clip_dir: ImGuiDir; move_flags: ImGuiNavMoveFlags; scroll_flags: ImGuiScrollFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestSubmit';
+
+procedure igNavMoveRequestForward(move_dir: ImGuiDir; clip_dir: ImGuiDir; move_flags: ImGuiNavMoveFlags; scroll_flags: ImGuiScrollFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestForward';
+
+procedure igNavMoveRequestResolveWithLastItem(result: PImGuiNavItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithLastItem';
+
+procedure igNavMoveRequestResolveWithPastTreeNode(result: PImGuiNavItemData; tree_node_data: PImGuiNavTreeNodeData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithPastTreeNode';
+
+procedure igNavMoveRequestCancel(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestCancel';
+
+procedure igNavMoveRequestApplyResult(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestApplyResult';
+
+procedure igNavMoveRequestTryWrapping(window: PImGuiWindow; move_flags: ImGuiNavMoveFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestTryWrapping';
+
+procedure igNavClearPreferredPosForAxis(axis: ImGuiAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavClearPreferredPosForAxis';
+
+procedure igNavRestoreHighlightAfterMove(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavRestoreHighlightAfterMove';
+
+procedure igNavUpdateCurrentWindowIsScrollPushableX(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavUpdateCurrentWindowIsScrollPushableX';
+
+procedure igSetNavWindow(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNavWindow';
+
+procedure igSetNavID(id: ImGuiID; nav_layer: ImGuiNavLayer; focus_scope_id: ImGuiID; rect_rel: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNavID';
+
+procedure igFocusItem(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusItem';
+
+procedure igActivateItemByID(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igActivateItemByID';
+
+function igIsNamedKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsNamedKey';
+
+function igIsNamedKeyOrModKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsNamedKeyOrModKey';
+
+function igIsLegacyKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsLegacyKey';
+
+function igIsKeyboardKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyboardKey';
+
+function igIsGamepadKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsGamepadKey';
+
+function igIsMouseKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseKey';
+
+function igIsAliasKey(key: ImGuiKey): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAliasKey';
+
+function igConvertShortcutMod(key_chord: ImGuiKeyChord): ImGuiKeyChord; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igConvertShortcutMod';
+
+function igConvertSingleModFlagToKey(ctx: PImGuiContext; key: ImGuiKey): ImGuiKey; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igConvertSingleModFlagToKey';
+
+function igGetKeyData_ContextPtr(ctx: PImGuiContext; key: ImGuiKey): PImGuiKeyData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyData_ContextPtr';
+
+function igGetKeyData_Key(key: ImGuiKey): PImGuiKeyData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyData_Key';
+
+procedure igGetKeyChordName(key_chord: ImGuiKeyChord; out_buf: PAnsiChar; out_buf_size: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyChordName';
+
+function igMouseButtonToKey(button: ImGuiMouseButton): ImGuiKey; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMouseButtonToKey';
+
+function igIsMouseDragPastThreshold(button: ImGuiMouseButton; lock_threshold: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDragPastThreshold';
+
+procedure igGetKeyMagnitude2d(pOut: PImVec2; key_left: ImGuiKey; key_right: ImGuiKey; key_up: ImGuiKey; key_down: ImGuiKey); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyMagnitude2d';
+
+function igGetNavTweakPressedAmount(axis: ImGuiAxis): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetNavTweakPressedAmount';
+
+function igCalcTypematicRepeatAmount(t0: Single; t1: Single; repeat_delay: Single; repeat_rate: Single): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcTypematicRepeatAmount';
+
+procedure igGetTypematicRepeatRate(flags: ImGuiInputFlags; repeat_delay: PSingle; repeat_rate: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTypematicRepeatRate';
+
+procedure igTeleportMousePos(pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTeleportMousePos';
+
+procedure igSetActiveIdUsingAllKeyboardKeys(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetActiveIdUsingAllKeyboardKeys';
+
+function igIsActiveIdUsingNavDir(dir: ImGuiDir): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsActiveIdUsingNavDir';
+
+function igGetKeyOwner(key: ImGuiKey): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyOwner';
+
+procedure igSetKeyOwner(key: ImGuiKey; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwner';
+
+procedure igSetKeyOwnersForKeyChord(key: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwnersForKeyChord';
+
+procedure igSetItemKeyOwner(key: ImGuiKey; flags: ImGuiInputFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner';
+
+function igTestKeyOwner(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestKeyOwner';
+
+function igGetKeyOwnerData(ctx: PImGuiContext; key: ImGuiKey): PImGuiKeyOwnerData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyOwnerData';
+
+function igIsKeyDown_ID(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyDown_ID';
+
+function igIsKeyPressed_ID(key: ImGuiKey; owner_id: ImGuiID; flags: ImGuiInputFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyPressed_ID';
+
+function igIsKeyReleased_ID(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyReleased_ID';
+
+function igIsMouseDown_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_ID';
+
+function igIsMouseClicked_ID(button: ImGuiMouseButton; owner_id: ImGuiID; flags: ImGuiInputFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseClicked_ID';
+
+function igIsMouseReleased_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseReleased_ID';
+
+function igIsMouseDoubleClicked_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDoubleClicked_ID';
+
+function igIsKeyChordPressed_ID(key_chord: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyChordPressed_ID';
+
+function igShortcut(key_chord: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShortcut';
+
+function igSetShortcutRouting(key_chord: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetShortcutRouting';
+
+function igTestShortcutRouting(key_chord: ImGuiKeyChord; owner_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestShortcutRouting';
+
+function igGetShortcutRoutingData(key_chord: ImGuiKeyChord): PImGuiKeyRoutingData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetShortcutRoutingData';
+
+procedure igDockContextInitialize(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextInitialize';
+
+procedure igDockContextShutdown(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextShutdown';
+
+procedure igDockContextClearNodes(ctx: PImGuiContext; root_id: ImGuiID; clear_settings_refs: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextClearNodes';
+
+procedure igDockContextRebuildNodes(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextRebuildNodes';
+
+procedure igDockContextNewFrameUpdateUndocking(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextNewFrameUpdateUndocking';
+
+procedure igDockContextNewFrameUpdateDocking(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextNewFrameUpdateDocking';
+
+procedure igDockContextEndFrame(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextEndFrame';
+
+function igDockContextGenNodeID(ctx: PImGuiContext): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextGenNodeID';
+
+procedure igDockContextQueueDock(ctx: PImGuiContext; target: PImGuiWindow; target_node: PImGuiDockNode; payload: PImGuiWindow; split_dir: ImGuiDir; split_ratio: Single; split_outer: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueDock';
+
+procedure igDockContextQueueUndockWindow(ctx: PImGuiContext; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueUndockWindow';
+
+procedure igDockContextQueueUndockNode(ctx: PImGuiContext; node: PImGuiDockNode); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueUndockNode';
+
+procedure igDockContextProcessUndockWindow(ctx: PImGuiContext; window: PImGuiWindow; clear_persistent_docking_ref: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextProcessUndockWindow';
+
+procedure igDockContextProcessUndockNode(ctx: PImGuiContext; node: PImGuiDockNode); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextProcessUndockNode';
+
+function igDockContextCalcDropPosForDocking(target: PImGuiWindow; target_node: PImGuiDockNode; payload_window: PImGuiWindow; payload_node: PImGuiDockNode; split_dir: ImGuiDir; split_outer: Boolean; out_pos: PImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextCalcDropPosForDocking';
+
+function igDockContextFindNodeByID(ctx: PImGuiContext; id: ImGuiID): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextFindNodeByID';
+
+procedure igDockNodeWindowMenuHandler_Default(ctx: PImGuiContext; node: PImGuiDockNode; tab_bar: PImGuiTabBar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeWindowMenuHandler_Default';
+
+function igDockNodeBeginAmendTabBar(node: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeBeginAmendTabBar';
+
+procedure igDockNodeEndAmendTabBar(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeEndAmendTabBar';
+
+function igDockNodeGetRootNode(node: PImGuiDockNode): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetRootNode';
+
+function igDockNodeIsInHierarchyOf(node: PImGuiDockNode; parent: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeIsInHierarchyOf';
+
+function igDockNodeGetDepth(const node: PImGuiDockNode): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetDepth';
+
+function igDockNodeGetWindowMenuButtonId(const node: PImGuiDockNode): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetWindowMenuButtonId';
+
+function igGetWindowDockNode(): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDockNode';
+
+function igGetWindowAlwaysWantOwnTabBar(window: PImGuiWindow): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowAlwaysWantOwnTabBar';
+
+procedure igBeginDocked(window: PImGuiWindow; p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDocked';
+
+procedure igBeginDockableDragDropSource(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDockableDragDropSource';
+
+procedure igBeginDockableDragDropTarget(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDockableDragDropTarget';
+
+procedure igSetWindowDock(window: PImGuiWindow; dock_id: ImGuiID; cond: ImGuiCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowDock';
+
+procedure igDockBuilderDockWindow(const window_name: PAnsiChar; node_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderDockWindow';
+
+function igDockBuilderGetNode(node_id: ImGuiID): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderGetNode';
+
+function igDockBuilderGetCentralNode(node_id: ImGuiID): PImGuiDockNode; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderGetCentralNode';
+
+function igDockBuilderAddNode(node_id: ImGuiID; flags: ImGuiDockNodeFlags): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderAddNode';
+
+procedure igDockBuilderRemoveNode(node_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNode';
+
+procedure igDockBuilderRemoveNodeDockedWindows(node_id: ImGuiID; clear_settings_refs: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNodeDockedWindows';
+
+procedure igDockBuilderRemoveNodeChildNodes(node_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNodeChildNodes';
+
+procedure igDockBuilderSetNodePos(node_id: ImGuiID; pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSetNodePos';
+
+procedure igDockBuilderSetNodeSize(node_id: ImGuiID; size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSetNodeSize';
+
+function igDockBuilderSplitNode(node_id: ImGuiID; split_dir: ImGuiDir; size_ratio_for_node_at_dir: Single; out_id_at_dir: PImGuiID; out_id_at_opposite_dir: PImGuiID): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSplitNode';
+
+procedure igDockBuilderCopyDockSpace(src_dockspace_id: ImGuiID; dst_dockspace_id: ImGuiID; in_window_remap_pairs: PImVector_const_charPtr); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyDockSpace';
+
+procedure igDockBuilderCopyNode(src_node_id: ImGuiID; dst_node_id: ImGuiID; out_node_remap_pairs: PImVector_ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyNode';
+
+procedure igDockBuilderCopyWindowSettings(const src_name: PAnsiChar; const dst_name: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyWindowSettings';
+
+procedure igDockBuilderFinish(node_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderFinish';
+
+procedure igPushFocusScope(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushFocusScope';
+
+procedure igPopFocusScope(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopFocusScope';
+
+function igGetCurrentFocusScope(): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentFocusScope';
+
+function igIsDragDropActive(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsDragDropActive';
+
+function igBeginDragDropTargetCustom(bb: ImRect; id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropTargetCustom';
+
+procedure igClearDragDrop(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearDragDrop';
+
+function igIsDragDropPayloadBeingAccepted(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsDragDropPayloadBeingAccepted';
+
+procedure igRenderDragDropTargetRect(bb: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderDragDropTargetRect';
+
+function igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags): PImGuiTypingSelectRequest; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTypingSelectRequest';
+
+type
+  igTypingSelectFindMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;
+
+function igTypingSelectFindMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindMatch_get_item_name_func; user_data: Pointer; nav_item_idx: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindMatch';
+
+type
+  igTypingSelectFindNextSingleCharMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;
+
+function igTypingSelectFindNextSingleCharMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindNextSingleCharMatch_get_item_name_func; user_data: Pointer; nav_item_idx: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindNextSingleCharMatch';
+
+type
+  igTypingSelectFindBestLeadingMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;
+
+function igTypingSelectFindBestLeadingMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindBestLeadingMatch_get_item_name_func; user_data: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindBestLeadingMatch';
+
+procedure igSetWindowClipRectBeforeSetChannel(window: PImGuiWindow; clip_rect: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowClipRectBeforeSetChannel';
+
+procedure igBeginColumns(const str_id: PAnsiChar; count: Integer; flags: ImGuiOldColumnFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginColumns';
+
+procedure igEndColumns(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndColumns';
+
+procedure igPushColumnClipRect(column_index: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushColumnClipRect';
+
+procedure igPushColumnsBackground(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushColumnsBackground';
+
+procedure igPopColumnsBackground(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopColumnsBackground';
+
+function igGetColumnsID(const str_id: PAnsiChar; count: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnsID';
+
+function igFindOrCreateColumns(window: PImGuiWindow; id: ImGuiID): PImGuiOldColumns; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindOrCreateColumns';
+
+function igGetColumnOffsetFromNorm(const columns: PImGuiOldColumns; offset_norm: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnOffsetFromNorm';
+
+function igGetColumnNormFromOffset(const columns: PImGuiOldColumns; offset: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnNormFromOffset';
+
+procedure igTableOpenContextMenu(column_n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableOpenContextMenu';
+
+procedure igTableSetColumnWidth(column_n: Integer; width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidth';
+
+procedure igTableSetColumnSortDirection(column_n: Integer; sort_direction: ImGuiSortDirection; append_to_sort_specs: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnSortDirection';
+
+function igTableGetHoveredColumn(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHoveredColumn';
+
+function igTableGetHoveredRow(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHoveredRow';
+
+function igTableGetHeaderRowHeight(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHeaderRowHeight';
+
+function igTableGetHeaderAngledMaxLabelWidth(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHeaderAngledMaxLabelWidth';
+
+procedure igTablePushBackgroundChannel(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTablePushBackgroundChannel';
+
+procedure igTablePopBackgroundChannel(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTablePopBackgroundChannel';
+
+procedure igTableAngledHeadersRowEx(angle: Single; label_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableAngledHeadersRowEx';
+
+function igGetCurrentTable(): PImGuiTable; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentTable';
+
+function igTableFindByID(id: ImGuiID): PImGuiTable; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableFindByID';
+
+function igBeginTableEx(const name: PAnsiChar; id: ImGuiID; columns_count: Integer; flags: ImGuiTableFlags; outer_size: ImVec2; inner_width: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTableEx';
+
+procedure igTableBeginInitMemory(table: PImGuiTable; columns_count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginInitMemory';
+
+procedure igTableBeginApplyRequests(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginApplyRequests';
+
+procedure igTableSetupDrawChannels(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupDrawChannels';
+
+procedure igTableUpdateLayout(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateLayout';
+
+procedure igTableUpdateBorders(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateBorders';
+
+procedure igTableUpdateColumnsWeightFromWidth(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateColumnsWeightFromWidth';
+
+procedure igTableDrawBorders(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableDrawBorders';
+
+procedure igTableDrawDefaultContextMenu(table: PImGuiTable; flags_for_section_to_display: ImGuiTableFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableDrawDefaultContextMenu';
+
+function igTableBeginContextMenuPopup(table: PImGuiTable): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginContextMenuPopup';
+
+procedure igTableMergeDrawChannels(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableMergeDrawChannels';
+
+function igTableGetInstanceData(table: PImGuiTable; instance_no: Integer): PImGuiTableInstanceData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetInstanceData';
+
+function igTableGetInstanceID(table: PImGuiTable; instance_no: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetInstanceID';
+
+procedure igTableSortSpecsSanitize(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSortSpecsSanitize';
+
+procedure igTableSortSpecsBuild(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSortSpecsBuild';
+
+function igTableGetColumnNextSortDirection(column: PImGuiTableColumn): ImGuiSortDirection; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnNextSortDirection';
+
+procedure igTableFixColumnSortDirection(table: PImGuiTable; column: PImGuiTableColumn); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableFixColumnSortDirection';
+
+function igTableGetColumnWidthAuto(table: PImGuiTable; column: PImGuiTableColumn): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnWidthAuto';
+
+procedure igTableBeginRow(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginRow';
+
+procedure igTableEndRow(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableEndRow';
+
+procedure igTableBeginCell(table: PImGuiTable; column_n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginCell';
+
+procedure igTableEndCell(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableEndCell';
+
+procedure igTableGetCellBgRect(pOut: PImRect; const table: PImGuiTable; column_n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetCellBgRect';
+
+function igTableGetColumnName_TablePtr(const table: PImGuiTable; column_n: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnName_TablePtr';
+
+function igTableGetColumnResizeID(table: PImGuiTable; column_n: Integer; instance_no: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnResizeID';
+
+function igTableGetMaxColumnWidth(const table: PImGuiTable; column_n: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetMaxColumnWidth';
+
+procedure igTableSetColumnWidthAutoSingle(table: PImGuiTable; column_n: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidthAutoSingle';
+
+procedure igTableSetColumnWidthAutoAll(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidthAutoAll';
+
+procedure igTableRemove(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableRemove';
+
+procedure igTableGcCompactTransientBuffers_TablePtr(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactTransientBuffers_TablePtr';
+
+procedure igTableGcCompactTransientBuffers_TableTempDataPtr(table: PImGuiTableTempData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactTransientBuffers_TableTempDataPtr';
+
+procedure igTableGcCompactSettings(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactSettings';
+
+procedure igTableLoadSettings(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableLoadSettings';
+
+procedure igTableSaveSettings(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSaveSettings';
+
+procedure igTableResetSettings(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableResetSettings';
+
+function igTableGetBoundSettings(table: PImGuiTable): PImGuiTableSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetBoundSettings';
+
+procedure igTableSettingsAddSettingsHandler(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsAddSettingsHandler';
+
+function igTableSettingsCreate(id: ImGuiID; columns_count: Integer): PImGuiTableSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsCreate';
+
+function igTableSettingsFindByID(id: ImGuiID): PImGuiTableSettings; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsFindByID';
+
+function igGetCurrentTabBar(): PImGuiTabBar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentTabBar';
+
+function igBeginTabBarEx(tab_bar: PImGuiTabBar; bb: ImRect; flags: ImGuiTabBarFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabBarEx';
+
+function igTabBarFindTabByID(tab_bar: PImGuiTabBar; tab_id: ImGuiID): PImGuiTabItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindTabByID';
+
+function igTabBarFindTabByOrder(tab_bar: PImGuiTabBar; order: Integer): PImGuiTabItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindTabByOrder';
+
+function igTabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar: PImGuiTabBar): PImGuiTabItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindMostRecentlySelectedTabForActiveWindow';
+
+function igTabBarGetCurrentTab(tab_bar: PImGuiTabBar): PImGuiTabItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetCurrentTab';
+
+function igTabBarGetTabOrder(tab_bar: PImGuiTabBar; tab: PImGuiTabItem): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetTabOrder';
+
+function igTabBarGetTabName(tab_bar: PImGuiTabBar; tab: PImGuiTabItem): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetTabName';
+
+procedure igTabBarAddTab(tab_bar: PImGuiTabBar; tab_flags: ImGuiTabItemFlags; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarAddTab';
+
+procedure igTabBarRemoveTab(tab_bar: PImGuiTabBar; tab_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarRemoveTab';
+
+procedure igTabBarCloseTab(tab_bar: PImGuiTabBar; tab: PImGuiTabItem); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarCloseTab';
+
+procedure igTabBarQueueFocus(tab_bar: PImGuiTabBar; tab: PImGuiTabItem); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueFocus';
+
+procedure igTabBarQueueReorder(tab_bar: PImGuiTabBar; tab: PImGuiTabItem; offset: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueReorder';
+
+procedure igTabBarQueueReorderFromMousePos(tab_bar: PImGuiTabBar; tab: PImGuiTabItem; mouse_pos: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueReorderFromMousePos';
+
+function igTabBarProcessReorder(tab_bar: PImGuiTabBar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarProcessReorder';
+
+function igTabItemEx(tab_bar: PImGuiTabBar; const label_: PAnsiChar; p_open: PBoolean; flags: ImGuiTabItemFlags; docked_window: PImGuiWindow): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemEx';
+
+procedure igTabItemCalcSize_Str(pOut: PImVec2; const label_: PAnsiChar; has_close_button_or_unsaved_marker: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemCalcSize_Str';
+
+procedure igTabItemCalcSize_WindowPtr(pOut: PImVec2; window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemCalcSize_WindowPtr';
+
+procedure igTabItemBackground(draw_list: PImDrawList; bb: ImRect; flags: ImGuiTabItemFlags; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemBackground';
+
+procedure igTabItemLabelAndCloseButton(draw_list: PImDrawList; bb: ImRect; flags: ImGuiTabItemFlags; frame_padding: ImVec2; const label_: PAnsiChar; tab_id: ImGuiID; close_button_id: ImGuiID; is_contents_visible: Boolean; out_just_closed: PBoolean; out_text_clipped: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemLabelAndCloseButton';
+
+procedure igRenderText(pos: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; hide_text_after_hash: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderText';
+
+procedure igRenderTextWrapped(pos: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextWrapped';
+
+procedure igRenderTextClipped(pos_min: ImVec2; pos_max: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2; align: ImVec2; const clip_rect: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextClipped';
+
+procedure igRenderTextClippedEx(draw_list: PImDrawList; pos_min: ImVec2; pos_max: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2; align: ImVec2; const clip_rect: PImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextClippedEx';
+
+procedure igRenderTextEllipsis(draw_list: PImDrawList; pos_min: ImVec2; pos_max: ImVec2; clip_max_x: Single; ellipsis_max_x: Single; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextEllipsis';
+
+procedure igRenderFrame(p_min: ImVec2; p_max: ImVec2; fill_col: ImU32; border: Boolean; rounding: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderFrame';
+
+procedure igRenderFrameBorder(p_min: ImVec2; p_max: ImVec2; rounding: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderFrameBorder';
+
+procedure igRenderColorRectWithAlphaCheckerboard(draw_list: PImDrawList; p_min: ImVec2; p_max: ImVec2; fill_col: ImU32; grid_step: Single; grid_off: ImVec2; rounding: Single; flags: ImDrawFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderColorRectWithAlphaCheckerboard';
+
+procedure igRenderNavHighlight(bb: ImRect; id: ImGuiID; flags: ImGuiNavHighlightFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderNavHighlight';
+
+function igFindRenderedTextEnd(const text: PAnsiChar; const text_end: PAnsiChar): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindRenderedTextEnd';
+
+procedure igRenderMouseCursor(pos: ImVec2; scale: Single; mouse_cursor: ImGuiMouseCursor; col_fill: ImU32; col_border: ImU32; col_shadow: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderMouseCursor';
+
+procedure igRenderArrow(draw_list: PImDrawList; pos: ImVec2; col: ImU32; dir: ImGuiDir; scale: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrow';
+
+procedure igRenderBullet(draw_list: PImDrawList; pos: ImVec2; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderBullet';
+
+procedure igRenderCheckMark(draw_list: PImDrawList; pos: ImVec2; col: ImU32; sz: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderCheckMark';
+
+procedure igRenderArrowPointingAt(draw_list: PImDrawList; pos: ImVec2; half_sz: ImVec2; direction: ImGuiDir; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrowPointingAt';
+
+procedure igRenderArrowDockMenu(draw_list: PImDrawList; p_min: ImVec2; sz: Single; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrowDockMenu';
+
+procedure igRenderRectFilledRangeH(draw_list: PImDrawList; rect: ImRect; col: ImU32; x_start_norm: Single; x_end_norm: Single; rounding: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderRectFilledRangeH';
+
+procedure igRenderRectFilledWithHole(draw_list: PImDrawList; outer: ImRect; inner: ImRect; col: ImU32; rounding: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderRectFilledWithHole';
+
+function igCalcRoundingFlagsForRectInRect(r_in: ImRect; r_outer: ImRect; threshold: Single): ImDrawFlags; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcRoundingFlagsForRectInRect';
+
+procedure igTextEx(const text: PAnsiChar; const text_end: PAnsiChar; flags: ImGuiTextFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextEx';
+
+function igButtonEx(const label_: PAnsiChar; size_arg: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButtonEx';
+
+function igArrowButtonEx(const str_id: PAnsiChar; dir: ImGuiDir; size_arg: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igArrowButtonEx';
+
+function igImageButtonEx(id: ImGuiID; texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; bg_col: ImVec4; tint_col: ImVec4; flags: ImGuiButtonFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImageButtonEx';
+
+procedure igSeparatorEx(flags: ImGuiSeparatorFlags; thickness: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorEx';
+
+procedure igSeparatorTextEx(id: ImGuiID; const label_: PAnsiChar; const label_end: PAnsiChar; extra_width: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorTextEx';
+
+function igCheckboxFlags_S64Ptr(const label_: PAnsiChar; flags: PImS64; flags_value: ImS64): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_S64Ptr';
+
+function igCheckboxFlags_U64Ptr(const label_: PAnsiChar; flags: PImU64; flags_value: ImU64): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_U64Ptr';
+
+function igCloseButton(id: ImGuiID; pos: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCloseButton';
+
+function igCollapseButton(id: ImGuiID; pos: ImVec2; dock_node: PImGuiDockNode): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapseButton';
+
+procedure igScrollbar(axis: ImGuiAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollbar';
+
+function igScrollbarEx(bb: ImRect; id: ImGuiID; axis: ImGuiAxis; p_scroll_v: PImS64; avail_v: ImS64; contents_v: ImS64; flags: ImDrawFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollbarEx';
+
+procedure igGetWindowScrollbarRect(pOut: PImRect; window: PImGuiWindow; axis: ImGuiAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowScrollbarRect';
+
+function igGetWindowScrollbarID(window: PImGuiWindow; axis: ImGuiAxis): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowScrollbarID';
+
+function igGetWindowResizeCornerID(window: PImGuiWindow; n: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowResizeCornerID';
+
+function igGetWindowResizeBorderID(window: PImGuiWindow; dir: ImGuiDir): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowResizeBorderID';
+
+function igButtonBehavior(bb: ImRect; id: ImGuiID; out_hovered: PBoolean; out_held: PBoolean; flags: ImGuiButtonFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButtonBehavior';
+
+function igDragBehavior(id: ImGuiID; data_type: ImGuiDataType; p_v: Pointer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragBehavior';
+
+function igSliderBehavior(bb: ImRect; id: ImGuiID; data_type: ImGuiDataType; p_v: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags; out_grab_bb: PImRect): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderBehavior';
+
+function igSplitterBehavior(bb: ImRect; id: ImGuiID; axis: ImGuiAxis; size1: PSingle; size2: PSingle; min_size1: Single; min_size2: Single; hover_extend: Single; hover_visibility_delay: Single; bg_col: ImU32): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSplitterBehavior';
+
+function igTreeNodeBehavior(id: ImGuiID; flags: ImGuiTreeNodeFlags; const label_: PAnsiChar; const label_end: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeBehavior';
+
+procedure igTreePushOverrideID(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePushOverrideID';
+
+procedure igTreeNodeSetOpen(id: ImGuiID; open: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeSetOpen';
+
+function igTreeNodeUpdateNextOpen(id: ImGuiID; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeUpdateNextOpen';
+
+procedure igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemSelectionUserData';
+
+function igDataTypeGetInfo(data_type: ImGuiDataType): PImGuiDataTypeInfo; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeGetInfo';
+
+function igDataTypeFormatString(buf: PAnsiChar; buf_size: Integer; data_type: ImGuiDataType; const p_data: Pointer; const format: PAnsiChar): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeFormatString';
+
+procedure igDataTypeApplyOp(data_type: ImGuiDataType; op: Integer; output: Pointer; const arg_1: Pointer; const arg_2: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeApplyOp';
+
+function igDataTypeApplyFromText(const buf: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const format: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeApplyFromText';
+
+function igDataTypeCompare(data_type: ImGuiDataType; const arg_1: Pointer; const arg_2: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeCompare';
+
+function igDataTypeClamp(data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeClamp';
+
+function igInputTextEx(const label_: PAnsiChar; const hint: PAnsiChar; buf: PAnsiChar; buf_size: Integer; size_arg: ImVec2; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextEx';
+
+procedure igInputTextDeactivateHook(id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextDeactivateHook';
+
+function igTempInputText(bb: ImRect; id: ImGuiID; const label_: PAnsiChar; buf: PAnsiChar; buf_size: Integer; flags: ImGuiInputTextFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputText';
+
+function igTempInputScalar(bb: ImRect; id: ImGuiID; const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const format: PAnsiChar; const p_clamp_min: Pointer; const p_clamp_max: Pointer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputScalar';
+
+function igTempInputIsActive(id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputIsActive';
+
+function igGetInputTextState(id: ImGuiID): PImGuiInputTextState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetInputTextState';
+
+procedure igColorTooltip(const text: PAnsiChar; const col: PSingle; flags: ImGuiColorEditFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorTooltip';
+
+procedure igColorEditOptionsPopup(const col: PSingle; flags: ImGuiColorEditFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEditOptionsPopup';
+
+procedure igColorPickerOptionsPopup(const ref_col: PSingle; flags: ImGuiColorEditFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPickerOptionsPopup';
+
+type
+  igPlotEx_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;
+
+function igPlotEx(plot_type: ImGuiPlotType; const label_: PAnsiChar; values_getter: igPlotEx_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; size_arg: ImVec2): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotEx';
+
+procedure igShadeVertsLinearColorGradientKeepAlpha(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; gradient_p0: ImVec2; gradient_p1: ImVec2; col0: ImU32; col1: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsLinearColorGradientKeepAlpha';
+
+procedure igShadeVertsLinearUV(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; a: ImVec2; b: ImVec2; uv_a: ImVec2; uv_b: ImVec2; clamp: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsLinearUV';
+
+procedure igShadeVertsTransformPos(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; pivot_in: ImVec2; cos_a: Single; sin_a: Single; pivot_out: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsTransformPos';
+
+procedure igGcCompactTransientMiscBuffers(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcCompactTransientMiscBuffers';
+
+procedure igGcCompactTransientWindowBuffers(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcCompactTransientWindowBuffers';
+
+procedure igGcAwakeTransientWindowBuffers(window: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcAwakeTransientWindowBuffers';
+
+procedure igDebugLog(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLog';
+
+procedure igDebugLogV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLogV';
+
+procedure igDebugAllocHook(info: PImGuiDebugAllocInfo; frame_count: Integer; ptr: Pointer; size: NativeUInt); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugAllocHook';
+
+procedure igErrorCheckEndFrameRecover(log_callback: ImGuiErrorLogCallback; user_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckEndFrameRecover';
+
+procedure igErrorCheckEndWindowRecover(log_callback: ImGuiErrorLogCallback; user_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckEndWindowRecover';
+
+procedure igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckUsingSetCursorPosToExtendParentBoundaries';
+
+procedure igDebugDrawCursorPos(col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawCursorPos';
+
+procedure igDebugDrawLineExtents(col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawLineExtents';
+
+procedure igDebugDrawItemRect(col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawItemRect';
+
+procedure igDebugLocateItem(target_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItem';
+
+procedure igDebugLocateItemOnHover(target_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItemOnHover';
+
+procedure igDebugLocateItemResolveWithLastItem(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItemResolveWithLastItem';
+
+procedure igDebugStartItemPicker(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugStartItemPicker';
+
+procedure igShowFontAtlas(atlas: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowFontAtlas';
+
+procedure igDebugHookIdInfo(id: ImGuiID; data_type: ImGuiDataType; const data_id: Pointer; const data_id_end: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugHookIdInfo';
+
+procedure igDebugNodeColumns(columns: PImGuiOldColumns); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeColumns';
+
+procedure igDebugNodeDockNode(node: PImGuiDockNode; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDockNode';
+
+procedure igDebugNodeDrawList(window: PImGuiWindow; viewport: PImGuiViewportP; const draw_list: PImDrawList; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDrawList';
+
+procedure igDebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list: PImDrawList; const draw_list: PImDrawList; const draw_cmd: PImDrawCmd; show_mesh: Boolean; show_aabb: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDrawCmdShowMeshAndBoundingBox';
+
+procedure igDebugNodeFont(font: PImFont); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeFont';
+
+procedure igDebugNodeFontGlyph(font: PImFont; const glyph: PImFontGlyph); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeFontGlyph';
+
+procedure igDebugNodeStorage(storage: PImGuiStorage; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeStorage';
+
+procedure igDebugNodeTabBar(tab_bar: PImGuiTabBar; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTabBar';
+
+procedure igDebugNodeTable(table: PImGuiTable); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTable';
+
+procedure igDebugNodeTableSettings(settings: PImGuiTableSettings); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTableSettings';
+
+procedure igDebugNodeInputTextState(state: PImGuiInputTextState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeInputTextState';
+
+procedure igDebugNodeTypingSelectState(state: PImGuiTypingSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTypingSelectState';
+
+procedure igDebugNodeWindow(window: PImGuiWindow; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindow';
+
+procedure igDebugNodeWindowSettings(settings: PImGuiWindowSettings); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowSettings';
+
+procedure igDebugNodeWindowsList(windows: PImVector_ImGuiWindowPtr; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowsList';
+
+procedure igDebugNodeWindowsListByBeginStackParent(windows: PPImGuiWindow; windows_size: Integer; parent_in_begin_stack: PImGuiWindow); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowsListByBeginStackParent';
+
+procedure igDebugNodeViewport(viewport: PImGuiViewportP); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeViewport';
+
+procedure igDebugRenderKeyboardPreview(draw_list: PImDrawList); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderKeyboardPreview';
+
+procedure igDebugRenderViewportThumbnail(draw_list: PImDrawList; viewport: PImGuiViewportP; bb: ImRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderViewportThumbnail';
+
+function igImFontAtlasGetBuilderForStbTruetype(): PImFontBuilderIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasGetBuilderForStbTruetype';
+
+procedure igImFontAtlasUpdateConfigDataPointers(atlas: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasUpdateConfigDataPointers';
+
+procedure igImFontAtlasBuildInit(atlas: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildInit';
+
+procedure igImFontAtlasBuildSetupFont(atlas: PImFontAtlas; font: PImFont; font_config: PImFontConfig; ascent: Single; descent: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildSetupFont';
+
+procedure igImFontAtlasBuildPackCustomRects(atlas: PImFontAtlas; stbrp_context_opaque: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildPackCustomRects';
+
+procedure igImFontAtlasBuildFinish(atlas: PImFontAtlas); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildFinish';
+
+procedure igImFontAtlasBuildRender8bppRectFromString(atlas: PImFontAtlas; x: Integer; y: Integer; w: Integer; h: Integer; const in_str: PAnsiChar; in_marker_char: AnsiChar; in_marker_pixel_value: Byte); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildRender8bppRectFromString';
+
+procedure igImFontAtlasBuildRender32bppRectFromString(atlas: PImFontAtlas; x: Integer; y: Integer; w: Integer; h: Integer; const in_str: PAnsiChar; in_marker_char: AnsiChar; in_marker_pixel_value: Cardinal); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildRender32bppRectFromString';
+
+procedure igImFontAtlasBuildMultiplyCalcLookupTable(out_table: PByte; in_multiply_factor: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildMultiplyCalcLookupTable';
+
+procedure igImFontAtlasBuildMultiplyRectAlpha8(table: PByte; pixels: PByte; x: Integer; y: Integer; w: Integer; h: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildMultiplyRectAlpha8';
+
+/////////////////////////hand written functions
+procedure igLogText(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogText';
+
+procedure ImGuiTextBuffer_appendf(buffer: PImGuiTextBuffer; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_appendf';
+
+function igGET_FLT_MAX(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGET_FLT_MAX';
+
+function igGET_FLT_MIN(): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGET_FLT_MIN';
+
+function ImVector_ImWchar_create(): PImVector_ImWchar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_create';
+
+procedure ImVector_ImWchar_destroy(self: PImVector_ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_destroy';
+
+procedure ImVector_ImWchar_Init(p: PImVector_ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_Init';
+
+procedure ImVector_ImWchar_UnInit(p: PImVector_ImWchar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_UnInit';
+
+function ImPlotPoint_ImPlotPoint_Nil(): PImPlotPoint; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_Nil';
+
+procedure ImPlotPoint_destroy(self: PImPlotPoint); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_destroy';
+
+function ImPlotPoint_ImPlotPoint_double(_x: Double; _y: Double): PImPlotPoint; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_double';
+
+function ImPlotPoint_ImPlotPoint_Vec2(p: ImVec2): PImPlotPoint; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_Vec2';
+
+function ImPlotRange_ImPlotRange_Nil(): PImPlotRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_ImPlotRange_Nil';
+
+procedure ImPlotRange_destroy(self: PImPlotRange); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_destroy';
+
+function ImPlotRange_ImPlotRange_double(_min: Double; _max: Double): PImPlotRange; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_ImPlotRange_double';
+
+function ImPlotRange_Contains(self: PImPlotRange; value: Double): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Contains';
+
+function ImPlotRange_Size(self: PImPlotRange): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Size';
+
+function ImPlotRange_Clamp(self: PImPlotRange; value: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Clamp';
+
+function ImPlotRect_ImPlotRect_Nil(): PImPlotRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_ImPlotRect_Nil';
+
+procedure ImPlotRect_destroy(self: PImPlotRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_destroy';
+
+function ImPlotRect_ImPlotRect_double(x_min: Double; x_max: Double; y_min: Double; y_max: Double): PImPlotRect; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_ImPlotRect_double';
+
+function ImPlotRect_Contains_PlotPoInt(self: PImPlotRect; p: ImPlotPoint): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Contains_PlotPoInt';
+
+function ImPlotRect_Contains_double(self: PImPlotRect; x: Double; y: Double): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Contains_double';
+
+procedure ImPlotRect_Size(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Size';
+
+procedure ImPlotRect_Clamp_PlotPoInt(pOut: PImPlotPoint; self: PImPlotRect; p: ImPlotPoint); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Clamp_PlotPoInt';
+
+procedure ImPlotRect_Clamp_double(pOut: PImPlotPoint; self: PImPlotRect; x: Double; y: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Clamp_double';
+
+procedure ImPlotRect_Min(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Min';
+
+procedure ImPlotRect_Max(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Max';
+
+function ImPlotStyle_ImPlotStyle(): PImPlotStyle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotStyle_ImPlotStyle';
+
+procedure ImPlotStyle_destroy(self: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotStyle_destroy';
+
+function ImPlotInputMap_ImPlotInputMap(): PImPlotInputMap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotInputMap_ImPlotInputMap';
+
+procedure ImPlotInputMap_destroy(self: PImPlotInputMap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotInputMap_destroy';
+
+function ImPlot_CreateContext(): PImPlotContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CreateContext';
+
+procedure ImPlot_DestroyContext(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DestroyContext';
+
+function ImPlot_GetCurrentContext(): PImPlotContext; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentContext';
+
+procedure ImPlot_SetCurrentContext(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetCurrentContext';
+
+procedure ImPlot_SetImGuiContext(ctx: PImGuiContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetImGuiContext';
+
+function ImPlot_BeginPlot(const title_id: PAnsiChar; size: ImVec2; flags: ImPlotFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginPlot';
+
+procedure ImPlot_EndPlot(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndPlot';
+
+function ImPlot_BeginSubplots(const title_id: PAnsiChar; rows: Integer; cols: Integer; size: ImVec2; flags: ImPlotSubplotFlags; row_ratios: PSingle; col_ratios: PSingle): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginSubplots';
+
+procedure ImPlot_EndSubplots(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndSubplots';
+
+procedure ImPlot_SetupAxis(axis: ImAxis; const label_: PAnsiChar; flags: ImPlotAxisFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxis';
+
+procedure ImPlot_SetupAxisLimits(axis: ImAxis; v_min: Double; v_max: Double; cond: ImPlotCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLimits';
+
+procedure ImPlot_SetupAxisLinks(axis: ImAxis; link_min: PDouble; link_max: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLinks';
+
+procedure ImPlot_SetupAxisFormat_Str(axis: ImAxis; const fmt: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisFormat_Str';
+
+procedure ImPlot_SetupAxisFormat_PlotFormatter(axis: ImAxis; formatter: ImPlotFormatter; data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisFormat_PlotFormatter';
+
+procedure ImPlot_SetupAxisTicks_doublePtr(axis: ImAxis; const values: PDouble; n_ticks: Integer; labels: PPAnsiChar; keep_default: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisTicks_doublePtr';
+
+procedure ImPlot_SetupAxisTicks_double(axis: ImAxis; v_min: Double; v_max: Double; n_ticks: Integer; labels: PPAnsiChar; keep_default: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisTicks_double';
+
+procedure ImPlot_SetupAxisScale_PlotScale(axis: ImAxis; scale: ImPlotScale); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisScale_PlotScale';
+
+procedure ImPlot_SetupAxisScale_PlotTransform(axis: ImAxis; forward_: ImPlotTransform; inverse: ImPlotTransform; data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisScale_PlotTransform';
+
+procedure ImPlot_SetupAxisLimitsConstraints(axis: ImAxis; v_min: Double; v_max: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLimitsConstraints';
+
+procedure ImPlot_SetupAxisZoomConstraints(axis: ImAxis; z_min: Double; z_max: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisZoomConstraints';
+
+procedure ImPlot_SetupAxes(const x_label: PAnsiChar; const y_label: PAnsiChar; x_flags: ImPlotAxisFlags; y_flags: ImPlotAxisFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxes';
+
+procedure ImPlot_SetupAxesLimits(x_min: Double; x_max: Double; y_min: Double; y_max: Double; cond: ImPlotCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxesLimits';
+
+procedure ImPlot_SetupLegend(location: ImPlotLocation; flags: ImPlotLegendFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupLegend';
+
+procedure ImPlot_SetupMouseText(location: ImPlotLocation; flags: ImPlotMouseTextFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupMouseText';
+
+procedure ImPlot_SetupFinish(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupFinish';
+
+procedure ImPlot_SetNextAxisLimits(axis: ImAxis; v_min: Double; v_max: Double; cond: ImPlotCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisLimits';
+
+procedure ImPlot_SetNextAxisLinks(axis: ImAxis; link_min: PDouble; link_max: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisLinks';
+
+procedure ImPlot_SetNextAxisToFit(axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisToFit';
+
+procedure ImPlot_SetNextAxesLimits(x_min: Double; x_max: Double; y_min: Double; y_max: Double; cond: ImPlotCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxesLimits';
+
+procedure ImPlot_SetNextAxesToFit(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxesToFit';
+
+procedure ImPlot_PlotLine_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_FloatPtrInt';
+
+procedure ImPlot_PlotLine_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_doublePtrInt';
+
+procedure ImPlot_PlotLine_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S8PtrInt';
+
+procedure ImPlot_PlotLine_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U8PtrInt';
+
+procedure ImPlot_PlotLine_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S16PtrInt';
+
+procedure ImPlot_PlotLine_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U16PtrInt';
+
+procedure ImPlot_PlotLine_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S32PtrInt';
+
+procedure ImPlot_PlotLine_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U32PtrInt';
+
+procedure ImPlot_PlotLine_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S64PtrInt';
+
+procedure ImPlot_PlotLine_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U64PtrInt';
+
+procedure ImPlot_PlotLine_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_FloatPtrFloatPtr';
+
+procedure ImPlot_PlotLine_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_doublePtrdoublePtr';
+
+procedure ImPlot_PlotLine_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S8PtrS8Ptr';
+
+procedure ImPlot_PlotLine_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U8PtrU8Ptr';
+
+procedure ImPlot_PlotLine_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S16PtrS16Ptr';
+
+procedure ImPlot_PlotLine_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U16PtrU16Ptr';
+
+procedure ImPlot_PlotLine_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S32PtrS32Ptr';
+
+procedure ImPlot_PlotLine_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U32PtrU32Ptr';
+
+procedure ImPlot_PlotLine_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S64PtrS64Ptr';
+
+procedure ImPlot_PlotLine_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U64PtrU64Ptr';
+
+procedure ImPlot_PlotLineG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotLineFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLineG';
+
+procedure ImPlot_PlotScatter_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_FloatPtrInt';
+
+procedure ImPlot_PlotScatter_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_doublePtrInt';
+
+procedure ImPlot_PlotScatter_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S8PtrInt';
+
+procedure ImPlot_PlotScatter_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U8PtrInt';
+
+procedure ImPlot_PlotScatter_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S16PtrInt';
+
+procedure ImPlot_PlotScatter_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U16PtrInt';
+
+procedure ImPlot_PlotScatter_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S32PtrInt';
+
+procedure ImPlot_PlotScatter_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U32PtrInt';
+
+procedure ImPlot_PlotScatter_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S64PtrInt';
+
+procedure ImPlot_PlotScatter_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U64PtrInt';
+
+procedure ImPlot_PlotScatter_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_FloatPtrFloatPtr';
+
+procedure ImPlot_PlotScatter_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_doublePtrdoublePtr';
+
+procedure ImPlot_PlotScatter_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S8PtrS8Ptr';
+
+procedure ImPlot_PlotScatter_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U8PtrU8Ptr';
+
+procedure ImPlot_PlotScatter_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S16PtrS16Ptr';
+
+procedure ImPlot_PlotScatter_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U16PtrU16Ptr';
+
+procedure ImPlot_PlotScatter_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S32PtrS32Ptr';
+
+procedure ImPlot_PlotScatter_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U32PtrU32Ptr';
+
+procedure ImPlot_PlotScatter_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S64PtrS64Ptr';
+
+procedure ImPlot_PlotScatter_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U64PtrU64Ptr';
+
+procedure ImPlot_PlotScatterG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotScatterFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatterG';
+
+procedure ImPlot_PlotStairs_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_FloatPtrInt';
+
+procedure ImPlot_PlotStairs_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_doublePtrInt';
+
+procedure ImPlot_PlotStairs_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S8PtrInt';
+
+procedure ImPlot_PlotStairs_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U8PtrInt';
+
+procedure ImPlot_PlotStairs_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S16PtrInt';
+
+procedure ImPlot_PlotStairs_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U16PtrInt';
+
+procedure ImPlot_PlotStairs_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S32PtrInt';
+
+procedure ImPlot_PlotStairs_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U32PtrInt';
+
+procedure ImPlot_PlotStairs_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S64PtrInt';
+
+procedure ImPlot_PlotStairs_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U64PtrInt';
+
+procedure ImPlot_PlotStairs_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_FloatPtrFloatPtr';
+
+procedure ImPlot_PlotStairs_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_doublePtrdoublePtr';
+
+procedure ImPlot_PlotStairs_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S8PtrS8Ptr';
+
+procedure ImPlot_PlotStairs_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U8PtrU8Ptr';
+
+procedure ImPlot_PlotStairs_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S16PtrS16Ptr';
+
+procedure ImPlot_PlotStairs_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U16PtrU16Ptr';
+
+procedure ImPlot_PlotStairs_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S32PtrS32Ptr';
+
+procedure ImPlot_PlotStairs_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U32PtrU32Ptr';
+
+procedure ImPlot_PlotStairs_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S64PtrS64Ptr';
+
+procedure ImPlot_PlotStairs_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U64PtrU64Ptr';
+
+procedure ImPlot_PlotStairsG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotStairsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairsG';
+
+procedure ImPlot_PlotShaded_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrInt';
+
+procedure ImPlot_PlotShaded_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrInt';
+
+procedure ImPlot_PlotShaded_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrInt';
+
+procedure ImPlot_PlotShaded_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrInt';
+
+procedure ImPlot_PlotShaded_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrInt';
+
+procedure ImPlot_PlotShaded_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrInt';
+
+procedure ImPlot_PlotShaded_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrInt';
+
+procedure ImPlot_PlotShaded_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrInt';
+
+procedure ImPlot_PlotShaded_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrInt';
+
+procedure ImPlot_PlotShaded_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrInt';
+
+procedure ImPlot_PlotShaded_FloatPtrFloatPtrInt(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrFloatPtrInt';
+
+procedure ImPlot_PlotShaded_doublePtrdoublePtrInt(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrdoublePtrInt';
+
+procedure ImPlot_PlotShaded_S8PtrS8PtrInt(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrS8PtrInt';
+
+procedure ImPlot_PlotShaded_U8PtrU8PtrInt(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrU8PtrInt';
+
+procedure ImPlot_PlotShaded_S16PtrS16PtrInt(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrS16PtrInt';
+
+procedure ImPlot_PlotShaded_U16PtrU16PtrInt(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrU16PtrInt';
+
+procedure ImPlot_PlotShaded_S32PtrS32PtrInt(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrS32PtrInt';
+
+procedure ImPlot_PlotShaded_U32PtrU32PtrInt(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrU32PtrInt';
+
+procedure ImPlot_PlotShaded_S64PtrS64PtrInt(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrS64PtrInt';
+
+procedure ImPlot_PlotShaded_U64PtrU64PtrInt(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrU64PtrInt';
+
+procedure ImPlot_PlotShaded_FloatPtrFloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys1: PSingle; const ys2: PSingle; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrFloatPtrFloatPtr';
+
+procedure ImPlot_PlotShaded_doublePtrdoublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys1: PDouble; const ys2: PDouble; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrdoublePtrdoublePtr';
+
+procedure ImPlot_PlotShaded_S8PtrS8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys1: PImS8; const ys2: PImS8; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrS8PtrS8Ptr';
+
+procedure ImPlot_PlotShaded_U8PtrU8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys1: PImU8; const ys2: PImU8; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrU8PtrU8Ptr';
+
+procedure ImPlot_PlotShaded_S16PtrS16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys1: PImS16; const ys2: PImS16; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrS16PtrS16Ptr';
+
+procedure ImPlot_PlotShaded_U16PtrU16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys1: PImU16; const ys2: PImU16; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrU16PtrU16Ptr';
+
+procedure ImPlot_PlotShaded_S32PtrS32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys1: PImS32; const ys2: PImS32; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrS32PtrS32Ptr';
+
+procedure ImPlot_PlotShaded_U32PtrU32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys1: PImU32; const ys2: PImU32; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrU32PtrU32Ptr';
+
+procedure ImPlot_PlotShaded_S64PtrS64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys1: PImS64; const ys2: PImS64; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrS64PtrS64Ptr';
+
+procedure ImPlot_PlotShaded_U64PtrU64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys1: PImU64; const ys2: PImU64; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrU64PtrU64Ptr';
+
+procedure ImPlot_PlotShadedG(const label_id: PAnsiChar; getter1: ImPlotPoint_getter; data1: Pointer; getter2: ImPlotPoint_getter; data2: Pointer; count: Integer; flags: ImPlotShadedFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShadedG';
+
+procedure ImPlot_PlotBars_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_FloatPtrInt';
+
+procedure ImPlot_PlotBars_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_doublePtrInt';
+
+procedure ImPlot_PlotBars_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S8PtrInt';
+
+procedure ImPlot_PlotBars_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U8PtrInt';
+
+procedure ImPlot_PlotBars_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S16PtrInt';
+
+procedure ImPlot_PlotBars_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U16PtrInt';
+
+procedure ImPlot_PlotBars_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S32PtrInt';
+
+procedure ImPlot_PlotBars_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U32PtrInt';
+
+procedure ImPlot_PlotBars_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S64PtrInt';
+
+procedure ImPlot_PlotBars_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U64PtrInt';
+
+procedure ImPlot_PlotBars_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_FloatPtrFloatPtr';
+
+procedure ImPlot_PlotBars_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_doublePtrdoublePtr';
+
+procedure ImPlot_PlotBars_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S8PtrS8Ptr';
+
+procedure ImPlot_PlotBars_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U8PtrU8Ptr';
+
+procedure ImPlot_PlotBars_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S16PtrS16Ptr';
+
+procedure ImPlot_PlotBars_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U16PtrU16Ptr';
+
+procedure ImPlot_PlotBars_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S32PtrS32Ptr';
+
+procedure ImPlot_PlotBars_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U32PtrU32Ptr';
+
+procedure ImPlot_PlotBars_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S64PtrS64Ptr';
+
+procedure ImPlot_PlotBars_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U64PtrU64Ptr';
+
+procedure ImPlot_PlotBarsG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; bar_size: Double; flags: ImPlotBarsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarsG';
+
+procedure ImPlot_PlotBarGroups_FloatPtr(label_ids: PPAnsiChar; const values: PSingle; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_FloatPtr';
+
+procedure ImPlot_PlotBarGroups_doublePtr(label_ids: PPAnsiChar; const values: PDouble; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_doublePtr';
+
+procedure ImPlot_PlotBarGroups_S8Ptr(label_ids: PPAnsiChar; const values: PImS8; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S8Ptr';
+
+procedure ImPlot_PlotBarGroups_U8Ptr(label_ids: PPAnsiChar; const values: PImU8; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U8Ptr';
+
+procedure ImPlot_PlotBarGroups_S16Ptr(label_ids: PPAnsiChar; const values: PImS16; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S16Ptr';
+
+procedure ImPlot_PlotBarGroups_U16Ptr(label_ids: PPAnsiChar; const values: PImU16; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U16Ptr';
+
+procedure ImPlot_PlotBarGroups_S32Ptr(label_ids: PPAnsiChar; const values: PImS32; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S32Ptr';
+
+procedure ImPlot_PlotBarGroups_U32Ptr(label_ids: PPAnsiChar; const values: PImU32; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U32Ptr';
+
+procedure ImPlot_PlotBarGroups_S64Ptr(label_ids: PPAnsiChar; const values: PImS64; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S64Ptr';
+
+procedure ImPlot_PlotBarGroups_U64Ptr(label_ids: PPAnsiChar; const values: PImU64; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U64Ptr';
+
+procedure ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrInt(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; const err: PSingle; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrInt';
+
+procedure ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrInt(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; const err: PDouble; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrInt';
+
+procedure ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrInt(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; const err: PImS8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrInt';
+
+procedure ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrInt(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; const err: PImU8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrInt';
+
+procedure ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrInt(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; const err: PImS16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrInt';
+
+procedure ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrInt(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; const err: PImU16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrInt';
+
+procedure ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrInt(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; const err: PImS32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrInt';
+
+procedure ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrInt(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; const err: PImU32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrInt';
+
+procedure ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrInt(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; const err: PImS64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrInt';
+
+procedure ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrInt(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; const err: PImU64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrInt';
+
+procedure ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; const neg: PSingle; const pos: PSingle; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrFloatPtr';
+
+procedure ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; const neg: PDouble; const pos: PDouble; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrdoublePtr';
+
+procedure ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; const neg: PImS8; const pos: PImS8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrS8Ptr';
+
+procedure ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; const neg: PImU8; const pos: PImU8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrU8Ptr';
+
+procedure ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; const neg: PImS16; const pos: PImS16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrS16Ptr';
+
+procedure ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; const neg: PImU16; const pos: PImU16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrU16Ptr';
+
+procedure ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; const neg: PImS32; const pos: PImS32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrS32Ptr';
+
+procedure ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; const neg: PImU32; const pos: PImU32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrU32Ptr';
+
+procedure ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; const neg: PImS64; const pos: PImS64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrS64Ptr';
+
+procedure ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; const neg: PImU64; const pos: PImU64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrU64Ptr';
+
+procedure ImPlot_PlotStems_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_FloatPtrInt';
+
+procedure ImPlot_PlotStems_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_doublePtrInt';
+
+procedure ImPlot_PlotStems_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S8PtrInt';
+
+procedure ImPlot_PlotStems_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U8PtrInt';
+
+procedure ImPlot_PlotStems_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S16PtrInt';
+
+procedure ImPlot_PlotStems_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U16PtrInt';
+
+procedure ImPlot_PlotStems_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S32PtrInt';
+
+procedure ImPlot_PlotStems_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U32PtrInt';
+
+procedure ImPlot_PlotStems_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S64PtrInt';
+
+procedure ImPlot_PlotStems_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U64PtrInt';
+
+procedure ImPlot_PlotStems_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_FloatPtrFloatPtr';
+
+procedure ImPlot_PlotStems_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_doublePtrdoublePtr';
+
+procedure ImPlot_PlotStems_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S8PtrS8Ptr';
+
+procedure ImPlot_PlotStems_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U8PtrU8Ptr';
+
+procedure ImPlot_PlotStems_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S16PtrS16Ptr';
+
+procedure ImPlot_PlotStems_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U16PtrU16Ptr';
+
+procedure ImPlot_PlotStems_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S32PtrS32Ptr';
+
+procedure ImPlot_PlotStems_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U32PtrU32Ptr';
+
+procedure ImPlot_PlotStems_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S64PtrS64Ptr';
+
+procedure ImPlot_PlotStems_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U64PtrU64Ptr';
+
+procedure ImPlot_PlotInfLines_FloatPtr(const label_id: PAnsiChar; const values: PSingle; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_FloatPtr';
+
+procedure ImPlot_PlotInfLines_doublePtr(const label_id: PAnsiChar; const values: PDouble; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_doublePtr';
+
+procedure ImPlot_PlotInfLines_S8Ptr(const label_id: PAnsiChar; const values: PImS8; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S8Ptr';
+
+procedure ImPlot_PlotInfLines_U8Ptr(const label_id: PAnsiChar; const values: PImU8; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U8Ptr';
+
+procedure ImPlot_PlotInfLines_S16Ptr(const label_id: PAnsiChar; const values: PImS16; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S16Ptr';
+
+procedure ImPlot_PlotInfLines_U16Ptr(const label_id: PAnsiChar; const values: PImU16; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U16Ptr';
+
+procedure ImPlot_PlotInfLines_S32Ptr(const label_id: PAnsiChar; const values: PImS32; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S32Ptr';
+
+procedure ImPlot_PlotInfLines_U32Ptr(const label_id: PAnsiChar; const values: PImU32; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U32Ptr';
+
+procedure ImPlot_PlotInfLines_S64Ptr(const label_id: PAnsiChar; const values: PImS64; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S64Ptr';
+
+procedure ImPlot_PlotInfLines_U64Ptr(const label_id: PAnsiChar; const values: PImU64; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U64Ptr';
+
+procedure ImPlot_PlotPieChart_FloatPtrPlotFormatter(label_ids: PPAnsiChar; const values: PSingle; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_FloatPtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_doublePtrPlotFormatter(label_ids: PPAnsiChar; const values: PDouble; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_doublePtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_S8PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS8; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S8PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_U8PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU8; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U8PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_S16PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS16; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S16PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_U16PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU16; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U16PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_S32PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS32; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S32PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_U32PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU32; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U32PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_S64PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS64; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S64PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_U64PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU64; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U64PtrPlotFormatter';
+
+procedure ImPlot_PlotPieChart_FloatPtrStr(label_ids: PPAnsiChar; const values: PSingle; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_FloatPtrStr';
+
+procedure ImPlot_PlotPieChart_doublePtrStr(label_ids: PPAnsiChar; const values: PDouble; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_doublePtrStr';
+
+procedure ImPlot_PlotPieChart_S8PtrStr(label_ids: PPAnsiChar; const values: PImS8; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S8PtrStr';
+
+procedure ImPlot_PlotPieChart_U8PtrStr(label_ids: PPAnsiChar; const values: PImU8; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U8PtrStr';
+
+procedure ImPlot_PlotPieChart_S16PtrStr(label_ids: PPAnsiChar; const values: PImS16; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S16PtrStr';
+
+procedure ImPlot_PlotPieChart_U16PtrStr(label_ids: PPAnsiChar; const values: PImU16; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U16PtrStr';
+
+procedure ImPlot_PlotPieChart_S32PtrStr(label_ids: PPAnsiChar; const values: PImS32; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S32PtrStr';
+
+procedure ImPlot_PlotPieChart_U32PtrStr(label_ids: PPAnsiChar; const values: PImU32; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U32PtrStr';
+
+procedure ImPlot_PlotPieChart_S64PtrStr(label_ids: PPAnsiChar; const values: PImS64; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S64PtrStr';
+
+procedure ImPlot_PlotPieChart_U64PtrStr(label_ids: PPAnsiChar; const values: PImU64; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U64PtrStr';
+
+procedure ImPlot_PlotHeatmap_FloatPtr(const label_id: PAnsiChar; const values: PSingle; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_FloatPtr';
+
+procedure ImPlot_PlotHeatmap_doublePtr(const label_id: PAnsiChar; const values: PDouble; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_doublePtr';
+
+procedure ImPlot_PlotHeatmap_S8Ptr(const label_id: PAnsiChar; const values: PImS8; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S8Ptr';
+
+procedure ImPlot_PlotHeatmap_U8Ptr(const label_id: PAnsiChar; const values: PImU8; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U8Ptr';
+
+procedure ImPlot_PlotHeatmap_S16Ptr(const label_id: PAnsiChar; const values: PImS16; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S16Ptr';
+
+procedure ImPlot_PlotHeatmap_U16Ptr(const label_id: PAnsiChar; const values: PImU16; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U16Ptr';
+
+procedure ImPlot_PlotHeatmap_S32Ptr(const label_id: PAnsiChar; const values: PImS32; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S32Ptr';
+
+procedure ImPlot_PlotHeatmap_U32Ptr(const label_id: PAnsiChar; const values: PImU32; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U32Ptr';
+
+procedure ImPlot_PlotHeatmap_S64Ptr(const label_id: PAnsiChar; const values: PImS64; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S64Ptr';
+
+procedure ImPlot_PlotHeatmap_U64Ptr(const label_id: PAnsiChar; const values: PImU64; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U64Ptr';
+
+function ImPlot_PlotHistogram_FloatPtr(const label_id: PAnsiChar; const values: PSingle; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_FloatPtr';
+
+function ImPlot_PlotHistogram_doublePtr(const label_id: PAnsiChar; const values: PDouble; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_doublePtr';
+
+function ImPlot_PlotHistogram_S8Ptr(const label_id: PAnsiChar; const values: PImS8; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S8Ptr';
+
+function ImPlot_PlotHistogram_U8Ptr(const label_id: PAnsiChar; const values: PImU8; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U8Ptr';
+
+function ImPlot_PlotHistogram_S16Ptr(const label_id: PAnsiChar; const values: PImS16; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S16Ptr';
+
+function ImPlot_PlotHistogram_U16Ptr(const label_id: PAnsiChar; const values: PImU16; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U16Ptr';
+
+function ImPlot_PlotHistogram_S32Ptr(const label_id: PAnsiChar; const values: PImS32; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S32Ptr';
+
+function ImPlot_PlotHistogram_U32Ptr(const label_id: PAnsiChar; const values: PImU32; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U32Ptr';
+
+function ImPlot_PlotHistogram_S64Ptr(const label_id: PAnsiChar; const values: PImS64; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S64Ptr';
+
+function ImPlot_PlotHistogram_U64Ptr(const label_id: PAnsiChar; const values: PImU64; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U64Ptr';
+
+function ImPlot_PlotHistogram2D_FloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_FloatPtr';
+
+function ImPlot_PlotHistogram2D_doublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_doublePtr';
+
+function ImPlot_PlotHistogram2D_S8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S8Ptr';
+
+function ImPlot_PlotHistogram2D_U8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U8Ptr';
+
+function ImPlot_PlotHistogram2D_S16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S16Ptr';
+
+function ImPlot_PlotHistogram2D_U16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U16Ptr';
+
+function ImPlot_PlotHistogram2D_S32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S32Ptr';
+
+function ImPlot_PlotHistogram2D_U32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U32Ptr';
+
+function ImPlot_PlotHistogram2D_S64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S64Ptr';
+
+function ImPlot_PlotHistogram2D_U64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U64Ptr';
+
+procedure ImPlot_PlotDigital_FloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_FloatPtr';
+
+procedure ImPlot_PlotDigital_doublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_doublePtr';
+
+procedure ImPlot_PlotDigital_S8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S8Ptr';
+
+procedure ImPlot_PlotDigital_U8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U8Ptr';
+
+procedure ImPlot_PlotDigital_S16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S16Ptr';
+
+procedure ImPlot_PlotDigital_U16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U16Ptr';
+
+procedure ImPlot_PlotDigital_S32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S32Ptr';
+
+procedure ImPlot_PlotDigital_U32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U32Ptr';
+
+procedure ImPlot_PlotDigital_S64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S64Ptr';
+
+procedure ImPlot_PlotDigital_U64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U64Ptr';
+
+procedure ImPlot_PlotDigitalG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotDigitalFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigitalG';
+
+procedure ImPlot_PlotImage(const label_id: PAnsiChar; user_texture_id: ImTextureID; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; flags: ImPlotImageFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotImage';
+
+procedure ImPlot_PlotText(const text: PAnsiChar; x: Double; y: Double; pix_offset: ImVec2; flags: ImPlotTextFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotText';
+
+procedure ImPlot_PlotDummy(const label_id: PAnsiChar; flags: ImPlotDummyFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDummy';
+
+function ImPlot_DragPoint(id: Integer; x: PDouble; y: PDouble; col: ImVec4; size: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragPoint';
+
+function ImPlot_DragLineX(id: Integer; x: PDouble; col: ImVec4; thickness: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragLineX';
+
+function ImPlot_DragLineY(id: Integer; y: PDouble; col: ImVec4; thickness: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragLineY';
+
+function ImPlot_DragRect(id: Integer; x1: PDouble; y1: PDouble; x2: PDouble; y2: PDouble; col: ImVec4; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragRect';
+
+procedure ImPlot_Annotation_Bool(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; round: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Annotation_Bool';
+
+procedure ImPlot_Annotation_Str(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Annotation_Str';
+
+procedure ImPlot_AnnotationV(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnnotationV';
+
+procedure ImPlot_TagX_Bool(x: Double; col: ImVec4; round: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagX_Bool';
+
+procedure ImPlot_TagX_Str(x: Double; col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagX_Str';
+
+procedure ImPlot_TagXV(x: Double; col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagXV';
+
+procedure ImPlot_TagY_Bool(y: Double; col: ImVec4; round: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagY_Bool';
+
+procedure ImPlot_TagY_Str(y: Double; col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagY_Str';
+
+procedure ImPlot_TagYV(y: Double; col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagYV';
+
+procedure ImPlot_SetAxis(axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetAxis';
+
+procedure ImPlot_SetAxes(x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetAxes';
+
+procedure ImPlot_PixelsToPlot_Vec2(pOut: PImPlotPoint; pix: ImVec2; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PixelsToPlot_Vec2';
+
+procedure ImPlot_PixelsToPlot_Float(pOut: PImPlotPoint; x: Single; y: Single; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PixelsToPlot_Float';
+
+procedure ImPlot_PlotToPixels_PlotPoInt(pOut: PImVec2; plt: ImPlotPoint; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotToPixels_PlotPoInt';
+
+procedure ImPlot_PlotToPixels_double(pOut: PImVec2; x: Double; y: Double; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotToPixels_double';
+
+procedure ImPlot_GetPlotPos(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotPos';
+
+procedure ImPlot_GetPlotSize(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotSize';
+
+procedure ImPlot_GetPlotMousePos(pOut: PImPlotPoint; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotMousePos';
+
+procedure ImPlot_GetPlotLimits(pOut: PImPlotRect; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotLimits';
+
+function ImPlot_IsPlotHovered(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsPlotHovered';
+
+function ImPlot_IsAxisHovered(axis: ImAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsAxisHovered';
+
+function ImPlot_IsSubplotsHovered(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsSubplotsHovered';
+
+function ImPlot_IsPlotSelected(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsPlotSelected';
+
+procedure ImPlot_GetPlotSelection(pOut: PImPlotRect; x_axis: ImAxis; y_axis: ImAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotSelection';
+
+procedure ImPlot_CancelPlotSelection(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CancelPlotSelection';
+
+procedure ImPlot_HideNextItem(hidden: Boolean; cond: ImPlotCond); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_HideNextItem';
+
+function ImPlot_BeginAlignedPlots(const group_id: PAnsiChar; vertical: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginAlignedPlots';
+
+procedure ImPlot_EndAlignedPlots(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndAlignedPlots';
+
+function ImPlot_BeginLegendPopup(const label_id: PAnsiChar; mouse_button: ImGuiMouseButton): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginLegendPopup';
+
+procedure ImPlot_EndLegendPopup(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndLegendPopup';
+
+function ImPlot_IsLegendEntryHovered(const label_id: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsLegendEntryHovered';
+
+function ImPlot_BeginDragDropTargetPlot(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetPlot';
+
+function ImPlot_BeginDragDropTargetAxis(axis: ImAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetAxis';
+
+function ImPlot_BeginDragDropTargetLegend(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetLegend';
+
+procedure ImPlot_EndDragDropTarget(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndDragDropTarget';
+
+function ImPlot_BeginDragDropSourcePlot(flags: ImGuiDragDropFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourcePlot';
+
+function ImPlot_BeginDragDropSourceAxis(axis: ImAxis; flags: ImGuiDragDropFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourceAxis';
+
+function ImPlot_BeginDragDropSourceItem(const label_id: PAnsiChar; flags: ImGuiDragDropFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourceItem';
+
+procedure ImPlot_EndDragDropSource(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndDragDropSource';
+
+function ImPlot_GetStyle(): PImPlotStyle; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyle';
+
+procedure ImPlot_StyleColorsAuto(dst: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsAuto';
+
+procedure ImPlot_StyleColorsClassic(dst: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsClassic';
+
+procedure ImPlot_StyleColorsDark(dst: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsDark';
+
+procedure ImPlot_StyleColorsLight(dst: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsLight';
+
+procedure ImPlot_PushStyleColor_U32(idx: ImPlotCol; col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleColor_U32';
+
+procedure ImPlot_PushStyleColor_Vec4(idx: ImPlotCol; col: ImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleColor_Vec4';
+
+procedure ImPlot_PopStyleColor(count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopStyleColor';
+
+procedure ImPlot_PushStyleVar_Float(idx: ImPlotStyleVar; val: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Float';
+
+procedure ImPlot_PushStyleVar_Int(idx: ImPlotStyleVar; val: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Int';
+
+procedure ImPlot_PushStyleVar_Vec2(idx: ImPlotStyleVar; val: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Vec2';
+
+procedure ImPlot_PopStyleVar(count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopStyleVar';
+
+procedure ImPlot_SetNextLineStyle(col: ImVec4; weight: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextLineStyle';
+
+procedure ImPlot_SetNextFillStyle(col: ImVec4; alpha_mod: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextFillStyle';
+
+procedure ImPlot_SetNextMarkerStyle(marker: ImPlotMarker; size: Single; fill: ImVec4; weight: Single; outline: ImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextMarkerStyle';
+
+procedure ImPlot_SetNextErrorBarStyle(col: ImVec4; size: Single; weight: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextErrorBarStyle';
+
+procedure ImPlot_GetLastItemColor(pOut: PImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLastItemColor';
+
+function ImPlot_GetStyleColorName(idx: ImPlotCol): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorName';
+
+function ImPlot_GetMarkerName(idx: ImPlotMarker): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetMarkerName';
+
+function ImPlot_AddColormap_Vec4Ptr(const name: PAnsiChar; const cols: PImVec4; size: Integer; qual: Boolean): ImPlotColormap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddColormap_Vec4Ptr';
+
+function ImPlot_AddColormap_U32Ptr(const name: PAnsiChar; const cols: PImU32; size: Integer; qual: Boolean): ImPlotColormap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddColormap_U32Ptr';
+
+function ImPlot_GetColormapCount(): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapCount';
+
+function ImPlot_GetColormapName(cmap: ImPlotColormap): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapName';
+
+function ImPlot_GetColormapIndex(const name: PAnsiChar): ImPlotColormap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapIndex';
+
+procedure ImPlot_PushColormap_PlotColormap(cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushColormap_PlotColormap';
+
+procedure ImPlot_PushColormap_Str(const name: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushColormap_Str';
+
+procedure ImPlot_PopColormap(count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopColormap';
+
+procedure ImPlot_NextColormapColor(pOut: PImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NextColormapColor';
+
+function ImPlot_GetColormapSize(cmap: ImPlotColormap): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapSize';
+
+procedure ImPlot_GetColormapColor(pOut: PImVec4; idx: Integer; cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapColor';
+
+procedure ImPlot_SampleColormap(pOut: PImVec4; t: Single; cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SampleColormap';
+
+procedure ImPlot_ColormapScale(const label_: PAnsiChar; scale_min: Double; scale_max: Double; size: ImVec2; const format: PAnsiChar; flags: ImPlotColormapScaleFlags; cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapScale';
+
+function ImPlot_ColormapSlider(const label_: PAnsiChar; t: PSingle; out_: PImVec4; const format: PAnsiChar; cmap: ImPlotColormap): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapSlider';
+
+function ImPlot_ColormapButton(const label_: PAnsiChar; size: ImVec2; cmap: ImPlotColormap): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapButton';
+
+procedure ImPlot_BustColorCache(const plot_title_id: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustColorCache';
+
+function ImPlot_GetInputMap(): PImPlotInputMap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetInputMap';
+
+procedure ImPlot_MapInputDefault(dst: PImPlotInputMap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MapInputDefault';
+
+procedure ImPlot_MapInputReverse(dst: PImPlotInputMap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MapInputReverse';
+
+procedure ImPlot_ItemIcon_Vec4(col: ImVec4); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ItemIcon_Vec4';
+
+procedure ImPlot_ItemIcon_U32(col: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ItemIcon_U32';
+
+procedure ImPlot_ColormapIcon(cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapIcon';
+
+function ImPlot_GetPlotDrawList(): PImDrawList; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotDrawList';
+
+procedure ImPlot_PushPlotClipRect(expand: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushPlotClipRect';
+
+procedure ImPlot_PopPlotClipRect(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopPlotClipRect';
+
+function ImPlot_ShowStyleSelector(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowStyleSelector';
+
+function ImPlot_ShowColormapSelector(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowColormapSelector';
+
+function ImPlot_ShowInputMapSelector(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowInputMapSelector';
+
+procedure ImPlot_ShowStyleEditor(ref: PImPlotStyle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowStyleEditor';
+
+procedure ImPlot_ShowUserGuide(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowUserGuide';
+
+procedure ImPlot_ShowMetricsWindow(p_popen: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowMetricsWindow';
+
+procedure ImPlot_ShowDemoWindow(p_open: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowDemoWindow';
+
+function ImPlot_ImLog10_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_Float';
+
+function ImPlot_ImLog10_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_double';
+
+function ImPlot_ImSinh_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSinh_Float';
+
+function ImPlot_ImSinh_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSinh_double';
+
+function ImPlot_ImAsinh_Float(x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAsinh_Float';
+
+function ImPlot_ImAsinh_double(x: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAsinh_double';
+
+function ImPlot_ImRemap_Float(x: Single; x0: Single; x1: Single; y0: Single; y1: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_Float';
+
+function ImPlot_ImRemap_double(x: Double; x0: Double; x1: Double; y0: Double; y1: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_double';
+
+function ImPlot_ImRemap_S8(x: ImS8; x0: ImS8; x1: ImS8; y0: ImS8; y1: ImS8): ImS8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S8';
+
+function ImPlot_ImRemap_U8(x: ImU8; x0: ImU8; x1: ImU8; y0: ImU8; y1: ImU8): ImU8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U8';
+
+function ImPlot_ImRemap_S16(x: ImS16; x0: ImS16; x1: ImS16; y0: ImS16; y1: ImS16): ImS16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S16';
+
+function ImPlot_ImRemap_U16(x: ImU16; x0: ImU16; x1: ImU16; y0: ImU16; y1: ImU16): ImU16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U16';
+
+function ImPlot_ImRemap_S32(x: ImS32; x0: ImS32; x1: ImS32; y0: ImS32; y1: ImS32): ImS32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S32';
+
+function ImPlot_ImRemap_U32(x: ImU32; x0: ImU32; x1: ImU32; y0: ImU32; y1: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U32';
+
+function ImPlot_ImRemap_S64(x: ImS64; x0: ImS64; x1: ImS64; y0: ImS64; y1: ImS64): ImS64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S64';
+
+function ImPlot_ImRemap_U64(x: ImU64; x0: ImU64; x1: ImU64; y0: ImU64; y1: ImU64): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U64';
+
+function ImPlot_ImRemap01_Float(x: Single; x0: Single; x1: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_Float';
+
+function ImPlot_ImRemap01_double(x: Double; x0: Double; x1: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_double';
+
+function ImPlot_ImRemap01_S8(x: ImS8; x0: ImS8; x1: ImS8): ImS8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S8';
+
+function ImPlot_ImRemap01_U8(x: ImU8; x0: ImU8; x1: ImU8): ImU8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U8';
+
+function ImPlot_ImRemap01_S16(x: ImS16; x0: ImS16; x1: ImS16): ImS16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S16';
+
+function ImPlot_ImRemap01_U16(x: ImU16; x0: ImU16; x1: ImU16): ImU16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U16';
+
+function ImPlot_ImRemap01_S32(x: ImS32; x0: ImS32; x1: ImS32): ImS32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S32';
+
+function ImPlot_ImRemap01_U32(x: ImU32; x0: ImU32; x1: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U32';
+
+function ImPlot_ImRemap01_S64(x: ImS64; x0: ImS64; x1: ImS64): ImS64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S64';
+
+function ImPlot_ImRemap01_U64(x: ImU64; x0: ImU64; x1: ImU64): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U64';
+
+function ImPlot_ImPosMod(l: Integer; r: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImPosMod';
+
+function ImPlot_ImNan(val: Double): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImNan';
+
+function ImPlot_ImNanOrInf(val: Double): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImNanOrInf';
+
+function ImPlot_ImConstrainNan(val: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainNan';
+
+function ImPlot_ImConstrainInf(val: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainInf';
+
+function ImPlot_ImConstrainLog(val: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainLog';
+
+function ImPlot_ImConstrainTime(val: Double): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainTime';
+
+function ImPlot_ImAlmostEqual(v1: Double; v2: Double; ulp: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAlmostEqual';
+
+function ImPlot_ImMinArray_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_FloatPtr';
+
+function ImPlot_ImMinArray_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_doublePtr';
+
+function ImPlot_ImMinArray_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S8Ptr';
+
+function ImPlot_ImMinArray_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U8Ptr';
+
+function ImPlot_ImMinArray_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S16Ptr';
+
+function ImPlot_ImMinArray_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U16Ptr';
+
+function ImPlot_ImMinArray_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S32Ptr';
+
+function ImPlot_ImMinArray_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U32Ptr';
+
+function ImPlot_ImMinArray_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S64Ptr';
+
+function ImPlot_ImMinArray_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U64Ptr';
+
+function ImPlot_ImMaxArray_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_FloatPtr';
+
+function ImPlot_ImMaxArray_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_doublePtr';
+
+function ImPlot_ImMaxArray_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S8Ptr';
+
+function ImPlot_ImMaxArray_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U8Ptr';
+
+function ImPlot_ImMaxArray_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S16Ptr';
+
+function ImPlot_ImMaxArray_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U16Ptr';
+
+function ImPlot_ImMaxArray_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S32Ptr';
+
+function ImPlot_ImMaxArray_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U32Ptr';
+
+function ImPlot_ImMaxArray_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S64Ptr';
+
+function ImPlot_ImMaxArray_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U64Ptr';
+
+procedure ImPlot_ImMinMaxArray_FloatPtr(const values: PSingle; count: Integer; min_out: PSingle; max_out: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_FloatPtr';
+
+procedure ImPlot_ImMinMaxArray_doublePtr(const values: PDouble; count: Integer; min_out: PDouble; max_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_doublePtr';
+
+procedure ImPlot_ImMinMaxArray_S8Ptr(const values: PImS8; count: Integer; min_out: PImS8; max_out: PImS8); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S8Ptr';
+
+procedure ImPlot_ImMinMaxArray_U8Ptr(const values: PImU8; count: Integer; min_out: PImU8; max_out: PImU8); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U8Ptr';
+
+procedure ImPlot_ImMinMaxArray_S16Ptr(const values: PImS16; count: Integer; min_out: PImS16; max_out: PImS16); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S16Ptr';
+
+procedure ImPlot_ImMinMaxArray_U16Ptr(const values: PImU16; count: Integer; min_out: PImU16; max_out: PImU16); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U16Ptr';
+
+procedure ImPlot_ImMinMaxArray_S32Ptr(const values: PImS32; count: Integer; min_out: PImS32; max_out: PImS32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S32Ptr';
+
+procedure ImPlot_ImMinMaxArray_U32Ptr(const values: PImU32; count: Integer; min_out: PImU32; max_out: PImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U32Ptr';
+
+procedure ImPlot_ImMinMaxArray_S64Ptr(const values: PImS64; count: Integer; min_out: PImS64; max_out: PImS64); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S64Ptr';
+
+procedure ImPlot_ImMinMaxArray_U64Ptr(const values: PImU64; count: Integer; min_out: PImU64; max_out: PImU64); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U64Ptr';
+
+function ImPlot_ImSum_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_FloatPtr';
+
+function ImPlot_ImSum_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_doublePtr';
+
+function ImPlot_ImSum_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S8Ptr';
+
+function ImPlot_ImSum_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U8Ptr';
+
+function ImPlot_ImSum_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S16Ptr';
+
+function ImPlot_ImSum_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U16Ptr';
+
+function ImPlot_ImSum_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S32Ptr';
+
+function ImPlot_ImSum_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U32Ptr';
+
+function ImPlot_ImSum_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S64Ptr';
+
+function ImPlot_ImSum_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U64Ptr';
+
+function ImPlot_ImMean_FloatPtr(const values: PSingle; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_FloatPtr';
+
+function ImPlot_ImMean_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_doublePtr';
+
+function ImPlot_ImMean_S8Ptr(const values: PImS8; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S8Ptr';
+
+function ImPlot_ImMean_U8Ptr(const values: PImU8; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U8Ptr';
+
+function ImPlot_ImMean_S16Ptr(const values: PImS16; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S16Ptr';
+
+function ImPlot_ImMean_U16Ptr(const values: PImU16; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U16Ptr';
+
+function ImPlot_ImMean_S32Ptr(const values: PImS32; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S32Ptr';
+
+function ImPlot_ImMean_U32Ptr(const values: PImU32; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U32Ptr';
+
+function ImPlot_ImMean_S64Ptr(const values: PImS64; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S64Ptr';
+
+function ImPlot_ImMean_U64Ptr(const values: PImU64; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U64Ptr';
+
+function ImPlot_ImStdDev_FloatPtr(const values: PSingle; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_FloatPtr';
+
+function ImPlot_ImStdDev_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_doublePtr';
+
+function ImPlot_ImStdDev_S8Ptr(const values: PImS8; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S8Ptr';
+
+function ImPlot_ImStdDev_U8Ptr(const values: PImU8; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U8Ptr';
+
+function ImPlot_ImStdDev_S16Ptr(const values: PImS16; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S16Ptr';
+
+function ImPlot_ImStdDev_U16Ptr(const values: PImU16; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U16Ptr';
+
+function ImPlot_ImStdDev_S32Ptr(const values: PImS32; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S32Ptr';
+
+function ImPlot_ImStdDev_U32Ptr(const values: PImU32; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U32Ptr';
+
+function ImPlot_ImStdDev_S64Ptr(const values: PImS64; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S64Ptr';
+
+function ImPlot_ImStdDev_U64Ptr(const values: PImU64; count: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U64Ptr';
+
+function ImPlot_ImMixU32(a: ImU32; b: ImU32; s: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMixU32';
+
+function ImPlot_ImLerpU32(const colors: PImU32; size: Integer; t: Single): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLerpU32';
+
+function ImPlot_ImAlphaU32(col: ImU32; alpha: Single): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAlphaU32';
+
+function ImPlot_ImOverlaps_Float(min_a: Single; max_a: Single; min_b: Single; max_b: Single): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_Float';
+
+function ImPlot_ImOverlaps_double(min_a: Double; max_a: Double; min_b: Double; max_b: Double): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_double';
+
+function ImPlot_ImOverlaps_S8(min_a: ImS8; max_a: ImS8; min_b: ImS8; max_b: ImS8): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S8';
+
+function ImPlot_ImOverlaps_U8(min_a: ImU8; max_a: ImU8; min_b: ImU8; max_b: ImU8): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U8';
+
+function ImPlot_ImOverlaps_S16(min_a: ImS16; max_a: ImS16; min_b: ImS16; max_b: ImS16): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S16';
+
+function ImPlot_ImOverlaps_U16(min_a: ImU16; max_a: ImU16; min_b: ImU16; max_b: ImU16): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U16';
+
+function ImPlot_ImOverlaps_S32(min_a: ImS32; max_a: ImS32; min_b: ImS32; max_b: ImS32): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S32';
+
+function ImPlot_ImOverlaps_U32(min_a: ImU32; max_a: ImU32; min_b: ImU32; max_b: ImU32): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U32';
+
+function ImPlot_ImOverlaps_S64(min_a: ImS64; max_a: ImS64; min_b: ImS64; max_b: ImS64): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S64';
+
+function ImPlot_ImOverlaps_U64(min_a: ImU64; max_a: ImU64; min_b: ImU64; max_b: ImU64): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U64';
+
+function ImPlotDateTimeSpec_ImPlotDateTimeSpec_Nil(): PImPlotDateTimeSpec; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_ImPlotDateTimeSpec_Nil';
+
+procedure ImPlotDateTimeSpec_destroy(self: PImPlotDateTimeSpec); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_destroy';
+
+function ImPlotDateTimeSpec_ImPlotDateTimeSpec_PlotDateFmt(date_fmt: ImPlotDateFmt; time_fmt: ImPlotTimeFmt; use_24_hr_clk: Boolean; use_iso_8601: Boolean): PImPlotDateTimeSpec; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_ImPlotDateTimeSpec_PlotDateFmt';
+
+function ImPlotTime_ImPlotTime_Nil(): PImPlotTime; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ImPlotTime_Nil';
+
+procedure ImPlotTime_destroy(self: PImPlotTime); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_destroy';
+
+function ImPlotTime_ImPlotTime_time_t(s: Longint; us: Integer): PImPlotTime; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ImPlotTime_time_t';
+
+procedure ImPlotTime_RollOver(self: PImPlotTime); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_RollOver';
+
+function ImPlotTime_ToDouble(self: PImPlotTime): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ToDouble';
+
+procedure ImPlotTime_FromDouble(pOut: PImPlotTime; t: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_FromDouble';
+
+function ImPlotColormapData_ImPlotColormapData(): PImPlotColormapData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_ImPlotColormapData';
+
+procedure ImPlotColormapData_destroy(self: PImPlotColormapData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_destroy';
+
+function ImPlotColormapData_Append(self: PImPlotColormapData; const name: PAnsiChar; const keys: PImU32; count: Integer; qual: Boolean): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_Append';
+
+procedure ImPlotColormapData__AppendTable(self: PImPlotColormapData; cmap: ImPlotColormap); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData__AppendTable';
+
+procedure ImPlotColormapData_RebuildTables(self: PImPlotColormapData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_RebuildTables';
+
+function ImPlotColormapData_IsQual(self: PImPlotColormapData; cmap: ImPlotColormap): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_IsQual';
+
+function ImPlotColormapData_GetName(self: PImPlotColormapData; cmap: ImPlotColormap): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetName';
+
+function ImPlotColormapData_GetIndex(self: PImPlotColormapData; const name: PAnsiChar): ImPlotColormap; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetIndex';
+
+function ImPlotColormapData_GetKeys(self: PImPlotColormapData; cmap: ImPlotColormap): PImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeys';
+
+function ImPlotColormapData_GetKeyCount(self: PImPlotColormapData; cmap: ImPlotColormap): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeyCount';
+
+function ImPlotColormapData_GetKeyColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeyColor';
+
+procedure ImPlotColormapData_SetKeyColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer; value: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_SetKeyColor';
+
+function ImPlotColormapData_GetTable(self: PImPlotColormapData; cmap: ImPlotColormap): PImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTable';
+
+function ImPlotColormapData_GetTableSize(self: PImPlotColormapData; cmap: ImPlotColormap): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTableSize';
+
+function ImPlotColormapData_GetTableColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTableColor';
+
+function ImPlotColormapData_LerpTable(self: PImPlotColormapData; cmap: ImPlotColormap; t: Single): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_LerpTable';
+
+function ImPlotPointError_ImPlotPointError(x: Double; y: Double; neg: Double; pos: Double): PImPlotPointError; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPointError_ImPlotPointError';
+
+procedure ImPlotPointError_destroy(self: PImPlotPointError); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPointError_destroy';
+
+function ImPlotAnnotation_ImPlotAnnotation(): PImPlotAnnotation; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotation_ImPlotAnnotation';
+
+procedure ImPlotAnnotation_destroy(self: PImPlotAnnotation); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotation_destroy';
+
+function ImPlotAnnotationCollection_ImPlotAnnotationCollection(): PImPlotAnnotationCollection; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_ImPlotAnnotationCollection';
+
+procedure ImPlotAnnotationCollection_destroy(self: PImPlotAnnotationCollection); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_destroy';
+
+procedure ImPlotAnnotationCollection_AppendV(self: PImPlotAnnotationCollection; pos: ImVec2; off: ImVec2; bg: ImU32; fg: ImU32; clamp: Boolean; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_AppendV';
+
+procedure ImPlotAnnotationCollection_Append(self: PImPlotAnnotationCollection; pos: ImVec2; off: ImVec2; bg: ImU32; fg: ImU32; clamp: Boolean; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_Append';
+
+function ImPlotAnnotationCollection_GetText(self: PImPlotAnnotationCollection; idx: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_GetText';
+
+procedure ImPlotAnnotationCollection_Reset(self: PImPlotAnnotationCollection); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_Reset';
+
+function ImPlotTagCollection_ImPlotTagCollection(): PImPlotTagCollection; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_ImPlotTagCollection';
+
+procedure ImPlotTagCollection_destroy(self: PImPlotTagCollection); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_destroy';
+
+procedure ImPlotTagCollection_AppendV(self: PImPlotTagCollection; axis: ImAxis; value: Double; bg: ImU32; fg: ImU32; const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_AppendV';
+
+procedure ImPlotTagCollection_Append(self: PImPlotTagCollection; axis: ImAxis; value: Double; bg: ImU32; fg: ImU32; const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_Append';
+
+function ImPlotTagCollection_GetText(self: PImPlotTagCollection; idx: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_GetText';
+
+procedure ImPlotTagCollection_Reset(self: PImPlotTagCollection); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_Reset';
+
+function ImPlotTick_ImPlotTick(value: Double; major: Boolean; level: Integer; show_label: Boolean): PImPlotTick; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTick_ImPlotTick';
+
+procedure ImPlotTick_destroy(self: PImPlotTick); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTick_destroy';
+
+function ImPlotTicker_ImPlotTicker(): PImPlotTicker; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_ImPlotTicker';
+
+procedure ImPlotTicker_destroy(self: PImPlotTicker); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_destroy';
+
+function ImPlotTicker_AddTick_doubleStr(self: PImPlotTicker; value: Double; major: Boolean; level: Integer; show_label: Boolean; const label_: PAnsiChar): PImPlotTick; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_doubleStr';
+
+function ImPlotTicker_AddTick_doublePlotFormatter(self: PImPlotTicker; value: Double; major: Boolean; level: Integer; show_label: Boolean; formatter: ImPlotFormatter; data: Pointer): PImPlotTick; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_doublePlotFormatter';
+
+function ImPlotTicker_AddTick_PlotTick(self: PImPlotTicker; tick: ImPlotTick): PImPlotTick; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_PlotTick';
+
+function ImPlotTicker_GetText_Int(self: PImPlotTicker; idx: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_GetText_Int';
+
+function ImPlotTicker_GetText_PlotTick(self: PImPlotTicker; const tick: ImPlotTick): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_GetText_PlotTick';
+
+procedure ImPlotTicker_OverrideSizeLate(self: PImPlotTicker; size: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_OverrideSizeLate';
+
+procedure ImPlotTicker_Reset(self: PImPlotTicker); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_Reset';
+
+function ImPlotTicker_TickCount(self: PImPlotTicker): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_TickCount';
+
+function ImPlotAxis_ImPlotAxis(): PImPlotAxis; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ImPlotAxis';
+
+procedure ImPlotAxis_destroy(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_destroy';
+
+procedure ImPlotAxis_Reset(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_Reset';
+
+function ImPlotAxis_SetMin(self: PImPlotAxis; _min: Double; force: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetMin';
+
+function ImPlotAxis_SetMax(self: PImPlotAxis; _max: Double; force: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetMax';
+
+procedure ImPlotAxis_SetRange_double(self: PImPlotAxis; v1: Double; v2: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetRange_double';
+
+procedure ImPlotAxis_SetRange_PlotRange(self: PImPlotAxis; range: ImPlotRange); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetRange_PlotRange';
+
+procedure ImPlotAxis_SetAspect(self: PImPlotAxis; unit_per_pix: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetAspect';
+
+function ImPlotAxis_PixelSize(self: PImPlotAxis): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PixelSize';
+
+function ImPlotAxis_GetAspect(self: PImPlotAxis): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_GetAspect';
+
+procedure ImPlotAxis_Constrain(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_Constrain';
+
+procedure ImPlotAxis_UpdateTransformCache(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_UpdateTransformCache';
+
+function ImPlotAxis_PlotToPixels(self: PImPlotAxis; plt: Double): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PlotToPixels';
+
+function ImPlotAxis_PixelsToPlot(self: PImPlotAxis; pix: Single): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PixelsToPlot';
+
+procedure ImPlotAxis_ExtendFit(self: PImPlotAxis; v: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ExtendFit';
+
+procedure ImPlotAxis_ExtendFitWith(self: PImPlotAxis; alt: PImPlotAxis; v: Double; v_alt: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ExtendFitWith';
+
+procedure ImPlotAxis_ApplyFit(self: PImPlotAxis; padding: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ApplyFit';
+
+function ImPlotAxis_HasLabel(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasLabel';
+
+function ImPlotAxis_HasGridLines(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasGridLines';
+
+function ImPlotAxis_HasTickLabels(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasTickLabels';
+
+function ImPlotAxis_HasTickMarks(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasTickMarks';
+
+function ImPlotAxis_WillRender(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_WillRender';
+
+function ImPlotAxis_IsOpposite(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsOpposite';
+
+function ImPlotAxis_IsInverted(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInverted';
+
+function ImPlotAxis_IsForeground(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsForeground';
+
+function ImPlotAxis_IsAutoFitting(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsAutoFitting';
+
+function ImPlotAxis_CanInitFit(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_CanInitFit';
+
+function ImPlotAxis_IsRangeLocked(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsRangeLocked';
+
+function ImPlotAxis_IsLockedMin(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLockedMin';
+
+function ImPlotAxis_IsLockedMax(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLockedMax';
+
+function ImPlotAxis_IsLocked(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLocked';
+
+function ImPlotAxis_IsInputLockedMin(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLockedMin';
+
+function ImPlotAxis_IsInputLockedMax(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLockedMax';
+
+function ImPlotAxis_IsInputLocked(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLocked';
+
+function ImPlotAxis_HasMenus(self: PImPlotAxis): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasMenus';
+
+function ImPlotAxis_IsPanLocked(self: PImPlotAxis; increasing: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsPanLocked';
+
+procedure ImPlotAxis_PushLinks(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PushLinks';
+
+procedure ImPlotAxis_PullLinks(self: PImPlotAxis); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PullLinks';
+
+function ImPlotAlignmentData_ImPlotAlignmentData(): PImPlotAlignmentData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_ImPlotAlignmentData';
+
+procedure ImPlotAlignmentData_destroy(self: PImPlotAlignmentData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_destroy';
+
+procedure ImPlotAlignmentData_Begin(self: PImPlotAlignmentData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Begin';
+
+procedure ImPlotAlignmentData_Update(self: PImPlotAlignmentData; pad_a: PSingle; pad_b: PSingle; delta_a: PSingle; delta_b: PSingle); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Update';
+
+procedure ImPlotAlignmentData_End(self: PImPlotAlignmentData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_End';
+
+procedure ImPlotAlignmentData_Reset(self: PImPlotAlignmentData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Reset';
+
+function ImPlotItem_ImPlotItem(): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItem_ImPlotItem';
+
+procedure ImPlotItem_destroy(self: PImPlotItem); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItem_destroy';
+
+function ImPlotLegend_ImPlotLegend(): PImPlotLegend; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_ImPlotLegend';
+
+procedure ImPlotLegend_destroy(self: PImPlotLegend); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_destroy';
+
+procedure ImPlotLegend_Reset(self: PImPlotLegend); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_Reset';
+
+function ImPlotItemGroup_ImPlotItemGroup(): PImPlotItemGroup; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_ImPlotItemGroup';
+
+procedure ImPlotItemGroup_destroy(self: PImPlotItemGroup); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_destroy';
+
+function ImPlotItemGroup_GetItemCount(self: PImPlotItemGroup): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemCount';
+
+function ImPlotItemGroup_GetItemID(self: PImPlotItemGroup; const label_id: PAnsiChar): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemID';
+
+function ImPlotItemGroup_GetItem_ID(self: PImPlotItemGroup; id: ImGuiID): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItem_ID';
+
+function ImPlotItemGroup_GetItem_Str(self: PImPlotItemGroup; const label_id: PAnsiChar): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItem_Str';
+
+function ImPlotItemGroup_GetOrAddItem(self: PImPlotItemGroup; id: ImGuiID): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetOrAddItem';
+
+function ImPlotItemGroup_GetItemByIndex(self: PImPlotItemGroup; i: Integer): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemByIndex';
+
+function ImPlotItemGroup_GetItemIndex(self: PImPlotItemGroup; item: PImPlotItem): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemIndex';
+
+function ImPlotItemGroup_GetLegendCount(self: PImPlotItemGroup): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendCount';
+
+function ImPlotItemGroup_GetLegendItem(self: PImPlotItemGroup; i: Integer): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendItem';
+
+function ImPlotItemGroup_GetLegendLabel(self: PImPlotItemGroup; i: Integer): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendLabel';
+
+procedure ImPlotItemGroup_Reset(self: PImPlotItemGroup); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_Reset';
+
+function ImPlotPlot_ImPlotPlot(): PImPlotPlot; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_ImPlotPlot';
+
+procedure ImPlotPlot_destroy(self: PImPlotPlot); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_destroy';
+
+function ImPlotPlot_IsInputLocked(self: PImPlotPlot): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_IsInputLocked';
+
+procedure ImPlotPlot_ClearTextBuffer(self: PImPlotPlot); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_ClearTextBuffer';
+
+procedure ImPlotPlot_SetTitle(self: PImPlotPlot; const title: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_SetTitle';
+
+function ImPlotPlot_HasTitle(self: PImPlotPlot): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_HasTitle';
+
+function ImPlotPlot_GetTitle(self: PImPlotPlot): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_GetTitle';
+
+function ImPlotPlot_XAxis_Nil(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_XAxis_Nil';
+
+function ImPlotPlot_XAxis__const(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_XAxis__const';
+
+function ImPlotPlot_YAxis_Nil(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_YAxis_Nil';
+
+function ImPlotPlot_YAxis__const(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_YAxis__const';
+
+function ImPlotPlot_EnabledAxesX(self: PImPlotPlot): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_EnabledAxesX';
+
+function ImPlotPlot_EnabledAxesY(self: PImPlotPlot): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_EnabledAxesY';
+
+procedure ImPlotPlot_SetAxisLabel(self: PImPlotPlot; axis: PImPlotAxis; const label_: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_SetAxisLabel';
+
+function ImPlotPlot_GetAxisLabel(self: PImPlotPlot; const axis: ImPlotAxis): PAnsiChar; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_GetAxisLabel';
+
+function ImPlotSubplot_ImPlotSubplot(): PImPlotSubplot; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotSubplot_ImPlotSubplot';
+
+procedure ImPlotSubplot_destroy(self: PImPlotSubplot); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotSubplot_destroy';
+
+function ImPlotNextPlotData_ImPlotNextPlotData(): PImPlotNextPlotData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_ImPlotNextPlotData';
+
+procedure ImPlotNextPlotData_destroy(self: PImPlotNextPlotData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_destroy';
+
+procedure ImPlotNextPlotData_Reset(self: PImPlotNextPlotData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_Reset';
+
+function ImPlotNextItemData_ImPlotNextItemData(): PImPlotNextItemData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_ImPlotNextItemData';
+
+procedure ImPlotNextItemData_destroy(self: PImPlotNextItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_destroy';
+
+procedure ImPlotNextItemData_Reset(self: PImPlotNextItemData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_Reset';
+
+procedure ImPlot_Initialize(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Initialize';
+
+procedure ImPlot_ResetCtxForNextPlot(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextPlot';
+
+procedure ImPlot_ResetCtxForNextAlignedPlots(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextAlignedPlots';
+
+procedure ImPlot_ResetCtxForNextSubplot(ctx: PImPlotContext); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextSubplot';
+
+function ImPlot_GetPlot(const title: PAnsiChar): PImPlotPlot; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlot';
+
+function ImPlot_GetCurrentPlot(): PImPlotPlot; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentPlot';
+
+procedure ImPlot_BustPlotCache(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustPlotCache';
+
+procedure ImPlot_ShowPlotContextMenu(plot: PImPlotPlot); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowPlotContextMenu';
+
+procedure ImPlot_SetupLock(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupLock';
+
+procedure ImPlot_SubplotNextCell(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SubplotNextCell';
+
+procedure ImPlot_ShowSubplotsContextMenu(subplot: PImPlotSubplot); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowSubplotsContextMenu';
+
+function ImPlot_BeginItem(const label_id: PAnsiChar; flags: ImPlotItemFlags; recolor_from: ImPlotCol): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginItem';
+
+procedure ImPlot_EndItem(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndItem';
+
+function ImPlot_RegisterOrGetItem(const label_id: PAnsiChar; flags: ImPlotItemFlags; just_created: PBoolean): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RegisterOrGetItem';
+
+function ImPlot_GetItem(const label_id: PAnsiChar): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetItem';
+
+function ImPlot_GetCurrentItem(): PImPlotItem; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentItem';
+
+procedure ImPlot_BustItemCache(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustItemCache';
+
+function ImPlot_AnyAxesInputLocked(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesInputLocked';
+
+function ImPlot_AllAxesInputLocked(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AllAxesInputLocked';
+
+function ImPlot_AnyAxesHeld(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesHeld';
+
+function ImPlot_AnyAxesHovered(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesHovered';
+
+function ImPlot_FitThisFrame(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitThisFrame';
+
+procedure ImPlot_FitPointX(x: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPointX';
+
+procedure ImPlot_FitPointY(y: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPointY';
+
+procedure ImPlot_FitPoint(p: ImPlotPoint); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPoint';
+
+function ImPlot_RangesOverlap(r1: ImPlotRange; r2: ImPlotRange): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RangesOverlap';
+
+procedure ImPlot_ShowAxisContextMenu(axis: PImPlotAxis; equal_axis: PImPlotAxis; time_allowed: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowAxisContextMenu';
+
+procedure ImPlot_GetLocationPos(pOut: PImVec2; outer_rect: ImRect; inner_size: ImVec2; location: ImPlotLocation; pad: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLocationPos';
+
+procedure ImPlot_CalcLegendSize(pOut: PImVec2; items: PImPlotItemGroup; pad: ImVec2; spacing: ImVec2; vertical: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcLegendSize';
+
+function ImPlot_ClampLegendRect(legend_rect: PImRect; outer_rect: ImRect; pad: ImVec2): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ClampLegendRect';
+
+function ImPlot_ShowLegendEntries(items: PImPlotItemGroup; legend_bb: ImRect; interactable: Boolean; pad: ImVec2; spacing: ImVec2; vertical: Boolean; DrawList: PImDrawList): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowLegendEntries';
+
+procedure ImPlot_ShowAltLegend(const title_id: PAnsiChar; vertical: Boolean; size: ImVec2; interactable: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowAltLegend';
+
+function ImPlot_ShowLegendContextMenu(legend: PImPlotLegend; visible: Boolean): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowLegendContextMenu';
+
+procedure ImPlot_LabelAxisValue(const axis: ImPlotAxis; value: Double; buff: PAnsiChar; size: Integer; round: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_LabelAxisValue';
+
+function ImPlot_GetItemData(): PImPlotNextItemData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetItemData';
+
+function ImPlot_IsColorAuto_Vec4(col: ImVec4): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsColorAuto_Vec4';
+
+function ImPlot_IsColorAuto_PlotCol(idx: ImPlotCol): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsColorAuto_PlotCol';
+
+procedure ImPlot_GetAutoColor(pOut: PImVec4; idx: ImPlotCol); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetAutoColor';
+
+procedure ImPlot_GetStyleColorVec4(pOut: PImVec4; idx: ImPlotCol); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorVec4';
+
+function ImPlot_GetStyleColorU32(idx: ImPlotCol): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorU32';
+
+procedure ImPlot_AddTextVertical(DrawList: PImDrawList; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTextVertical';
+
+procedure ImPlot_AddTextCentered(DrawList: PImDrawList; top_center: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTextCentered';
+
+procedure ImPlot_CalcTextSizeVertical(pOut: PImVec2; const text: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextSizeVertical';
+
+function ImPlot_CalcTextColor_Vec4(bg: ImVec4): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextColor_Vec4';
+
+function ImPlot_CalcTextColor_U32(bg: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextColor_U32';
+
+function ImPlot_CalcHoverColor(col: ImU32): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcHoverColor';
+
+procedure ImPlot_ClampLabelPos(pOut: PImVec2; pos: ImVec2; size: ImVec2; Min: ImVec2; Max: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ClampLabelPos';
+
+function ImPlot_GetColormapColorU32(idx: Integer; cmap: ImPlotColormap): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapColorU32';
+
+function ImPlot_NextColormapColorU32(): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NextColormapColorU32';
+
+function ImPlot_SampleColormapU32(t: Single; cmap: ImPlotColormap): ImU32; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SampleColormapU32';
+
+procedure ImPlot_RenderColorBar(const colors: PImU32; size: Integer; DrawList: PImDrawList; bounds: ImRect; vert: Boolean; reversed: Boolean; continuous: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RenderColorBar';
+
+function ImPlot_NiceNum(x: Double; round: Boolean): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NiceNum';
+
+function ImPlot_OrderOfMagnitude(val: Double): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_OrderOfMagnitude';
+
+function ImPlot_OrderToPrecision(order: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_OrderToPrecision';
+
+function ImPlot_Precision(val: Double): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Precision';
+
+function ImPlot_RoundTo(val: Double; prec: Integer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RoundTo';
+
+procedure ImPlot_Intersection(pOut: PImVec2; a1: ImVec2; a2: ImVec2; b1: ImVec2; b2: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Intersection';
+
+procedure ImPlot_FillRange_Vector_Float_Ptr(buffer: PImVector_float; n: Integer; vmin: Single; vmax: Single); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_Float_Ptr';
+
+procedure ImPlot_FillRange_Vector_double_Ptr(buffer: PImVector_double; n: Integer; vmin: Double; vmax: Double); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_double_Ptr';
+
+procedure ImPlot_FillRange_Vector_S8_Ptr(buffer: PImVector_ImS8; n: Integer; vmin: ImS8; vmax: ImS8); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S8_Ptr';
+
+procedure ImPlot_FillRange_Vector_U8_Ptr(buffer: PImVector_ImU8; n: Integer; vmin: ImU8; vmax: ImU8); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U8_Ptr';
+
+procedure ImPlot_FillRange_Vector_S16_Ptr(buffer: PImVector_ImS16; n: Integer; vmin: ImS16; vmax: ImS16); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S16_Ptr';
+
+procedure ImPlot_FillRange_Vector_U16_Ptr(buffer: PImVector_ImU16; n: Integer; vmin: ImU16; vmax: ImU16); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U16_Ptr';
+
+procedure ImPlot_FillRange_Vector_S32_Ptr(buffer: PImVector_ImS32; n: Integer; vmin: ImS32; vmax: ImS32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S32_Ptr';
+
+procedure ImPlot_FillRange_Vector_U32_Ptr(buffer: PImVector_ImU32; n: Integer; vmin: ImU32; vmax: ImU32); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U32_Ptr';
+
+procedure ImPlot_FillRange_Vector_S64_Ptr(buffer: PImVector_ImS64; n: Integer; vmin: ImS64; vmax: ImS64); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S64_Ptr';
+
+procedure ImPlot_FillRange_Vector_U64_Ptr(buffer: PImVector_ImU64; n: Integer; vmin: ImU64; vmax: ImU64); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U64_Ptr';
+
+procedure ImPlot_CalculateBins_FloatPtr(const values: PSingle; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_FloatPtr';
+
+procedure ImPlot_CalculateBins_doublePtr(const values: PDouble; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_doublePtr';
+
+procedure ImPlot_CalculateBins_S8Ptr(const values: PImS8; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S8Ptr';
+
+procedure ImPlot_CalculateBins_U8Ptr(const values: PImU8; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U8Ptr';
+
+procedure ImPlot_CalculateBins_S16Ptr(const values: PImS16; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S16Ptr';
+
+procedure ImPlot_CalculateBins_U16Ptr(const values: PImU16; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U16Ptr';
+
+procedure ImPlot_CalculateBins_S32Ptr(const values: PImS32; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S32Ptr';
+
+procedure ImPlot_CalculateBins_U32Ptr(const values: PImU32; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U32Ptr';
+
+procedure ImPlot_CalculateBins_S64Ptr(const values: PImS64; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S64Ptr';
+
+procedure ImPlot_CalculateBins_U64Ptr(const values: PImU64; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U64Ptr';
+
+function ImPlot_IsLeapYear(year: Integer): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsLeapYear';
+
+function ImPlot_GetDaysInMonth(year: Integer; month: Integer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetDaysInMonth';
+
+procedure ImPlot_MkGmtTime(pOut: PImPlotTime; ptm: Ptm); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MkGmtTime';
+
+function ImPlot_GetGmtTime(t: ImPlotTime; ptm: Ptm): Ptm; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetGmtTime';
+
+procedure ImPlot_MkLocTime(pOut: PImPlotTime; ptm: Ptm); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MkLocTime';
+
+function ImPlot_GetLocTime(t: ImPlotTime; ptm: Ptm): Ptm; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLocTime';
+
+procedure ImPlot_MakeTime(pOut: PImPlotTime; year: Integer; month: Integer; day: Integer; hour: Integer; min: Integer; sec: Integer; us: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MakeTime';
+
+function ImPlot_GetYear(t: ImPlotTime): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetYear';
+
+procedure ImPlot_AddTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit; count: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTime';
+
+procedure ImPlot_FloorTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FloorTime';
+
+procedure ImPlot_CeilTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CeilTime';
+
+procedure ImPlot_RoundTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RoundTime';
+
+procedure ImPlot_CombineDateTime(pOut: PImPlotTime; date_part: ImPlotTime; time_part: ImPlotTime); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CombineDateTime';
+
+function ImPlot_FormatTime(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotTimeFmt; use_24_hr_clk: Boolean): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatTime';
+
+function ImPlot_FormatDate(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotDateFmt; use_iso_8601: Boolean): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatDate';
+
+function ImPlot_FormatDateTime(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotDateTimeSpec): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatDateTime';
+
+function ImPlot_ShowDatePicker(const id: PAnsiChar; level: PInteger; t: PImPlotTime; const t1: PImPlotTime; const t2: PImPlotTime): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowDatePicker';
+
+function ImPlot_ShowTimePicker(const id: PAnsiChar; t: PImPlotTime): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowTimePicker';
+
+function ImPlot_TransformForward_Log10(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_Log10';
+
+function ImPlot_TransformInverse_Log10(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_Log10';
+
+function ImPlot_TransformForward_SymLog(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_SymLog';
+
+function ImPlot_TransformInverse_SymLog(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_SymLog';
+
+function ImPlot_TransformForward_Logit(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_Logit';
+
+function ImPlot_TransformInverse_Logit(v: Double; noname1: Pointer): Double; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_Logit';
+
+function ImPlot_Formatter_Default(value: Double; buff: PAnsiChar; size: Integer; data: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Default';
+
+function ImPlot_Formatter_Logit(value: Double; buff: PAnsiChar; size: Integer; noname1: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Logit';
+
+function ImPlot_Formatter_Time(noname1: Double; buff: PAnsiChar; size: Integer; data: Pointer): Integer; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Time';
+
+procedure ImPlot_Locator_Default(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Default';
+
+procedure ImPlot_Locator_Time(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Time';
+
+procedure ImPlot_Locator_Log10(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Log10';
+
+procedure ImPlot_Locator_SymLog(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_SymLog';
+

+ 0 - 1442
src/PasImGui.Apis.pas

@@ -1,1442 +0,0 @@
-{
-  FreePascal / Delphi bindings for ImGui
-
-  Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the MIT License.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  MIT License for more details.
-}
-
-unit PasImGui.Apis;
-
-{$I ImGuiPasDef.inc}
-
-{$IfDef FPC}
-  {$PACKRECORDS C}   
-  {$mode objfpc}{$H+}
-  {$modeswitch advancedrecords}
-{$EndIf}  
-
-interface  
-uses
-    PasImGui.Enums, PasImGui.Types; // All Needed Types form cimgui
-
-{$IfDef DYNAMIC_LINK}
-  const
-  {$if defined(Darwin)}
-    SharedSuffix = 'dylib';
-  {$elseif defined(linux)}
-    SharedSuffix = 'so';
-  {$elseif defined(MSWINDOWS)}
-    SharedSuffix = 'dll';
-  {$endif}
-  CIMGUI_LIB = 'cimgui.' + SharedSuffix;
-{$ELSE}
-  {$IfDef FPC}
-    {$LinkLib libcimgui.a}
-    {$IfDef MSWINDOWS}
-      {$linklib mingwex}
-      {$linklib mingw32}
-      {$linklib gcc}
-      {$LinkLib oleaut32}
-      {$LinkLib setupapi}
-      {$LinkLib imm32}
-      {$LinkLib version}
-      {$LinkLib winmm}
-      {$LinkLib gdi32}
-      {$LinkLib ole32}
-      {$linklib msvcrt}
-      {$linklib msvcr120}
-      {$linklib kernel32}
-      {$linklib advapi32}
-      {$linklib user32}
-      {$linklib shell32}
-    {$EndIf}
-  {$ELSE}
-  Ops ^_^ no static linking for Delphi :P
-  {$EndIf}
-{$EndIf}
-
-procedure ImBitVector_Clear( self : PImBitVector ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImBitVector_ClearBit( self : PImBitVector; n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImBitVector_Create( self : PImBitVector; sz : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImBitVector_SetBit( self : PImBitVector; n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImBitVector_TestBit( self : PImBitVector; n : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImColor_HSV( pOut : PImColor; h : Single; s : Single; v : Single; a : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImColor_ImColor_Nil( ) : PImColor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImColor_ImColor_Float( r : Single; g : Single; b : Single; a : Single ) : PImColor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImColor_ImColor_Vec4( col : ImVec4 ) : PImColor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImColor_ImColor_Int( r : Integer; g : Integer; b : Integer; a : Integer ) : PImColor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImColor_ImColor_U32( rgba : ImU32 ) : PImColor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImColor_SetHSV( self : PImColor; h : Single; s : Single; v : Single; a : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImColor_destroy( self : PImColor ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawCmd_GetTexID( self : PImDrawCmd ) : ImTextureID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawCmd_ImDrawCmd( ) : PImDrawCmd; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawCmd_destroy( self : PImDrawCmd ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawDataBuilder_ImDrawDataBuilder( ) : PImDrawDataBuilder; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawDataBuilder_destroy( self : PImDrawDataBuilder ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawData_AddDrawList( self : PImDrawData; draw_list : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawData_Clear( self : PImDrawData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawData_DeIndexAllBuffers( self : PImDrawData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawData_ImDrawData( ) : PImDrawData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawData_ScaleClipRects( self : PImDrawData; fb_scale : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawData_destroy( self : PImDrawData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawListSharedData_ImDrawListSharedData( ) : PImDrawListSharedData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSharedData_SetCircleTessellationMaxError( self : PImDrawListSharedData; max_error : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSharedData_destroy( self : PImDrawListSharedData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_Clear( self : PImDrawListSplitter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_ClearFreeMemory( self : PImDrawListSplitter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawListSplitter_ImDrawListSplitter( ) : PImDrawListSplitter; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_Merge( self : PImDrawListSplitter; draw_list : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_SetCurrentChannel( self : PImDrawListSplitter; draw_list : PImDrawList; channel_idx : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_Split( self : PImDrawListSplitter; draw_list : PImDrawList; count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawListSplitter_destroy( self : PImDrawListSplitter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddBezierCubic( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; col : ImU32; thickness : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddBezierQuadratic( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; col : ImU32; thickness : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddCallback( self : PImDrawList; callback : ImDrawCallback; callback_data : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddCircle( self : PImDrawList; center : ImVec2; radius : Single; col : ImU32; num_segments : Integer; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddCircleFilled( self : PImDrawList; center : ImVec2; radius : Single; col : ImU32; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddConvexPolyFilled( self : PImDrawList; points : PImVec2; num_points : Integer; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddDrawCmd( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddEllipse( self : PImDrawList; center : ImVec2; radius_x : Single; radius_y : Single; col : ImU32; rot : Single; num_segments : Integer; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddEllipseFilled( self : PImDrawList; center : ImVec2; radius_x : Single; radius_y : Single; col : ImU32; rot : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddImage( self : PImDrawList; user_texture_id : ImTextureID; p_min : ImVec2; p_max : ImVec2; uv_min : ImVec2; uv_max : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddImageQuad( self : PImDrawList; user_texture_id : ImTextureID; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; uv1 : ImVec2; uv2 : ImVec2; uv3 : ImVec2; uv4 : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddImageRounded( self : PImDrawList; user_texture_id : ImTextureID; p_min : ImVec2; p_max : ImVec2; uv_min : ImVec2; uv_max : ImVec2; col : ImU32; rounding : Single; flags : ImDrawFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddLine( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; col : ImU32; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddNgon( self : PImDrawList; center : ImVec2; radius : Single; col : ImU32; num_segments : Integer; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddNgonFilled( self : PImDrawList; center : ImVec2; radius : Single; col : ImU32; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddPolyline( self : PImDrawList; points : PImVec2; num_points : Integer; col : ImU32; flags : ImDrawFlags; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddQuad( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; col : ImU32; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddQuadFilled( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddRect( self : PImDrawList; p_min : ImVec2; p_max : ImVec2; col : ImU32; rounding : Single; flags : ImDrawFlags; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddRectFilled( self : PImDrawList; p_min : ImVec2; p_max : ImVec2; col : ImU32; rounding : Single; flags : ImDrawFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddRectFilledMultiColor( self : PImDrawList; p_min : ImVec2; p_max : ImVec2; col_upr_left : ImU32; col_upr_right : ImU32; col_bot_right : ImU32; col_bot_left : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddText_Vec2( self : PImDrawList; pos : ImVec2; col : ImU32; text_begin : PAnsiChar; text_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddText_FontPtr( self : PImDrawList; font : PImFont; font_size : Single; pos : ImVec2; col : ImU32; text_begin : PAnsiChar; text_end : PAnsiChar; wrap_width : Single; cpu_fine_clip_rect : PImVec4 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddTriangle( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; col : ImU32; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_AddTriangleFilled( self : PImDrawList; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_ChannelsMerge( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_ChannelsSetCurrent( self : PImDrawList; n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_ChannelsSplit( self : PImDrawList; count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawList_CloneOutput( self : PImDrawList ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_GetClipRectMax( pOut : PImVec2; self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_GetClipRectMin( pOut : PImVec2; self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawList_ImDrawList( shared_data : PImDrawListSharedData ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathArcTo( self : PImDrawList; center : ImVec2; radius : Single; a_min : Single; a_max : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathArcToFast( self : PImDrawList; center : ImVec2; radius : Single; a_min_of_12 : Integer; a_max_of_12 : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathBezierCubicCurveTo( self : PImDrawList; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathBezierQuadraticCurveTo( self : PImDrawList; p2 : ImVec2; p3 : ImVec2; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathClear( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathEllipticalArcTo( self : PImDrawList; center : ImVec2; radius_x : Single; radius_y : Single; rot : Single; a_min : Single; a_max : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathFillConvex( self : PImDrawList; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathLineTo( self : PImDrawList; pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathLineToMergeDuplicate( self : PImDrawList; pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathRect( self : PImDrawList; rect_min : ImVec2; rect_max : ImVec2; rounding : Single; flags : ImDrawFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PathStroke( self : PImDrawList; col : ImU32; flags : ImDrawFlags; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PopClipRect( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PopTextureID( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimQuadUV( self : PImDrawList; a : ImVec2; b : ImVec2; c : ImVec2; d : ImVec2; uv_a : ImVec2; uv_b : ImVec2; uv_c : ImVec2; uv_d : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimRect( self : PImDrawList; a : ImVec2; b : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimRectUV( self : PImDrawList; a : ImVec2; b : ImVec2; uv_a : ImVec2; uv_b : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimReserve( self : PImDrawList; idx_count : Integer; vtx_count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimUnreserve( self : PImDrawList; idx_count : Integer; vtx_count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimVtx( self : PImDrawList; pos : ImVec2; uv : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimWriteIdx( self : PImDrawList; idx : ImDrawIdx ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PrimWriteVtx( self : PImDrawList; pos : ImVec2; uv : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PushClipRect( self : PImDrawList; clip_rect_min : ImVec2; clip_rect_max : ImVec2; intersect_with_current_clip_rect : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PushClipRectFullScreen( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_PushTextureID( self : PImDrawList; texture_id : ImTextureID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImDrawList__CalcCircleAutoSegmentCount( self : PImDrawList; radius : Single ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__ClearFreeMemory( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__OnChangedClipRect( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__OnChangedTextureID( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__OnChangedVtxOffset( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__PathArcToFastEx( self : PImDrawList; center : ImVec2; radius : Single; a_min_sample : Integer; a_max_sample : Integer; a_step : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__PathArcToN( self : PImDrawList; center : ImVec2; radius : Single; a_min : Single; a_max : Single; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__PopUnusedDrawCmd( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__ResetForNewFrame( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList__TryMergeDrawCmds( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImDrawList_destroy( self : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlasCustomRect_ImFontAtlasCustomRect( ) : PImFontAtlasCustomRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlasCustomRect_IsPacked( self : PImFontAtlasCustomRect ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlasCustomRect_destroy( self : PImFontAtlasCustomRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddCustomRectFontGlyph( self : PImFontAtlas; font : PImFont; id : ImWchar; width : Integer; height : Integer; advance_x : Single; offset : ImVec2 ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddCustomRectRegular( self : PImFontAtlas; width : Integer; height : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFont( self : PImFontAtlas; font_cfg : PImFontConfig ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFontDefault( self : PImFontAtlas; font_cfg : PImFontConfig ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFontFromFileTTF( self : PImFontAtlas; filename : PAnsiChar; size_pixels : Single; font_cfg : PImFontConfig; glyph_ranges : PImWchar ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFontFromMemoryCompressedBase85TTF( self : PImFontAtlas; compressed_font_data_base85 : PAnsiChar; size_pixels : Single; font_cfg : PImFontConfig; glyph_ranges : PImWchar ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFontFromMemoryCompressedTTF( self : PImFontAtlas; compressed_font_data : Pointer; compressed_font_data_size : Integer; size_pixels : Single; font_cfg : PImFontConfig; glyph_ranges : PImWchar ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_AddFontFromMemoryTTF( self : PImFontAtlas; font_data : Pointer; font_data_size : Integer; size_pixels : Single; font_cfg : PImFontConfig; glyph_ranges : PImWchar ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_Build( self : PImFontAtlas ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_CalcCustomRectUV( self : PImFontAtlas; rect : PImFontAtlasCustomRect; out_uv_min : PImVec2; out_uv_max : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_Clear( self : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_ClearFonts( self : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_ClearInputData( self : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_ClearTexData( self : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetCustomRectByIndex( self : PImFontAtlas; index : Integer ) : PImFontAtlasCustomRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesChineseFull( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesCyrillic( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesDefault( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesGreek( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesJapanese( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesKorean( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesThai( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetGlyphRangesVietnamese( self : PImFontAtlas ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_GetMouseCursorTexData( self : PImFontAtlas; cursor : ImGuiMouseCursor; out_offset : PImVec2; out_size : PImVec2; out_uv_border : PImVec2; out_uv_fill : PImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_GetTexDataAsAlpha8( self : PImFontAtlas; out_pixels : PPImU8; out_width : PInteger; out_height : PInteger; out_bytes_per_pixel : PInteger ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_GetTexDataAsRGBA32( self : PImFontAtlas; out_pixels : PPImU8; out_width : PInteger; out_height : PInteger; out_bytes_per_pixel : PInteger ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_ImFontAtlas( ) : PImFontAtlas; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontAtlas_IsBuilt( self : PImFontAtlas ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_SetTexID( self : PImFontAtlas; id : ImTextureID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontAtlas_destroy( self : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontConfig_ImFontConfig( ) : PImFontConfig; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontConfig_destroy( self : PImFontConfig ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_AddChar( self : PImFontGlyphRangesBuilder; c : ImWchar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_AddRanges( self : PImFontGlyphRangesBuilder; ranges : PImWchar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_AddText( self : PImFontGlyphRangesBuilder; text : PAnsiChar; text_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_BuildRanges( self : PImFontGlyphRangesBuilder; out_ranges : PImVector_ImWchar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_Clear( self : PImFontGlyphRangesBuilder ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontGlyphRangesBuilder_GetBit( self : PImFontGlyphRangesBuilder; n : size_t ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder( ) : PImFontGlyphRangesBuilder; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_SetBit( self : PImFontGlyphRangesBuilder; n : size_t ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFontGlyphRangesBuilder_destroy( self : PImFontGlyphRangesBuilder ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_AddGlyph( self : PImFont; src_cfg : PImFontConfig; c : ImWchar; x0 : Single; y0 : Single; x1 : Single; y1 : Single; u0 : Single; v0 : Single; u1 : Single; v1 : Single; advance_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_AddRemapChar( self : PImFont; dst : ImWchar; src : ImWchar; overwrite_dst : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_BuildLookupTable( self : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_CalcTextSizeA( pOut : PImVec2; self : PImFont; size : Single; max_width : Single; wrap_width : Single; text_begin : PAnsiChar; text_end : PAnsiChar; remaining : PPAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_CalcWordWrapPositionA( self : PImFont; scale : Single; text : PAnsiChar; text_end : PAnsiChar; wrap_width : Single ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_ClearOutputData( self : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_FindGlyph( self : PImFont; c : ImWchar ) : PImFontGlyph; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_FindGlyphNoFallback( self : PImFont; c : ImWchar ) : PImFontGlyph; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_GetCharAdvance( self : PImFont; c : ImWchar ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_GetDebugName( self : PImFont ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_GrowIndex( self : PImFont; new_size : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_ImFont( ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_IsGlyphRangeUnused( self : PImFont; c_begin : ImU32; c_last : ImU32 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImFont_IsLoaded( self : PImFont ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_RenderChar( self : PImFont; draw_list : PImDrawList; size : Single; pos : ImVec2; col : ImU32; c : ImWchar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_RenderText( self : PImFont; draw_list : PImDrawList; size : Single; pos : ImVec2; col : ImU32; clip_rect : ImVec4; text_begin : PAnsiChar; text_end : PAnsiChar; wrap_width : Single; cpu_fine_clip : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_SetGlyphVisible( self : PImFont; c : ImWchar; visible : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImFont_destroy( self : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiComboPreviewData_ImGuiComboPreviewData( ) : PImGuiComboPreviewData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiComboPreviewData_destroy( self : PImGuiComboPreviewData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiContextHook_ImGuiContextHook( ) : PImGuiContextHook; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiContextHook_destroy( self : PImGuiContextHook ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiContext_ImGuiContext( shared_font_atlas : PImFontAtlas ) : PImGuiContext; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiContext_destroy( self : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDataVarInfo_GetVarPtr( self : PImGuiDataVarInfo; parent : Pointer ) : Pointer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDebugAllocInfo_ImGuiDebugAllocInfo( ) : PImGuiDebugAllocInfo; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDebugAllocInfo_destroy( self : PImGuiDebugAllocInfo ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockContext_ImGuiDockContext( ) : PImGuiDockContext; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDockContext_destroy( self : PImGuiDockContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_ImGuiDockNode( id : ImGuiID ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsCentralNode( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsDockSpace( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsEmpty( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsFloatingNode( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsHiddenTabBar( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsLeafNode( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsNoTabBar( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsRootNode( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiDockNode_IsSplitNode( self : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDockNode_Rect( pOut : PImRect; self : PImGuiDockNode ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDockNode_SetLocalFlags( self : PImGuiDockNode; flags : ImGuiDockNodeFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDockNode_UpdateMergedFlags( self : PImGuiDockNode ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiDockNode_destroy( self : PImGuiDockNode ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiIDStackTool_ImGuiIDStackTool( ) : PImGuiIDStackTool; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIDStackTool_destroy( self : PImGuiIDStackTool ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddFocusEvent( self : PImGuiIO; focused : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddInputCharacter( self : PImGuiIO; c : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddInputCharacterUTF16( self : PImGuiIO; c : ImWchar16 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddInputCharactersUTF8( self : PImGuiIO; str : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddKeyAnalogEvent( self : PImGuiIO; key : ImGuiKey; down : Boolean; v : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddKeyEvent( self : PImGuiIO; key : ImGuiKey; down : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddMouseButtonEvent( self : PImGuiIO; button : Integer; down : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddMousePosEvent( self : PImGuiIO; x : Single; y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddMouseSourceEvent( self : PImGuiIO; source : ImGuiMouseSource ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddMouseViewportEvent( self : PImGuiIO; id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_AddMouseWheelEvent( self : PImGuiIO; wheel_x : Single; wheel_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_ClearEventsQueue( self : PImGuiIO ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_ClearInputKeys( self : PImGuiIO ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiIO_ImGuiIO( ) : PImGuiIO; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_SetAppAcceptingEvents( self : PImGuiIO; accepting_events : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_SetKeyEventNativeData( self : PImGuiIO; key : ImGuiKey; native_keycode : Integer; native_scancode : Integer; native_legacy_index : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiIO_destroy( self : PImGuiIO ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputEvent_ImGuiInputEvent( ) : PImGuiInputEvent; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputEvent_destroy( self : PImGuiInputEvent ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextCallbackData_ClearSelection( self : PImGuiInputTextCallbackData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextCallbackData_DeleteChars( self : PImGuiInputTextCallbackData; pos : Integer; bytes_count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextCallbackData_HasSelection( self : PImGuiInputTextCallbackData ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextCallbackData_ImGuiInputTextCallbackData( ) : PImGuiInputTextCallbackData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextCallbackData_InsertChars( self : PImGuiInputTextCallbackData; pos : Integer; text : PAnsiChar; text_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextCallbackData_SelectAll( self : PImGuiInputTextCallbackData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextCallbackData_destroy( self : PImGuiInputTextCallbackData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextDeactivatedState_ClearFreeMemory( self : PImGuiInputTextDeactivatedState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState( ) : PImGuiInputTextDeactivatedState; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextDeactivatedState_destroy( self : PImGuiInputTextDeactivatedState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_ClearFreeMemory( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_ClearSelection( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_ClearText( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_CursorAnimReset( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_CursorClamp( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_GetCursorPos( self : PImGuiInputTextState ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_GetRedoAvailCount( self : PImGuiInputTextState ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_GetSelectionEnd( self : PImGuiInputTextState ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_GetSelectionStart( self : PImGuiInputTextState ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_GetUndoAvailCount( self : PImGuiInputTextState ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_HasSelection( self : PImGuiInputTextState ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiInputTextState_ImGuiInputTextState( ) : PImGuiInputTextState; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_OnKeyPressed( self : PImGuiInputTextState; key : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_SelectAll( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiInputTextState_destroy( self : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiKeyOwnerData_ImGuiKeyOwnerData( ) : PImGuiKeyOwnerData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiKeyOwnerData_destroy( self : PImGuiKeyOwnerData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiKeyRoutingData_ImGuiKeyRoutingData( ) : PImGuiKeyRoutingData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiKeyRoutingData_destroy( self : PImGuiKeyRoutingData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiKeyRoutingTable_Clear( self : PImGuiKeyRoutingTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiKeyRoutingTable_ImGuiKeyRoutingTable( ) : PImGuiKeyRoutingTable; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiKeyRoutingTable_destroy( self : PImGuiKeyRoutingTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiLastItemData_ImGuiLastItemData( ) : PImGuiLastItemData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiLastItemData_destroy( self : PImGuiLastItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiListClipperData_ImGuiListClipperData( ) : PImGuiListClipperData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipperData_Reset( self : PImGuiListClipperData; clipper : PImGuiListClipper ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipperData_destroy( self : PImGuiListClipperData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiListClipperRange_FromIndices( min : Integer; max : Integer ) : ImGuiListClipperRange; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiListClipperRange_FromPositions( y1 : Single; y2 : Single; off_min : Integer; off_max : Integer ) : ImGuiListClipperRange; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipper_Begin( self : PImGuiListClipper; items_count : Integer; items_height : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipper_End( self : PImGuiListClipper ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiListClipper_ImGuiListClipper( ) : PImGuiListClipper; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipper_IncludeItemByIndex( self : PImGuiListClipper; item_index : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipper_IncludeItemsByIndex( self : PImGuiListClipper; item_begin : Integer; item_end : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiListClipper_Step( self : PImGuiListClipper ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiListClipper_destroy( self : PImGuiListClipper ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiMenuColumns_CalcNextTotalWidth( self : PImGuiMenuColumns; update_offsets : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiMenuColumns_DeclColumns( self : PImGuiMenuColumns; w_icon : Single; w_label : Single; w_shortcut : Single; w_mark : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiMenuColumns_ImGuiMenuColumns( ) : PImGuiMenuColumns; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiMenuColumns_Update( self : PImGuiMenuColumns; spacing : Single; window_reappearing : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiMenuColumns_destroy( self : PImGuiMenuColumns ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNavItemData_Clear( self : PImGuiNavItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiNavItemData_ImGuiNavItemData( ) : PImGuiNavItemData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNavItemData_destroy( self : PImGuiNavItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNextItemData_ClearFlags( self : PImGuiNextItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiNextItemData_ImGuiNextItemData( ) : PImGuiNextItemData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNextItemData_destroy( self : PImGuiNextItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNextWindowData_ClearFlags( self : PImGuiNextWindowData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiNextWindowData_ImGuiNextWindowData( ) : PImGuiNextWindowData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiNextWindowData_destroy( self : PImGuiNextWindowData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiOldColumnData_ImGuiOldColumnData( ) : PImGuiOldColumnData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiOldColumnData_destroy( self : PImGuiOldColumnData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiOldColumns_ImGuiOldColumns( ) : PImGuiOldColumns; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiOldColumns_destroy( self : PImGuiOldColumns ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiOnceUponAFrame_ImGuiOnceUponAFrame( ) : PImGuiOnceUponAFrame; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiOnceUponAFrame_destroy( self : PImGuiOnceUponAFrame ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPayload_Clear( self : PImGuiPayload ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPayload_ImGuiPayload( ) : PImGuiPayload; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPayload_IsDataType( self : PImGuiPayload; type_ : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPayload_IsDelivery( self : PImGuiPayload ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPayload_IsPreview( self : PImGuiPayload ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPayload_destroy( self : PImGuiPayload ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPlatformIO_ImGuiPlatformIO( ) : PImGuiPlatformIO; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPlatformIO_destroy( self : PImGuiPlatformIO ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPlatformImeData_ImGuiPlatformImeData( ) : PImGuiPlatformImeData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPlatformImeData_destroy( self : PImGuiPlatformImeData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPlatformMonitor_ImGuiPlatformMonitor( ) : PImGuiPlatformMonitor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPlatformMonitor_destroy( self : PImGuiPlatformMonitor ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPopupData_ImGuiPopupData( ) : PImGuiPopupData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPopupData_destroy( self : PImGuiPopupData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr( ptr : Pointer ) : PImGuiPtrOrIndex; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int( index : Integer ) : PImGuiPtrOrIndex; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiPtrOrIndex_destroy( self : PImGuiPtrOrIndex ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiSettingsHandler_ImGuiSettingsHandler( ) : PImGuiSettingsHandler; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiSettingsHandler_destroy( self : PImGuiSettingsHandler ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStackLevelInfo_ImGuiStackLevelInfo( ) : PImGuiStackLevelInfo; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStackLevelInfo_destroy( self : PImGuiStackLevelInfo ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStackSizes_CompareWithContextState( self : PImGuiStackSizes; ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStackSizes_ImGuiStackSizes( ) : PImGuiStackSizes; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStackSizes_SetToContextState( self : PImGuiStackSizes; ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStackSizes_destroy( self : PImGuiStackSizes ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStoragePair_ImGuiStoragePair_Int( _key : ImGuiID; _val : Integer ) : PImGuiStoragePair; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStoragePair_ImGuiStoragePair_Float( _key : ImGuiID; _val : Single ) : PImGuiStoragePair; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStoragePair_ImGuiStoragePair_Ptr( _key : ImGuiID; _val : Pointer ) : PImGuiStoragePair; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStoragePair_destroy( self : PImGuiStoragePair ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_BuildSortByKey( self : PImGuiStorage ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_Clear( self : PImGuiStorage ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetBool( self : PImGuiStorage; key : ImGuiID; default_val : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetBoolRef( self : PImGuiStorage; key : ImGuiID; default_val : Boolean ) : PBoolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetFloat( self : PImGuiStorage; key : ImGuiID; default_val : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetFloatRef( self : PImGuiStorage; key : ImGuiID; default_val : Single ) : PSingle; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetInt( self : PImGuiStorage; key : ImGuiID; default_val : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetIntRef( self : PImGuiStorage; key : ImGuiID; default_val : Integer ) : PInteger; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetVoidPtr( self : PImGuiStorage; key : ImGuiID ) : Pointer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStorage_GetVoidPtrRef( self : PImGuiStorage; key : ImGuiID; default_val : Pointer ) : PPointer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_SetAllInt( self : PImGuiStorage; val : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_SetBool( self : PImGuiStorage; key : ImGuiID; val : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_SetFloat( self : PImGuiStorage; key : ImGuiID; val : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_SetInt( self : PImGuiStorage; key : ImGuiID; val : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStorage_SetVoidPtr( self : PImGuiStorage; key : ImGuiID; val : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStyleMod_ImGuiStyleMod_Int( idx : ImGuiStyleVar; v : Integer ) : PImGuiStyleMod; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStyleMod_ImGuiStyleMod_Float( idx : ImGuiStyleVar; v : Single ) : PImGuiStyleMod; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStyleMod_ImGuiStyleMod_Vec2( idx : ImGuiStyleVar; v : ImVec2 ) : PImGuiStyleMod; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStyleMod_destroy( self : PImGuiStyleMod ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiStyle_ImGuiStyle( ) : PImGuiStyle; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStyle_ScaleAllSizes( self : PImGuiStyle; scale_factor : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiStyle_destroy( self : PImGuiStyle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTabBar_ImGuiTabBar( ) : PImGuiTabBar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTabBar_destroy( self : PImGuiTabBar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTabItem_ImGuiTabItem( ) : PImGuiTabItem; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTabItem_destroy( self : PImGuiTabItem ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableColumnSettings_ImGuiTableColumnSettings( ) : PImGuiTableColumnSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableColumnSettings_destroy( self : PImGuiTableColumnSettings ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs( ) : PImGuiTableColumnSortSpecs; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableColumnSortSpecs_destroy( self : PImGuiTableColumnSortSpecs ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableColumn_ImGuiTableColumn( ) : PImGuiTableColumn; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableColumn_destroy( self : PImGuiTableColumn ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableInstanceData_ImGuiTableInstanceData( ) : PImGuiTableInstanceData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableInstanceData_destroy( self : PImGuiTableInstanceData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableSettings_GetColumnSettings( self : PImGuiTableSettings ) : PImGuiTableColumnSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableSettings_ImGuiTableSettings( ) : PImGuiTableSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableSettings_destroy( self : PImGuiTableSettings ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableSortSpecs_ImGuiTableSortSpecs( ) : PImGuiTableSortSpecs; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableSortSpecs_destroy( self : PImGuiTableSortSpecs ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTableTempData_ImGuiTableTempData( ) : PImGuiTableTempData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTableTempData_destroy( self : PImGuiTableTempData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTable_ImGuiTable( ) : PImGuiTable; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTable_destroy( self : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_ImGuiTextBuffer( ) : PImGuiTextBuffer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_append( self : PImGuiTextBuffer; str : PAnsiChar; str_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_appendf( self : PImGuiTextBuffer; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_appendfv( self : PImGuiTextBuffer; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_begin( self : PImGuiTextBuffer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_c_str( self : PImGuiTextBuffer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_clear( self : PImGuiTextBuffer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_destroy( self : PImGuiTextBuffer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_empty( self : PImGuiTextBuffer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_end( self : PImGuiTextBuffer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextBuffer_reserve( self : PImGuiTextBuffer; capacity : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextBuffer_size( self : PImGuiTextBuffer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextFilter_Build( self : PImGuiTextFilter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextFilter_Clear( self : PImGuiTextFilter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextFilter_Draw( self : PImGuiTextFilter; label_ : PAnsiChar; width : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextFilter_ImGuiTextFilter( default_filter : PAnsiChar ) : PImGuiTextFilter; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextFilter_IsActive( self : PImGuiTextFilter ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextFilter_PassFilter( self : PImGuiTextFilter; text : PAnsiChar; text_end : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextFilter_destroy( self : PImGuiTextFilter ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextIndex_append( self : PImGuiTextIndex; base : PAnsiChar; old_size : Integer; new_size : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextIndex_clear( self : PImGuiTextIndex ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextIndex_get_line_begin( self : PImGuiTextIndex; base : PAnsiChar; n : Integer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextIndex_get_line_end( self : PImGuiTextIndex; base : PAnsiChar; n : Integer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextIndex_size( self : PImGuiTextIndex ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextRange_ImGuiTextRange_Nil( ) : PImGuiTextRange; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextRange_ImGuiTextRange_Str( _b : PAnsiChar; _e : PAnsiChar ) : PImGuiTextRange; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextRange_destroy( self : PImGuiTextRange ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTextRange_empty( self : PImGuiTextRange ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTextRange_split( self : PImGuiTextRange; separator : AnsiChar; out_ : PImVector_ImGuiTextRange ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTypingSelectState_Clear( self : PImGuiTypingSelectState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiTypingSelectState_ImGuiTypingSelectState( ) : PImGuiTypingSelectState; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiTypingSelectState_destroy( self : PImGuiTypingSelectState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_CalcWorkRectPos( pOut : PImVec2; self : PImGuiViewportP; off_min : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_CalcWorkRectSize( pOut : PImVec2; self : PImGuiViewportP; off_min : ImVec2; off_max : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_ClearRequestFlags( self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_GetBuildWorkRect( pOut : PImRect; self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_GetMainRect( pOut : PImRect; self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_GetWorkRect( pOut : PImRect; self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiViewportP_ImGuiViewportP( ) : PImGuiViewportP; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_UpdateWorkRect( self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewportP_destroy( self : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewport_GetCenter( pOut : PImVec2; self : PImGuiViewport ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewport_GetWorkCenter( pOut : PImVec2; self : PImGuiViewport ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiViewport_ImGuiViewport( ) : PImGuiViewport; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiViewport_destroy( self : PImGuiViewport ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindowClass_ImGuiWindowClass( ) : PImGuiWindowClass; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindowClass_destroy( self : PImGuiWindowClass ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindowSettings_GetName( self : PImGuiWindowSettings ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindowSettings_ImGuiWindowSettings( ) : PImGuiWindowSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindowSettings_destroy( self : PImGuiWindowSettings ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_CalcFontSize( self : PImGuiWindow ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_GetID_Str( self : PImGuiWindow; str : PAnsiChar; str_end : PAnsiChar ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_GetID_Ptr( self : PImGuiWindow; ptr : Pointer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_GetID_Int( self : PImGuiWindow; n : Integer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_GetIDFromRectangle( self : PImGuiWindow; r_abs : ImRect ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_ImGuiWindow( context : PImGuiContext; name : PAnsiChar ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_MenuBarHeight( self : PImGuiWindow ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindow_MenuBarRect( pOut : PImRect; self : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindow_Rect( pOut : PImRect; self : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImGuiWindow_TitleBarHeight( self : PImGuiWindow ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindow_TitleBarRect( pOut : PImRect; self : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImGuiWindow_destroy( self : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Add_Vec2( self : PImRect; p : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Add_Rect( self : PImRect; r : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_ClipWith( self : PImRect; r : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_ClipWithFull( self : PImRect; r : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_Contains_Vec2( self : PImRect; p : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_Contains_Rect( self : PImRect; r : ImRect ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_ContainsWithPad( self : PImRect; p : ImVec2; pad : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Expand_Float( self : PImRect; amount : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Expand_Vec2( self : PImRect; amount : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Floor( self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_GetArea( self : PImRect ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetBL( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetBR( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetCenter( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_GetHeight( self : PImRect ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetSize( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetTL( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_GetTR( pOut : PImVec2; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_GetWidth( self : PImRect ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_ImRect_Nil( ) : PImRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_ImRect_Vec2( min : ImVec2; max : ImVec2 ) : PImRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_ImRect_Vec4( v : ImVec4 ) : PImRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_ImRect_Float( x1 : Single; y1 : Single; x2 : Single; y2 : Single ) : PImRect; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_IsInverted( self : PImRect ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImRect_Overlaps( self : PImRect; r : ImRect ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_ToVec4( pOut : PImVec4; self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_Translate( self : PImRect; d : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_TranslateX( self : PImRect; dx : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_TranslateY( self : PImRect; dy : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImRect_destroy( self : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec1_ImVec1_Nil( ) : PImVec1; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec1_ImVec1_Float( _x : Single ) : PImVec1; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImVec1_destroy( self : PImVec1 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec2_ImVec2_Nil( ) : PImVec2; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec2_ImVec2_Float( _x : Single; _y : Single ) : PImVec2; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImVec2_destroy( self : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec2ih_ImVec2ih_Nil( ) : PImVec2ih; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec2ih_ImVec2ih_short( _x : ImS16; _y : ImS16 ) : PImVec2ih; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec2ih_ImVec2ih_Vec2( rhs : ImVec2 ) : PImVec2ih; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImVec2ih_destroy( self : PImVec2ih ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec4_ImVec4_Nil( ) : PImVec4; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function ImVec4_ImVec4_Float( _x : Single; _y : Single; _z : Single; _w : Single ) : PImVec4; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure ImVec4_destroy( self : PImVec4 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igAcceptDragDropPayload( type_ : PAnsiChar; flags : ImGuiDragDropFlags ) : PImGuiPayload; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igActivateItemByID( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igAddContextHook( context : PImGuiContext; hook : PImGuiContextHook ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igAddDrawListToDrawDataEx( draw_data : PImDrawData; out_list : PImVector_ImDrawListPtr; draw_list : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igAddSettingsHandler( handler : PImGuiSettingsHandler ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igAlignTextToFramePadding( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igArrowButton( str_id : PAnsiChar; dir : ImGuiDir ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igArrowButtonEx( str_id : PAnsiChar; dir : ImGuiDir; size_arg : ImVec2; flags : ImGuiButtonFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBegin( name : PAnsiChar; p_open : PBoolean; flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginChild_Str( str_id : PAnsiChar; size : ImVec2; child_flags : ImGuiChildFlags; window_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginChild_ID( id : ImGuiID; size : ImVec2; child_flags : ImGuiChildFlags; window_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginChildEx( name : PAnsiChar; id : ImGuiID; size_arg : ImVec2; child_flags : ImGuiChildFlags; window_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginColumns( str_id : PAnsiChar; count : Integer; flags : ImGuiOldColumnFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginCombo( label_ : PAnsiChar; preview_value : PAnsiChar; flags : ImGuiComboFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginComboPopup( popup_id : ImGuiID; bb : ImRect; flags : ImGuiComboFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginComboPreview( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginDisabled( disabled : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginDockableDragDropSource( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginDockableDragDropTarget( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginDocked( window : PImGuiWindow; p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginDragDropSource( flags : ImGuiDragDropFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginDragDropTarget( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginDragDropTargetCustom( bb : ImRect; id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBeginGroup( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginItemTooltip( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginListBox( label_ : PAnsiChar; size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginMainMenuBar( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginMenu( label_ : PAnsiChar; enabled : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginMenuBar( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginMenuEx( label_ : PAnsiChar; icon : PAnsiChar; enabled : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopup( str_id : PAnsiChar; flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopupContextItem( str_id : PAnsiChar; popup_flags : ImGuiPopupFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopupContextVoid( str_id : PAnsiChar; popup_flags : ImGuiPopupFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopupContextWindow( str_id : PAnsiChar; popup_flags : ImGuiPopupFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopupEx( id : ImGuiID; extra_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginPopupModal( name : PAnsiChar; p_open : PBoolean; flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTabBar( str_id : PAnsiChar; flags : ImGuiTabBarFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTabBarEx( tab_bar : PImGuiTabBar; bb : ImRect; flags : ImGuiTabBarFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTabItem( label_ : PAnsiChar; p_open : PBoolean; flags : ImGuiTabItemFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTable( str_id : PAnsiChar; column : Integer; flags : ImGuiTableFlags; outer_size : ImVec2; inner_width : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTableEx( name : PAnsiChar; id : ImGuiID; columns_count : Integer; flags : ImGuiTableFlags; outer_size : ImVec2; inner_width : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTooltip( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTooltipEx( tooltip_flags : ImGuiTooltipFlags; extra_window_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginTooltipHidden( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igBeginViewportSideBar( name : PAnsiChar; viewport : PImGuiViewport; dir : ImGuiDir; size : Single; window_flags : ImGuiWindowFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBringWindowToDisplayBack( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBringWindowToDisplayBehind( window : PImGuiWindow; above_window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBringWindowToDisplayFront( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBringWindowToFocusFront( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBullet( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBulletText( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igBulletTextV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igButton( label_ : PAnsiChar; size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igButtonBehavior( bb : ImRect; id : ImGuiID; out_hovered : PBoolean; out_held : PBoolean; flags : ImGuiButtonFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igButtonEx( label_ : PAnsiChar; size_arg : ImVec2; flags : ImGuiButtonFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igCalcItemSize( pOut : PImVec2; size : ImVec2; default_w : Single; default_h : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCalcItemWidth( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCalcRoundingFlagsForRectInRect( r_in : ImRect; r_outer : ImRect; threshold : Single ) : ImDrawFlags; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igCalcTextSize( pOut : PImVec2; text : PAnsiChar; text_end : PAnsiChar; hide_text_after_double_hash : Boolean; wrap_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCalcTypematicRepeatAmount( t0 : Single; t1 : Single; repeat_delay : Single; repeat_rate : Single ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igCalcWindowNextAutoFitSize( pOut : PImVec2; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCalcWrapWidthForPos( pos : ImVec2; wrap_pos_x : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igCallContextHooks( context : PImGuiContext; type_ : ImGuiContextHookType ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCheckbox( label_ : PAnsiChar; v : PBoolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCheckboxFlags_IntPtr( label_ : PAnsiChar; flags : PInteger; flags_value : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCheckboxFlags_UintPtr( label_ : PAnsiChar; flags : PImU32; flags_value : ImU32 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCheckboxFlags_S64Ptr( label_ : PAnsiChar; flags : PImS64; flags_value : ImS64 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCheckboxFlags_U64Ptr( label_ : PAnsiChar; flags : PImU64; flags_value : ImU64 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClearActiveID( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClearDragDrop( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClearIniSettings( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClearWindowSettings( name : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCloseButton( id : ImGuiID; pos : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igCloseCurrentPopup( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClosePopupToLevel( remaining : Integer; restore_focus_to_window_under_popup : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClosePopupsExceptModals( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igClosePopupsOverWindow( ref_window : PImGuiWindow; restore_focus_to_window_under_popup : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCollapseButton( id : ImGuiID; pos : ImVec2; dock_node : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCollapsingHeader_TreeNodeFlags( label_ : PAnsiChar; flags : ImGuiTreeNodeFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCollapsingHeader_BoolPtr( label_ : PAnsiChar; p_visible : PBoolean; flags : ImGuiTreeNodeFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorButton( desc_id : PAnsiChar; col : ImVec4; flags : ImGuiColorEditFlags; size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorConvertFloat4ToU32( in_ : ImVec4 ) : ImU32; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorConvertHSVtoRGB( h : Single; s : Single; v : Single; out_r : PSingle; out_g : PSingle; out_b : PSingle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorConvertRGBtoHSV( r : Single; g : Single; b : Single; out_h : PSingle; out_s : PSingle; out_v : PSingle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorConvertU32ToFloat4( pOut : PImVec4; in_ : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorEdit3( label_ : PAnsiChar; col : PSingle; flags : ImGuiColorEditFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorEdit4( label_ : PAnsiChar; col : PSingle; flags : ImGuiColorEditFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorEditOptionsPopup( col : PSingle; flags : ImGuiColorEditFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorPicker3( label_ : PAnsiChar; col : PSingle; flags : ImGuiColorEditFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igColorPicker4( label_ : PAnsiChar; col : PSingle; flags : ImGuiColorEditFlags; ref_col : PSingle ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorPickerOptionsPopup( ref_col : PSingle; flags : ImGuiColorEditFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColorTooltip( text : PAnsiChar; col : PSingle; flags : ImGuiColorEditFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igColumns( count : Integer; id : PAnsiChar; border : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCombo_Str_arr( label_ : PAnsiChar; current_item : PInteger; items : PPAnsiChar; items_count : Integer; popup_max_height_in_items : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCombo_Str( label_ : PAnsiChar; current_item : PInteger; items_separated_by_zeros : PAnsiChar; popup_max_height_in_items : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCombo_FnStrPtr( label_ : PAnsiChar; current_item : PInteger; getter : TImGuiComboItemsGetterFunc ;user_data : Pointer; items_count : Integer; popup_max_height_in_items : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igConvertShortcutMod( key_chord : ImGuiKeyChord ) : ImGuiKeyChord; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igConvertSingleModFlagToKey( ctx : PImGuiContext; key : ImGuiKey ) : ImGuiKey; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCreateContext( shared_font_atlas : PImFontAtlas ) : PImGuiContext; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igCreateNewWindowSettings( name : PAnsiChar ) : PImGuiWindowSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDataTypeApplyFromText( buf : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; format : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDataTypeApplyOp( data_type : ImGuiDataType; op : Integer; output : Pointer; arg_1 : Pointer; arg_2 : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDataTypeClamp( data_type : ImGuiDataType; p_data : Pointer; p_min : Pointer; p_max : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDataTypeCompare( data_type : ImGuiDataType; arg_1 : Pointer; arg_2 : Pointer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDataTypeFormatString( buf : PAnsiChar; buf_size : Integer; data_type : ImGuiDataType; p_data : Pointer; format : PAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDataTypeGetInfo( data_type : ImGuiDataType ) : PImGuiDataTypeInfo; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugAllocHook( info : PImGuiDebugAllocInfo; frame_count : Integer; ptr : Pointer; size : size_t ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDebugCheckVersionAndDataLayout( version_str : PAnsiChar; sz_io : size_t; sz_style : size_t; sz_vec2 : size_t; sz_vec4 : size_t; sz_drawvert : size_t; sz_drawidx : size_t ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugDrawCursorPos( col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugDrawItemRect( col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugDrawLineExtents( col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugHookIdInfo( id : ImGuiID; data_type : ImGuiDataType; data_id : Pointer; data_id_end : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugLocateItem( target_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugLocateItemOnHover( target_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugLocateItemResolveWithLastItem( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugLog( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugLogV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeColumns( columns : PImGuiOldColumns ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeDockNode( node : PImGuiDockNode; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeDrawCmdShowMeshAndBoundingBox( out_draw_list : PImDrawList; draw_list : PImDrawList; draw_cmd : PImDrawCmd; show_mesh : Boolean; show_aabb : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeDrawList( window : PImGuiWindow; viewport : PImGuiViewportP; draw_list : PImDrawList; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeFont( font : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeFontGlyph( font : PImFont; glyph : PImFontGlyph ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeInputTextState( state : PImGuiInputTextState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeStorage( storage : PImGuiStorage; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeTabBar( tab_bar : PImGuiTabBar; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeTable( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeTableSettings( settings : PImGuiTableSettings ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeTypingSelectState( state : PImGuiTypingSelectState ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeViewport( viewport : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeWindow( window : PImGuiWindow; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeWindowSettings( settings : PImGuiWindowSettings ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeWindowsList( windows : PImVector_ImGuiWindowPtr; label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugNodeWindowsListByBeginStackParent( windows : PPImGuiWindow; windows_size : Integer; parent_in_begin_stack : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugRenderKeyboardPreview( draw_list : PImDrawList ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugRenderViewportThumbnail( draw_list : PImDrawList; viewport : PImGuiViewportP; bb : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugStartItemPicker( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDebugTextEncoding( text : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDestroyContext( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDestroyPlatformWindow( viewport : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDestroyPlatformWindows( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockBuilderAddNode( node_id : ImGuiID; flags : ImGuiDockNodeFlags ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderCopyDockSpace( src_dockspace_id : ImGuiID; dst_dockspace_id : ImGuiID; in_window_remap_pairs : PImVector_const_charPtr ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderCopyNode( src_node_id : ImGuiID; dst_node_id : ImGuiID; out_node_remap_pairs : PImVector_ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderCopyWindowSettings( src_name : PAnsiChar; dst_name : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderDockWindow( window_name : PAnsiChar; node_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderFinish( node_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockBuilderGetCentralNode( node_id : ImGuiID ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockBuilderGetNode( node_id : ImGuiID ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderRemoveNode( node_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderRemoveNodeChildNodes( node_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderRemoveNodeDockedWindows( node_id : ImGuiID; clear_settings_refs : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderSetNodePos( node_id : ImGuiID; pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockBuilderSetNodeSize( node_id : ImGuiID; size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockBuilderSplitNode( node_id : ImGuiID; split_dir : ImGuiDir; size_ratio_for_node_at_dir : Single; out_id_at_dir : PImGuiID; out_id_at_opposite_dir : PImGuiID ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockContextCalcDropPosForDocking( target : PImGuiWindow; target_node : PImGuiDockNode; payload_window : PImGuiWindow; payload_node : PImGuiDockNode; split_dir : ImGuiDir; split_outer : Boolean; out_pos : PImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextClearNodes( ctx : PImGuiContext; root_id : ImGuiID; clear_settings_refs : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextEndFrame( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockContextFindNodeByID( ctx : PImGuiContext; id : ImGuiID ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockContextGenNodeID( ctx : PImGuiContext ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextInitialize( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextNewFrameUpdateDocking( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextNewFrameUpdateUndocking( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextProcessUndockNode( ctx : PImGuiContext; node : PImGuiDockNode ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextProcessUndockWindow( ctx : PImGuiContext; window : PImGuiWindow; clear_persistent_docking_ref : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextQueueDock( ctx : PImGuiContext; target : PImGuiWindow; target_node : PImGuiDockNode; payload : PImGuiWindow; split_dir : ImGuiDir; split_ratio : Single; split_outer : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextQueueUndockNode( ctx : PImGuiContext; node : PImGuiDockNode ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextQueueUndockWindow( ctx : PImGuiContext; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextRebuildNodes( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockContextShutdown( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockNodeBeginAmendTabBar( node : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockNodeEndAmendTabBar( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockNodeGetDepth( node : PImGuiDockNode ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockNodeGetRootNode( node : PImGuiDockNode ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockNodeGetWindowMenuButtonId( node : PImGuiDockNode ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockNodeIsInHierarchyOf( node : PImGuiDockNode; parent : PImGuiDockNode ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDockNodeWindowMenuHandler_Default( ctx : PImGuiContext; node : PImGuiDockNode; tab_bar : PImGuiTabBar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockSpace( id : ImGuiID; size : ImVec2; flags : ImGuiDockNodeFlags; window_class : PImGuiWindowClass ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDockSpaceOverViewport( viewport : PImGuiViewport; flags : ImGuiDockNodeFlags; window_class : PImGuiWindowClass ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragBehavior( id : ImGuiID; data_type : ImGuiDataType; p_v : Pointer; v_speed : Single; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragFloat( label_ : PAnsiChar; v : PSingle; v_speed : Single; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragFloat2( label_ : PAnsiChar; v : PSingle; v_speed : Single; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragFloat3( label_ : PAnsiChar; v : PSingle; v_speed : Single; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragFloat4( label_ : PAnsiChar; v : PSingle; v_speed : Single; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragFloatRange2( label_ : PAnsiChar; v_current_min : PSingle; v_current_max : PSingle; v_speed : Single; v_min : Single; v_max : Single; format : PAnsiChar; format_max : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragInt( label_ : PAnsiChar; v : PInteger; v_speed : Single; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragInt2( label_ : PAnsiChar; v : PInteger; v_speed : Single; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragInt3( label_ : PAnsiChar; v : PInteger; v_speed : Single; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragInt4( label_ : PAnsiChar; v : PInteger; v_speed : Single; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragIntRange2( label_ : PAnsiChar; v_current_min : PInteger; v_current_max : PInteger; v_speed : Single; v_min : Integer; v_max : Integer; format : PAnsiChar; format_max : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragScalar( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; v_speed : Single; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igDragScalarN( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; components : Integer; v_speed : Single; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igDummy( size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEnd( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndChild( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndColumns( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndCombo( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndComboPreview( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndDisabled( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndDragDropSource( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndDragDropTarget( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndFrame( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndGroup( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndListBox( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndMainMenuBar( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndMenu( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndMenuBar( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndPopup( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndTabBar( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndTabItem( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndTable( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igEndTooltip( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igErrorCheckEndFrameRecover( log_callback : ImGuiErrorLogCallback; user_data : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igErrorCheckEndWindowRecover( log_callback : ImGuiErrorLogCallback; user_data : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igErrorCheckUsingSetCursorPosToExtendParentBoundaries( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igFindBestWindowPosForPopup( pOut : PImVec2; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igFindBestWindowPosForPopupEx( pOut : PImVec2; ref_pos : ImVec2; size : ImVec2; last_dir : PImGuiDir; r_outer : ImRect; r_avoid : ImRect; policy : ImGuiPopupPositionPolicy ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindBlockingModal( window : PImGuiWindow ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindBottomMostVisibleWindowWithinBeginStack( window : PImGuiWindow ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindHoveredViewportFromPlatformWindowStack( mouse_platform_pos : ImVec2 ) : PImGuiViewportP; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindOrCreateColumns( window : PImGuiWindow; id : ImGuiID ) : PImGuiOldColumns; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindRenderedTextEnd( text : PAnsiChar; text_end : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindSettingsHandler( type_name : PAnsiChar ) : PImGuiSettingsHandler; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindViewportByID( id : ImGuiID ) : PImGuiViewport; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindViewportByPlatformHandle( platform_handle : Pointer ) : PImGuiViewport; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindWindowByID( id : ImGuiID ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindWindowByName( name : PAnsiChar ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindWindowDisplayIndex( window : PImGuiWindow ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindWindowSettingsByID( id : ImGuiID ) : PImGuiWindowSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igFindWindowSettingsByWindow( window : PImGuiWindow ) : PImGuiWindowSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igFocusItem( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igFocusTopMostWindowUnderOne( under_this_window : PImGuiWindow; ignore_window : PImGuiWindow; filter_viewport : PImGuiViewport; flags : ImGuiFocusRequestFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igFocusWindow( window : PImGuiWindow; flags : ImGuiFocusRequestFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGcAwakeTransientWindowBuffers( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGcCompactTransientMiscBuffers( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGcCompactTransientWindowBuffers( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetActiveID( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetAllocatorFunctions( p_alloc_func : PImGuiMemAllocFunc; p_free_func : PImGuiMemFreeFunc; p_user_data : PPointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetBackgroundDrawList_Nil( ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetBackgroundDrawList_ViewportPtr( viewport : PImGuiViewport ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetClipboardText( ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColorU32_Col( idx : ImGuiCol; alpha_mul : Single ) : ImU32; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColorU32_Vec4( col : ImVec4 ) : ImU32; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColorU32_U32( col : ImU32 ) : ImU32; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnIndex( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnNormFromOffset( columns : PImGuiOldColumns; offset : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnOffset( column_index : Integer ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnOffsetFromNorm( columns : PImGuiOldColumns; offset_norm : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnWidth( column_index : Integer ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnsCount( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetColumnsID( str_id : PAnsiChar; count : Integer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetContentRegionAvail( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetContentRegionMax( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetContentRegionMaxAbs( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentContext( ) : PImGuiContext; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentFocusScope( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentTabBar( ) : PImGuiTabBar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentTable( ) : PImGuiTable; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentWindow( ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCurrentWindowRead( ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetCursorPos( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCursorPosX( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetCursorPosY( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetCursorScreenPos( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetCursorStartPos( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetDefaultFont( ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetDragDropPayload( ) : PImGuiPayload; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetDrawData( ) : PImDrawData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetDrawListSharedData( ) : PImDrawListSharedData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFocusID( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFont( ) : PImFont; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFontSize( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetFontTexUvWhitePixel( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetForegroundDrawList_Nil( ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetForegroundDrawList_ViewportPtr( viewport : PImGuiViewport ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetForegroundDrawList_WindowPtr( window : PImGuiWindow ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFrameCount( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFrameHeight( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetFrameHeightWithSpacing( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetHoveredID( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetID_Str( str_id : PAnsiChar ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetID_StrStr( str_id_begin : PAnsiChar; str_id_end : PAnsiChar ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetID_Ptr( ptr_id : Pointer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetIDWithSeed_Str( str_id_begin : PAnsiChar; str_id_end : PAnsiChar; seed : ImGuiID ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetIDWithSeed_Int( n : Integer; seed : ImGuiID ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetIO( ) : PImGuiIO; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetInputTextState( id : ImGuiID ) : PImGuiInputTextState; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetItemFlags( ) : ImGuiItemFlags; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetItemID( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetItemRectMax( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetItemRectMin( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetItemRectSize( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetItemStatusFlags( ) : ImGuiItemStatusFlags; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetKeyChordName( key_chord : ImGuiKeyChord; out_buf : PAnsiChar; out_buf_size : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyData_ContextPtr( ctx : PImGuiContext; key : ImGuiKey ) : PImGuiKeyData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyData_Key( key : ImGuiKey ) : PImGuiKeyData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyIndex( key : ImGuiKey ) : ImGuiKey; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetKeyMagnitude2d( pOut : PImVec2; key_left : ImGuiKey; key_right : ImGuiKey; key_up : ImGuiKey; key_down : ImGuiKey ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyName( key : ImGuiKey ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyOwner( key : ImGuiKey ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyOwnerData( ctx : PImGuiContext; key : ImGuiKey ) : PImGuiKeyOwnerData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetKeyPressedAmount( key : ImGuiKey; repeat_delay : Single; rate : Single ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetMainViewport( ) : PImGuiViewport; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetMouseClickedCount( button : ImGuiMouseButton ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetMouseCursor( ) : ImGuiMouseCursor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetMouseDragDelta( pOut : PImVec2; button : ImGuiMouseButton; lock_threshold : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetMousePos( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetMousePosOnOpeningCurrentPopup( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetNavTweakPressedAmount( axis : ImGuiAxis ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetPlatformIO( ) : PImGuiPlatformIO; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetPopupAllowedExtentRect( pOut : PImRect; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetScrollMaxX( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetScrollMaxY( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetScrollX( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetScrollY( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetShortcutRoutingData( key_chord : ImGuiKeyChord ) : PImGuiKeyRoutingData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetStateStorage( ) : PImGuiStorage; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetStyle( ) : PImGuiStyle; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetStyleColorName( idx : ImGuiCol ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetStyleColorVec4( idx : ImGuiCol ) : PImVec4; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetStyleVarInfo( idx : ImGuiStyleVar ) : PImGuiDataVarInfo; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTextLineHeight( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTextLineHeightWithSpacing( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTime( ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTopMostAndVisiblePopupModal( ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTopMostPopupModal( ) : PImGuiWindow; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTreeNodeToLabelSpacing( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetTypematicRepeatRate( flags : ImGuiInputFlags; repeat_delay : PSingle; repeat_rate : PSingle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetTypingSelectRequest( flags : ImGuiTypingSelectFlags ) : PImGuiTypingSelectRequest; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetVersion( ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetViewportPlatformMonitor( viewport : PImGuiViewport ) : PImGuiPlatformMonitor; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowAlwaysWantOwnTabBar( window : PImGuiWindow ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetWindowContentRegionMax( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetWindowContentRegionMin( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowDockID( ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowDockNode( ) : PImGuiDockNode; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowDpiScale( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowDrawList( ) : PImDrawList; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowHeight( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetWindowPos( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowResizeBorderID( window : PImGuiWindow; dir : ImGuiDir ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowResizeCornerID( window : PImGuiWindow; n : Integer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowScrollbarID( window : PImGuiWindow; axis : ImGuiAxis ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetWindowScrollbarRect( pOut : PImRect; window : PImGuiWindow; axis : ImGuiAxis ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igGetWindowSize( pOut : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowViewport( ) : PImGuiViewport; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igGetWindowWidth( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImAbs_Int( x : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImAbs_Float( x : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImAbs_double( x : Double ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImAlphaBlendColors( col_a : ImU32; col_b : ImU32 ) : ImU32; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBezierCubicCalc( pOut : PImVec2; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; t : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBezierCubicClosestPoint( pOut : PImVec2; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; p : ImVec2; num_segments : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBezierCubicClosestPointCasteljau( pOut : PImVec2; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; p4 : ImVec2; p : ImVec2; tess_tol : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBezierQuadraticCalc( pOut : PImVec2; p1 : ImVec2; p2 : ImVec2; p3 : ImVec2; t : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBitArrayClearAllBits( arr : PImU32; bitcount : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBitArrayClearBit( arr : PImU32; n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImBitArrayGetStorageSizeInBytes( bitcount : Integer ) : size_t; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBitArraySetBit( arr : PImU32; n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImBitArraySetBitRange( arr : PImU32; n : Integer; n2 : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImBitArrayTestBit( arr : PImU32; n : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImCharIsBlankA( c : AnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImCharIsBlankW( c : ImU32 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImClamp( pOut : PImVec2; v : ImVec2; mn : ImVec2; mx : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImDot( a : ImVec2; b : ImVec2 ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImExponentialMovingAverage( avg : Single; sample : Single; n : Integer ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileClose( file_ : ImFileHandle ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileGetSize( file_ : ImFileHandle ) : ImU64; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileLoadToMemory( filename : PAnsiChar; mode : PAnsiChar; out_file_size : Psize_t; padding_bytes : Integer ) : Pointer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileOpen( filename : PAnsiChar; mode : PAnsiChar ) : ImFileHandle; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileRead( data : Pointer; size : ImU64; count : ImU64; file_ : ImFileHandle ) : ImU64; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFileWrite( data : Pointer; size : ImU64; count : ImU64; file_ : ImFileHandle ) : ImU64; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFloor_Float( f : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFloor_Vec2( pOut : PImVec2; v : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildFinish( atlas : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildInit( atlas : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildMultiplyCalcLookupTable( out_table : PByte; in_multiply_factor : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildMultiplyRectAlpha8( table : PByte; pixels : PImU8; x : Integer; y : Integer; w : Integer; h : Integer; stride : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildPackCustomRects( atlas : PImFontAtlas; stbrp_context_opaque : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildRender32bppRectFromString( atlas : PImFontAtlas; x : Integer; y : Integer; w : Integer; h : Integer; in_str : PAnsiChar; in_marker_char : AnsiChar; in_marker_pixel_value : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildRender8bppRectFromString( atlas : PImFontAtlas; x : Integer; y : Integer; w : Integer; h : Integer; in_str : PAnsiChar; in_marker_char : AnsiChar; in_marker_pixel_value : ImU8 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasBuildSetupFont( atlas : PImFontAtlas; font : PImFont; font_config : PImFontConfig; ascent : Single; descent : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFontAtlasGetBuilderForStbTruetype( ) : PImFontBuilderIO; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFontAtlasUpdateConfigDataPointers( atlas : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFormatString( buf : PAnsiChar; buf_size : size_t; fmt : PAnsiChar; args : array of const ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFormatStringToTempBuffer( out_buf : PPAnsiChar; out_buf_end : PPAnsiChar; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImFormatStringToTempBufferV( out_buf : PPAnsiChar; out_buf_end : PPAnsiChar; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImFormatStringV( buf : PAnsiChar; buf_size : size_t; fmt : PAnsiChar; args : array of const ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImHashData( data : Pointer; data_size : size_t; seed : ImGuiID ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImHashStr( data : PAnsiChar; data_size : size_t; seed : ImGuiID ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImInvLength( lhs : ImVec2; fail_value : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImIsFloatAboveGuaranteedIntegerPrecision( f : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImIsPowerOfTwo_Int( v : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImIsPowerOfTwo_U64( v : ImU64 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImLengthSqr_Vec2( lhs : ImVec2 ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImLengthSqr_Vec4( lhs : ImVec4 ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImLerp_Vec2Float( pOut : PImVec2; a : ImVec2; b : ImVec2; t : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImLerp_Vec2Vec2( pOut : PImVec2; a : ImVec2; b : ImVec2; t : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImLerp_Vec4( pOut : PImVec4; a : ImVec4; b : ImVec4; t : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImLineClosestPoint( pOut : PImVec2; a : ImVec2; b : ImVec2; p : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImLinearSweep( current : Single; target : Single; speed : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImLog_Float( x : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImLog_double( x : Double ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImMax( pOut : PImVec2; lhs : ImVec2; rhs : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImMin( pOut : PImVec2; lhs : ImVec2; rhs : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImModPositive( a : Integer; b : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImMul( pOut : PImVec2; lhs : ImVec2; rhs : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImParseFormatFindEnd( format : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImParseFormatFindStart( format : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImParseFormatPrecision( format : PAnsiChar; default_value : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImParseFormatSanitizeForPrinting( fmt_in : PAnsiChar; fmt_out : PAnsiChar; fmt_out_size : size_t ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImParseFormatSanitizeForScanning( fmt_in : PAnsiChar; fmt_out : PAnsiChar; fmt_out_size : size_t ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImParseFormatTrimDecorations( format : PAnsiChar; buf : PAnsiChar; buf_size : size_t ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImPow_Float( x : Single; y : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImPow_double( x : Double; y : Double ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImQsort( base : Pointer; count : size_t; size_of_element : size_t; compare_func : TCompareFunc ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImRotate( pOut : PImVec2; v : ImVec2; cos_a : Single; sin_a : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImRsqrt_Float( x : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImRsqrt_double( x : Double ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImSaturate( f : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImSign_Float( x : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImSign_double( x : Double ) : Double; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrSkipBlank( str : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImStrTrimBlanks( str : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrbolW( buf_mid_line : PImWchar; buf_begin : PImWchar ) : PImWchar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrchrRange( str_begin : PAnsiChar; str_end : PAnsiChar; c : AnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrdup( str : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrdupcpy( dst : PAnsiChar; p_dst_size : Psize_t; str : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStreolRange( str : PAnsiChar; str_end : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStricmp( str1 : PAnsiChar; str2 : PAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStristr( haystack : PAnsiChar; haystack_end : PAnsiChar; needle : PAnsiChar; needle_end : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrlenW( str : PImWchar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImStrncpy( dst : PAnsiChar; src : PAnsiChar; count : size_t ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImStrnicmp( str1 : PAnsiChar; str2 : PAnsiChar; count : size_t ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextCharFromUtf8( out_char : PImU32; in_text : PAnsiChar; in_text_end : PAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextCharToUtf8( out_buf : PAnsiChar; c : ImU32 ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextCountCharsFromUtf8( in_text : PAnsiChar; in_text_end : PAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextCountUtf8BytesFromChar( in_text : PAnsiChar; in_text_end : PAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextCountUtf8BytesFromStr( in_text : PImWchar; in_text_end : PImWchar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextFindPreviousUtf8Codepoint( in_text_start : PAnsiChar; in_text_curr : PAnsiChar ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextStrFromUtf8( out_buf : PImWchar; out_buf_size : Integer; in_text : PAnsiChar; in_text_end : PAnsiChar; in_remaining : PPAnsiChar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTextStrToUtf8( out_buf : PAnsiChar; out_buf_size : Integer; in_text : PImWchar; in_text_end : PImWchar ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImToUpper( c : AnsiChar ) : AnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTriangleArea( a : ImVec2; b : ImVec2; c : ImVec2 ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImTriangleBarycentricCoords( a : ImVec2; b : ImVec2; c : ImVec2; p : ImVec2; out_u : PSingle; out_v : PSingle; out_w : PSingle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImTriangleClosestPoint( pOut : PImVec2; a : ImVec2; b : ImVec2; c : ImVec2; p : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTriangleContainsPoint( a : ImVec2; b : ImVec2; c : ImVec2; p : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImTrunc_Float( f : Single ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImTrunc_Vec2( pOut : PImVec2; v : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImUpperPowerOfTwo( v : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igImage( user_texture_id : ImTextureID; size : ImVec2; uv0 : ImVec2; uv1 : ImVec2; tint_col : ImVec4; border_col : ImVec4 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImageButton( str_id : PAnsiChar; user_texture_id : ImTextureID; image_size : ImVec2; uv0 : ImVec2; uv1 : ImVec2; bg_col : ImVec4; tint_col : ImVec4 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igImageButtonEx( id : ImGuiID; texture_id : ImTextureID; image_size : ImVec2; uv0 : ImVec2; uv1 : ImVec2; bg_col : ImVec4; tint_col : ImVec4; flags : ImGuiButtonFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igIndent( indent_w : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igInitialize( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputDouble( label_ : PAnsiChar; v : PDouble; step : Double; step_fast : Double; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputFloat( label_ : PAnsiChar; v : PSingle; step : Single; step_fast : Single; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputFloat2( label_ : PAnsiChar; v : PSingle; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputFloat3( label_ : PAnsiChar; v : PSingle; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputFloat4( label_ : PAnsiChar; v : PSingle; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputInt( label_ : PAnsiChar; v : PInteger; step : Integer; step_fast : Integer; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputInt2( label_ : PAnsiChar; v : PInteger; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputInt3( label_ : PAnsiChar; v : PInteger; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputInt4( label_ : PAnsiChar; v : PInteger; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputScalar( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; p_step : Pointer; p_step_fast : Pointer; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputScalarN( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; components : Integer; p_step : Pointer; p_step_fast : Pointer; format : PAnsiChar; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputText( label_ : PAnsiChar; buf : PAnsiChar; buf_size : size_t; flags : ImGuiInputTextFlags; callback : ImGuiInputTextCallback; user_data : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igInputTextDeactivateHook( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputTextEx( label_ : PAnsiChar; hint : PAnsiChar; buf : PAnsiChar; buf_size : Integer; size_arg : ImVec2; flags : ImGuiInputTextFlags; callback : ImGuiInputTextCallback; user_data : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputTextMultiline( label_ : PAnsiChar; buf : PAnsiChar; buf_size : size_t; size : ImVec2; flags : ImGuiInputTextFlags; callback : ImGuiInputTextCallback; user_data : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInputTextWithHint( label_ : PAnsiChar; hint : PAnsiChar; buf : PAnsiChar; buf_size : size_t; flags : ImGuiInputTextFlags; callback : ImGuiInputTextCallback; user_data : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igInvisibleButton( str_id : PAnsiChar; size : ImVec2; flags : ImGuiButtonFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsActiveIdUsingNavDir( dir : ImGuiDir ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsAliasKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsAnyItemActive( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsAnyItemFocused( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsAnyItemHovered( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsAnyMouseDown( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsClippedEx( bb : ImRect; id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsDragDropActive( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsDragDropPayloadBeingAccepted( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsGamepadKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemActivated( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemActive( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemClicked( mouse_button : ImGuiMouseButton ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemDeactivated( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemDeactivatedAfterEdit( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemEdited( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemFocused( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemHovered( flags : ImGuiHoveredFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemToggledOpen( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemToggledSelection( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsItemVisible( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyChordPressed_Nil( key_chord : ImGuiKeyChord ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyChordPressed_ID( key_chord : ImGuiKeyChord; owner_id : ImGuiID; flags : ImGuiInputFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyDown_Nil( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyDown_ID( key : ImGuiKey; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyPressed_Bool( key : ImGuiKey; repeat_ : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyPressed_ID( key : ImGuiKey; owner_id : ImGuiID; flags : ImGuiInputFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyReleased_Nil( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyReleased_ID( key : ImGuiKey; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsKeyboardKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsLegacyKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseClicked_Bool( button : ImGuiMouseButton; repeat_ : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseClicked_ID( button : ImGuiMouseButton; owner_id : ImGuiID; flags : ImGuiInputFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDoubleClicked_Nil( button : ImGuiMouseButton ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDoubleClicked_ID( button : ImGuiMouseButton; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDown_Nil( button : ImGuiMouseButton ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDown_ID( button : ImGuiMouseButton; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDragPastThreshold( button : ImGuiMouseButton; lock_threshold : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseDragging( button : ImGuiMouseButton; lock_threshold : Single ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseHoveringRect( r_min : ImVec2; r_max : ImVec2; clip : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMousePosValid( mouse_pos : PImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseReleased_Nil( button : ImGuiMouseButton ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsMouseReleased_ID( button : ImGuiMouseButton; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsNamedKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsNamedKeyOrModKey( key : ImGuiKey ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsPopupOpen_Str( str_id : PAnsiChar; flags : ImGuiPopupFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsPopupOpen_ID( id : ImGuiID; popup_flags : ImGuiPopupFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsRectVisible_Nil( size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsRectVisible_Vec2( rect_min : ImVec2; rect_max : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowAbove( potential_above : PImGuiWindow; potential_below : PImGuiWindow ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowAppearing( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowChildOf( window : PImGuiWindow; potential_parent : PImGuiWindow; popup_hierarchy : Boolean; dock_hierarchy : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowCollapsed( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowContentHoverable( window : PImGuiWindow; flags : ImGuiHoveredFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowDocked( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowFocused( flags : ImGuiFocusedFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowHovered( flags : ImGuiHoveredFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowNavFocusable( window : PImGuiWindow ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igIsWindowWithinBeginStackOf( window : PImGuiWindow; potential_parent : PImGuiWindow ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igItemAdd( bb : ImRect; id : ImGuiID; nav_bb : PImRect; extra_flags : ImGuiItemFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igItemHoverable( bb : ImRect; id : ImGuiID; item_flags : ImGuiItemFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igItemSize_Vec2( size : ImVec2; text_baseline_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igItemSize_Rect( bb : ImRect; text_baseline_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igKeepAliveID( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLabelText( label_ : PAnsiChar; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLabelTextV( label_ : PAnsiChar; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igListBox_Str_arr( label_ : PAnsiChar; current_item : PInteger; items : PPAnsiChar; items_count : Integer; height_in_items : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igListBox_FnStrPtr( label_ : PAnsiChar; current_item : PInteger; getter : TImGuiComboItemsGetterFunc ;user_data : Pointer; items_count : Integer; height_in_items : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLoadIniSettingsFromDisk( ini_filename : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLoadIniSettingsFromMemory( ini_data : PAnsiChar; ini_size : size_t ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igLocalizeGetMsg( key : ImGuiLocKey ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLocalizeRegisterEntries( entries : PImGuiLocEntry; count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogBegin( type_ : ImGuiLogType; auto_open_depth : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogButtons( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogFinish( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogRenderedText( ref_pos : PImVec2; text : PAnsiChar; text_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogSetNextTextDecoration( prefix : PAnsiChar; suffix : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogText( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogTextV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogToBuffer( auto_open_depth : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogToClipboard( auto_open_depth : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogToFile( auto_open_depth : Integer; filename : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igLogToTTY( auto_open_depth : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igMarkIniSettingsDirty_Nil( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igMarkIniSettingsDirty_WindowPtr( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igMarkItemEdited( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igMemAlloc( size : size_t ) : Pointer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igMemFree( ptr : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igMenuItem_Bool( label_ : PAnsiChar; shortcut : PAnsiChar; selected : Boolean; enabled : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igMenuItem_BoolPtr( label_ : PAnsiChar; shortcut : PAnsiChar; p_selected : PBoolean; enabled : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igMenuItemEx( label_ : PAnsiChar; icon : PAnsiChar; shortcut : PAnsiChar; selected : Boolean; enabled : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igMouseButtonToKey( button : ImGuiMouseButton ) : ImGuiKey; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavClearPreferredPosForAxis( axis : ImGuiAxis ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavInitRequestApplyResult( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavInitWindow( window : PImGuiWindow; force_reinit : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestApplyResult( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igNavMoveRequestButNoResultYet( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestCancel( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestForward( move_dir : ImGuiDir; clip_dir : ImGuiDir; move_flags : ImGuiNavMoveFlags; scroll_flags : ImGuiScrollFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestResolveWithLastItem( result : PImGuiNavItemData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestResolveWithPastTreeNode( result : PImGuiNavItemData; tree_node_data : PImGuiNavTreeNodeData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestSubmit( move_dir : ImGuiDir; clip_dir : ImGuiDir; move_flags : ImGuiNavMoveFlags; scroll_flags : ImGuiScrollFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavMoveRequestTryWrapping( window : PImGuiWindow; move_flags : ImGuiNavMoveFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavRestoreHighlightAfterMove( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNavUpdateCurrentWindowIsScrollPushableX( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNewFrame( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNewLine( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igNextColumn( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igOpenPopup_Str( str_id : PAnsiChar; popup_flags : ImGuiPopupFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igOpenPopup_ID( id : ImGuiID; popup_flags : ImGuiPopupFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igOpenPopupEx( id : ImGuiID; popup_flags : ImGuiPopupFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igOpenPopupOnItemClick( str_id : PAnsiChar; popup_flags : ImGuiPopupFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igPlotEx( plot_type : ImGuiPlotType; label_ : PAnsiChar; values_getter : TImGuiPlotValuesGetterFunc ;data : Pointer; values_count : Integer; values_offset : Integer; overlay_text : PAnsiChar; scale_min : Single; scale_max : Single; size_arg : ImVec2 ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPlotHistogram_FloatPtr( label_ : PAnsiChar; values : PSingle; values_count : Integer; values_offset : Integer; overlay_text : PAnsiChar; scale_min : Single; scale_max : Single; graph_size : ImVec2; stride : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPlotHistogram_FnFloatPtr( label_ : PAnsiChar; values_getter : TImGuiPlotValuesGetterFunc ;data : Pointer; values_count : Integer; values_offset : Integer; overlay_text : PAnsiChar; scale_min : Single; scale_max : Single; graph_size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPlotLines_FloatPtr( label_ : PAnsiChar; values : PSingle; values_count : Integer; values_offset : Integer; overlay_text : PAnsiChar; scale_min : Single; scale_max : Single; graph_size : ImVec2; stride : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPlotLines_FnFloatPtr( label_ : PAnsiChar; values_getter : TImGuiPlotValuesGetterFunc ;data : Pointer; values_count : Integer; values_offset : Integer; overlay_text : PAnsiChar; scale_min : Single; scale_max : Single; graph_size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopButtonRepeat( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopClipRect( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopColumnsBackground( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopFocusScope( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopFont( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopID( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopItemFlag( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopItemWidth( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopStyleColor( count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopStyleVar( count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopTabStop( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPopTextWrapPos( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igProgressBar( fraction : Single; size_arg : ImVec2; overlay : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushButtonRepeat( repeat_ : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushClipRect( clip_rect_min : ImVec2; clip_rect_max : ImVec2; intersect_with_current_clip_rect : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushColumnClipRect( column_index : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushColumnsBackground( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushFocusScope( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushFont( font : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushID_Str( str_id : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushID_StrStr( str_id_begin : PAnsiChar; str_id_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushID_Ptr( ptr_id : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushID_Int( int_id : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushItemFlag( option : ImGuiItemFlags; enabled : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushItemWidth( item_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushMultiItemsWidths( components : Integer; width_full : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushOverrideID( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushStyleColor_U32( idx : ImGuiCol; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushStyleColor_Vec4( idx : ImGuiCol; col : ImVec4 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushStyleVar_Float( idx : ImGuiStyleVar; val : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushStyleVar_Vec2( idx : ImGuiStyleVar; val : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushTabStop( tab_stop : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igPushTextWrapPos( wrap_local_pos_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igRadioButton_Bool( label_ : PAnsiChar; active : Boolean ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igRadioButton_IntPtr( label_ : PAnsiChar; v : PInteger; v_button : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRemoveContextHook( context : PImGuiContext; hook_to_remove : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRemoveSettingsHandler( type_name : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRender( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderArrow( draw_list : PImDrawList; pos : ImVec2; col : ImU32; dir : ImGuiDir; scale : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderArrowDockMenu( draw_list : PImDrawList; p_min : ImVec2; sz : Single; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderArrowPointingAt( draw_list : PImDrawList; pos : ImVec2; half_sz : ImVec2; direction : ImGuiDir; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderBullet( draw_list : PImDrawList; pos : ImVec2; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderCheckMark( draw_list : PImDrawList; pos : ImVec2; col : ImU32; sz : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderColorRectWithAlphaCheckerboard( draw_list : PImDrawList; p_min : ImVec2; p_max : ImVec2; fill_col : ImU32; grid_step : Single; grid_off : ImVec2; rounding : Single; flags : ImDrawFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderDragDropTargetRect( bb : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderFrame( p_min : ImVec2; p_max : ImVec2; fill_col : ImU32; border : Boolean; rounding : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderFrameBorder( p_min : ImVec2; p_max : ImVec2; rounding : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderMouseCursor( pos : ImVec2; scale : Single; mouse_cursor : ImGuiMouseCursor; col_fill : ImU32; col_border : ImU32; col_shadow : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderNavHighlight( bb : ImRect; id : ImGuiID; flags : ImGuiNavHighlightFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderPlatformWindowsDefault( platform_render_arg : Pointer; renderer_render_arg : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderRectFilledRangeH( draw_list : PImDrawList; rect : ImRect; col : ImU32; x_start_norm : Single; x_end_norm : Single; rounding : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderRectFilledWithHole( draw_list : PImDrawList; outer : ImRect; inner : ImRect; col : ImU32; rounding : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderText( pos : ImVec2; text : PAnsiChar; text_end : PAnsiChar; hide_text_after_hash : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderTextClipped( pos_min : ImVec2; pos_max : ImVec2; text : PAnsiChar; text_end : PAnsiChar; text_size_if_known : PImVec2; align : ImVec2; clip_rect : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderTextClippedEx( draw_list : PImDrawList; pos_min : ImVec2; pos_max : ImVec2; text : PAnsiChar; text_end : PAnsiChar; text_size_if_known : PImVec2; align : ImVec2; clip_rect : PImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderTextEllipsis( draw_list : PImDrawList; pos_min : ImVec2; pos_max : ImVec2; clip_max_x : Single; ellipsis_max_x : Single; text : PAnsiChar; text_end : PAnsiChar; text_size_if_known : PImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igRenderTextWrapped( pos : ImVec2; text : PAnsiChar; text_end : PAnsiChar; wrap_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igResetMouseDragDelta( button : ImGuiMouseButton ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSameLine( offset_from_start_x : Single; spacing : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSaveIniSettingsToDisk( ini_filename : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSaveIniSettingsToMemory( out_ini_size : Psize_t ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScaleWindowsInViewport( viewport : PImGuiViewportP; scale : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScrollToBringRectIntoView( window : PImGuiWindow; rect : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScrollToItem( flags : ImGuiScrollFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScrollToRect( window : PImGuiWindow; rect : ImRect; flags : ImGuiScrollFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScrollToRectEx( pOut : PImVec2; window : PImGuiWindow; rect : ImRect; flags : ImGuiScrollFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igScrollbar( axis : ImGuiAxis ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igScrollbarEx( bb : ImRect; id : ImGuiID; axis : ImGuiAxis; p_scroll_v : PImS64; avail_v : ImS64; contents_v : ImS64; flags : ImDrawFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSelectable_Bool( label_ : PAnsiChar; selected : Boolean; flags : ImGuiSelectableFlags; size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSelectable_BoolPtr( label_ : PAnsiChar; p_selected : PBoolean; flags : ImGuiSelectableFlags; size : ImVec2 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSeparator( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSeparatorEx( flags : ImGuiSeparatorFlags; thickness : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSeparatorText( label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSeparatorTextEx( id : ImGuiID; label_ : PAnsiChar; label_end : PAnsiChar; extra_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetActiveID( id : ImGuiID; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetActiveIdUsingAllKeyboardKeys( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetAllocatorFunctions( alloc_func : ImGuiMemAllocFunc; free_func : ImGuiMemFreeFunc; user_data : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetClipboardText( text : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetColorEditOptions( flags : ImGuiColorEditFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetColumnOffset( column_index : Integer; offset_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetColumnWidth( column_index : Integer; width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCurrentContext( ctx : PImGuiContext ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCurrentFont( font : PImFont ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCurrentViewport( window : PImGuiWindow; viewport : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCursorPos( local_pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCursorPosX( local_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCursorPosY( local_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetCursorScreenPos( pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSetDragDropPayload( type_ : PAnsiChar; data : Pointer; sz : size_t; cond : ImGuiCond ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetFocusID( id : ImGuiID; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetHoveredID( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetItemDefaultFocus( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetItemKeyOwner( key : ImGuiKey; flags : ImGuiInputFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetItemTooltip( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetItemTooltipV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetKeyOwner( key : ImGuiKey; owner_id : ImGuiID; flags : ImGuiInputFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetKeyOwnersForKeyChord( key : ImGuiKeyChord; owner_id : ImGuiID; flags : ImGuiInputFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetKeyboardFocusHere( offset : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetLastItemData( item_id : ImGuiID; in_flags : ImGuiItemFlags; status_flags : ImGuiItemStatusFlags; item_rect : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetMouseCursor( cursor_type : ImGuiMouseCursor ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNavID( id : ImGuiID; nav_layer : ImGuiNavLayer; focus_scope_id : ImGuiID; rect_rel : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNavWindow( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextFrameWantCaptureKeyboard( want_capture_keyboard : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextFrameWantCaptureMouse( want_capture_mouse : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextItemAllowOverlap( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextItemOpen( is_open : Boolean; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextItemSelectionUserData( selection_user_data : ImGuiSelectionUserData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextItemWidth( item_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowBgAlpha( alpha : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowClass( window_class : PImGuiWindowClass ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowCollapsed( collapsed : Boolean; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowContentSize( size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowDockID( dock_id : ImGuiID; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowFocus( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowPos( pos : ImVec2; cond : ImGuiCond; pivot : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowScroll( scroll : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowSize( size : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowSizeConstraints( size_min : ImVec2; size_max : ImVec2; custom_callback : ImGuiSizeCallback; custom_callback_data : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetNextWindowViewport( viewport_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollFromPosX_Float( local_x : Single; center_x_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollFromPosX_WindowPtr( window : PImGuiWindow; local_x : Single; center_x_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollFromPosY_Float( local_y : Single; center_y_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollFromPosY_WindowPtr( window : PImGuiWindow; local_y : Single; center_y_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollHereX( center_x_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollHereY( center_y_ratio : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollX_Float( scroll_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollX_WindowPtr( window : PImGuiWindow; scroll_x : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollY_Float( scroll_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetScrollY_WindowPtr( window : PImGuiWindow; scroll_y : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSetShortcutRouting( key_chord : ImGuiKeyChord; owner_id : ImGuiID; flags : ImGuiInputFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetStateStorage( storage : PImGuiStorage ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetTabItemClosed( tab_or_docked_window_label : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetTooltip( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetTooltipV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowClipRectBeforeSetChannel( window : PImGuiWindow; clip_rect : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowCollapsed_Bool( collapsed : Boolean; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowCollapsed_Str( name : PAnsiChar; collapsed : Boolean; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowCollapsed_WindowPtr( window : PImGuiWindow; collapsed : Boolean; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowDock( window : PImGuiWindow; dock_id : ImGuiID; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowFocus_Nil( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowFocus_Str( name : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowFontScale( scale : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowHiddendAndSkipItemsForCurrentFrame( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowHitTestHole( window : PImGuiWindow; pos : ImVec2; size : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowPos_Vec2( pos : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowPos_Str( name : PAnsiChar; pos : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowPos_WindowPtr( window : PImGuiWindow; pos : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowSize_Vec2( size : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowSize_Str( name : PAnsiChar; size : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowSize_WindowPtr( window : PImGuiWindow; size : ImVec2; cond : ImGuiCond ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSetWindowViewport( window : PImGuiWindow; viewport : PImGuiViewportP ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShadeVertsLinearColorGradientKeepAlpha( draw_list : PImDrawList; vert_start_idx : Integer; vert_end_idx : Integer; gradient_p0 : ImVec2; gradient_p1 : ImVec2; col0 : ImU32; col1 : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShadeVertsLinearUV( draw_list : PImDrawList; vert_start_idx : Integer; vert_end_idx : Integer; a : ImVec2; b : ImVec2; uv_a : ImVec2; uv_b : ImVec2; clamp : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShadeVertsTransformPos( draw_list : PImDrawList; vert_start_idx : Integer; vert_end_idx : Integer; pivot_in : ImVec2; cos_a : Single; sin_a : Single; pivot_out : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igShortcut( key_chord : ImGuiKeyChord; owner_id : ImGuiID; flags : ImGuiInputFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowAboutWindow( p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowDebugLogWindow( p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowDemoWindow( p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowFontAtlas( atlas : PImFontAtlas ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowFontSelector( label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowIDStackToolWindow( p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowMetricsWindow( p_open : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowStyleEditor( ref : PImGuiStyle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igShowStyleSelector( label_ : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShowUserGuide( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShrinkWidths( items : PImGuiShrinkWidthItem; count : Integer; width_excess : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igShutdown( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderAngle( label_ : PAnsiChar; v_rad : PSingle; v_degrees_min : Single; v_degrees_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderBehavior( bb : ImRect; id : ImGuiID; data_type : ImGuiDataType; p_v : Pointer; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags; out_grab_bb : PImRect ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderFloat( label_ : PAnsiChar; v : PSingle; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderFloat2( label_ : PAnsiChar; v : PSingle; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderFloat3( label_ : PAnsiChar; v : PSingle; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderFloat4( label_ : PAnsiChar; v : PSingle; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderInt( label_ : PAnsiChar; v : PInteger; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderInt2( label_ : PAnsiChar; v : PInteger; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderInt3( label_ : PAnsiChar; v : PInteger; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderInt4( label_ : PAnsiChar; v : PInteger; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderScalar( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSliderScalarN( label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; components : Integer; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSmallButton( label_ : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igSpacing( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igSplitterBehavior( bb : ImRect; id : ImGuiID; axis : ImGuiAxis; size1 : PSingle; size2 : PSingle; min_size1 : Single; min_size2 : Single; hover_extend : Single; hover_visibility_delay : Single; bg_col : ImU32 ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igStartMouseMovingWindow( window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igStartMouseMovingWindowOrNode( window : PImGuiWindow; node : PImGuiDockNode; undock : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igStyleColorsClassic( dst : PImGuiStyle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igStyleColorsDark( dst : PImGuiStyle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igStyleColorsLight( dst : PImGuiStyle ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarAddTab( tab_bar : PImGuiTabBar; tab_flags : ImGuiTabItemFlags; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarCloseTab( tab_bar : PImGuiTabBar; tab : PImGuiTabItem ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarFindMostRecentlySelectedTabForActiveWindow( tab_bar : PImGuiTabBar ) : PImGuiTabItem; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarFindTabByID( tab_bar : PImGuiTabBar; tab_id : ImGuiID ) : PImGuiTabItem; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarFindTabByOrder( tab_bar : PImGuiTabBar; order : Integer ) : PImGuiTabItem; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarGetCurrentTab( tab_bar : PImGuiTabBar ) : PImGuiTabItem; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarGetTabName( tab_bar : PImGuiTabBar; tab : PImGuiTabItem ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarGetTabOrder( tab_bar : PImGuiTabBar; tab : PImGuiTabItem ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabBarProcessReorder( tab_bar : PImGuiTabBar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarQueueFocus( tab_bar : PImGuiTabBar; tab : PImGuiTabItem ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarQueueReorder( tab_bar : PImGuiTabBar; tab : PImGuiTabItem; offset : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarQueueReorderFromMousePos( tab_bar : PImGuiTabBar; tab : PImGuiTabItem; mouse_pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabBarRemoveTab( tab_bar : PImGuiTabBar; tab_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabItemBackground( draw_list : PImDrawList; bb : ImRect; flags : ImGuiTabItemFlags; col : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabItemButton( label_ : PAnsiChar; flags : ImGuiTabItemFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabItemCalcSize_Str( pOut : PImVec2; label_ : PAnsiChar; has_close_button_or_unsaved_marker : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabItemCalcSize_WindowPtr( pOut : PImVec2; window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTabItemEx( tab_bar : PImGuiTabBar; label_ : PAnsiChar; p_open : PBoolean; flags : ImGuiTabItemFlags; docked_window : PImGuiWindow ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTabItemLabelAndCloseButton( draw_list : PImDrawList; bb : ImRect; flags : ImGuiTabItemFlags; frame_padding : ImVec2; label_ : PAnsiChar; tab_id : ImGuiID; close_button_id : ImGuiID; is_contents_visible : Boolean; out_just_closed : PBoolean; out_text_clipped : PBoolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableAngledHeadersRow( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableAngledHeadersRowEx( angle : Single; label_width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableBeginApplyRequests( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableBeginCell( table : PImGuiTable; column_n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableBeginContextMenuPopup( table : PImGuiTable ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableBeginInitMemory( table : PImGuiTable; columns_count : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableBeginRow( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableDrawBorders( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableDrawDefaultContextMenu( table : PImGuiTable; flags_for_section_to_display : ImGuiTableFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableEndCell( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableEndRow( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableFindByID( id : ImGuiID ) : PImGuiTable; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableFixColumnSortDirection( table : PImGuiTable; column : PImGuiTableColumn ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableGcCompactSettings( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableGcCompactTransientBuffers_TablePtr( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableGcCompactTransientBuffers_TableTempDataPtr( table : PImGuiTableTempData ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetBoundSettings( table : PImGuiTable ) : PImGuiTableSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableGetCellBgRect( pOut : PImRect; table : PImGuiTable; column_n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnCount( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnFlags( column_n : Integer ) : ImGuiTableColumnFlags; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnIndex( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnName_Int( column_n : Integer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnName_TablePtr( table : PImGuiTable; column_n : Integer ) : PAnsiChar; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnNextSortDirection( column : PImGuiTableColumn ) : ImGuiSortDirection; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnResizeID( table : PImGuiTable; column_n : Integer; instance_no : Integer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetColumnWidthAuto( table : PImGuiTable; column : PImGuiTableColumn ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetHeaderAngledMaxLabelWidth( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetHeaderRowHeight( ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetHoveredColumn( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetHoveredRow( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetInstanceData( table : PImGuiTable; instance_no : Integer ) : PImGuiTableInstanceData; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetInstanceID( table : PImGuiTable; instance_no : Integer ) : ImGuiID; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetMaxColumnWidth( table : PImGuiTable; column_n : Integer ) : Single; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetRowIndex( ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableGetSortSpecs( ) : PImGuiTableSortSpecs; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableHeader( label_ : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableHeadersRow( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableLoadSettings( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableMergeDrawChannels( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableNextColumn( ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableNextRow( row_flags : ImGuiTableRowFlags; min_row_height : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableOpenContextMenu( column_n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTablePopBackgroundChannel( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTablePushBackgroundChannel( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableRemove( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableResetSettings( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSaveSettings( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetBgColor( target : ImGuiTableBgTarget; color : ImU32; column_n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetColumnEnabled( column_n : Integer; v : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableSetColumnIndex( column_n : Integer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetColumnSortDirection( column_n : Integer; sort_direction : ImGuiSortDirection; append_to_sort_specs : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetColumnWidth( column_n : Integer; width : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetColumnWidthAutoAll( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetColumnWidthAutoSingle( table : PImGuiTable; column_n : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSettingsAddSettingsHandler( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableSettingsCreate( id : ImGuiID; columns_count : Integer ) : PImGuiTableSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTableSettingsFindByID( id : ImGuiID ) : PImGuiTableSettings; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetupColumn( label_ : PAnsiChar; flags : ImGuiTableColumnFlags; init_width_or_weight : Single; user_id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetupDrawChannels( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSetupScrollFreeze( cols : Integer; rows : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSortSpecsBuild( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableSortSpecsSanitize( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableUpdateBorders( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableUpdateColumnsWeightFromWidth( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTableUpdateLayout( table : PImGuiTable ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTeleportMousePos( pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTempInputIsActive( id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTempInputScalar( bb : ImRect; id : ImGuiID; label_ : PAnsiChar; data_type : ImGuiDataType; p_data : Pointer; format : PAnsiChar; p_clamp_min : Pointer; p_clamp_max : Pointer ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTempInputText( bb : ImRect; id : ImGuiID; label_ : PAnsiChar; buf : PAnsiChar; buf_size : Integer; flags : ImGuiInputTextFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTestKeyOwner( key : ImGuiKey; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTestShortcutRouting( key_chord : ImGuiKeyChord; owner_id : ImGuiID ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igText( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextColored( col : ImVec4; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextColoredV( col : ImVec4; fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextDisabled( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextDisabledV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextEx( text : PAnsiChar; text_end : PAnsiChar; flags : ImGuiTextFlags ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextUnformatted( text : PAnsiChar; text_end : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextWrapped( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTextWrappedV( fmt : PAnsiChar; args : array of const ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTranslateWindowsInViewport( viewport : PImGuiViewportP; old_pos : ImVec2; new_pos : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNode_Str( label_ : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNode_StrStr( str_id : PAnsiChar; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNode_Ptr( ptr_id : Pointer; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeBehavior( id : ImGuiID; flags : ImGuiTreeNodeFlags; label_ : PAnsiChar; label_end : PAnsiChar ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeEx_Str( label_ : PAnsiChar; flags : ImGuiTreeNodeFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeEx_StrStr( str_id : PAnsiChar; flags : ImGuiTreeNodeFlags; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeEx_Ptr( ptr_id : Pointer; flags : ImGuiTreeNodeFlags; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeExV_Str( str_id : PAnsiChar; flags : ImGuiTreeNodeFlags; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeExV_Ptr( ptr_id : Pointer; flags : ImGuiTreeNodeFlags; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTreeNodeSetOpen( id : ImGuiID; open : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeUpdateNextOpen( id : ImGuiID; flags : ImGuiTreeNodeFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeV_Str( str_id : PAnsiChar; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTreeNodeV_Ptr( ptr_id : Pointer; fmt : PAnsiChar; args : array of const ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTreePop( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTreePush_Str( str_id : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTreePush_Ptr( ptr_id : Pointer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igTreePushOverrideID( id : ImGuiID ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTypingSelectFindBestLeadingMatch( req : PImGuiTypingSelectRequest; items_count : Integer; get_item_name_func : TImGuiComboItemsGetterFunc ;user_data : Pointer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTypingSelectFindMatch( req : PImGuiTypingSelectRequest; items_count : Integer; get_item_name_func : TImGuiComboItemsGetterFunc ;user_data : Pointer; nav_item_idx : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igTypingSelectFindNextSingleCharMatch( req : PImGuiTypingSelectRequest; items_count : Integer; get_item_name_func : TImGuiComboItemsGetterFunc ;user_data : Pointer; nav_item_idx : Integer ) : Integer; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUnindent( indent_w : Single ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdateHoveredWindowAndCaptureFlags( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdateInputEvents( trickle_fast_inputs : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdateMouseMovingWindowEndFrame( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdateMouseMovingWindowNewFrame( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdatePlatformWindows( ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igUpdateWindowParentAndRootLinks( window : PImGuiWindow; flags : ImGuiWindowFlags; parent_window : PImGuiWindow ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igVSliderFloat( label_ : PAnsiChar; size : ImVec2; v : PSingle; v_min : Single; v_max : Single; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igVSliderInt( label_ : PAnsiChar; size : ImVec2; v : PInteger; v_min : Integer; v_max : Integer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-function igVSliderScalar( label_ : PAnsiChar; size : ImVec2; data_type : ImGuiDataType; p_data : Pointer; p_min : Pointer; p_max : Pointer; format : PAnsiChar; flags : ImGuiSliderFlags ) : Boolean; cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igValue_Bool( prefix : PAnsiChar; b : Boolean ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igValue_Int( prefix : PAnsiChar; v : Integer ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igValue_Uint( prefix : PAnsiChar; v : ImU32 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igValue_Float( prefix : PAnsiChar; v : Single; float_format : PAnsiChar ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igWindowPosRelToAbs( pOut : PImVec2; window : PImGuiWindow; p : ImVec2 ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igWindowRectAbsToRel( pOut : PImRect; window : PImGuiWindow; r : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-procedure igWindowRectRelToAbs( pOut : PImRect; window : PImGuiWindow; r : ImRect ); cdecl; external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF};
-
-implementation
-  uses
-    math;
-
-initialization
-  // Disabling Floating-Point Exceptions
-  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
-
-end.

+ 0 - 1159
src/PasImGui.Enums.pas

@@ -1,1159 +0,0 @@
-{
-  FreePascal / Delphi bindings for ImGui
-
-  Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the MIT License.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  MIT License for more details.
-}
-
-unit PasImGui.Enums;
-
-interface
-
-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.
-
-

+ 128 - 0
src/PasImGui.ImPlot.pas

@@ -0,0 +1,128 @@
+Unit PasImGui.ImPlot;
+
+{$IFDEF FPC}
+  {$mode Delphi}{$H+}{$J-}
+{$ENDIF}
+
+
+Interface
+
+Uses
+  SysUtils,
+  PasImGui;
+
+
+const
+  IMPLOT_AUTO = -1;
+  IMPLOT_AUTO_COL : ImVec4 = (x:0; y:0; z:0; w:-1);
+
+Type
+
+  { ImPlot }
+
+  ImPlot = Class
+
+    Class Procedure Initialize(ImGuiCtx : PImGuiContext = nil);
+
+    Class Function BeginPlot(Const title_id: PAnsiChar;
+      flags: ImPlotFlags = ImPlotFlags_None): Boolean; Overload;
+    Class Function BeginPlot(Const title_id: PAnsiChar; size: ImVec2;
+      flags: ImPlotFlags = ImPlotFlags_None): Boolean; Overload;
+    Class Procedure SetupAxes(Const x_label: PAnsiChar; Const y_label: PAnsiChar;
+      x_flags: ImPlotAxisFlags = 0; y_flags: ImPlotAxisFlags = 0);
+
+    // Float
+    Class Procedure PlotLine(Const label_id: PAnsiChar; Const xs: PSingle;
+      Const ys: PSingle; Count: Integer; flags: ImPlotLineFlags = 0); Overload;
+    Class Procedure PlotLine(Const label_id: PAnsiChar; Const xs: PSingle;
+      Const ys: PSingle; Count: Integer; flags: ImPlotLineFlags;
+      offset: Integer; stride: Integer); Overload;
+
+    // Double
+    Class Procedure PlotLine(const label_id: PAnsiChar; const xs: PDouble;
+      const ys: PDouble; count: Integer; flags: ImPlotLineFlags = 0); Overload;
+    class procedure PlotLine(const label_id: PAnsiChar; const xs: PDouble;
+      const ys: PDouble; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); Overload;
+
+
+    class procedure SetNextMarkerStyle(marker: ImPlotMarker = IMPLOT_AUTO; size: Single = IMPLOT_AUTO); overload;
+    class procedure SetNextMarkerStyle(marker: ImPlotMarker; size: Single; fill: ImVec4; weight: Single; outline: ImVec4); overload;
+
+    Class Procedure EndPlot();
+  End;
+
+Implementation
+
+Uses
+  PasImGui.Utils;
+
+  { ImPlot }
+
+class procedure ImPlot.Initialize(ImGuiCtx: PImGuiContext);
+begin
+  ImPlot_Initialize(ImPlot_CreateContext());
+  if ImGuiCtx = nil then
+    ImGuiCtx := ImGui.GetCurrentContext();
+  ImPlot_SetImGuiContext(ImGuiCtx);
+end;
+
+class function ImPlot.BeginPlot(
+  const title_id: PAnsiChar; flags: ImPlotFlags): Boolean;
+Begin
+  Result := BeginPlot(title_id, ImVec2.New(-1, 0), flags);
+End;
+
+class function ImPlot.BeginPlot(
+  const title_id: PAnsiChar; size: ImVec2; flags: ImPlotFlags): Boolean;
+Begin
+  Result := ImPlot_BeginPlot(title_id, size, flags);
+End;
+
+class procedure ImPlot.SetupAxes(const x_label: PAnsiChar;
+  const y_label: PAnsiChar; x_flags: ImPlotAxisFlags; y_flags: ImPlotAxisFlags);
+Begin
+  ImPlot_SetupAxes(x_label, y_label, x_flags, y_flags);
+End;
+
+class procedure ImPlot.PlotLine(const label_id: PAnsiChar; const xs: PSingle;
+  const ys: PSingle; Count: Integer; flags: ImPlotLineFlags);
+begin
+  PlotLine(label_id, xs, ys, Count, flags, 0, SizeOf(Single));
+end;
+
+// PlotLine(const char* label_id, const T* xs, const T* ys, int count, ImPlotLineFlags flags, int offset, int stride)
+class procedure ImPlot.PlotLine(const label_id: PAnsiChar; const xs: PSingle;
+  const ys: PSingle; Count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer);
+Begin
+  ImPlot_PlotLine_FloatPtrFloatPtr(label_id, xs, ys, Count, flags, offset, stride);
+End;
+
+class procedure ImPlot.PlotLine(const label_id: PAnsiChar; const xs: PDouble;
+  const ys: PDouble; count: Integer; flags: ImPlotLineFlags);
+begin
+  PlotLine(label_id, xs, ys, Count, flags, 0, SizeOf(Double));
+end;
+
+class procedure ImPlot.PlotLine(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer);
+Begin
+  ImPlot_PlotLine_doublePtrdoublePtr(label_id, xs, ys, Count, flags, offset, stride);
+End;
+
+
+
+class procedure ImPlot.SetNextMarkerStyle(marker: ImPlotMarker; size: Single);
+begin
+  SetNextMarkerStyle(marker, size, IMPLOT_AUTO_COL, IMPLOT_AUTO, IMPLOT_AUTO_COL);
+end;
+
+class procedure ImPlot.SetNextMarkerStyle(marker: ImPlotMarker; size: Single; fill: ImVec4; weight: Single; outline: ImVec4);
+begin
+  ImPlot_SetNextMarkerStyle(marker, size, fill, weight, outline);
+end;
+
+class procedure ImPlot.EndPlot();
+begin
+  ImPlot_EndPlot();
+end;
+
+End.

+ 0 - 2706
src/PasImGui.Types.pas

@@ -1,2706 +0,0 @@
-{
-  FreePascal / Delphi bindings for ImGui
-
-  Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the MIT License.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  MIT License for more details.
-}
-
-Unit PasImGui.Types;
-
-{$IfDef FPC}
-  {$mode Delphi}{$H+}
-  {$PackRecords C}
-  {$modeswitch advancedrecords}
-{$ELSE}
-  {$A8} // this is the closest to C And FPC. Needs a lot of work to match C strcut types.
-{$EndIf}
-
-Interface
-
-Uses
-  PasImGui.Enums;
-
-Const
-  FLT_MAX : Single = 3.40282347e+038; // This is the same as in compiled cimgui
-
-  IM_COL32_R_SHIFT = 0;
-  IM_COL32_G_SHIFT = 8;
-  IM_COL32_B_SHIFT = 16;
-  IM_COL32_A_SHIFT = 24;
-  IM_COL32_A_MASK  = $FF000000;
-
-// Main Types
-Type
-  T1Bit  = 0..1;
-  T2Bits = 0..3;
-  T3Bits = 0..7;
-  T4Bits = 0..15;
-  T5Bits = 0..31;
-  T6Bits = 0..63;
-  T7Bits = 0..127;
-  T8Bits = 0..255;
-  T9Bits = 0..511;
-  T10Bits = 0..1023;
-  T11Bits = 0..2047;
-  T12Bits = 0..4095;
-  T13Bits = 0..8191;
-  T14Bits = 0..16383;
-  T15Bits = 0..32767;
-  T16Bits = 0..65535;
-  T17Bits = 0..131071;
-  T18Bits = 0..262143;
-  T19Bits = 0..524287;
-  T20Bits = 0..1048575;
-  T21Bits = 0..2097151;
-  T22Bits = 0..4194303;
-  T23Bits = 0..8388607;
-  T24Bits = 0..16777215;
-  T25Bits = 0..33554431;
-  T26Bits = 0..67108863;
-  T27Bits = 0..134217727;
-  T28Bits = 0..268435455;
-  T29Bits = 0..536870911;
-  T30Bits = 0..1073741823;
-  T31Bits = 0..2147483647;
-  T32Bits = 0..4294967295;
-
-
-  QWord = NativeUInt;
-  size_t = QWord;
-  ImS8 = Shortint;
-  ImU8 = Byte;
-  ImS16 = Smallint;
-  ImU16 = Word;
-  ImS32 = Longint;
-  ImU32 = Cardinal;
-  ImS64 = Int64;
-  ImU64 = QWord;
-  ImWchar16 = Word;
-  ImWchar32 = Cardinal;
-  ImWchar = ImWchar16;
-
-  ImTextureID = Pointer;
-  PImGuiKeyChord = ^ImGuiKeyChord;
-  PImTextureID = ^ImTextureID;
-  PImDrawIdx = ^ImDrawIdx;
-  PImGuiID = ^ImGuiID;
-  PImS8 = ^ImS8;
-  PImU8 = ^ImU8;
-  PImS16 = ^ImS16;
-  PImU16 = ^ImU16;
-  PImS32 = ^ImS32;
-  PImU32 = ^ImU32;
-  PImS64 = ^ImS64;
-  PImU64 = ^ImU64;
-
-  PPImS8  = ^PImS8;
-  PPImU8  = ^PImU8;
-  PPImS16 = ^PImS16;
-  PPImU16 = ^PImU16;
-  PPImS32 = ^PImS32;
-  PPImU32 = ^PImU32;
-  PPImS64 = ^PImS64;
-  PPImU64 = ^PImU64;
-
-  PSize_t = ^SIZE_T;
-  PImWchar16 = ^ImWchar16;
-  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;
-
-  PImGuiWindowTempData = ^ImGuiWindowTempData;
-  PImGuiWindowStackData = ^ImGuiWindowStackData;
-  PImGuiWindowSettings = ^ImGuiWindowSettings;
-  PImGuiWindowDockStyle = ^ImGuiWindowDockStyle;
-  PImGuiWindowClass = ^ImGuiWindowClass;
-  PImGuiWindow = ^ImGuiWindow;
-  PPImGuiWindow = ^PImGuiWindow;
-  PImGuiViewportP = ^ImGuiViewportP;
-  PImGuiViewport = ^ImGuiViewport;
-  PPImGuiViewport = ^PImGuiViewport;
-
-  PImGuiTypingSelectState = ^ImGuiTypingSelectState;
-  PImGuiTypingSelectRequest = ^ImGuiTypingSelectRequest;
-  PImGuiTextRange = ^ImGuiTextRange;
-  PImGuiTextIndex = ^ImGuiTextIndex;
-  PImGuiTextFilter = ^ImGuiTextFilter;
-  PImGuiTextBuffer = ^ImGuiTextBuffer;
-  PImGuiTableTempData = ^ImGuiTableTempData;
-  PImGuiTableSortSpecs = ^ImGuiTableSortSpecs;
-  PImGuiTableSettings = ^ImGuiTableSettings;
-  PImGuiTableInstanceData = ^ImGuiTableInstanceData;
-  ImGuiTableDrawChannelIdx = ImU16;
-  PImGuiTableColumnSortSpecs = ^ImGuiTableColumnSortSpecs;
-  PImGuiTableColumnSettings = ^ImGuiTableColumnSettings;
-  ImGuiTableColumnIdx = ImS16;
-  PImGuiTableColumn = ^ImGuiTableColumn;
-  PImGuiTableCellData = ^ImGuiTableCellData;
-  PImGuiTable = ^ImGuiTable;
-  PImGuiTabItem = ^ImGuiTabItem;
-  PImGuiTabBar = ^ImGuiTabBar;
-  PImGuiStyleMod = ^ImGuiStyleMod;
-  PImGuiStyle = ^ImGuiStyle;
-  PImGuiStoragePair = ^ImGuiStoragePair;
-  PImGuiStorage = ^ImGuiStorage;
-  PImGuiStackSizes = ^ImGuiStackSizes;
-  PImGuiStackLevelInfo = ^ImGuiStackLevelInfo;
-  PImGuiSizeCallbackData = ^ImGuiSizeCallbackData;
-  ImGuiSizeCallback = procedure(data : PImGuiSizeCallbackData); Cdecl;
-  PImGuiShrinkWidthItem = ^ImGuiShrinkWidthItem;
-  PImGuiSettingsHandler = ^ImGuiSettingsHandler;
-  ImGuiSelectionUserData = ImS64;
-  PImGuiPtrOrIndex = ^ImGuiPtrOrIndex;
-  PImGuiPopupData = ^ImGuiPopupData;
-  PImGuiPlatformMonitor = ^ImGuiPlatformMonitor;
-  PPImGuiPlatformMonitor = ^PImGuiPlatformMonitor;
-  PImGuiPlatformImeData = ^ImGuiPlatformImeData;
-  PImGuiPlatformIO = ^ImGuiPlatformIO;
-  PImGuiPayload = ^ImGuiPayload;
-  PImGuiOnceUponAFrame = ^ImGuiOnceUponAFrame;
-  PImGuiOldColumns = ^ImGuiOldColumns;
-  PImGuiOldColumnData = ^ImGuiOldColumnData;
-  PImGuiNextWindowData = ^ImGuiNextWindowData;
-  PImGuiNextItemData = ^ImGuiNextItemData;
-  PImGuiNavTreeNodeData = ^ImGuiNavTreeNodeData;
-  PImGuiNavItemData = ^ImGuiNavItemData;
-  PImGuiMetricsConfig = ^ImGuiMetricsConfig;
-  PImGuiMenuColumns = ^ImGuiMenuColumns;
-  PImGuiMemFreeFunc = ^ImGuiMemFreeFunc;
-  ImGuiMemFreeFunc = procedure(ptr : Pointer; user_data : Pointer); Cdecl;
-  PImGuiMemAllocFunc = ^ImGuiMemAllocFunc;
-  ImGuiMemAllocFunc = function(sz : size_t; user_data : Pointer) : Pointer; Cdecl;
-  PImGuiLocEntry = ^ImGuiLocEntry;
-  PImGuiListClipperRange = ^ImGuiListClipperRange;
-  PImGuiListClipperData = ^ImGuiListClipperData;
-  PImGuiListClipper = ^ImGuiListClipper;
-  PImGuiLastItemData = ^ImGuiLastItemData;
-  PImGuiKeyRoutingTable = ^ImGuiKeyRoutingTable;
-  ImGuiKeyRoutingIndex = ImS16;
-  PImGuiKeyRoutingData = ^ImGuiKeyRoutingData;
-  PImGuiKeyOwnerData = ^ImGuiKeyOwnerData;
-  PImGuiKeyData = ^ImGuiKeyData;
-  PImGuiInputTextState = ^ImGuiInputTextState;
-  PImGuiInputTextDeactivatedState = ^ImGuiInputTextDeactivatedState;
-  PImGuiInputTextCallbackData = ^ImGuiInputTextCallbackData;
-  ImGuiInputTextCallback = function(data : PImGuiInputTextCallbackData) : Integer; Cdecl;
-  PImGuiInputEventText = ^ImGuiInputEventText;
-  PImGuiInputEventMouseWheel = ^ImGuiInputEventMouseWheel;
-  PImGuiInputEventMouseViewport = ^ImGuiInputEventMouseViewport;
-  PImGuiInputEventMousePos = ^ImGuiInputEventMousePos;
-  PImGuiInputEventMouseButton = ^ImGuiInputEventMouseButton;
-  PImGuiInputEventKey = ^ImGuiInputEventKey;
-  PImGuiInputEventAppFocused = ^ImGuiInputEventAppFocused;
-  PImGuiInputEvent = ^ImGuiInputEvent;
-  PImGuiIO = ^ImGuiIO;
-  PImGuiIDStackTool = ^ImGuiIDStackTool;
-  ImGuiID = ImU32;
-  PImGuiGroupData = ^ImGuiGroupData;
-  ImGuiErrorLogCallback = procedure(user_data : Pointer; fmt : PAnsiChar; args : array of const); Cdecl;
-  PImGuiDockRequest = ^ImGuiDockRequest;
-  PImGuiDockNodeSettings = ^ImGuiDockNodeSettings;
-  PImGuiDockNode = ^ImGuiDockNode;
-  PImGuiDockContext = ^ImGuiDockContext;
-  PImGuiDebugAllocInfo = ^ImGuiDebugAllocInfo;
-  PImGuiDebugAllocEntry = ^ImGuiDebugAllocEntry;
-  PImGuiDataVarInfo = ^ImGuiDataVarInfo;
-  PImGuiDataTypeInfo = ^ImGuiDataTypeInfo;
-  PImGuiContextHook = ^ImGuiContextHook;
-  PImGuiContext = ^ImGuiContext;
-  ImGuiContextHookCallback = procedure(ctx : PImGuiContext; hook : PImGuiContextHook); Cdecl;
-  PImGuiComboPreviewData = ^ImGuiComboPreviewData;
-  PImGuiColorMod = ^ImGuiColorMod;
-  PImFontGlyphRangesBuilder = ^ImFontGlyphRangesBuilder;
-  PImFontGlyph = ^ImFontGlyph;
-  PImFontConfig = ^ImFontConfig;
-  PImFontBuilderIO = ^ImFontBuilderIO;
-  PImFontAtlasCustomRect = ^ImFontAtlasCustomRect;
-  PImFontAtlas = ^ImFontAtlas;
-  PImFont = ^ImFont;
-  ImFileHandle = ^FILE;
-  PImDrawVert = ^ImDrawVert;
-  PImDrawListSplitter = ^ImDrawListSplitter;
-  PImDrawListSharedData = ^ImDrawListSharedData;
-  PImDrawList = ^ImDrawList;
-  PPImDrawList = ^PImDrawList;
-
-  //---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
-  // Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).
-  // Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
-  // Read about ImGuiBackendFlags_RendererHasVtxOffset for details.
-
-  {.$Define ImD_32}
-  {$IfDef ImD_32}
-    ImDrawIdx = ImU32;
-  {$ELSE}
-    ImDrawIdx = ImU16; // Default: 16-bit (for maximum compatibility with renderer backends)
-  {$EndIf}
-
-
-  PImDrawDataBuilder = ^ImDrawDataBuilder;
-  PImDrawData = ^ImDrawData;
-  PImDrawCmdHeader = ^ImDrawCmdHeader;
-  PImDrawCmd = ^ImDrawCmd;
-  PImDrawChannel = ^ImDrawChannel;
-  ImDrawCallback = procedure(parent_list : PImDrawList; cmd : PImDrawCmd); Cdecl;
-  PImColor = ^ImColor;
-  PImBitVector = ^ImBitVector;
-  ImBitArrayPtr = PImU32;
-
-  // Extras
-  PImVector_ImWchar = ^ImVector_ImWchar;
-  PImVector_ImGuiTextRange = ^ImVector_ImGuiTextRange;
-  PImVector_ImGuiWindowPtr = ^ImVector_ImGuiWindowPtr;
-  PImVector_const_charPtr = ^ImVector_const_charPtr;
-
-  // Enum Ptrs
-  PImGuiDir = ^ImGuiDir;
-
-  ImGuiComboItemGetterCallback = Function(Data: Pointer; idx: Integer;
-    out_text: PPAnsiChar): Boolean; Cdecl;
-
-  TCompareFunc = function(const A, B: Pointer): Integer;
-
-  // New CallBacks
-  TImGuiComboItemsGetterFunc = function(user_data: Pointer; idx: Integer): PAnsiChar; cdecl;
-  TImGuiPlotValuesGetterFunc = function(data: Pointer; idx: Integer): Single; cdecl;
-  ImGuiTypingSelectFunc = function(data: Pointer; idx: Integer): PAnsiChar; cdecl;
-
-  ImGuiLocEntry = record
-    Key: ImGuiLocKey;
-    Text: PAnsiChar;
-  end;
-
-  ImGuiDataTypeTempStorage = Record
-    Data: Array[0..7] of ImU8;
-  End;
-
-  ImGuiDataTypeInfo = Record
-    Size: size_t;
-    Name: Pansichar;
-    PrintFmt: Pansichar;
-    ScanFmt: Pansichar;
-  End;
-
-  ImVector_ImU32 = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImU32;
-  End;
-  PImVector_ImU32 = ^ImVector_ImU32;
-
-  ImFontGlyphRangesBuilder = Record
-    UsedChars: ImVector_ImU32;
-  End;
-
-  ImBitVector = Record
-    Storage: ImVector_ImU32;
-  End;
-
-  ImVector_char = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PAnsiChar;
-  End;
-
-  ImGuiTextBuffer = Record
-    Buf: ImVector_char;
-  End;
-
-  ImVector_ImGuiPlatformMonitor = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiPlatformMonitor;
-  End;
-
-  ImVector_ImGuiViewportPtr = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PPImGuiViewport;
-  End;
-
-  ImVector_const_charPtr = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PAnsiChar;
-  End;
-
-  ImVec1 = Record
-    x: Single;
-  End;
-  PImVec1 = ^ImVec1;
-
-  ImVec2ih = Record
-    x: ImS16;
-    y: ImS16;
-  End;
-  PImVec2ih = ^ImVec2ih;
-
-  { ImVec2 }
-  ImVec2 = Record
-    x, y: Single;
-    constructor New(const _x, _y: Single);
-    class operator Add(lhs,rhs : ImVec2) : ImVec2;
-    class operator Subtract(lhs,rhs : ImVec2) : ImVec2;
-  End;
-  PImVec2 = ^ImVec2;
-
-  { ImVec3 }
-  ImVec3 = record
-    x, y, z: single;
-    constructor New(const _x, _y, _z : Single);
-  end;
-  PImVec3 = ^ImVec3;
-
-  { ImVec4 }
-  ImVec4 = Record
-    x, y, z, w: Single;
-    constructor New(const _x, _y, _z : Single; _w: Single = 1.0);
-  End;
-  PImVec4 = ^ImVec4;
-
-  ImRect = Record
-    Min: ImVec2;
-    Max: ImVec2;
-  End;
-
-  ImGuiDebugAllocEntry = record
-    FrameCount: Integer;
-    AllocCount: ImS16;
-    FreeCount: ImS16;
-  end;
-
-  ImGuiDebugAllocInfo = record
-    TotalAllocCount: Integer;
-    TotalFreeCount: Integer;
-    LastEntriesIdx: ImS16;
-    LastEntriesBuf: array [0..5] of ImGuiDebugAllocEntry;
-  end;
-
-  ImGuiNextItemData = Record
-    Flags : ImGuiNextItemDataFlags;
-    ItemFlags : ImGuiItemFlags;
-    Width : Single;
-    SelectionUserData : ImGuiSelectionUserData;
-    OpenCond : ImGuiCond;
-    OpenVal : Boolean;
-  End;
-
-  ImGuiTypingSelectRequest = record
-    Flags: ImGuiTypingSelectFlags;
-    SearchBufferLen: Integer;
-    SearchBuffer: PAnsiChar;
-    SelectRequest: Boolean;
-    SingleCharMode: Boolean;
-    SingleCharSize: ImS8;
-  end;
-
-  ImGuiTypingSelectState = record
-    Request: ImGuiTypingSelectRequest;
-    SearchBuffer: array [0..63] of AnsiChar;
-    FocusScope: ImGuiID;
-    LastRequestFrame: Integer;
-    LastRequestTime: Single;
-    SingleCharModeLock: Boolean;
-  end;
-
-  ImGuiInputTextCallbackData = Record
-    Ctx: PImGuiContext;
-    EventFlag: ImGuiInputTextFlags;
-    Flags: ImGuiInputTextFlags;
-    UserData: Pointer;
-    EventChar: ImWchar;
-    EventKey: ImGuiKey;
-    Buf: Pansichar;
-    BufTextLen: Integer;
-    BufSize: Integer;
-    BufDirty: Boolean;
-    CursorPos: Integer;
-    SelectionStart: Integer;
-    SelectionEnd: Integer;
-  End;
-
-  ImGuiSizeCallbackData = Record
-    UserData: Pointer;
-    Pos: ImVec2;
-    CurrentSize: ImVec2;
-    DesiredSize: ImVec2;
-  End;
-
-  ImGuiWindowClass = Record
-    ClassId: ImGuiID;
-    ParentViewportId: ImGuiID;
-    ViewportFlagsOverrideSet: ImGuiViewportFlags;
-    ViewportFlagsOverrideClear: ImGuiViewportFlags;
-    TabItemFlagsOverrideSet: ImGuiTabItemFlags;
-    DockNodeFlagsOverrideSet: ImGuiDockNodeFlags;
-    DockingAlwaysTabBar: Boolean;
-    DockingAllowUnclassed: Boolean;
-  End;
-
-  ImGuiPayload = Record
-    Data: Pointer;
-    DataSize: Integer;
-    SourceId: ImGuiID;
-    SourceParentId: ImGuiID;
-    DataFrameCount: Integer;
-    DataType: Array [0..32] Of Char;
-    Preview: Boolean;
-    Delivery: Boolean;
-  End;
-
-  ImGuiOnceUponAFrame = Record
-    RefFrame: Integer;
-  End;
-
-  ImGuiTextRange = Record
-    b: Pansichar;
-    e: Pansichar;
-  End;
-
-  ImVector_ImGuiTextRange = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTextRange;
-  End;
-
-  ImGuiTextFilter = Record
-    InputBuf: Array [0..255] Of Ansichar;
-    Filters: ImVector_ImGuiTextRange;
-    CountGrep: Integer;
-  End;
-
-  ImGuiLastItemData = Record
-    ID: ImGuiID;
-    InFlags: ImGuiItemFlags;
-    StatusFlags: ImGuiItemStatusFlags;
-    Rect: ImRect;
-    NavRect: ImRect;
-    DisplayRect: ImRect;
-  End;
-
-  ImGuiNextWindowData = Record
-    Flags: ImGuiNextWindowDataFlags;
-    PosCond: ImGuiCond;
-    SizeCond: ImGuiCond;
-    CollapsedCond: ImGuiCond;
-    DockCond: ImGuiCond;
-    PosVal: ImVec2;
-    PosPivotVal: ImVec2;
-    SizeVal: ImVec2;
-    ContentSizeVal: ImVec2;
-    ScrollVal: ImVec2;
-    ChildFlags: ImGuiChildFlags;
-    PosUndock: Boolean;
-    CollapsedVal: Boolean;
-    SizeConstraintRect: ImRect;
-    SizeCallback: ImGuiSizeCallback;
-    SizeCallbackUserData: Pointer;
-    BgAlphaVal: Single;
-    ViewportId: ImGuiID;
-    DockId: ImGuiID;
-    WindowClass: ImGuiWindowClass;
-    MenuBarOffsetMinVal: ImVec2;
-  End;
-
-  ImGuiStackSizes = Record
-    SizeOfIDStack: ImS16;
-    SizeOfColorStack: ImS16;
-    SizeOfStyleVarStack: ImS16;
-    SizeOfFontStack: ImS16;
-    SizeOfFocusScopeStack: ImS16;
-    SizeOfGroupStack: ImS16;
-    SizeOfItemFlagsStack: ImS16;
-    SizeOfBeginPopupStack: ImS16;
-    SizeOfDisabledStack: ImS16;
-  End;
-
-
-  ImGuiWindowStackData = Record
-    Window: PImGuiWindow;
-    ParentLastItemDataBackup: ImGuiLastItemData;
-    StackSizesOnBegin: ImGuiStackSizes;
-  End;
-
-
-  ImVector_ImGuiWindowStackData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiWindowStackData;
-  End;
-
-  ImVector_ImGuiInputEvent = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiInputEvent;
-  End;
-  PImVector = ^ImVector;
-
-  ImVector = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiWindowStackData;
-  End;
-
-  ImGuiColorMod = Record
-    Col: ImGuiCol;
-    BackupValue: ImVec4;
-  End;
-
-  ImVector_ImGuiColorMod = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiColorMod;
-  End;
-
-  ImGuiStyleMod = Record
-    VarIdx: ImGuiStyleVar;
-    Case Integer Of
-      0: (BackupInt: Array[0..1] Of Integer);
-      1: (BackupFloat: Array[0..1] Of Single);
-  End;
-
-  ImGuiGroupData = Record
-    WindowID: ImGuiID;
-    BackupCursorPos: ImVec2;
-    BackupCursorMaxPos: ImVec2;
-    BackupCursorPosPrevLine: ImVec2;
-    BackupIndent: ImVec1;
-    BackupGroupOffset: ImVec1;
-    BackupCurrLineSize: ImVec2;
-    BackupCurrLineTextBaseOffset: Single;
-    BackupActiveIdIsAlive: ImGuiID;
-    BackupActiveIdPreviousFrameIsAlive: Boolean;
-    BackupHoveredIdIsAlive: Boolean;
-    BackupIsSameLine: Boolean;
-    EmitItem: Boolean;
-  End;
-
-  ImGuiPopupData = Record
-    PopupId: ImGuiID;
-    Window: PImGuiWindow;
-    BackupNavWindow: PImGuiWindow;
-    ParentNavLayer: Integer;
-    OpenFrameCount: Integer;
-    OpenParentId: ImGuiID;
-    OpenPopupPos: ImVec2;
-    OpenMousePos: ImVec2;
-  End;
-
-
-  ImGuiNavTreeNodeData = Record
-    ID: ImGuiID;
-    InFlags: ImGuiItemFlags;
-    NavRect: ImRect;
-  End;
-
-  ImVector_ImGuiStyleMod = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiStyleMod;
-  End;
-  PImVector_ImGuiStyleMod = ^ImVector_ImGuiStyleMod;
-
-  ImVector_ImGuiID = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiID;
-  End;
-  PImVector_ImGuiID = ^ImVector_ImGuiID;
-
-  ImVector_ImGuiItemFlags = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiItemFlags;
-  End;
-  PImVector_ImGuiItemFlags = ^ImVector_ImGuiItemFlags;
-
-  ImVector_ImGuiGroupData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiGroupData;
-  End;
-  PImVector_ImGuiGroupData = ^ImVector_ImGuiGroupData;
-
-  ImVector_ImGuiPopupData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiPopupData;
-  End;
-  PImVector_ImGuiPopupData = ^ImVector_ImGuiPopupData;
-
-  ImVector_ImGuiNavTreeNodeData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiNavTreeNodeData;
-  End;
-  PImVector_ImGuiNavTreeNodeData = ^ImVector_ImGuiNavTreeNodeData;
-
-  ImVector_ImGuiViewportPPtr = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiViewportP;
-  End;
-  PImVector_ImGuiViewportPPtr = ^ImVector_ImGuiViewportPPtr;
-
-  ImVector_unsigned_char = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: Pbyte;
-  End;
-  PImVector_unsigned_char = ^ImVector_unsigned_char;
-
-  ImGuiListClipperRange = Record
-    Min: Integer;
-    Max: Integer;
-    PosToIndexConvert: Boolean;
-    PosToIndexOffsetMin: ImS8;
-    PosToIndexOffsetMax: ImS8;
-  End;
-
-  ImVector_ImGuiListClipperRange = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiListClipperRange;
-  End;
-  PImVector_ImGuiListClipperRange = ^ImVector_ImGuiListClipperRange;
-
-
-  ImGuiStoragePair = Record
-    key: ImGuiID;
-    Case Integer Of
-      0: (val_i: Integer);
-      1: (val_f: Single);
-      2: (val_p: Pointer);
-  End;
-
-
-  ImVector_ImGuiStoragePair = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiStoragePair;
-  End;
-
-  ImGuiStorage = Record
-    Data: ImVector_ImGuiStoragePair;
-  End;
-
-  ImGuiListClipper = Record
-    Ctx: PImGuiContext;
-    DisplayStart: Integer;
-    DisplayEnd: Integer;
-    ItemsCount: Integer;
-    ItemsHeight: Single;
-    StartPosY: Single;
-    TempData: Pointer;
-  End;
-
-
-  ImColor = Record
-    Value: ImVec4;
-  End;
-
-  ImGuiListClipperData = Record
-    ListClipper: PImGuiListClipper;
-    LossynessOffset: Single;
-    StepNo: Integer;
-    ItemsFrozen: Integer;
-    Ranges: ImVector_ImGuiListClipperRange;
-  End;
-
-  ImVector_ImGuiListClipperData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiListClipperData;
-  End;
-
-  { ImDrawCmd }
-
-  ImDrawCmd = Record
-    ClipRect: ImVec4;
-    TextureId: ImTextureID;
-    VtxOffset: Cardinal;
-    IdxOffset: Cardinal;
-    ElemCount: Cardinal;
-    UserCallback: ImDrawCallback;
-    UserCallbackData: Pointer;
-    function GetTexID() : ImTextureID;
-  End;
-
-
-  ImDrawVert = Record
-    pos: ImVec2;
-    uv: ImVec2;
-    col: ImU32;
-  End;
-
-  ImDrawCmdHeader = Record
-    ClipRect: ImVec4;
-    TextureId: ImTextureID;
-    VtxOffset: ImU32;
-  End;
-
-  ImVector_ImDrawCmd = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImDrawCmd;
-  End;
-
-
-  ImVector_ImDrawIdx = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImDrawIdx;
-  End;
-
-  ImDrawChannel = Record
-    _CmdBuffer: ImVector_ImDrawCmd;
-    _IdxBuffer: ImVector_ImDrawIdx;
-  End;
-
-  ImVector_ImDrawChannel = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImDrawChannel;
-  End;
-
-  ImDrawListSplitter = Record
-    _Current: Integer;
-    _Count: Integer;
-    _Channels: ImVector_ImDrawChannel;
-  End;
-
-
-  ImGuiDataVarInfo = Record
-    Type_: ImGuiDataType;
-    Count: ImU32;
-    Offset: ImU32;
-  End;
-
-  ImGuiWindowDockStyle = Record
-    Colors: Array[0..ImGuiWindowDockStyleCol_COUNT - 1] Of ImU32;
-  End;
-
-  ImVector_ImGuiDockRequest = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiDockRequest;
-  End;
-  PImVector_ImGuiDockRequest = ^ImVector_ImGuiDockRequest;
-
-  ImVector_ImGuiDockNodeSettings = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiDockNodeSettings;
-  End;
-  PImVector_ImGuiDockNodeSettings = ^ImVector_ImGuiDockNodeSettings;
-
-  ImGuiDockContext = Record
-    Nodes: ImGuiStorage;
-    Requests: ImVector_ImGuiDockRequest;
-    NodesSettings: ImVector_ImGuiDockNodeSettings;
-    WantFullRebuild: Boolean;
-  End;
-
-  ImGuiTableColumnSettings = Record
-    WidthOrWeight: Single;
-    UserID: ImGuiID;
-    Index: ImGuiTableColumnIdx;
-    DisplayOrder: ImGuiTableColumnIdx;
-    SortOrder: ImGuiTableColumnIdx;
-    union : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      SortDirection: T2Bits;
-      IsEnabled: T1Bit;
-      IsStretch: T1Bit;
-    end;
-  End;
-
-  ImGuiTableTempData = Record
-    TableIndex: Integer;
-    LastTimeActive: Single;
-    AngledheadersExtraWidth: Single;
-    UserOuterSize: ImVec2;
-    DrawSplitter: ImDrawListSplitter;
-    HostBackupWorkRect: ImRect;
-    HostBackupParentWorkRect: ImRect;
-    HostBackupPrevLineSize: ImVec2;
-    HostBackupCurrLineSize: ImVec2;
-    HostBackupCursorMaxPos: ImVec2;
-    HostBackupColumnsOffset: ImVec1;
-    HostBackupItemWidth: Single;
-    HostBackupItemWidthStackSize: Integer;
-  End;
-
-  ImGuiTabItem = Record
-    ID: ImGuiID;
-    Flags: ImGuiTabItemFlags;
-    Window: PImGuiWindow;
-    LastFrameVisible: Integer;
-    LastFrameSelected: Integer;
-    Offset: Single;
-    Width: Single;
-    ContentWidth: Single;
-    RequestedWidth: Single;
-    NameOffset: ImS32;
-    BeginOrder: ImS16;
-    IndexDuringLayout: ImS16;
-    WantClose: Boolean;
-  End;
-
-  ImVector_ImGuiTabItem = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTabItem;
-  End;
-
-  ImGuiTabBar = Record
-    Tabs: ImVector_ImGuiTabItem;
-    Flags: ImGuiTabBarFlags;
-    ID: ImGuiID;
-    SelectedTabId: ImGuiID;
-    NextSelectedTabId: ImGuiID;
-    VisibleTabId: ImGuiID;
-    CurrFrameVisible: Integer;
-    PrevFrameVisible: Integer;
-    BarRect: ImRect;
-    CurrTabsContentsHeight: Single;
-    PrevTabsContentsHeight: Single;
-    WidthAllTabs: Single;
-    WidthAllTabsIdeal: Single;
-    ScrollingAnim: Single;
-    ScrollingTarget: Single;
-    ScrollingTargetDistToVisibility: Single;
-    ScrollingSpeed: Single;
-    ScrollingRectMinX: Single;
-    ScrollingRectMaxX: Single;
-    SeparatorMinX: Single;
-    SeparatorMaxX: Single;
-    ReorderRequestTabId: ImGuiID;
-    ReorderRequestOffset: ImS16;
-    BeginCount: ImS8;
-    WantLayout: Boolean;
-    VisibleTabWasSubmitted: Boolean;
-    TabsAddedNew: Boolean;
-    TabsActiveCount: ImS16;
-    LastTabItemIdx: ImS16;
-    ItemSpacingY: Single;
-    FramePadding: ImVec2;
-    BackupCursorPos: ImVec2;
-    TabsNames: ImGuiTextBuffer;
-  End;
-
-  ImGuiTableColumn = Record
-    Flags: ImGuiTableColumnFlags;
-    WidthGiven: Single;
-    MinX: Single;
-    MaxX: Single;
-    WidthRequest: Single;
-    WidthAuto: Single;
-    StretchWeight: Single;
-    InitStretchWeightOrWidth: Single;
-    ClipRect: ImRect;
-    UserID: ImGuiID;
-    WorkMinX: Single;
-    WorkMaxX: Single;
-    ItemWidth: Single;
-    ContentMaxXFrozen: Single;
-    ContentMaxXUnfrozen: Single;
-    ContentMaxXHeadersUsed: Single;
-    ContentMaxXHeadersIdeal: Single;
-    NameOffset: ImS16;
-    DisplayOrder: ImGuiTableColumnIdx;
-    IndexWithinEnabledSet: ImGuiTableColumnIdx;
-    PrevEnabledColumn: ImGuiTableColumnIdx;
-    NextEnabledColumn: ImGuiTableColumnIdx;
-    SortOrder: ImGuiTableColumnIdx;
-    DrawChannelCurrent: ImGuiTableDrawChannelIdx;
-    DrawChannelFrozen: ImGuiTableDrawChannelIdx;
-    DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
-    IsEnabled: Boolean;
-    IsUserEnabled: Boolean;
-    IsUserEnabledNextFrame: Boolean;
-    IsVisibleX: Boolean;
-    IsVisibleY: Boolean;
-    IsRequestOutput: Boolean;
-    IsSkipItems: Boolean;
-    IsPreserveWidthAuto: Boolean;
-    NavLayerCurrent: ImS8;
-    AutoFitQueue: ImU8;
-    CannotSkipItemsQueue: ImU8;
-    SortOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      SortDirection: T2Bits;
-      SortDirectionsAvailCount: T2Bits;
-      SortDirectionsAvailMask: T4Bits;
-      SortDirectionsAvailList: ImU8;
-    end;
-  End;
-
-
-  ImGuiTableCellData = Record
-    BgColor: ImU32;
-    Column: ImGuiTableColumnIdx;
-  End;
-
-
-  ImGuiTableInstanceData = Record
-    TableInstanceID: ImGuiID;
-    LastOuterHeight: Single;
-    LastFirstRowHeight: Single;
-    LastFrozenHeight: Single;
-    HoveredRowLast: Integer;
-    HoveredRowNext: Integer;
-  End;
-
-
-  ImSpan_ImGuiTableColumn = Record
-    Data: PImGuiTableColumn;
-    DataEnd: PImGuiTableColumn;
-  End;
-
-
-  ImSpan_ImGuiTableColumnIdx = Record
-    Data: PImGuiTableColumnIdx;
-    DataEnd: PImGuiTableColumnIdx;
-  End;
-
-
-  ImSpan_ImGuiTableCellData = Record
-    Data: PImGuiTableCellData;
-    DataEnd: PImGuiTableCellData;
-  End;
-
-
-  ImVector_ImGuiTableInstanceData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTableInstanceData;
-  End;
-
-
-  ImVector_ImGuiTableColumnSortSpecs = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTableColumnSortSpecs;
-  End;
-
-
-  ImGuiTableColumnSortSpecs = Record
-    ColumnUserID: ImGuiID;
-    ColumnIndex: ImS16;
-    SortOrder: ImS16;
-    SortDirection: {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record value : T8Bits;end;
-  End;
-
-  ImGuiTableSortSpecs = Record
-    Specs: PImGuiTableColumnSortSpecs;
-    SpecsCount: Integer;
-    SpecsDirty: Boolean;
-  End;
-
-  ImGuiTable =  Record
-    ID: ImGuiID;
-    Flags: ImGuiTableFlags;
-    RawData: Pointer;
-    TempData: PImGuiTableTempData;
-    Columns: ImSpan_ImGuiTableColumn;
-    DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx;
-    RowCellData: ImSpan_ImGuiTableCellData;
-    EnabledMaskByDisplayOrder: ImBitArrayPtr;
-    EnabledMaskByIndex: ImBitArrayPtr;
-    VisibleMaskByIndex: ImBitArrayPtr;
-    SettingsLoadedFlags: ImGuiTableFlags;
-    SettingsOffset: Integer;
-    LastFrameActive: Integer;
-    ColumnsCount: Integer;
-    CurrentRow: Integer;
-    CurrentColumn: Integer;
-    InstanceCurrent: ImS16;
-    InstanceInteracted: ImS16;
-    RowPosY1: Single;
-    RowPosY2: Single;
-    RowMinHeight: Single;
-    RowCellPaddingY: Single;
-    RowTextBaseline: Single;
-    RowIndentOffsetX: Single;
-    RowFlagsOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      RowFlags: T16Bits;
-      LastRowFlags: T16Bits;
-    end;
-    RowBgColorCounter: Integer;
-    RowBgColor: Array[0..1] of ImU32;
-    BorderColorStrong: ImU32;
-    BorderColorLight: ImU32;
-    BorderX1: Single;
-    BorderX2: Single;
-    HostIndentX: Single;
-    MinColumnWidth: Single;
-    OuterPaddingX: Single;
-    CellPaddingX: Single;
-    CellSpacingX1: Single;
-    CellSpacingX2: Single;
-    InnerWidth: Single;
-    ColumnsGivenWidth: Single;
-    ColumnsAutoFitWidth: Single;
-    ColumnsStretchSumWeights: Single;
-    ResizedColumnNextWidth: Single;
-    ResizeLockMinContentsX2: Single;
-    RefScale: Single;
-    AngledHeadersHeight: Single;
-    AngledHeadersSlope: Single;
-    OuterRect: ImRect;
-    InnerRect: ImRect;
-    WorkRect: ImRect;
-    InnerClipRect: ImRect;
-    BgClipRect: ImRect;
-    Bg0ClipRectForDrawCmd: ImRect;
-    Bg2ClipRectForDrawCmd: ImRect;
-    HostClipRect: ImRect;
-    HostBackupInnerClipRect: ImRect;
-    OuterWindow: PImGuiWindow;
-    InnerWindow: PImGuiWindow;
-    ColumnsNames: ImGuiTextBuffer;
-    DrawSplitter: PImDrawListSplitter;
-    InstanceDataFirst: ImGuiTableInstanceData;
-    InstanceDataExtra: ImVector_ImGuiTableInstanceData;
-    SortSpecsSingle: ImGuiTableColumnSortSpecs;
-    SortSpecsMulti: ImVector_ImGuiTableColumnSortSpecs;
-    SortSpecs: ImGuiTableSortSpecs;
-    SortSpecsCount: ImGuiTableColumnIdx;
-    ColumnsEnabledCount: ImGuiTableColumnIdx;
-    ColumnsEnabledFixedCount: ImGuiTableColumnIdx;
-    DeclColumnsCount: ImGuiTableColumnIdx;
-    AngledHeadersCount: ImGuiTableColumnIdx;
-    HoveredColumnBody: ImGuiTableColumnIdx;
-    HoveredColumnBorder: ImGuiTableColumnIdx;
-    HighlightColumnHeader: ImGuiTableColumnIdx;
-    AutoFitSingleColumn: ImGuiTableColumnIdx;
-    ResizedColumn: ImGuiTableColumnIdx;
-    LastResizedColumn: ImGuiTableColumnIdx;
-    HeldHeaderColumn: ImGuiTableColumnIdx;
-    ReorderColumn: ImGuiTableColumnIdx;
-    ReorderColumnDir: ImGuiTableColumnIdx;
-    LeftMostEnabledColumn: ImGuiTableColumnIdx;
-    RightMostEnabledColumn: ImGuiTableColumnIdx;
-    LeftMostStretchedColumn: ImGuiTableColumnIdx;
-    RightMostStretchedColumn: ImGuiTableColumnIdx;
-    ContextPopupColumn: ImGuiTableColumnIdx;
-    FreezeRowsRequest: ImGuiTableColumnIdx;
-    FreezeRowsCount: ImGuiTableColumnIdx;
-    FreezeColumnsRequest: ImGuiTableColumnIdx;
-    FreezeColumnsCount: ImGuiTableColumnIdx;
-    RowCellDataCurrent: ImGuiTableColumnIdx;
-    DummyDrawChannel: ImGuiTableDrawChannelIdx;
-    Bg2DrawChannelCurrent: ImGuiTableDrawChannelIdx;
-    Bg2DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
-    IsLayoutLocked: Boolean;
-    IsInsideRow: Boolean;
-    IsInitializing: Boolean;
-    IsSortSpecsDirty: Boolean;
-    IsUsingHeaders: Boolean;
-    IsContextPopupOpen: Boolean;
-    DisableDefaultContextMenu: Boolean;
-    IsSettingsRequestLoad: Boolean;
-    IsSettingsDirty: Boolean;
-    IsDefaultDisplayOrder: Boolean;
-    IsResetAllRequest: Boolean;
-    IsResetDisplayOrderRequest: Boolean;
-    IsUnfrozenRows: Boolean;
-    IsDefaultSizingPolicy: Boolean;
-    IsActiveIdAliveBeforeTable: Boolean;
-    IsActiveIdInTable: Boolean;
-    HasScrollbarYCurr: Boolean;
-    HasScrollbarYPrev: Boolean;
-    MemoryCompacted: Boolean;
-    HostSkipItems: Boolean;
-  End;
-
-  ImGuiWindowSettings = Record
-    ID: ImGuiID;
-    Pos: ImVec2ih;
-    Size: ImVec2ih;
-    ViewportPos: ImVec2ih;
-    ViewportId: ImGuiID;
-    DockId: ImGuiID;
-    ClassId: ImGuiID;
-    DockOrder: ImS16;
-    Collapsed: Boolean;
-    IsChild: Boolean;
-    WantApply: Boolean;
-    WantDelete: Boolean;
-  End;
-
-
-  ImGuiSettingsHandler = Record
-    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 : 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;
-  End;
-
-  ImVector_ImGuiTableTempData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTableTempData;
-  End;
-
-  ImVector_ImGuiTable = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTable;
-  End;
-
-  ImPool_ImGuiTable = Record
-    Buf: ImVector_ImGuiTable;
-    Map: ImGuiStorage;
-    FreeIdx: ImPoolIdx;
-    AliveCount: ImPoolIdx;
-  End;
-
-  ImVector_ImGuiTabBar = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiTabBar;
-  End;
-
-  ImPool_ImGuiTabBar = Record
-    Buf: ImVector_ImGuiTabBar;
-    Map: ImGuiStorage;
-    FreeIdx: ImPoolIdx;
-    AliveCount: ImPoolIdx;
-  End;
-
-  ImVector_ImGuiPtrOrIndex = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiPtrOrIndex;
-  End;
-
-  ImVector_ImGuiShrinkWidthItem = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiShrinkWidthItem;
-  End;
-
-  ImVector_ImGuiSettingsHandler = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiSettingsHandler;
-  End;
-
-  ImGuiShrinkWidthItem = Record
-    Index: Integer;
-    Width: Single;
-    InitialWidth: Single;
-  End;
-
-  ImChunkStream_ImGuiWindowSettings = Record
-    Buf: ImVector_char;
-  End;
-
-  ImChunkStream_ImGuiTableSettings = Record
-    Buf: ImVector_char;
-  End;
-
-  ImGuiTableSettings = Record
-    ID: ImGuiID;
-    SaveFlags: ImGuiTableFlags;
-    RefScale: Single;
-    ColumnsCount: ImGuiTableColumnIdx;
-    ColumnsCountMax: ImGuiTableColumnIdx;
-    WantApply: Boolean;
-  End;
-
-  ImGuiPtrOrIndex = Record
-    Ptr: Pointer;
-    Index: Integer;
-  End;
-
-  ImVector_ImGuiContextHook = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiContextHook;
-  End;
-
-
-  ImGuiStyle = Record
-    Alpha: Single;
-    DisabledAlpha: Single;
-    WindowPadding: ImVec2;
-    WindowRounding: Single;
-    WindowBorderSize: Single;
-    WindowMinSize: ImVec2;
-    WindowTitleAlign: ImVec2;
-    WindowMenuButtonPosition: ImGuiDir;
-    ChildRounding: Single;
-    ChildBorderSize: Single;
-    PopupRounding: Single;
-    PopupBorderSize: Single;
-    FramePadding: ImVec2;
-    FrameRounding: Single;
-    FrameBorderSize: Single;
-    ItemSpacing: ImVec2;
-    ItemInnerSpacing: ImVec2;
-    CellPadding: ImVec2;
-    TouchExtraPadding: ImVec2;
-    IndentSpacing: Single;
-    ColumnsMinSpacing: Single;
-    ScrollbarSize: Single;
-    ScrollbarRounding: Single;
-    GrabMinSize: Single;
-    GrabRounding: Single;
-    LogSliderDeadzone: Single;
-    TabRounding: Single;
-    TabBorderSize: Single;
-    TabMinWidthForCloseButton: Single;
-    TabBarBorderSize: Single;
-    TableAngledHeadersAngle: Single;
-    ColorButtonPosition: ImGuiDir;
-    ButtonTextAlign: ImVec2;
-    SelectableTextAlign: ImVec2;
-    SeparatorTextBorderSize: Single;
-    SeparatorTextAlign: ImVec2;
-    SeparatorTextPadding: ImVec2;
-    DisplayWindowPadding: ImVec2;
-    DisplaySafeAreaPadding: ImVec2;
-    DockingSeparatorSize: Single;
-    MouseCursorScale: Single;
-    AntiAliasedLines: Boolean;
-    AntiAliasedLinesUseTex: Boolean;
-    AntiAliasedFill: Boolean;
-    CurveTessellationTol: Single;
-    CircleTessellationMaxError: Single;
-    Colors: Array[0..55 - 1] of ImVec4;
-    HoverStationaryDelay: Single;
-    HoverDelayShort: Single;
-    HoverDelayNormal: Single;
-    HoverFlagsForTooltipMouse: ImGuiHoveredFlags;
-    HoverFlagsForTooltipNav: ImGuiHoveredFlags;
-  End;
-
-  ImGuiKeyData = Record
-    Down: Boolean;
-    DownDuration: Single;
-    DownDurationPrev: Single;
-    AnalogValue: Single;
-  End;
-
-  ImVector_ImWchar = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImWchar;
-  End;
-
-  ImVector_ImDrawVert = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImDrawVert;
-  End;
-
-  ImVector_ImVec4 = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImVec4;
-  End;
-
-  ImVector_ImTextureID = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImTextureID;
-  End;
-
-  ImVector_ImVec2 = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImVec2;
-  End;
-
-
-  ImGuiIO = Record
-    ConfigFlags: ImGuiConfigFlags;
-    BackendFlags: ImGuiBackendFlags;
-    DisplaySize: ImVec2;
-    DeltaTime: Single;
-    IniSavingRate: Single;
-    IniFilename: PAnsiChar;
-    LogFilename: PAnsiChar;
-    UserData: Pointer;
-    Fonts: PImFontAtlas;
-    FontGlobalScale: Single;
-    FontAllowUserScaling: Boolean;
-    FontDefault: PImFont;
-    DisplayFramebufferScale: ImVec2;
-    ConfigDockingNoSplit: Boolean;
-    ConfigDockingWithShift: Boolean;
-    ConfigDockingAlwaysTabBar: Boolean;
-    ConfigDockingTransparentPayload: Boolean;
-    ConfigViewportsNoAutoMerge: Boolean;
-    ConfigViewportsNoTaskBarIcon: Boolean;
-    ConfigViewportsNoDecoration: Boolean;
-    ConfigViewportsNoDefaultParent: Boolean;
-    MouseDrawCursor: Boolean;
-    ConfigMacOSXBehaviors: Boolean;
-    ConfigInputTrickleEventQueue: Boolean;
-    ConfigInputTextCursorBlink: Boolean;
-    ConfigInputTextEnterKeepActive: Boolean;
-    ConfigDragClickToInputText: Boolean;
-    ConfigWindowsResizeFromEdges: Boolean;
-    ConfigWindowsMoveFromTitleBarOnly: Boolean;
-    ConfigMemoryCompactTimer: Single;
-    MouseDoubleClickTime: Single;
-    MouseDoubleClickMaxDist: Single;
-    MouseDragThreshold: Single;
-    KeyRepeatDelay: Single;
-    KeyRepeatRate: Single;
-    ConfigDebugBeginReturnValueOnce: Boolean;
-    ConfigDebugBeginReturnValueLoop: Boolean;
-    ConfigDebugIgnoreFocusLoss: Boolean;
-    ConfigDebugIniSettings: Boolean;
-    BackendPlatformName: PAnsiChar;
-    BackendRendererName: PAnsiChar;
-    BackendPlatformUserData: Pointer;
-    BackendRendererUserData: Pointer;
-    BackendLanguageUserData: Pointer;
-    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;
-    WantCaptureMouse: Boolean;
-    WantCaptureKeyboard: Boolean;
-    WantTextInput: Boolean;
-    WantSetMousePos: Boolean;
-    WantSaveIniSettings: Boolean;
-    NavActive: Boolean;
-    NavVisible: Boolean;
-    Framerate: Single;
-    MetricsRenderVertices: Integer;
-    MetricsRenderIndices: Integer;
-    MetricsRenderWindows: Integer;
-    MetricsActiveWindows: Integer;
-    MouseDelta: ImVec2;
-    _UnusedPadding: Pointer;
-    Ctx: PImGuiContext;
-    MousePos: ImVec2;
-    MouseDown: Array[0..5 - 1] of Boolean;
-    MouseWheel: Single;
-    MouseWheelH: Single;
-    MouseSource: ImGuiMouseSource;
-    MouseHoveredViewport: ImGuiID;
-    KeyCtrl: Boolean;
-    KeyShift: Boolean;
-    KeyAlt: Boolean;
-    KeySuper: Boolean;
-    KeyMods: ImGuiKeyChord;
-    KeysData: Array[0..154 - 1] of ImGuiKeyData;
-    WantCaptureMouseUnlessPopupClose: Boolean;
-    MousePosPrev: ImVec2;
-    MouseClickedPos: Array[0..5 - 1] of ImVec2;
-    MouseClickedTime: Array[0..5 - 1] of Double;
-    MouseClicked: Array[0..5 - 1] of Boolean;
-    MouseDoubleClicked: Array[0..5 - 1] of Boolean;
-    MouseClickedCount: Array[0..5 - 1] of ImU16;
-    MouseClickedLastCount: Array[0..5 - 1] of ImU16;
-    MouseReleased: Array[0..5 - 1] of Boolean;
-    MouseDownOwned: Array[0..5 - 1] of Boolean;
-    MouseDownOwnedUnlessPopupClose: Array[0..5 - 1] of Boolean;
-    MouseWheelRequestAxisSwap: Boolean;
-    MouseDownDuration: Array[0..5 - 1] of Single;
-    MouseDownDurationPrev: Array[0..5 - 1] of Single;
-    MouseDragMaxDistanceAbs: Array[0..5 - 1] of ImVec2;
-    MouseDragMaxDistanceSqr: Array[0..5 - 1] of Single;
-    PenPressure: Single;
-    AppFocusLost: Boolean;
-    AppAcceptingEvents: Boolean;
-    BackendUsingLegacyKeyArrays: ImS8;
-    BackendUsingLegacyNavInputArray: Boolean;
-    InputQueueSurrogate: ImWchar16;
-    InputQueueCharacters: ImVector_ImWchar;
-  End;
-
-
-  ImVector_ImFontPtr = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImFont;
-  End;
-
-  ImVector_ImFontAtlasCustomRect = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImFontAtlasCustomRect;
-  End;
-
-  ImVector_ImFontConfig = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImFontConfig;
-  End;
-
-  ImFontAtlas = Record
-    Flags: ImFontAtlasFlags;
-    TexID: ImTextureID;
-    TexDesiredWidth: Integer;
-    TexGlyphPadding: Integer;
-    Locked: Boolean;
-    UserData: Pointer;
-    TexReady: Boolean;
-    TexPixelsUseColors: Boolean;
-    TexPixelsAlpha8: PImU8;
-    TexPixelsRGBA32: PImU32;
-    TexWidth: Integer;
-    TexHeight: Integer;
-    TexUvScale: ImVec2;
-    TexUvWhitePixel: ImVec2;
-    Fonts: ImVector_ImFontPtr;
-    CustomRects: ImVector_ImFontAtlasCustomRect;
-    ConfigData: ImVector_ImFontConfig;
-    TexUvLines: Array[0..64 - 1] of ImVec4;
-    FontBuilderIO: PImFontBuilderIO;
-    FontBuilderFlags: ImU32;
-    PackIdMouseCursors: Integer;
-    PackIdLines: Integer;
-  End;
-
-  ImFontBuilderIO = Record
-    FontBuilder_Build: Function(atlas: PImFontAtlas): Boolean; Cdecl;
-  End;
-
-
-  ImVector_float = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PSingle;
-  End;
-
-  ImVector_ImFontGlyph = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImFontGlyph;
-  End;
-
-  ImFont = Record
-    IndexAdvanceX: ImVector_float;
-    FallbackAdvanceX: Single;
-    FontSize: Single;
-    IndexLookup: ImVector_ImWchar;
-    Glyphs: ImVector_ImFontGlyph;
-    FallbackGlyph: PImFontGlyph;
-    ContainerAtlas: PImFontAtlas;
-    ConfigData: PImFontConfig;
-    ConfigDataCount: ImS16;
-    FallbackChar: ImWchar;
-    EllipsisChar: ImWchar;
-    EllipsisCharCount: ImS16;
-    EllipsisWidth: Single;
-    EllipsisCharStep: Single;
-    DirtyLookupTables: Boolean;
-    Scale: Single;
-    Ascent: Single;
-    Descent: Single;
-    MetricsTotalSurface: Integer;
-    Used4kPagesMap: Array[0..2 - 1] of ImU8;
-  End;
-
-  { ImGuiViewport }
-
-  ImGuiViewport = Record
-    ID: ImGuiID;
-    Flags: ImGuiViewportFlags;
-    Pos: ImVec2;
-    Size: ImVec2;
-    WorkPos: ImVec2;
-    WorkSize: ImVec2;
-    DpiScale: Single;
-    ParentViewportId: ImGuiID;
-    DrawData: PImDrawData;
-    RendererUserData: Pointer;
-    PlatformUserData: Pointer;
-    PlatformHandle: Pointer;
-    PlatformHandleRaw: Pointer;
-    PlatformWindowCreated: Boolean;
-    PlatformRequestMove: Boolean;
-    PlatformRequestResize: Boolean;
-    PlatformRequestClose: Boolean;
-
-    // Helpers
-    Function GetCenter() : ImVec2;
-    Function GetWorkCenter() : ImVec2;
-  End;
-
-  ImGuiPlatformMonitor = Record
-    MainPos: ImVec2;
-    MainSize: ImVec2;
-    WorkPos: ImVec2;
-    WorkSize: ImVec2;
-    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;
-    InputPos: ImVec2;
-    InputLineHeight: Single;
-  End;
-
-  ImVector_ImDrawList = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PPImDrawList;
-  End;
-  ImVector_ImDrawListPtr = ImVector_ImDrawList;
-  PImVector_ImDrawListPtr = ^ImVector_ImDrawListPtr;
-
-
-
-  ImDrawData = Record
-    Valid: Boolean;
-    CmdListsCount: Integer;
-    TotalIdxCount: Integer;
-    TotalVtxCount: Integer;
-    CmdLists: ImVector_ImDrawList;
-    DisplayPos: ImVec2;
-    DisplaySize: ImVec2;
-    FramebufferScale: ImVec2;
-    OwnerViewport: PImGuiViewport;
-  End;
-
-
-  ImGuiPlatformIO = Record
-    Platform_CreateWindow : procedure(viewport : PImGuiViewport); Cdecl;
-    Platform_DestroyWindow : procedure(viewport : PImGuiViewport); Cdecl;
-    Platform_ShowWindow : procedure(viewport : PImGuiViewport); Cdecl;
-    Platform_SetWindowPos : procedure(viewport : PImGuiViewport; pos : ImVec2); Cdecl;
-    Platform_GetWindowPos : function(viewport : PImGuiViewport) : ImVec2; Cdecl;
-    Platform_SetWindowSize : procedure(viewport : PImGuiViewport; size : ImVec2); Cdecl;
-    Platform_GetWindowSize : function(viewport : PImGuiViewport) : ImVec2; Cdecl;
-    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 : 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;
-    Platform_SwapBuffers : procedure(viewport : PImGuiViewport; render_arg : Pointer); Cdecl;
-    Platform_GetWindowDpiScale : function(viewport : PImGuiViewport) : Single; Cdecl;
-    Platform_OnChangedViewport : procedure(viewport : PImGuiViewport); Cdecl;
-    Platform_CreateVkSurface : function(viewport : PImGuiViewport; vk_inst : ImU64; vk_allocators : Pointer; out_vk_surface : PImU64) : Integer; Cdecl;
-    Renderer_CreateWindow : procedure(viewport : PImGuiViewport); Cdecl;
-    Renderer_DestroyWindow : procedure(viewport : PImGuiViewport); Cdecl;
-    Renderer_SetWindowSize : procedure(viewport : PImGuiViewport; size : ImVec2); Cdecl;
-    Renderer_RenderWindow : procedure(viewport : PImGuiViewport; render_arg : Pointer); Cdecl;
-    Renderer_SwapBuffers : procedure(viewport : PImGuiViewport; render_arg : Pointer); Cdecl;
-    Monitors : ImVector_ImGuiPlatformMonitor;
-    Viewports : ImVector_ImGuiViewportPtr;
-  End;
-
-  ImDrawListSharedData = Record
-    TexUvWhitePixel: ImVec2;
-    Font: PImFont;
-    FontSize: Single;
-    CurveTessellationTol: Single;
-    CircleSegmentMaxError: Single;
-    ClipRectFullscreen: ImVec4;
-    InitialFlags: ImDrawListFlags;
-    TempBuffer: ImVector_ImVec2;
-    ArcFastVtx: Array[0..48 - 1] of ImVec2;
-    ArcFastRadiusCutoff: Single;
-    CircleSegmentCounts: Array[0..64 - 1] of ImU8;
-    TexUvLines: PImVec4;
-  End;
-
-  ImGuiContextHook = Record
-    HookId: ImGuiID;
-    Type_: ImGuiContextHookType;
-    Owner: ImGuiID;
-    Callback: ImGuiContextHookCallback;
-    UserData: Pointer;
-  End;
-
-  ImGuiInputEventMousePos = Record
-    PosX, PosY: Single;
-    MouseSource: ImGuiMouseSource;
-  End;
-
-  ImGuiInputEventMouseWheel = Record
-    WheelX, WheelY: Single;
-    MouseSource: ImGuiMouseSource;
-  End;
-
-  ImGuiInputEventMouseButton = Record
-    Button: Integer;
-    Down: Boolean;
-    MouseSource: ImGuiMouseSource;
-  End;
-
-  ImGuiInputEventMouseViewport = Record
-    HoveredViewportID: ImGuiID;
-  End;
-
-  ImGuiInputEventKey = Record
-    Key: ImGuiKey;
-    Down: Boolean;
-    AnalogValue: Single;
-  End;
-
-  ImGuiInputEventText = Record
-    Char: Cardinal;
-  End;
-
-  ImGuiInputEventAppFocused = Record
-    Focused: Boolean;
-  End;
-
-  ImGuiInputEvent = Record
-    Type_: ImGuiInputEventType;
-    Source: ImGuiInputSource;
-    EventId: ImU32;
-    union: Record
-      Case Integer Of
-        0: (MousePos: ImGuiInputEventMousePos);
-        1: (MouseWheel: ImGuiInputEventMouseWheel);
-        2: (MouseButton: ImGuiInputEventMouseButton);
-        3: (MouseViewport: ImGuiInputEventMouseViewport);
-        4: (Key: ImGuiInputEventKey);
-        5: (Text: ImGuiInputEventText);
-        6: (AppFocused: ImGuiInputEventAppFocused);
-    End;
-    AddedByTestEngine: Boolean;
-  End;
-
-  ImGuiMenuColumns = Record
-    TotalWidth: ImU32;
-    NextTotalWidth: ImU32;
-    Spacing: ImU16;
-    OffsetIcon: ImU16;
-    OffsetLabel: ImU16;
-    OffsetShortcut: ImU16;
-    OffsetMark: ImU16;
-    Widths: Array[0..3] of ImU16;
-  End;
-
-  ImVector_ImGuiWindowPtr = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiWindow;
-  End;
-
-  ImGuiDockNode = Record
-    ID: ImGuiID;
-    SharedFlags: ImGuiDockNodeFlags;
-    LocalFlags: ImGuiDockNodeFlags;
-    LocalFlagsInWindows: ImGuiDockNodeFlags;
-    MergedFlags: ImGuiDockNodeFlags;
-    State: ImGuiDockNodeState;
-    ParentNode: PImGuiDockNode;
-    ChildNodes: Array[0..1] of PImGuiDockNode;
-    Windows: ImVector_ImGuiWindowPtr;
-    TabBar: PImGuiTabBar;
-    Pos: ImVec2;
-    Size: ImVec2;
-    SizeRef: ImVec2;
-    SplitAxis: ImGuiAxis;
-    WindowClass: ImGuiWindowClass;
-    LastBgColor: ImU32;
-    HostWindow: PImGuiWindow;
-    VisibleWindow: PImGuiWindow;
-    CentralNode: PImGuiDockNode;
-    OnlyNodeWithWindows: PImGuiDockNode;
-    CountNodeWithWindows: Integer;
-    LastFrameAlive: Integer;
-    LastFrameActive: Integer;
-    LastFrameFocused: Integer;
-    LastFocusedNodeId: ImGuiID;
-    SelectedTabId: ImGuiID;
-    WantCloseTabId: ImGuiID;
-    RefViewportId: ImGuiID;
-    DockOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      AuthorityForPos: T3Bits;
-      AuthorityForSize: T3Bits;
-      AuthorityForViewport: T3Bits;
-      IsVisible: T1Bit;
-      IsFocused: T1Bit;
-      IsBgDrawnThisFrame: T1Bit;
-      HasCloseButton: T1Bit;
-      HasWindowMenuButton: T1Bit;
-      HasCentralNodeChild: T1Bit;
-      WantCloseAll: T1Bit;
-      WantLockSizeOnce: T1Bit;
-      WantMouseMove: T1Bit;
-      WantHiddenTabBarUpdate: T1Bit;
-      WantHiddenTabBarToggle: T1Bit;
-    end;
-  End;
-
-  ImGuiWindowTempData = Record
-    CursorPos: ImVec2;
-    CursorPosPrevLine: ImVec2;
-    CursorStartPos: ImVec2;
-    CursorMaxPos: ImVec2;
-    IdealMaxPos: ImVec2;
-    CurrLineSize: ImVec2;
-    PrevLineSize: ImVec2;
-    CurrLineTextBaseOffset: Single;
-    PrevLineTextBaseOffset: Single;
-    IsSameLine: Boolean;
-    IsSetPos: Boolean;
-    Indent: ImVec1;
-    ColumnsOffset: ImVec1;
-    GroupOffset: ImVec1;
-    CursorStartPosLossyness: ImVec2;
-    NavLayerCurrent: ImGuiNavLayer;
-    NavLayersActiveMask: ImS16;
-    NavLayersActiveMaskNext: ImS16;
-    NavIsScrollPushableX: Boolean;
-    NavHideHighlightOneFrame: Boolean;
-    NavWindowHasScrollY: Boolean;
-    MenuBarAppending: Boolean;
-    MenuBarOffset: ImVec2;
-    MenuColumns: ImGuiMenuColumns;
-    TreeDepth: Integer;
-    TreeJumpToParentOnPopMask: ImU32;
-    ChildWindows: ImVector_ImGuiWindowPtr;
-    StateStorage: PImGuiStorage;
-    CurrentColumns: PImGuiOldColumns;
-    CurrentTableIdx: Integer;
-    LayoutType: ImGuiLayoutType;
-    ParentLayoutType: ImGuiLayoutType;
-    ItemWidth: Single;
-    TextWrapPos: Single;
-    ItemWidthStack: ImVector_float;
-    TextWrapPosStack: ImVector_float;
-  End;
-
-  ImVector_ImGuiOldColumns = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiOldColumns;
-  End;
-
-  ImDrawList = Record
-    CmdBuffer: ImVector_ImDrawCmd;
-    IdxBuffer: ImVector_ImDrawIdx;
-    VtxBuffer: ImVector_ImDrawVert;
-    Flags: ImDrawListFlags;
-    _VtxCurrentIdx: ImU32;
-    _Data: PImDrawListSharedData;
-    _OwnerName: PAnsiChar;
-    _VtxWritePtr: PImDrawVert;
-    _IdxWritePtr: PImDrawIdx;
-    _ClipRectStack: ImVector_ImVec4;
-    _TextureIdStack: ImVector_ImTextureID;
-    _Path: ImVector_ImVec2;
-    _CmdHeader: ImDrawCmdHeader;
-    _Splitter: ImDrawListSplitter;
-    _FringeScale: Single;
-  End;
-
-  ImGuiWindow = Record
-    Ctx: PImGuiContext;
-    Name: PAnsiChar;
-    ID: ImGuiID;
-    Flags: ImGuiWindowFlags;
-    FlagsPreviousFrame: ImGuiWindowFlags;
-    ChildFlags: ImGuiChildFlags;
-    WindowClass: ImGuiWindowClass;
-    Viewport: PImGuiViewportP;
-    ViewportId: ImGuiID;
-    ViewportPos: ImVec2;
-    ViewportAllowPlatformMonitorExtend: Integer;
-    Pos: ImVec2;
-    Size: ImVec2;
-    SizeFull: ImVec2;
-    ContentSize: ImVec2;
-    ContentSizeIdeal: ImVec2;
-    ContentSizeExplicit: ImVec2;
-    WindowPadding: ImVec2;
-    WindowRounding: Single;
-    WindowBorderSize: Single;
-    DecoOuterSizeX1: Single;
-    DecoOuterSizeY1: Single;
-    DecoOuterSizeX2: Single;
-    DecoOuterSizeY2: Single;
-    DecoInnerSizeX1: Single;
-    DecoInnerSizeY1: Single;
-    NameBufLen: Integer;
-    MoveId: ImGuiID;
-    TabId: ImGuiID;
-    ChildId: ImGuiID;
-    Scroll: ImVec2;
-    ScrollMax: ImVec2;
-    ScrollTarget: ImVec2;
-    ScrollTargetCenterRatio: ImVec2;
-    ScrollTargetEdgeSnapDist: ImVec2;
-    ScrollbarSizes: ImVec2;
-    ScrollbarX: Boolean;
-    ScrollbarY: Boolean;
-    ViewportOwned: Boolean;
-    Active: Boolean;
-    WasActive: Boolean;
-    WriteAccessed: Boolean;
-    Collapsed: Boolean;
-    WantCollapseToggle: Boolean;
-    SkipItems: Boolean;
-    Appearing: Boolean;
-    Hidden: Boolean;
-    IsFallbackWindow: Boolean;
-    IsExplicitChild: Boolean;
-    HasCloseButton: Boolean;
-    ResizeBorderHovered: ImS8;
-    ResizeBorderHeld: ImS8;
-    BeginCount: ImS16;
-    BeginCountPreviousFrame: ImS16;
-    BeginOrderWithinParent: ImS16;
-    BeginOrderWithinContext: ImS16;
-    FocusOrder: ImS16;
-    PopupId: ImGuiID;
-    AutoFitFramesX: ImS8;
-    AutoFitFramesY: ImS8;
-    AutoFitOnlyGrows: Boolean;
-    AutoPosLastDirection: ImGuiDir;
-    HiddenFramesCanSkipItems: ImS8;
-    HiddenFramesCannotSkipItems: ImS8;
-    HiddenFramesForRenderOnly: ImS8;
-    DisableInputsFrames: ImS8;
-    SetWindowOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      SetWindowPosAllowFlags:       T8Bits;
-      SetWindowSizeAllowFlags:      T8Bits;
-      SetWindowCollapsedAllowFlags: T8Bits;
-      SetWindowDockAllowFlags:      T8Bits;
-    end;
-    SetWindowPosVal: ImVec2;
-    SetWindowPosPivot: ImVec2;
-    IDStack: ImVector_ImGuiID;
-    DC: ImGuiWindowTempData;
-    OuterRectClipped: ImRect;
-    InnerRect: ImRect;
-    InnerClipRect: ImRect;
-    WorkRect: ImRect;
-    ParentWorkRect: ImRect;
-    ClipRect: ImRect;
-    ContentRegionRect: ImRect;
-    HitTestHoleSize: ImVec2ih;
-    HitTestHoleOffset: ImVec2ih;
-    LastFrameActive: Integer;
-    LastFrameJustFocused: Integer;
-    LastTimeActive: Single;
-    ItemWidthDefault: Single;
-    StateStorage: ImGuiStorage;
-    ColumnsStorage: ImVector_ImGuiOldColumns;
-    FontWindowScale: Single;
-    FontDpiScale: Single;
-    SettingsOffset: Integer;
-    DrawList: PImDrawList;
-    DrawListInst: ImDrawList;
-    ParentWindow: PImGuiWindow;
-    ParentWindowInBeginStack: PImGuiWindow;
-    RootWindow: PImGuiWindow;
-    RootWindowPopupTree: PImGuiWindow;
-    RootWindowDockTree: PImGuiWindow;
-    RootWindowForTitleBarHighlight: PImGuiWindow;
-    RootWindowForNav: PImGuiWindow;
-    NavLastChildNavWindow: PImGuiWindow;
-    NavLastIds: Array[0..ImGuiNavLayer_COUNT - 1] of ImGuiID;
-    NavRectRel: Array[0..ImGuiNavLayer_COUNT - 1] of ImRect;
-    NavPreferredScoringPosRel: Array[0..ImGuiNavLayer_COUNT - 1] of ImVec2;
-    NavRootFocusScopeId: ImGuiID;
-    MemoryDrawListIdxCapacity: Integer;
-    MemoryDrawListVtxCapacity: Integer;
-    MemoryCompacted: Boolean;
-    DockOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      DockIsActive:      T1Bit;
-      DockNodeIsVisible: T1Bit;
-      DockTabIsVisible:  T1Bit;
-      DockTabWantClose:  T1Bit;
-    end;
-    DockOrder: ImS16;
-    DockStyle: ImGuiWindowDockStyle;
-    DockNode: PImGuiDockNode;
-    DockNodeAsHost: PImGuiDockNode;
-    DockId: ImGuiID;
-    DockTabItemStatusFlags: ImGuiItemStatusFlags;
-    DockTabItemRect: ImRect;
-  End;
-
-  ImDrawDataBuilder = Record
-    Layers: Array[0..1] Of PImVector_ImDrawListPtr;
-    LayerData1: ImVector_ImDrawListPtr;
-  End;
-
-  ImGuiViewportP = Record
-    _ImGuiViewport: ImGuiViewport;
-    Window: PImGuiWindow;
-    Idx: Integer;
-    LastFrameActive: Integer;
-    LastFocusedStampCount: Integer;
-    LastNameHash: ImGuiID;
-    LastPos: ImVec2;
-    Alpha: Single;
-    LastAlpha: Single;
-    LastFocusedHadNavWindow: Boolean;
-    PlatformMonitor: Shortint;
-    BgFgDrawListsLastFrame: Array[0..1] Of Integer;
-    BgFgDrawLists: Array[0..1] Of PImDrawList;
-    DrawDataP: ImDrawData;
-    DrawDataBuilder: ImDrawDataBuilder;
-    LastPlatformPos: ImVec2;
-    LastPlatformSize: ImVec2;
-    LastRendererSize: ImVec2;
-    WorkOffsetMin: ImVec2;
-    WorkOffsetMax: ImVec2;
-    BuildWorkOffsetMin: ImVec2;
-    BuildWorkOffsetMax: ImVec2;
-  End;
-
-  ImGuiKeyRoutingData = Record
-    NextEntryIndex: ImGuiKeyRoutingIndex;
-    Mods: ImU16;
-    RoutingNextScore: ImU8;
-    RoutingCurr: ImGuiID;
-    RoutingNext: ImGuiID;
-  End;
-
-  ImVector_ImGuiKeyRoutingData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiKeyRoutingData;
-  End;
-  PImVector_ImGuiKeyRoutingData = ^ImVector_ImGuiKeyRoutingData;
-
-  ImGuiKeyRoutingTable = Record
-    Index: Array[0..ImGuiKey_NamedKey_COUNT - 1] Of ImGuiKeyRoutingIndex;
-    Entries: ImVector_ImGuiKeyRoutingData;
-    EntriesNext: ImVector_ImGuiKeyRoutingData;
-  End;
-
-  ImGuiKeyOwnerData = Record
-    OwnerCurr: ImGuiID;
-    OwnerNext: ImGuiID;
-    LockThisFrame: Boolean;
-    LockUntilRelease: Boolean;
-  End;
-
-
-  ImGuiNavItemData = Record
-    Window: PImGuiWindow;
-    ID: ImGuiID;
-    FocusScopeId: ImGuiID;
-    RectRel: ImRect;
-    InFlags: ImGuiItemFlags;
-    SelectionUserData: ImGuiSelectionUserData;
-    DistBox: Single;
-    DistCenter: Single;
-    DistAxial: Single;
-  End;
-
-  StbUndoRecord = Record
-    where: Integer;
-    insert_length: Integer;
-    delete_length: Integer;
-    char_storage: Integer;
-  End;
-  PStbUndoRecord = ^StbUndoRecord;
-
-  StbUndoState = Record
-    undo_rec: Array[0..99 - 1] of StbUndoRecord;
-    undo_char: Array[0..999 - 1] of ImWchar;
-    undo_point: ImS16;
-    redo_point: ImS16;
-    undo_char_point: Integer;
-    redo_char_point: Integer;
-  End;
-  PStbUndoState = ^StbUndoState;
-
-  StbTexteditRow = Record
-    x0: Single;
-    x1: Single;
-    baseline_y_delta: Single;
-    ymin: Single;
-    ymax: Single;
-    num_chars: Integer;
-  End;
-
-  STB_TexteditState = Record
-    cursor: Integer;
-    select_start: Integer;
-    select_end: Integer;
-    insert_mode: ImU8;
-    row_count_per_page: Integer;
-    cursor_at_end_of_line: ImU8;
-    initialized: ImU8;
-    has_preferred_x: ImU8;
-    single_line: ImU8;
-    padding1: ImU8;
-    padding2: ImU8;
-    padding3: ImU8;
-    preferred_x: Single;
-    undostate: StbUndoState;
-  End;
-  PSTB_TexteditState = ^STB_TexteditState;
-
-  ImGuiInputTextState = Record
-    Ctx: PImGuiContext;
-    ID: ImGuiID;
-    CurLenW: Integer;
-    CurLenA: Integer;
-    TextW: ImVector_ImWchar;
-    TextA: ImVector_char;
-    InitialTextA: ImVector_char;
-    TextAIsValid: Boolean;
-    BufCapacityA: Integer;
-    ScrollX: Single;
-    Stb: STB_TexteditState;
-    CursorAnim: Single;
-    CursorFollow: Boolean;
-    SelectedAllMouseLock: Boolean;
-    Edited: Boolean;
-    Flags: ImGuiInputTextFlags;
-  End;
-
-  ImGuiInputTextDeactivatedState = Record
-    ID: ImGuiID;
-    TextA: ImVector_char;
-  End;
-
-  ImGuiComboPreviewData = Record
-    PreviewRect: ImRect;
-    BackupCursorPos: ImVec2;
-    BackupCursorMaxPos: ImVec2;
-    BackupCursorPosPrevLine: ImVec2;
-    BackupPrevLineTextBaseOffset: Single;
-    BackupLayout: ImGuiLayoutType;
-  End;
-
-  { ImGuiDockRequest }
-
-  ImGuiDockRequestType = (
-    ImGuiDockRequestType_None = 0,
-    ImGuiDockRequestType_Dock,
-    ImGuiDockRequestType_Undock,
-    ImGuiDockRequestType_Split  // Split is the same as Dock but without a DockPayload
-  );
-
-  ImGuiDockRequest = Record
-    Type_: ImGuiDockRequestType;
-    DockTargetWindow: PImGuiWindow;   // Destination/Target Window to dock into
-    DockTargetNode: PImGuiDockNode;   // Destination/Target Node to dock into
-    DockPayload: PImGuiWindow;        // Source/Payload window to dock
-    DockSplitDir: ImGuiDir;
-    DockSplitRatio: Single;
-    DockSplitOuter: Boolean;
-    UndockTargetWindow: PImGuiWindow;
-    UndockTargetNode: PImGuiDockNode;
-    constructor New(_DockSplitRatio: Single);
-  End;
-
-
-  ImVector_int = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PInteger;
-  End;
-
-  ImGuiTextIndex = Record
-    LineOffsets: ImVector_int;
-    EndOffset: Integer;
-  End;
-
-  ImGuiMetricsConfig = Record
-    ShowDebugLog: Boolean;
-    ShowIDStackTool: Boolean;
-    ShowWindowsRects: Boolean;
-    ShowWindowsBeginOrder: Boolean;
-    ShowTablesRects: Boolean;
-    ShowDrawCmdMesh: Boolean;
-    ShowDrawCmdBoundingBoxes: Boolean;
-    ShowAtlasTintedWithTextColor: Boolean;
-    ShowDockingNodes: Boolean;
-    ShowWindowsRectsType: Integer;
-    ShowTablesRectsType: Integer;
-  End;
-
-  ImGuiStackLevelInfo = Record
-    ID: ImGuiID;
-    QueryFrameCount: ImS8;
-    QuerySuccess: Boolean;
-    DataType: Integer;
-    Desc: Array[0..56] of AnsiChar;
-  End;
-
-  ImVector_ImGuiStackLevelInfo = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiStackLevelInfo;
-  End;
-  PImVector_ImGuiStackLevelInfo = ^ImVector_ImGuiStackLevelInfo;
-
-  ImGuiStackTool = Record
-    LastActiveFrame: Integer;
-    StackLevel: Integer;
-    QueryId: ImGuiID;
-    Results: ImVector_ImGuiStackLevelInfo;
-    CopyToClipboardOnCtrlC: Boolean;
-    CopyToClipboardLastTime: Single;
-  End;
-  PImGuiStackTool = ^ImGuiStackTool;
-
-  ImGuiIDStackTool = record
-    LastActiveFrame: Integer;
-    StackLevel: Integer;
-    QueryId: ImGuiID;
-    Results: ImVector_ImGuiStackLevelInfo;
-    CopyToClipboardOnCtrlC: Boolean;
-    CopyToClipboardLastTime: Single;
-  end;
-
-  ImGuiContext = Record
-    Initialized: Boolean;
-    FontAtlasOwnedByContext: Boolean;
-    IO: ImGuiIO;
-    PlatformIO: ImGuiPlatformIO;
-    Style: ImGuiStyle;
-    ConfigFlagsCurrFrame: ImGuiConfigFlags;
-    ConfigFlagsLastFrame: ImGuiConfigFlags;
-    Font: PImFont;
-    FontSize: Single;
-    FontBaseSize: Single;
-    DrawListSharedData: ImDrawListSharedData;
-    Time: Double;
-    FrameCount: Integer;
-    FrameCountEnded: Integer;
-    FrameCountPlatformEnded: Integer;
-    FrameCountRendered: Integer;
-    WithinFrameScope: Boolean;
-    WithinFrameScopeWithImplicitWindow: Boolean;
-    WithinEndChild: Boolean;
-    GcCompactAll: Boolean;
-    TestEngineHookItems: Boolean;
-    TestEngine: Pointer;
-    InputEventsQueue: ImVector_ImGuiInputEvent;
-    InputEventsTrail: ImVector_ImGuiInputEvent;
-    InputEventsNextMouseSource: ImGuiMouseSource;
-    InputEventsNextEventId: ImU32;
-    Windows: ImVector_ImGuiWindowPtr;
-    WindowsFocusOrder: ImVector_ImGuiWindowPtr;
-    WindowsTempSortBuffer: ImVector_ImGuiWindowPtr;
-    CurrentWindowStack: ImVector_ImGuiWindowStackData;
-    WindowsById: ImGuiStorage;
-    WindowsActiveCount: Integer;
-    WindowsHoverPadding: ImVec2;
-    CurrentWindow: PImGuiWindow;
-    HoveredWindow: PImGuiWindow;
-    HoveredWindowUnderMovingWindow: PImGuiWindow;
-    MovingWindow: PImGuiWindow;
-    WheelingWindow: PImGuiWindow;
-    WheelingWindowRefMousePos: ImVec2;
-    WheelingWindowStartFrame: Integer;
-    WheelingWindowScrolledFrame: Integer;
-    WheelingWindowReleaseTimer: Single;
-    WheelingWindowWheelRemainder: ImVec2;
-    WheelingAxisAvg: ImVec2;
-    DebugHookIdInfo: ImGuiID;
-    HoveredId: ImGuiID;
-    HoveredIdPreviousFrame: ImGuiID;
-    HoveredIdAllowOverlap: Boolean;
-    HoveredIdDisabled: Boolean;
-    HoveredIdTimer: Single;
-    HoveredIdNotActiveTimer: Single;
-    ActiveId: ImGuiID;
-    ActiveIdIsAlive: ImGuiID;
-    ActiveIdTimer: Single;
-    ActiveIdIsJustActivated: Boolean;
-    ActiveIdAllowOverlap: Boolean;
-    ActiveIdNoClearOnFocusLoss: Boolean;
-    ActiveIdHasBeenPressedBefore: Boolean;
-    ActiveIdHasBeenEditedBefore: Boolean;
-    ActiveIdHasBeenEditedThisFrame: Boolean;
-    ActiveIdClickOffset: ImVec2;
-    ActiveIdWindow: PImGuiWindow;
-    ActiveIdSource: ImGuiInputSource;
-    ActiveIdMouseButton: Integer;
-    ActiveIdPreviousFrame: ImGuiID;
-    ActiveIdPreviousFrameIsAlive: Boolean;
-    ActiveIdPreviousFrameHasBeenEditedBefore: Boolean;
-    ActiveIdPreviousFrameWindow: PImGuiWindow;
-    LastActiveId: ImGuiID;
-    LastActiveIdTimer: Single;
-    KeysOwnerData: Array[0..154 - 1] of ImGuiKeyOwnerData;
-    KeysRoutingTable: ImGuiKeyRoutingTable;
-    ActiveIdUsingNavDirMask: ImU32;
-    ActiveIdUsingAllKeyboardKeys: Boolean;
-    CurrentFocusScopeId: ImGuiID;
-    CurrentItemFlags: ImGuiItemFlags;
-    DebugLocateId: ImGuiID;
-    NextItemData: ImGuiNextItemData;
-    LastItemData: ImGuiLastItemData;
-    NextWindowData: ImGuiNextWindowData;
-    DebugShowGroupRects: Boolean;
-    ColorStack: ImVector_ImGuiColorMod;
-    StyleVarStack: ImVector_ImGuiStyleMod;
-    FontStack: ImVector_ImFontPtr;
-    FocusScopeStack: ImVector_ImGuiID;
-    ItemFlagsStack: ImVector_ImGuiItemFlags;
-    GroupStack: ImVector_ImGuiGroupData;
-    OpenPopupStack: ImVector_ImGuiPopupData;
-    BeginPopupStack: ImVector_ImGuiPopupData;
-    NavTreeNodeStack: ImVector_ImGuiNavTreeNodeData;
-    BeginMenuCount: Integer;
-    Viewports: ImVector_ImGuiViewportPPtr;
-    CurrentDpiScale: Single;
-    CurrentViewport: PImGuiViewportP;
-    MouseViewport: PImGuiViewportP;
-    MouseLastHoveredViewport: PImGuiViewportP;
-    PlatformLastFocusedViewportId: ImGuiID;
-    FallbackMonitor: ImGuiPlatformMonitor;
-    ViewportCreatedCount: Integer;
-    PlatformWindowsCreatedCount: Integer;
-    ViewportFocusedStampCount: Integer;
-    NavWindow: PImGuiWindow;
-    NavId: ImGuiID;
-    NavFocusScopeId: ImGuiID;
-    NavActivateId: ImGuiID;
-    NavActivateDownId: ImGuiID;
-    NavActivatePressedId: ImGuiID;
-    NavActivateFlags: ImGuiActivateFlags;
-    NavJustMovedToId: ImGuiID;
-    NavJustMovedToFocusScopeId: ImGuiID;
-    NavJustMovedToKeyMods: ImGuiKeyChord;
-    NavNextActivateId: ImGuiID;
-    NavNextActivateFlags: ImGuiActivateFlags;
-    NavInputSource: ImGuiInputSource;
-    NavLayer: ImGuiNavLayer;
-    NavLastValidSelectionUserData: ImGuiSelectionUserData;
-    NavIdIsAlive: Boolean;
-    NavMousePosDirty: Boolean;
-    NavDisableHighlight: Boolean;
-    NavDisableMouseHover: Boolean;
-    NavAnyRequest: Boolean;
-    NavInitRequest: Boolean;
-    NavInitRequestFromMove: Boolean;
-    NavInitResult: ImGuiNavItemData;
-    NavMoveSubmitted: Boolean;
-    NavMoveScoringItems: Boolean;
-    NavMoveForwardToNextFrame: Boolean;
-    NavMoveFlags: ImGuiNavMoveFlags;
-    NavMoveScrollFlags: ImGuiScrollFlags;
-    NavMoveKeyMods: ImGuiKeyChord;
-    NavMoveDir: ImGuiDir;
-    NavMoveDirForDebug: ImGuiDir;
-    NavMoveClipDir: ImGuiDir;
-    NavScoringRect: ImRect;
-    NavScoringNoClipRect: ImRect;
-    NavScoringDebugCount: Integer;
-    NavTabbingDir: Integer;
-    NavTabbingCounter: Integer;
-    NavMoveResultLocal: ImGuiNavItemData;
-    NavMoveResultLocalVisible: ImGuiNavItemData;
-    NavMoveResultOther: ImGuiNavItemData;
-    NavTabbingResultFirst: ImGuiNavItemData;
-    ConfigNavWindowingKeyNext: ImGuiKeyChord;
-    ConfigNavWindowingKeyPrev: ImGuiKeyChord;
-    NavWindowingTarget: PImGuiWindow;
-    NavWindowingTargetAnim: PImGuiWindow;
-    NavWindowingListWindow: PImGuiWindow;
-    NavWindowingTimer: Single;
-    NavWindowingHighlightAlpha: Single;
-    NavWindowingToggleLayer: Boolean;
-    NavWindowingAccumDeltaPos: ImVec2;
-    NavWindowingAccumDeltaSize: ImVec2;
-    DimBgRatio: Single;
-    DragDropActive: Boolean;
-    DragDropWithinSource: Boolean;
-    DragDropWithinTarget: Boolean;
-    DragDropSourceFlags: ImGuiDragDropFlags;
-    DragDropSourceFrameCount: Integer;
-    DragDropMouseButton: Integer;
-    DragDropPayload: ImGuiPayload;
-    DragDropTargetRect: ImRect;
-    DragDropTargetId: ImGuiID;
-    DragDropAcceptFlags: ImGuiDragDropFlags;
-    DragDropAcceptIdCurrRectSurface: Single;
-    DragDropAcceptIdCurr: ImGuiID;
-    DragDropAcceptIdPrev: ImGuiID;
-    DragDropAcceptFrameCount: Integer;
-    DragDropHoldJustPressedId: ImGuiID;
-    DragDropPayloadBufHeap: ImVector_unsigned_char;
-    DragDropPayloadBufLocal: Array[0..16 - 1] of ImU8;
-    ClipperTempDataStacked: Integer;
-    ClipperTempData: ImVector_ImGuiListClipperData;
-    CurrentTable: PImGuiTable;
-    TablesTempDataStacked: Integer;
-    TablesTempData: ImVector_ImGuiTableTempData;
-    Tables: ImPool_ImGuiTable;
-    TablesLastTimeActive: ImVector_float;
-    DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel;
-    CurrentTabBar: PImGuiTabBar;
-    TabBars: ImPool_ImGuiTabBar;
-    CurrentTabBarStack: ImVector_ImGuiPtrOrIndex;
-    ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem;
-    HoverItemDelayId: ImGuiID;
-    HoverItemDelayIdPreviousFrame: ImGuiID;
-    HoverItemDelayTimer: Single;
-    HoverItemDelayClearTimer: Single;
-    HoverItemUnlockedStationaryId: ImGuiID;
-    HoverWindowUnlockedStationaryId: ImGuiID;
-    MouseCursor: ImGuiMouseCursor;
-    MouseStationaryTimer: Single;
-    MouseLastValidPos: ImVec2;
-    InputTextState: ImGuiInputTextState;
-    InputTextDeactivatedState: ImGuiInputTextDeactivatedState;
-    InputTextPasswordFont: ImFont;
-    TempInputId: ImGuiID;
-    ColorEditOptions: ImGuiColorEditFlags;
-    ColorEditCurrentID: ImGuiID;
-    ColorEditSavedID: ImGuiID;
-    ColorEditSavedHue: Single;
-    ColorEditSavedSat: Single;
-    ColorEditSavedColor: ImU32;
-    ColorPickerRef: ImVec4;
-    ComboPreviewData: ImGuiComboPreviewData;
-    WindowResizeBorderExpectedRect: ImRect;
-    WindowResizeRelativeMode: Boolean;
-    SliderGrabClickOffset: Single;
-    SliderCurrentAccum: Single;
-    SliderCurrentAccumDirty: Boolean;
-    DragCurrentAccumDirty: Boolean;
-    DragCurrentAccum: Single;
-    DragSpeedDefaultRatio: Single;
-    ScrollbarClickDeltaToGrabCenter: Single;
-    DisabledAlphaBackup: Single;
-    DisabledStackSize: ImS16;
-    LockMarkEdited: ImS16;
-    TooltipOverrideCount: ImS16;
-    ClipboardHandlerData: ImVector_char;
-    MenusIdSubmittedThisFrame: ImVector_ImGuiID;
-    TypingSelectState: ImGuiTypingSelectState;
-    PlatformImeData: ImGuiPlatformImeData;
-    PlatformImeDataPrev: ImGuiPlatformImeData;
-    PlatformImeViewport: ImGuiID;
-    DockContext: ImGuiDockContext;
-    DockNodeWindowMenuHandler: procedure(ctx : PImGuiContext; node : PImGuiDockNode; tab_bar : PImGuiTabBar); Cdecl;
-    SettingsLoaded: Boolean;
-    SettingsDirtyTimer: Single;
-    SettingsIniData: ImGuiTextBuffer;
-    SettingsHandlers: ImVector_ImGuiSettingsHandler;
-    SettingsWindows: ImChunkStream_ImGuiWindowSettings;
-    SettingsTables: ImChunkStream_ImGuiTableSettings;
-    Hooks: ImVector_ImGuiContextHook;
-    HookIdNext: ImGuiID;
-    LocalizationTable: Array[0..11 - 1] of PAnsiChar;
-    LogEnabled: Boolean;
-    LogType: ImGuiLogType;
-    LogFile: ImFileHandle;
-    LogBuffer: ImGuiTextBuffer;
-    LogNextPrefix: PAnsiChar;
-    LogNextSuffix: PAnsiChar;
-    LogLinePosY: Single;
-    LogLineFirstItem: Boolean;
-    LogDepthRef: Integer;
-    LogDepthToExpand: Integer;
-    LogDepthToExpandDefault: Integer;
-    DebugLogFlags: ImGuiDebugLogFlags;
-    DebugLogBuf: ImGuiTextBuffer;
-    DebugLogIndex: ImGuiTextIndex;
-    DebugLogClipperAutoDisableFrames: ImU8;
-    DebugLocateFrames: ImU8;
-    DebugBeginReturnValueCullDepth: ImS8;
-    DebugItemPickerActive: Boolean;
-    DebugItemPickerMouseButton: ImU8;
-    DebugItemPickerBreakId: ImGuiID;
-    DebugMetricsConfig: ImGuiMetricsConfig;
-    DebugIDStackTool: ImGuiIDStackTool;
-    DebugAllocInfo: ImGuiDebugAllocInfo;
-    DebugHoveredDockNode: PImGuiDockNode;
-    FramerateSecPerFrame: Array[0..60 - 1] of Single;
-    FramerateSecPerFrameIdx: Integer;
-    FramerateSecPerFrameCount: Integer;
-    FramerateSecPerFrameAccum: Single;
-    WantCaptureMouseNextFrame: Integer;
-    WantCaptureKeyboardNextFrame: Integer;
-    WantTextInputNextFrame: Integer;
-    TempBuffer: ImVector_char;
-  End;
-
-
-  ImFontAtlasCustomRect = Record
-    Width: ImU16;
-    Height: ImU16;
-    X: ImU16;
-    Y: ImU16;
-    GlyphID: ImU32;
-    GlyphAdvanceX: Single;
-    GlyphOffset: ImVec2;
-    Font: PImFont;
-  End;
-
-
-  ImFontConfig = Record
-    FontData: Pointer;
-    FontDataSize: Integer;
-    FontDataOwnedByAtlas: Boolean;
-    FontNo: Integer;
-    SizePixels: Single;
-    OversampleH: Integer;
-    OversampleV: Integer;
-    PixelSnapH: Boolean;
-    GlyphExtraSpacing: ImVec2;
-    GlyphOffset: ImVec2;
-    GlyphRanges: PImWchar;
-    GlyphMinAdvanceX: Single;
-    GlyphMaxAdvanceX: Single;
-    MergeMode: Boolean;
-    FontBuilderFlags: ImU32;
-    RasterizerMultiply: Single;
-    RasterizerDensity: Single;
-    EllipsisChar: ImWchar;
-    Name: Array[0..39] of AnsiChar;
-    DstFont: PImFont;
-  End;
-
-
-  ImGuiOldColumnData = Record
-    OffsetNorm: Single;
-    OffsetNormBeforeResize: Single;
-    Flags: ImGuiOldColumnFlags;
-    ClipRect: ImRect;
-  End;
-
-
-  ImVector_ImGuiOldColumnData = Record
-    Size: Integer;
-    Capacity: Integer;
-    Data: PImGuiOldColumnData;
-  End;
-
-  ImGuiOldColumns = Record
-    ID: ImGuiID;
-    Flags: ImGuiOldColumnFlags;
-    IsFirstFrame: Boolean;
-    IsBeingResized: Boolean;
-    Current: Integer;
-    Count: Integer;
-    OffMinX, OffMaxX: Single;
-    LineMinY, LineMaxY: Single;
-    HostCursorPosY: Single;
-    HostCursorMaxPosX: Single;
-    HostInitialClipRect: ImRect;
-    HostBackupClipRect: ImRect;
-    HostBackupParentWorkRect: ImRect;
-    Columns: ImVector_ImGuiOldColumnData;
-    Splitter: ImDrawListSplitter;
-  End;
-
-  { ImGuiDockNodeSettings }
-
-  ImGuiDockNodeSettings = Record
-    ID: ImGuiID;
-    ParentNodeId: ImGuiID;
-    ParentWindowId: ImGuiID;
-    SelectedTabId: ImGuiID;
-    SplitAxis: Shortint;
-    Depth: Byte;
-    Flags: ImGuiDockNodeFlags;
-    Pos: ImVec2ih;
-    Size: ImVec2ih;
-    SizeRef: ImVec2ih;
-    constructor New(SplitAxis_: ImGuiAxis);
-  End;
-
-  ImFontGlyph = Record
-    FontOpt : {$IFDEF FPC}bitpacked{$ELSE}packed{$ENDIF} record
-      Colored:   T1Bit;
-      Visible:   T1Bit;
-      Codepoint: T30Bits;
-    end;
-    AdvanceX: Single;
-    X0, Y0, X1, Y1: Single;
-    U0, V0, U1, V1: Single;
-  End;
-
-// Special Draw callback value to request renderer backend to reset the graphics/render state.
-// The renderer backend needs to handle this special value, otherwise it will crash trying to call a function at this address.
-// This is useful, for example, if you submitted callbacks which you know have altered the render state and you want it to be restored.
-// Render state is not reset by default because they are many perfectly useful way of altering render state (e.g. changing shader/blending settings before an Image call).
-
-const
-  ImDrawCallback_ResetRenderState : ImDrawCallback = Pointer(-8);
-
-Implementation
-
-{ ImVec2 }
-
-constructor ImVec2.New(const _x, _y: Single);
-Begin
-  Self.x := _x;
-  Self.y := _y;
-End;
-
-class operator ImVec2.Add(lhs, rhs: ImVec2): ImVec2;
-begin
-  Result := ImVec2.new(lhs.x + rhs.x, lhs.y + rhs.y);
-end;
-
-class operator ImVec2.Subtract(lhs, rhs: ImVec2): ImVec2;
-begin
-  Result := ImVec2.new(lhs.x - rhs.x, lhs.y - rhs.y);
-end;
-
-{ ImVec3 }
-
-constructor ImVec3.New(const _x, _y, _z: Single);
-begin
-  Self.x := _x;
-  Self.y := _y;
-  Self.z := _z;
-end;
-
-{ ImVec4 }
-
-constructor ImVec4.New(const _x, _y, _z: Single; _w: Single);
-begin
-  Self.x := _x;
-  Self.y := _y;
-  Self.z := _z;
-  Self.w := _w;
-end;
-
-{ ImDrawCmd }
-
-function ImDrawCmd.GetTexID(): ImTextureID;
-begin
-  Result := TextureId;
-end;
-
-{ ImGuiViewport }
-
-function ImGuiViewport.GetCenter(): ImVec2;
-begin
-  Result := ImVec2.New(Pos.x + Size.x * 0.5, Pos.y + Size.y * 0.5);
-end;
-
-function ImGuiViewport.GetWorkCenter(): ImVec2;
-begin
-  Result := ImVec2.New(WorkPos.x + WorkSize.x * 0.5, WorkPos.y + WorkSize.y * 0.5);
-end;
-
-{ ImGuiDockRequest }
-
-constructor ImGuiDockRequest.New(_DockSplitRatio : Single);
-Begin
-  FillChar(Self, SizeOf(ImGuiDockRequest), 0);
-  Self.DockSplitRatio := _DockSplitRatio;
-End;
-
-{ ImGuiDockNodeSettings }
-
-constructor ImGuiDockNodeSettings.New(SplitAxis_ : ImGuiAxis);
-Begin
-  FillChar(Self, SizeOf(ImGuiDockNodeSettings), 0);
-  Self.SplitAxis := Shortint(SplitAxis_); // Initialize with your default value
-End;
-
-End.
-
-

+ 166 - 0
src/PasImGui.Utils.pas

@@ -0,0 +1,166 @@
+{
+  FreePascal / Delphi bindings for ImGui
+
+  Copyright (C) 2023 Coldzer0 <Coldzer0 [at] protonmail.ch>
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the MIT License.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  MIT License for more details.
+}
+{
+  code from https://github.com/dpethes/imgui-pas
+  Additional imgui related code that may come in handy, mostly code samples from various sources
+
+  code from procedural's GpuLib - https://github.com/procedural/gpulib/
+  referenced in https://github.com/ocornut/imgui/issues/707
+}
+unit PasImGui.Utils;
+
+{$IFDEF FPC}
+  {$mode Delphi}{$H+}{$J-}
+  {$ModeSwitch advancedrecords}
+  {$modeswitch typehelpers}
+{$ENDIF}
+
+interface
+
+uses
+  PasImGui;
+
+Type
+
+  { TImVec2 }
+  TImVec2 = Record helper For ImVec2
+    class function New(const _x, _y: Single) : ImVec2; static;
+  end;
+
+  { TImVec3 }
+  TImVec3 = Record helper For ImVec3
+    class function New(const _x, _y, _z: Single) : ImVec3; static;
+  end;
+
+  { TImVec4 }
+  TImVec4 = Record helper For ImVec4
+    class function New(const _x, _y, _z: Single; _w: Single = 1.0) : ImVec4; static;
+  end;
+
+  { TImDrawCmd }
+
+  TImDrawCmd = Record helper for ImDrawCmd
+    function GetTexID : ImTextureID;
+  end;
+
+
+
+procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
+procedure SetupImGuiStyle2();
+
+implementation
+
+class function TImVec2.New(const _x, _y: Single): ImVec2;
+begin
+  Result.x := _x;
+  Result.y := _y;
+end;
+
+{ TImVec3 }
+
+class function TImVec3.New(const _x, _y, _z: Single): ImVec3;
+begin
+  Result.x := _x;
+  Result.y := _y;
+  Result.z := _z;
+end;
+
+{ TImVec4 }
+
+class function TImVec4.New(const _x, _y, _z: Single; _w: Single): ImVec4;
+begin
+  Result.x := _x;
+  Result.y := _y;
+  Result.z := _z;
+  Result.w := _w;
+end;
+
+{ TImDrawCmd }
+
+function TImDrawCmd.GetTexID: ImTextureID;
+begin
+  Result := Self.TextureId;
+end;
+
+//operator Add(lhs, rhs: ImVec2): ImVec2;
+//begin
+//  Result := ImVec2.new(lhs.x + rhs.x, lhs.y + rhs.y);
+//end;
+//
+//operator Subtract(lhs, rhs: ImVec2): ImVec2;
+//begin
+//  Result := ImVec2.new(lhs.x - rhs.x, lhs.y - rhs.y);
+//end;
+
+procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
+var
+  style: PImGuiStyle;
+begin
+  style := ImGui.GetStyle();
+
+  style^.Colors[ImGuiCol_Text] := ImVec4.New( color_for_text.x, color_for_text.y, color_for_text.z, 1.00 );
+  style^.Colors[ImGuiCol_TextDisabled] := ImVec4.New( color_for_text.x, color_for_text.y, color_for_text.z, 0.58 );
+  style^.Colors[ImGuiCol_WindowBg] := ImVec4.New( color_for_body.x, color_for_body.y, color_for_body.z, 0.95 );
+  style^.Colors[ImGuiCol_ChildBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 0.58 );
+  style^.Colors[ImGuiCol_Border] := ImVec4.New( color_for_body.x, color_for_body.y, color_for_body.z, 0.00 );
+  style^.Colors[ImGuiCol_BorderShadow] := ImVec4.New( color_for_body.x, color_for_body.y, color_for_body.z, 0.00 );
+  style^.Colors[ImGuiCol_FrameBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 1.00 );
+  style^.Colors[ImGuiCol_FrameBgHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.78 );
+  style^.Colors[ImGuiCol_FrameBgActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_TitleBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 1.00 );
+  style^.Colors[ImGuiCol_TitleBgCollapsed] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 0.75 );
+  style^.Colors[ImGuiCol_TitleBgActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_MenuBarBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 0.47 );
+  style^.Colors[ImGuiCol_ScrollbarBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 1.00 );
+  style^.Colors[ImGuiCol_ScrollbarGrab] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.21 );
+  style^.Colors[ImGuiCol_ScrollbarGrabHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.78 );
+  style^.Colors[ImGuiCol_ScrollbarGrabActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_CheckMark] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.80 );
+  style^.Colors[ImGuiCol_SliderGrab] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.50 );
+  style^.Colors[ImGuiCol_SliderGrabActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_Button] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.50 );
+  style^.Colors[ImGuiCol_ButtonHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.86 );
+  style^.Colors[ImGuiCol_ButtonActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_Header] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.76 );
+  style^.Colors[ImGuiCol_HeaderHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.86 );
+  style^.Colors[ImGuiCol_HeaderActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_Separator] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.32 );
+  style^.Colors[ImGuiCol_SeparatorHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.78 );
+  style^.Colors[ImGuiCol_SeparatorActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_ResizeGrip] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.15 );
+  style^.Colors[ImGuiCol_ResizeGripHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.78 );
+  style^.Colors[ImGuiCol_ResizeGripActive] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_PlotLines] := ImVec4.New( color_for_text.x, color_for_text.y, color_for_text.z, 0.63 );
+  style^.Colors[ImGuiCol_PlotLinesHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_PlotHistogram] := ImVec4.New( color_for_text.x, color_for_text.y, color_for_text.z, 0.63 );
+  style^.Colors[ImGuiCol_PlotHistogramHovered] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 1.00 );
+  style^.Colors[ImGuiCol_TextSelectedBg] := ImVec4.New( color_for_head.x, color_for_head.y, color_for_head.z, 0.43 );
+  style^.Colors[ImGuiCol_PopupBg] := ImVec4.New( color_for_pops.x, color_for_pops.y, color_for_pops.z, 0.92 );
+  style^.Colors[ImGuiCol_ModalWindowDimBg] := ImVec4.New( color_for_area.x, color_for_area.y, color_for_area.z, 0.73 );
+end;
+
+procedure SetupImGuiStyle2();
+var
+  color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3;
+begin
+  color_for_text := ImVec3.New(236.0 / 255.0, 240.0 / 255.0, 241.0 / 255.0);
+  color_for_head := ImVec3.New(41.0 / 255.0, 128.0 / 255.0, 185.0 / 255.0);
+  color_for_area := ImVec3.New(57.0 / 255.0, 79.0 / 255.0, 105.0 / 255.0);
+  color_for_body := ImVec3.New(44.0 / 255.0, 62.0 / 255.0, 80.0 / 255.0);
+  color_for_pops := ImVec3.New(33.0 / 255.0, 46.0 / 255.0, 60.0 / 255.0);
+  imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops);
+end;
+
+end.
+

+ 136 - 44
src/PasImGui.pas

@@ -13,23 +13,23 @@
 }
 
 Unit PasImGui;
+
 {$IfDef FPC}
-  {$mode objfpc}{$H+}
+  {$PACKRECORDS C}
+  {$mode Delphi}{$H+}
   {$ModeSwitch advancedrecords}
   {$modeswitch typehelpers}
   {.$Define INLINE} {There's a bug in FPC Trunk version when we inline helper functions}
 {$EndIf}
+{$MINENUMSIZE 4}
+{$I ImGuiPasDef.inc}
 
+interface
+  Uses
+    SysUtils, Math;
 
-Interface
-
-Uses
-  SysUtils,
-  PasImGui.Enums,
-  PasImGui.Types,
-  PasImGui.Apis;
-
-Const
+{$IfDef DYNAMIC_LINK}
+const
   {$if defined(Darwin)}
     SharedSuffix = 'dylib';
   {$elseif defined(linux)}
@@ -38,6 +38,61 @@ Const
   SharedSuffix = 'dll';
   {$endif}
   CIMGUI_LIB = 'cimgui.' + SharedSuffix;
+{$ELSE}
+    {$IfDef FPC}
+    {$LinkLib libcimgui.a}
+    {$IfDef MSWINDOWS}
+      {$linklib stdc++}
+      {$linklib mingwex}
+      {$linklib mingw32}
+      {$linklib gcc}
+      {$LinkLib oleaut32}
+      {$LinkLib setupapi}
+      {$LinkLib imm32}
+      {$LinkLib version}
+      {$LinkLib winmm}
+      {$LinkLib gdi32}
+      {$LinkLib ole32}
+      {$linklib msvcrt}
+      {$LinkLib msvcrt_atexit}
+      {$linklib kernel32}
+      {$linklib advapi32}
+      {$linklib user32}
+      {$linklib shell32}
+    {$EndIf}
+  {$ELSE}
+  {$MESSAGE Error 'Ops ^_^ no static linking for Delphi :P'}
+  {$EndIf}
+{$EndIf}
+
+{$If Defined(FPC) and (Defined(WIN32) or Defined(WIN64))}
+//Type
+  //TProc = Procedure; cdecl;
+  //function atexit(func : TProc): Integer; stdcall external 'msvcrt' name 'atexit';
+{$EndIf}
+
+
+const
+  {$IF Defined(MSWINDOWS)}
+  _PU = '';
+  {$ELSEIF Defined(MACOS64) or Defined(IOS)}
+  _PU = '_';
+  {$ELSEIF Defined(LINUX) or Defined(ANDROID32) or Defined(ANDROID64)}
+  _PU = '';
+  {$ELSE}
+    {$MESSAGE Error 'Unsupported platform'}
+  {$ENDIF}
+
+
+{$I ImPlotTypes.inc}
+{$I PasImGui.Apis.inc}
+
+Type
+  ImVec3 = record
+    x: Single;
+    y: Single;
+    z: Single;
+  end;
 
 Const
   IMGUI_VERSION = '1.90.0';
@@ -321,7 +376,7 @@ Type
       tint_col: ImVec4): Boolean; {$IfDef INLINE} inline;{$EndIf}
     Class Function Checkbox(_label: PAnsiChar; v: PBoolean): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
-    Class Function CheckboxFlags(_label: PAnsiChar; flags: PImU32;
+    Class Function CheckboxFlags(_label: PAnsiChar; flags: PCardinal;
       flags_value: Int32): Boolean; {$IfDef INLINE} inline;{$EndIf}
     Class Function RadioButtonBool(_label: PAnsiChar; active: Boolean): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
@@ -378,27 +433,27 @@ Type
 
     { Widgets: Sliders (tip: ctrl+click on a slider to input text) }
     Class Function SliderFloat(_label: PAnsiChar; v: Psingle;
-      v_min: Single; v_max: Single; display_format: PAnsiChar = nil;
+      v_min: Single; v_max: Single; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function SliderFloat2(_label: PAnsiChar; v: PSingle;
-      v_min: Single; v_max: Single; display_format: PAnsiChar = nil;
+      v_min: Single; v_max: Single; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function SliderFloat3(_label: PAnsiChar; v: PSingle;
-      v_min: Single; v_max: Single; display_format: PAnsiChar = nil;
+      v_min: Single; v_max: Single; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function SliderFloat4(_label: PAnsiChar; v: PSingle;
-      v_min: Single; v_max: Single; display_format: PAnsiChar = nil;
+      v_min: Single; v_max: Single; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function SliderAngle(_label: PAnsiChar; v_rad: Psingle;
       v_degrees_min: Single = -360.0; v_degrees_max: Single = +360.0;
       format: PAnsiChar = nil;
-      flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean; Inline;
+      flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean; {$IfDef INLINE} inline;{$EndIf}
     Class Function SliderInt(_label: PAnsiChar; v: PInteger; v_min: Longint;
-      v_max: Longint; display_format: PAnsiChar = nil;
+      v_max: Longint; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
 
@@ -408,21 +463,21 @@ Type
     {$IfDef INLINE} inline;{$EndIf}
 
     Class Function SliderInt3(_label: PAnsiChar; v: PInteger;
-      v_min: Longint; v_max: Longint; display_format: PAnsiChar = nil;
+      v_min: Longint; v_max: Longint; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
 
     Class Function SliderInt4(_label: PAnsiChar; v: PInteger;
-      v_min: Longint; v_max: Longint; display_format: PAnsiChar = nil;
+      v_min: Longint; v_max: Longint; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
 
     Class Function VSliderFloat(_label: PAnsiChar; size: ImVec2;
-      v: Psingle; v_min: Single; v_max: Single; display_format: PAnsiChar = nil;
+      v: Psingle; v_min: Single; v_max: Single; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function VSliderInt(_label: PAnsiChar; size: ImVec2; v: PInteger;
-      v_min: Longint; v_max: Longint; display_format: PAnsiChar = nil;
+      v_min: Longint; v_max: Longint; display_format: PAnsiChar;
       flags: ImGuiSliderFlags = ImGuiSliderFlags_None): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
 
@@ -474,11 +529,11 @@ Type
 
     { Widgets: Input with Keyboard }
     Class Function InputText(_label: PAnsiChar; buf: PAnsiChar;
-      buf_size: size_t; flags: ImGuiInputTextFlags = ImGuiInputTextFlags_None;
+      buf_size: NativeUInt; flags: ImGuiInputTextFlags = ImGuiInputTextFlags_None;
       callback: ImGuiInputTextCallback = nil; user_data: pointer = nil): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     Class Function InputTextMultiline(_label: PAnsiChar; buf: PAnsiChar;
-      buf_size: size_t; size: ImVec2;
+      buf_size: NativeUInt; size: ImVec2;
       flags: ImGuiInputTextFlags = ImGuiInputTextFlags_None;
       callback: ImGuiInputTextCallback = nil; user_data: pointer = nil): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
@@ -722,7 +777,7 @@ Type
     {$IfDef INLINE} inline;{$EndIf}
 
     { Helpers functions to access functions pointers in ImGui::GetIO() }
-    Class Function MemAlloc(sz: size_t): pointer; {$IfDef INLINE} inline;{$EndIf}
+    Class Function MemAlloc(sz: NativeUInt): pointer; {$IfDef INLINE} inline;{$EndIf}
     Class Procedure MemFree(ptr: pointer); {$IfDef INLINE} inline;{$EndIf}
     Class Function GetClipboardText: PAnsiChar; {$IfDef INLINE} inline;{$EndIf}
     Class Procedure SetClipboardText(_text: PAnsiChar); {$IfDef INLINE} inline;{$EndIf}
@@ -740,9 +795,9 @@ Type
     Function AddFontDefault(): PImFont;
     Function AddFontFromFileTTF(filename: PAnsiChar; size_pixels: Single;
       font_cfg: PImFontConfig = nil; glyph_ranges: PImWchar = nil): PImFont;
-    Procedure GetTexDataAsRGBA32(out_pixels: PPImU8; out_width: PInteger;
+    Procedure GetTexDataAsRGBA32(out_pixels: PPByte; out_width: PInteger;
       out_height: PInteger; out_bytes_per_pixel: PInteger = nil);
-    Procedure GetTexDataAsAlpha8(out_pixels: PPImU8; out_width: PInteger;
+    Procedure GetTexDataAsAlpha8(out_pixels: PPByte; out_width: PInteger;
       out_height: PInteger; out_bytes_per_pixel: PInteger);
     Procedure SetTexID(id: ImTextureID);
   End;
@@ -858,8 +913,23 @@ Function ImGuiPlatformMonitor_Create(): PImGuiPlatformMonitor;
 Function IM_COL32(R, G, B, A: ImU32): ImU32;
 
 Implementation
+  uses
+    PasImGui.Utils;
+
+{$If Defined(FPC) and (Defined(WIN32) or Defined(WIN64))}
+  //function OnExit(func : TProc): Integer; public name {$IfDef WIN32}'_'+{$EndIf}'atexit';
+  //begin
+  //  Result := atexit(func);
+  //end;
+{$EndIf}
 
 Function IM_COL32(R, G, B, A: ImU32): ImU32;
+const
+  IM_COL32_R_SHIFT = 0;
+  IM_COL32_G_SHIFT = 8;
+  IM_COL32_B_SHIFT = 16;
+  IM_COL32_A_SHIFT = 24;
+  IM_COL32_A_MASK  = $FF000000;
 Begin
   Result := (A Shl IM_COL32_A_SHIFT) Or (B Shl IM_COL32_B_SHIFT) Or
     (G Shl IM_COL32_G_SHIFT) Or (R Shl IM_COL32_R_SHIFT);
@@ -1590,7 +1660,7 @@ End;
 { Widgets: Text }
 Class Procedure ImGui.Text(Const text_: AnsiString);
 Begin
-  igText(PAnsiChar(text_), []);
+  igText(PAnsiChar(text_));
 End;
 
 Class Procedure ImGui.Text(Const Fmt: AnsiString; Const Args: Array Of Const);
@@ -1605,7 +1675,7 @@ End;
 
 Class Procedure ImGui.TextColored(col: ImVec4; Const fmt: AnsiString);
 Begin
-  igTextColored(col, PAnsiChar(fmt), []);
+  igTextColored(col, PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.TextDisabled(Const fmt: AnsiString; args: Array Of Const);
@@ -1615,7 +1685,7 @@ End;
 
 Class Procedure ImGui.TextDisabled(Const fmt: AnsiString);
 Begin
-  igTextDisabled(PAnsiChar(fmt), []);
+  igTextDisabled(PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.TextWrapped(Const fmt: AnsiString; args: Array Of Const);
@@ -1625,7 +1695,7 @@ End;
 
 Class Procedure ImGui.TextWrapped(Const fmt: AnsiString);
 Begin
-  igTextWrapped(PAnsiChar(fmt), []);
+  igTextWrapped(PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.TextUnformatted(Const _text: AnsiString);
@@ -1647,7 +1717,7 @@ End;
 
 Class Procedure ImGui.LabelText(_label: AnsiString; fmt: AnsiString);
 Begin
-  igLabelText(PAnsiChar(_label), PAnsiChar(fmt), []);
+  igLabelText(PAnsiChar(_label), PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.Bullet;
@@ -1662,7 +1732,7 @@ End;
 
 Class Procedure ImGui.BulletText(Const fmt: AnsiString);
 Begin
-  igBulletText(PAnsiChar(fmt), []);
+  igBulletText(PAnsiChar(fmt));
 End;
 
 { Widgets: Main }
@@ -1704,7 +1774,7 @@ Begin
   Result := igCheckbox(_label, v);
 End;
 
-Class Function ImGui.CheckboxFlags(_label: PAnsiChar; flags: PImU32;
+Class Function ImGui.CheckboxFlags(_label: PAnsiChar; flags: PCardinal;
   flags_value: Int32): Boolean;
 Begin
   { TODO: Do we need to implement other igCheckboxFlags funcs - Time : 11/3/2023 11:46:25 PM }
@@ -1818,6 +1888,8 @@ Class Function ImGui.SliderFloat2(_label: PAnsiChar; v: PSingle;
   v_min: Single; v_max: Single; display_format: PAnsiChar;
   flags: ImGuiSliderFlags): Boolean;
 Begin
+  If display_format = nil Then
+    display_format := '%.3f';
   Result := igSliderFloat2(_label, v, v_min, v_max, display_format, flags);
 End;
 
@@ -1825,6 +1897,8 @@ Class Function ImGui.SliderFloat3(_label: PAnsiChar; v: PSingle;
   v_min: Single; v_max: Single; display_format: PAnsiChar;
   flags: ImGuiSliderFlags): Boolean;
 Begin
+  If display_format = nil Then
+    display_format := '%.3f';
   Result := igSliderFloat3(_label, v, v_min, v_max, display_format, flags);
 End;
 
@@ -1832,6 +1906,8 @@ Class Function ImGui.SliderFloat4(_label: PAnsiChar; v: PSingle;
   v_min: Single; v_max: Single; display_format: PAnsiChar;
   flags: ImGuiSliderFlags): Boolean;
 Begin
+  If display_format = nil Then
+    display_format := '%.3f';
   Result := igSliderFloat4(_label, v, v_min, v_max, display_format, flags);
 End;
 
@@ -1965,14 +2041,14 @@ End;
 
 { Widgets: Input }
 Class Function ImGui.InputText(_label: PAnsiChar; buf: PAnsiChar;
-  buf_size: size_t; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback;
+  buf_size: NativeUInt; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback;
   user_data: pointer): Boolean;
 Begin
   Result := igInputText(_label, buf, buf_size, flags, callback, user_data);
 End;
 
 Class Function ImGui.InputTextMultiline(_label: PAnsiChar; buf: PAnsiChar;
-  buf_size: size_t; size: ImVec2; flags: ImGuiInputTextFlags;
+  buf_size: NativeUInt; size: ImVec2; flags: ImGuiInputTextFlags;
   callback: ImGuiInputTextCallback; user_data: pointer): Boolean;
 Begin
   Result := igInputTextMultiline(_label, buf, buf_size, size, flags,
@@ -2042,7 +2118,7 @@ End;
 
 Class Function ImGui.TreeNode(str_id: AnsiString; fmt: AnsiString): Boolean;
 Begin
-  Result := igTreeNode_StrStr(PAnsiChar(str_id), PAnsiChar(fmt), []);
+  Result := igTreeNode_StrStr(PAnsiChar(str_id), PAnsiChar(fmt));
 End;
 
 Class Function ImGui.TreeNode(ptr_id: pointer; fmt: AnsiString;
@@ -2053,7 +2129,7 @@ End;
 
 Class Function ImGui.TreeNode(ptr_id: pointer; fmt: AnsiString): Boolean;
 Begin
-  Result := igTreeNode_Ptr(ptr_id, PAnsiChar(fmt), []);
+  Result := igTreeNode_Ptr(ptr_id, PAnsiChar(fmt));
 End;
 
 Class Function ImGui.TreeNodeEx(_label: PAnsiChar; flags: ImGuiTreeNodeFlags): Boolean;
@@ -2070,7 +2146,7 @@ End;
 Class Function ImGui.TreeNodeEx(str_id: PAnsiChar; flags: ImGuiTreeNodeFlags;
   fmt: AnsiString): Boolean;
 Begin
-  Result := igTreeNodeEx_StrStr(str_id, flags, PAnsiChar(fmt), []);
+  Result := igTreeNodeEx_StrStr(str_id, flags, PAnsiChar(fmt));
 End;
 
 Class Function ImGui.TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags;
@@ -2082,7 +2158,7 @@ End;
 Class Function ImGui.TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags;
   fmt: AnsiString): Boolean;
 Begin
-  Result := igTreeNodeEx_Ptr(ptr_id, flags, PAnsiChar(fmt), []);
+  Result := igTreeNodeEx_Ptr(ptr_id, flags, PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.TreePushStr(str_id: PAnsiChar);
@@ -2188,7 +2264,7 @@ End;
 
 Class Procedure ImGui.SetTooltip(fmt: AnsiString);
 Begin
-  igSetTooltip(PAnsiChar(fmt), []);
+  igSetTooltip(PAnsiChar(fmt));
 End;
 
 Class Procedure ImGui.BeginTooltip;
@@ -2327,7 +2403,7 @@ End;
 
 Class Procedure ImGui.LogText(Const fmt: AnsiString);
 Begin
-  igLogText(PAnsiChar(fmt), []);
+  igLogText(PAnsiChar(fmt));
 End;
 
 { Clipping }
@@ -2584,7 +2660,7 @@ Begin
 End;
 
 { Helpers functions to access functions pointers in ImGui::GetIO() }
-Class Function ImGui.MemAlloc(sz: size_t): pointer;
+Class Function ImGui.MemAlloc(sz: NativeUInt): pointer;
 Begin
   Result := igMemAlloc(sz);
 End;
@@ -2624,14 +2700,14 @@ Begin
     font_cfg, glyph_ranges);
 End;
 
-Procedure TImFontAtlasHelper.GetTexDataAsRGBA32(out_pixels: PPImU8;
+Procedure TImFontAtlasHelper.GetTexDataAsRGBA32(out_pixels: PPByte;
   out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger);
 Begin
   ImFontAtlas_GetTexDataAsRGBA32(@Self, out_pixels, out_width,
     out_height, out_bytes_per_pixel);
 End;
 
-Procedure TImFontAtlasHelper.GetTexDataAsAlpha8(out_pixels: PPImU8;
+Procedure TImFontAtlasHelper.GetTexDataAsAlpha8(out_pixels: PPByte;
   out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger);
 Begin
   ImFontAtlas_GetTexDataAsAlpha8(@Self, out_pixels, out_width,
@@ -2897,6 +2973,22 @@ Begin
   ImDrawList_PrimVtx(@self, pos, uv, col);
 End;
 
+// operator overloading
+
+class operator ImVec2.Add(lhs, rhs: ImVec2): ImVec2;
+begin
+  Result := ImVec2.new(lhs.x + rhs.x, lhs.y + rhs.y);
+end;
+
+class operator ImVec2.Subtract(lhs, rhs: ImVec2): ImVec2;
+begin
+  Result := ImVec2.new(lhs.x - rhs.x, lhs.y - rhs.y);
+end;
+
+{$I ImGuiApis.Impl.inc}
 
+initialization
+  // Disabling Floating-Point Exceptions
+  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
 
 End.