imgui

    Dark Mode
Search:
Group by:

ImGUI Bindings

WARNING: This is a generated file. Do not edit Any edits will be overwritten by the genearator.

The aim is to achieve as much compatibility with C as possible. Optional helper functions have been created as a submodule imgui/imgui_helpers to better bind this library to Nim.

You can check the original documentation here.

Source language of ImGui is C++, since Nim is able to compile both to C and C++ you can select which compile target you wish to use. Note that to use the C backend you must supply a cimgui dynamic library file.

HACK: If you are targeting Windows, be sure to compile the cimgui dll with visual studio and not with mingw.

Types

ImDrawCornerFlags {...}{.pure, size: 4.} = enum
  None = 0, TopLeft = 1, TopRight = 2, Top = 3, BotLeft = 4, Left = 5,
  BotRight = 8, Right = 10, Bot = 12, All = 15
ImDrawListFlags {...}{.pure, size: 4.} = enum
  None = 0, AntiAliasedLines = 1, AntiAliasedLinesUseTex = 2,
  AntiAliasedFill = 4, AllowVtxOffset = 8
ImFontAtlasFlags {...}{.pure, size: 4.} = enum
  None = 0, NoPowerOfTwoHeight = 1, NoMouseCursors = 2, NoBakedLines = 4
ImGuiAxis {...}{.pure, size: 4.} = enum
  None = -1, X = 0, Y = 1
ImGuiBackendFlags {...}{.pure, size: 4.} = enum
  None = 0, HasGamepad = 1, HasMouseCursors = 2, HasSetMousePos = 4,
  RendererHasVtxOffset = 8
ImGuiButtonFlagsPrivate {...}{.pure, size: 4.} = enum
  PressedOnClick = 16, PressedOnClickRelease = 32,
  PressedOnClickReleaseAnywhere = 64, PressedOnRelease = 128,
  PressedOnDoubleClick = 256, PressedOnDragDropHold = 512, PressedOnMask = 1008,
  Repeat = 1024, FlattenChildren = 2048, AllowItemOverlap = 4096,
  DontClosePopups = 8192, Disabled = 16384, AlignTextBaseLine = 32768,
  NoKeyModifiers = 65536, NoHoldingActiveId = 131072, NoNavFocus = 262144,
  NoHoveredOnFocus = 524288
ImGuiButtonFlags {...}{.pure, size: 4.} = enum
  None = 0, MouseButtonLeft = 1, MouseButtonRight = 2, MouseButtonMiddle = 4,
  MouseButtonMask = 7
ImGuiCol {...}{.pure, size: 4.} = enum
  Text = 0, TextDisabled = 1, WindowBg = 2, ChildBg = 3, PopupBg = 4,
  Border = 5, BorderShadow = 6, FrameBg = 7, FrameBgHovered = 8,
  FrameBgActive = 9, TitleBg = 10, TitleBgActive = 11, TitleBgCollapsed = 12,
  MenuBarBg = 13, ScrollbarBg = 14, ScrollbarGrab = 15,
  ScrollbarGrabHovered = 16, ScrollbarGrabActive = 17, CheckMark = 18,
  SliderGrab = 19, SliderGrabActive = 20, Button = 21, ButtonHovered = 22,
  ButtonActive = 23, Header = 24, HeaderHovered = 25, HeaderActive = 26,
  Separator = 27, SeparatorHovered = 28, SeparatorActive = 29, ResizeGrip = 30,
  ResizeGripHovered = 31, ResizeGripActive = 32, Tab = 33, TabHovered = 34,
  TabActive = 35, TabUnfocused = 36, TabUnfocusedActive = 37, PlotLines = 38,
  PlotLinesHovered = 39, PlotHistogram = 40, PlotHistogramHovered = 41,
  TableHeaderBg = 42, TableBorderStrong = 43, TableBorderLight = 44,
  TableRowBg = 45, TableRowBgAlt = 46, TextSelectedBg = 47, DragDropTarget = 48,
  NavHighlight = 49, NavWindowingHighlight = 50, NavWindowingDimBg = 51,
  ModalWindowDimBg = 52
ImGuiColorEditFlags {...}{.pure, size: 4.} = enum
  None = 0, NoAlpha = 2, NoPicker = 4, NoOptions = 8, NoSmallPreview = 16,
  NoInputs = 32, NoTooltip = 64, NoLabel = 128, NoSidePreview = 256,
  NoDragDrop = 512, NoBorder = 1024, AlphaBar = 65536, AlphaPreview = 131072,
  AlphaPreviewHalf = 262144, HDR = 524288, DisplayRGB = 1048576,
  DisplayHSV = 2097152, DisplayHex = 4194304, DisplayMask = 7340032,
  Uint8 = 8388608, Float = 16777216, DataTypeMask = 25165824,
  PickerHueBar = 33554432, PickerHueWheel = 67108864, PickerMask = 100663296,
  InputRGB = 134217728, OptionsDefault = 177209344, InputHSV = 268435456,
  InputMask = 402653184
ImGuiComboFlags {...}{.pure, size: 4.} = enum
  None = 0, PopupAlignLeft = 1, HeightSmall = 2, HeightRegular = 4,
  HeightLarge = 8, HeightLargest = 16, HeightMask = 30, NoArrowButton = 32,
  NoPreview = 64
ImGuiCond {...}{.pure, size: 4.} = enum
  None = 0, Always = 1, Once = 2, FirstUseEver = 4, Appearing = 8
ImGuiConfigFlags {...}{.pure, size: 4.} = enum
  None = 0, NavEnableKeyboard = 1, NavEnableGamepad = 2,
  NavEnableSetMousePos = 4, NavNoCaptureKeyboard = 8, NoMouse = 16,
  NoMouseCursorChange = 32, IsSRGB = 1048576, IsTouchScreen = 2097152
ImGuiContextHookType {...}{.pure, size: 4.} = enum
  NewFramePre = 0, NewFramePost = 1, EndFramePre = 2, EndFramePost = 3,
  RenderPre = 4, RenderPost = 5, Shutdown = 6, PendingRemoval = 7
ImGuiDataTypePrivate {...}{.pure, size: 4.} = enum
  String = 11, Pointer = 12, ID = 13
ImGuiDataType {...}{.pure, size: 4.} = enum
  S8 = 0, U8 = 1, S16 = 2, U16 = 3, S32 = 4, U32 = 5, S64 = 6, U64 = 7,
  Float = 8, Double = 9
ImGuiDir {...}{.pure, size: 4.} = enum
  None = -1, Left = 0, Right = 1, Up = 2, Down = 3
ImGuiDragDropFlags {...}{.pure, size: 4.} = enum
  None = 0, SourceNoPreviewTooltip = 1, SourceNoDisableHover = 2,
  SourceNoHoldToOpenOthers = 4, SourceAllowNullID = 8, SourceExtern = 16,
  SourceAutoExpirePayload = 32, AcceptBeforeDelivery = 1024,
  AcceptNoDrawDefaultRect = 2048, AcceptPeekOnly = 3072,
  AcceptNoPreviewTooltip = 4096
ImGuiFocusedFlags {...}{.pure, size: 4.} = enum
  None = 0, ChildWindows = 1, RootWindow = 2, RootAndChildWindows = 3,
  AnyWindow = 4
ImGuiHoveredFlags {...}{.pure, size: 4.} = enum
  None = 0, ChildWindows = 1, RootWindow = 2, RootAndChildWindows = 3,
  AnyWindow = 4, AllowWhenBlockedByPopup = 8, AllowWhenBlockedByActiveItem = 32,
  AllowWhenOverlapped = 64, RectOnly = 104, AllowWhenDisabled = 128
ImGuiInputReadMode {...}{.pure, size: 4.} = enum
  Down = 0, Pressed = 1, Released = 2, Repeat = 3, RepeatSlow = 4,
  RepeatFast = 5
ImGuiInputSource {...}{.pure, size: 4.} = enum
  None = 0, Mouse = 1, Nav = 2, NavKeyboard = 3, NavGamepad = 4
ImGuiInputTextFlags {...}{.pure, size: 4.} = enum
  None = 0, CharsDecimal = 1, CharsHexadecimal = 2, CharsUppercase = 4,
  CharsNoBlank = 8, AutoSelectAll = 16, EnterReturnsTrue = 32,
  CallbackCompletion = 64, CallbackHistory = 128, CallbackAlways = 256,
  CallbackCharFilter = 512, AllowTabInput = 1024, CtrlEnterForNewLine = 2048,
  NoHorizontalScroll = 4096, AlwaysInsertMode = 8192, ReadOnly = 16384,
  Password = 32768, NoUndoRedo = 65536, CharsScientific = 131072,
  CallbackResize = 262144, CallbackEdit = 524288, Multiline = 1048576,
  NoMarkEdited = 2097152
ImGuiItemFlags {...}{.pure, size: 4.} = enum
  None = 0, NoTabStop = 1, ButtonRepeat = 2, Disabled = 4, NoNav = 8,
  NoNavDefaultFocus = 16, SelectableDontClosePopup = 32, MixedValue = 64,
  ReadOnly = 128
ImGuiItemStatusFlags {...}{.pure, size: 4.} = enum
  None = 0, HoveredRect = 1, HasDisplayRect = 2, Edited = 4,
  ToggledSelection = 8, ToggledOpen = 16, HasDeactivated = 32, Deactivated = 64
ImGuiKeyModFlags {...}{.pure, size: 4.} = enum
  None = 0, Ctrl = 1, Shift = 2, Alt = 4, Super = 8
ImGuiKey {...}{.pure, size: 4.} = enum
  Tab = 0, LeftArrow = 1, RightArrow = 2, UpArrow = 3, DownArrow = 4,
  PageUp = 5, PageDown = 6, Home = 7, End = 8, Insert = 9, Delete = 10,
  Backspace = 11, Space = 12, Enter = 13, Escape = 14, KeyPadEnter = 15, A = 16,
  C = 17, V = 18, X = 19, Y = 20, Z = 21
ImGuiLayoutType {...}{.pure, size: 4.} = enum
  Horizontal = 0, Vertical = 1
ImGuiLogType {...}{.pure, size: 4.} = enum
  None = 0, TTY = 1, File = 2, Buffer = 3, Clipboard = 4
ImGuiMouseButton {...}{.pure, size: 4.} = enum
  Left = 0, Right = 1, Middle = 2
ImGuiMouseCursor {...}{.pure, size: 4.} = enum
  None = -1, Arrow = 0, TextInput = 1, ResizeAll = 2, ResizeNS = 3,
  ResizeEW = 4, ResizeNESW = 5, ResizeNWSE = 6, Hand = 7, NotAllowed = 8
ImGuiNavDirSourceFlags {...}{.pure, size: 4.} = enum
  None = 0, Keyboard = 1, PadDPad = 2, PadLStick = 4
ImGuiNavForward {...}{.pure, size: 4.} = enum
  None = 0, ForwardQueued = 1, ForwardActive = 2
ImGuiNavHighlightFlags {...}{.pure, size: 4.} = enum
  None = 0, TypeDefault = 1, TypeThin = 2, AlwaysDraw = 4, NoRounding = 8
ImGuiNavInput {...}{.pure, size: 4.} = enum
  Activate = 0, Cancel = 1, Input = 2, Menu = 3, DpadLeft = 4, DpadRight = 5,
  DpadUp = 6, DpadDown = 7, LStickLeft = 8, LStickRight = 9, LStickUp = 10,
  LStickDown = 11, FocusPrev = 12, FocusNext = 13, TweakSlow = 14,
  TweakFast = 15, KeyMenu = 16, KeyLeft = 17, KeyRight = 18, KeyUp = 19,
  KeyDown = 20
ImGuiNavLayer {...}{.pure, size: 4.} = enum
  Main = 0, Menu = 1
ImGuiNavMoveFlags {...}{.pure, size: 4.} = enum
  None = 0, LoopX = 1, LoopY = 2, WrapX = 4, WrapY = 8, AllowCurrentNavId = 16,
  AlsoScoreVisibleSet = 32, ScrollToEdge = 64
ImGuiNextItemDataFlags {...}{.pure, size: 4.} = enum
  None = 0, HasWidth = 1, HasOpen = 2
ImGuiNextWindowDataFlags {...}{.pure, size: 4.} = enum
  None = 0, HasPos = 1, HasSize = 2, HasContentSize = 4, HasCollapsed = 8,
  HasSizeConstraint = 16, HasFocus = 32, HasBgAlpha = 64, HasScroll = 128
ImGuiOldColumnFlags {...}{.pure, size: 4.} = enum
  None = 0, NoBorder = 1, NoResize = 2, NoPreserveWidths = 4,
  NoForceWithinWindow = 8, GrowParentContentsSize = 16
ImGuiPlotType {...}{.pure, size: 4.} = enum
  Lines = 0, Histogram = 1
ImGuiPopupFlags {...}{.pure, size: 4.} = enum
  None = 0, MouseButtonRight = 1, MouseButtonMiddle = 2, MouseButtonMask = 31,
  NoOpenOverExistingPopup = 32, NoOpenOverItems = 64, AnyPopupId = 128,
  AnyPopupLevel = 256, AnyPopup = 384
ImGuiPopupPositionPolicy {...}{.pure, size: 4.} = enum
  Default = 0, ComboBox = 1, Tooltip = 2
ImGuiSelectableFlagsPrivate {...}{.pure, size: 4.} = enum
  NoHoldingActiveID = 1048576, SelectOnClick = 2097152,
  SelectOnRelease = 4194304, SpanAvailWidth = 8388608,
  DrawHoveredWhenHeld = 16777216, SetNavIdOnHover = 33554432,
  NoPadWithHalfSpacing = 67108864
ImGuiSelectableFlags {...}{.pure, size: 4.} = enum
  None = 0, DontClosePopups = 1, SpanAllColumns = 2, AllowDoubleClick = 4,
  Disabled = 8, AllowItemOverlap = 16
ImGuiSeparatorFlags {...}{.pure, size: 4.} = enum
  None = 0, Horizontal = 1, Vertical = 2, SpanAllColumns = 4
ImGuiSliderFlagsPrivate {...}{.pure, size: 4.} = enum
  Vertical = 1048576, ReadOnly = 2097152
ImGuiSliderFlags {...}{.pure, size: 4.} = enum
  None = 0, AlwaysClamp = 16, Logarithmic = 32, NoRoundToFormat = 64,
  NoInput = 128, InvalidMask = 1879048207
ImGuiSortDirection {...}{.pure, size: 4.} = enum
  None = 0, Ascending = 1, Descending = 2
ImGuiStyleVar {...}{.pure, size: 4.} = enum
  Alpha = 0, WindowPadding = 1, WindowRounding = 2, WindowBorderSize = 3,
  WindowMinSize = 4, WindowTitleAlign = 5, ChildRounding = 6,
  ChildBorderSize = 7, PopupRounding = 8, PopupBorderSize = 9,
  FramePadding = 10, FrameRounding = 11, FrameBorderSize = 12, ItemSpacing = 13,
  ItemInnerSpacing = 14, IndentSpacing = 15, CellPadding = 16,
  ScrollbarSize = 17, ScrollbarRounding = 18, GrabMinSize = 19,
  GrabRounding = 20, TabRounding = 21, ButtonTextAlign = 22,
  SelectableTextAlign = 23
ImGuiTabBarFlagsPrivate {...}{.pure, size: 4.} = enum
  DockNode = 1048576, IsFocused = 2097152, SaveSettings = 4194304
ImGuiTabBarFlags {...}{.pure, size: 4.} = enum
  None = 0, Reorderable = 1, AutoSelectNewTabs = 2, TabListPopupButton = 4,
  NoCloseWithMiddleMouseButton = 8, NoTabListScrollingButtons = 16,
  NoTooltip = 32, FittingPolicyResizeDown = 64, FittingPolicyScroll = 128,
  FittingPolicyMask = 192
ImGuiTabItemFlagsPrivate {...}{.pure, size: 4.} = enum
  NoCloseButton = 1048576, Button = 2097152
ImGuiTabItemFlags {...}{.pure, size: 4.} = enum
  None = 0, UnsavedDocument = 1, SetSelected = 2,
  NoCloseWithMiddleMouseButton = 4, NoPushId = 8, NoTooltip = 16,
  NoReorder = 32, Leading = 64, Trailing = 128
ImGuiTableBgTarget {...}{.pure, size: 4.} = enum
  None = 0, RowBg0 = 1, RowBg1 = 2, CellBg = 3
ImGuiTableColumnFlags {...}{.pure, size: 4.} = enum
  None = 0, DefaultHide = 1, DefaultSort = 2, WidthStretch = 4, WidthFixed = 8,
  WidthMask = 12, NoResize = 16, NoReorder = 32, NoHide = 64, NoClip = 128,
  NoSort = 256, NoSortAscending = 512, NoSortDescending = 1024,
  NoHeaderWidth = 2048, PreferSortAscending = 4096, PreferSortDescending = 8192,
  IndentEnable = 16384, IndentDisable = 32768, IndentMask = 49152,
  IsEnabled = 1048576, IsVisible = 2097152, IsSorted = 4194304,
  IsHovered = 8388608, StatusMask = 15728640, NoDirectResize = 1073741824
ImGuiTableFlags {...}{.pure, size: 4.} = enum
  None = 0, Resizable = 1, Reorderable = 2, Hideable = 4, Sortable = 8,
  NoSavedSettings = 16, ContextMenuInBody = 32, RowBg = 64, BordersInnerH = 128,
  BordersOuterH = 256, BordersH = 384, BordersInnerV = 512, BordersInner = 640,
  BordersOuterV = 1024, BordersOuter = 1280, BordersV = 1536, Borders = 1920,
  NoBordersInBody = 2048, NoBordersInBodyUntilResize = 4096,
  SizingFixedFit = 8192, SizingFixedSame = 16384, SizingStretchProp = 24576,
  SizingStretchSame = 32768, SizingMask = 57344, NoHostExtendX = 65536,
  NoHostExtendY = 131072, NoKeepColumnsVisible = 262144, PreciseWidths = 524288,
  NoClip = 1048576, PadOuterX = 2097152, NoPadOuterX = 4194304,
  NoPadInnerX = 8388608, ScrollX = 16777216, ScrollY = 33554432,
  SortMulti = 67108864, SortTristate = 134217728
ImGuiTableRowFlags {...}{.pure, size: 4.} = enum
  None = 0, Headers = 1
ImGuiTextFlags {...}{.pure, size: 4.} = enum
  None = 0, NoWidthForLargeClippedText = 1
ImGuiTooltipFlags {...}{.pure, size: 4.} = enum
  None = 0, OverridePreviousTooltip = 1
ImGuiTreeNodeFlagsPrivate {...}{.pure, size: 4.} = enum
  ClipLabelForTrailingButton = 1048576
ImGuiTreeNodeFlags {...}{.pure, size: 4.} = enum
  None = 0, Selected = 1, Framed = 2, AllowItemOverlap = 4,
  NoTreePushOnOpen = 8, NoAutoOpenOnLog = 16, CollapsingHeader = 26,
  DefaultOpen = 32, OpenOnDoubleClick = 64, OpenOnArrow = 128, Leaf = 256,
  Bullet = 512, FramePadding = 1024, SpanAvailWidth = 2048,
  SpanFullWidth = 4096, NavLeftJumpsBackHere = 8192
ImGuiViewportFlags {...}{.pure, size: 4.} = enum
  None = 0, IsPlatformWindow = 1, IsPlatformMonitor = 2, OwnedByApp = 4
ImGuiWindowFlags {...}{.pure, size: 4.} = enum
  None = 0, NoTitleBar = 1, NoResize = 2, NoMove = 4, NoScrollbar = 8,
  NoScrollWithMouse = 16, NoCollapse = 32, NoDecoration = 43,
  AlwaysAutoResize = 64, NoBackground = 128, NoSavedSettings = 256,
  NoMouseInputs = 512, MenuBar = 1024, HorizontalScrollbar = 2048,
  NoFocusOnAppearing = 4096, NoBringToFrontOnFocus = 8192,
  AlwaysVerticalScrollbar = 16384, AlwaysHorizontalScrollbar = 32768,
  AlwaysUseWindowPadding = 65536, NoNavInputs = 262144, NoNavFocus = 524288,
  NoNav = 786432, NoInputs = 786944, UnsavedDocument = 1048576,
  NavFlattened = 8388608, ChildWindow = 16777216, Tooltip = 33554432,
  Popup = 67108864, Modal = 134217728, ChildMenu = 268435456
ImDrawCallback = proc (parent_list: ptr ImDrawList; cmd: ptr ImDrawCmd): void {...}{.
    cdecl, varargs.}
ImDrawIdx = uint16
ImFileHandle = ptr File
ImGuiContextHookCallback = proc (ctx: ptr ImGuiContext;
                                 hook: ptr ImGuiContextHook): void {...}{.cdecl,
    varargs.}
ImGuiErrorLogCallback = proc (user_data: pointer; fmt: cstring): void {...}{.cdecl.}
ImGuiID = uint32
ImGuiInputTextCallback = proc (data: ptr ImGuiInputTextCallbackData): int32 {...}{.
    cdecl, varargs.}
ImGuiSizeCallback = proc (data: ptr ImGuiSizeCallbackData): void {...}{.cdecl,
    varargs.}
ImGuiTableColumnIdx = int8
ImGuiTableDrawChannelIdx = uint8
ImPoolIdx = int32
ImTextureID = pointer
ImWchar = ImWchar16
ImWchar16 = uint16
ImWchar32 = uint32
ImVector[T] = object
  size* {...}{.importc: "Size".}: int32
  capacity* {...}{.importc: "Capacity".}: int32
  data* {...}{.importc: "Data".}: UncheckedArray[T]
ImGuiStyleModBackup {...}{.union.} = object
  backup_int* {...}{.importc: "BackupInt".}: int32
  backup_float* {...}{.importc: "BackupFloat".}: float32
ImGuiStyleMod {...}{.importc: "ImGuiStyleMod", header: "cimgui.h".} = object
  varIdx* {...}{.importc: "VarIdx".}: ImGuiStyleVar
  backup*: ImGuiStyleModBackup
ImGuiStoragePairData {...}{.union.} = object
  val_i* {...}{.importc: "val_i".}: int32
  val_f* {...}{.importc: "val_f".}: float32
  val_p* {...}{.importc: "val_p".}: pointer
ImGuiStoragePair {...}{.importc: "ImGuiStoragePair", header: "cimgui.h".} = object
  key* {...}{.importc: "key".}: ImGuiID
  data*: ImGuiStoragePairData
ImPairData {...}{.union.} = object
  val_i* {...}{.importc: "val_i".}: int32
  val_f* {...}{.importc: "val_f".}: float32
  val_p* {...}{.importc: "val_p".}: pointer
ImPair {...}{.importc: "Pair", header: "cimgui.h".} = object
  key* {...}{.importc: "key".}: ImGuiID
  data*: ImPairData
ImDrawListPtr = object
ImChunkStream = ptr object
ImPool = object
ImSpanAllocator = object
ImSpan = object
ImVectorImGuiColumns {...}{.importc: "ImVector_ImGuiColumns".} = object
ImBitVector {...}{.importc: "ImBitVector", header: "cimgui.h".} = object
  storage* {...}{.importc: "Storage".}: ImVector[uint32]
ImColor {...}{.importc: "ImColor", header: "cimgui.h".} = object
  value* {...}{.importc: "Value".}: ImVec4
ImDrawChannel {...}{.importc: "ImDrawChannel", header: "cimgui.h".} = ptr object
ImDrawCmd {...}{.importc: "ImDrawCmd", header: "cimgui.h".} = object
  clipRect* {...}{.importc: "ClipRect".}: ImVec4
  textureId* {...}{.importc: "TextureId".}: ImTextureID
  vtxOffset* {...}{.importc: "VtxOffset".}: uint32
  idxOffset* {...}{.importc: "IdxOffset".}: uint32
  elemCount* {...}{.importc: "ElemCount".}: uint32
  userCallback* {...}{.importc: "UserCallback".}: ImDrawCallback
  userCallbackData* {...}{.importc: "UserCallbackData".}: pointer
ImDrawCmdHeader {...}{.importc: "ImDrawCmdHeader", header: "cimgui.h".} = object
  clipRect* {...}{.importc: "ClipRect".}: ImVec4
  textureId* {...}{.importc: "TextureId".}: ImTextureID
  vtxOffset* {...}{.importc: "VtxOffset".}: uint32
ImDrawData {...}{.importc: "ImDrawData", header: "cimgui.h".} = object
  valid* {...}{.importc: "Valid".}: bool
  cmdListsCount* {...}{.importc: "CmdListsCount".}: int32
  totalIdxCount* {...}{.importc: "TotalIdxCount".}: int32
  totalVtxCount* {...}{.importc: "TotalVtxCount".}: int32
  cmdLists* {...}{.importc: "CmdLists".}: UncheckedArray[ptr ImDrawList]
  displayPos* {...}{.importc: "DisplayPos".}: ImVec2
  displaySize* {...}{.importc: "DisplaySize".}: ImVec2
  framebufferScale* {...}{.importc: "FramebufferScale".}: ImVec2
ImDrawDataBuilder {...}{.importc: "ImDrawDataBuilder", header: "cimgui.h".} = object
  layers* {...}{.importc: "Layers".}: array[2, ImVector[ImDrawListPtr]]
ImDrawList {...}{.importc: "ImDrawList", header: "cimgui.h".} = object
  cmdBuffer* {...}{.importc: "CmdBuffer".}: ImVector[ImDrawCmd]
  idxBuffer* {...}{.importc: "IdxBuffer".}: ImVector[ImDrawIdx]
  vtxBuffer* {...}{.importc: "VtxBuffer".}: ImVector[ImDrawVert]
  flags* {...}{.importc: "Flags".}: ImDrawListFlags
  vtxCurrentIdx* {...}{.importc: "_VtxCurrentIdx".}: uint32
  data* {...}{.importc: "_Data".}: ptr ImDrawListSharedData
  ownerName* {...}{.importc: "_OwnerName".}: cstring
  vtxWritePtr* {...}{.importc: "_VtxWritePtr".}: ptr ImDrawVert
  idxWritePtr* {...}{.importc: "_IdxWritePtr".}: ptr ImDrawIdx
  clipRectStack* {...}{.importc: "_ClipRectStack".}: ImVector[ImVec4]
  textureIdStack* {...}{.importc: "_TextureIdStack".}: ImVector[ImTextureID]
  path* {...}{.importc: "_Path".}: ImVector[ImVec2]
  cmdHeader* {...}{.importc: "_CmdHeader".}: ImDrawCmdHeader
  splitter* {...}{.importc: "_Splitter".}: ImDrawListSplitter
  fringeScale* {...}{.importc: "_FringeScale".}: float32
ImDrawListSharedData {...}{.importc: "ImDrawListSharedData", header: "cimgui.h".} = object
  texUvWhitePixel* {...}{.importc: "TexUvWhitePixel".}: ImVec2
  font* {...}{.importc: "Font".}: ptr ImFont
  fontSize* {...}{.importc: "FontSize".}: float32
  curveTessellationTol* {...}{.importc: "CurveTessellationTol".}: float32
  circleSegmentMaxError* {...}{.importc: "CircleSegmentMaxError".}: float32
  clipRectFullscreen* {...}{.importc: "ClipRectFullscreen".}: ImVec4
  initialFlags* {...}{.importc: "InitialFlags".}: ImDrawListFlags
  arcFastVtx* {...}{.importc: "ArcFastVtx".}: array[12 * 1, ImVec2]
  circleSegmentCounts* {...}{.importc: "CircleSegmentCounts".}: array[64, uint8]
  texUvLines* {...}{.importc: "TexUvLines".}: ptr ImVec4
ImDrawListSplitter {...}{.importc: "ImDrawListSplitter", header: "cimgui.h".} = object
  current* {...}{.importc: "_Current".}: int32
  count* {...}{.importc: "_Count".}: int32
  channels* {...}{.importc: "_Channels".}: ImVector[ImDrawChannel]
ImDrawVert {...}{.importc: "ImDrawVert", header: "cimgui.h".} = object
  pos* {...}{.importc: "pos".}: ImVec2
  uv* {...}{.importc: "uv".}: ImVec2
  col* {...}{.importc: "col".}: uint32
ImFont {...}{.importc: "ImFont", header: "cimgui.h".} = object
  indexAdvanceX* {...}{.importc: "IndexAdvanceX".}: ImVector[float32]
  fallbackAdvanceX* {...}{.importc: "FallbackAdvanceX".}: float32
  fontSize* {...}{.importc: "FontSize".}: float32
  indexLookup* {...}{.importc: "IndexLookup".}: ImVector[ImWchar]
  glyphs* {...}{.importc: "Glyphs".}: ImVector[ImFontGlyph]
  fallbackGlyph* {...}{.importc: "FallbackGlyph".}: ptr ImFontGlyph
  containerAtlas* {...}{.importc: "ContainerAtlas".}: ptr ImFontAtlas
  configData* {...}{.importc: "ConfigData".}: ptr ImFontConfig
  configDataCount* {...}{.importc: "ConfigDataCount".}: int16
  fallbackChar* {...}{.importc: "FallbackChar".}: ImWchar
  ellipsisChar* {...}{.importc: "EllipsisChar".}: ImWchar
  dirtyLookupTables* {...}{.importc: "DirtyLookupTables".}: bool
  scale* {...}{.importc: "Scale".}: float32
  ascent* {...}{.importc: "Ascent".}: float32
  descent* {...}{.importc: "Descent".}: float32
  metricsTotalSurface* {...}{.importc: "MetricsTotalSurface".}: int32
  used4kPagesMap* {...}{.importc: "Used4kPagesMap".}: array[2, uint8]
ImFontAtlas {...}{.importc: "ImFontAtlas", header: "cimgui.h".} = object
  locked* {...}{.importc: "Locked".}: bool
  flags* {...}{.importc: "Flags".}: ImFontAtlasFlags
  texID* {...}{.importc: "TexID".}: ImTextureID
  texDesiredWidth* {...}{.importc: "TexDesiredWidth".}: int32
  texGlyphPadding* {...}{.importc: "TexGlyphPadding".}: int32
  texPixelsAlpha8* {...}{.importc: "TexPixelsAlpha8".}: ptr cuchar
  texPixelsRGBA32* {...}{.importc: "TexPixelsRGBA32".}: ptr uint32
  texWidth* {...}{.importc: "TexWidth".}: int32
  texHeight* {...}{.importc: "TexHeight".}: int32
  texUvScale* {...}{.importc: "TexUvScale".}: ImVec2
  texUvWhitePixel* {...}{.importc: "TexUvWhitePixel".}: ImVec2
  fonts* {...}{.importc: "Fonts".}: ImVector[ptr ImFont]
  customRects* {...}{.importc: "CustomRects".}: ImVector[ImFontAtlasCustomRect]
  configData* {...}{.importc: "ConfigData".}: ImVector[ImFontConfig]
  texUvLines* {...}{.importc: "TexUvLines".}: array[63 + 1, ImVec4]
  fontBuilderIO* {...}{.importc: "FontBuilderIO".}: ptr ImFontBuilderIO
  fontBuilderFlags* {...}{.importc: "FontBuilderFlags".}: uint32
  packIdMouseCursors* {...}{.importc: "PackIdMouseCursors".}: int32
  packIdLines* {...}{.importc: "PackIdLines".}: int32
ImFontAtlasCustomRect {...}{.importc: "ImFontAtlasCustomRect", header: "cimgui.h".} = object
  width* {...}{.importc: "Width".}: uint16
  height* {...}{.importc: "Height".}: uint16
  x* {...}{.importc: "X".}: uint16
  y* {...}{.importc: "Y".}: uint16
  glyphID* {...}{.importc: "GlyphID".}: uint32
  glyphAdvanceX* {...}{.importc: "GlyphAdvanceX".}: float32
  glyphOffset* {...}{.importc: "GlyphOffset".}: ImVec2
  font* {...}{.importc: "Font".}: ptr ImFont
ImFontBuilderIO {...}{.importc: "ImFontBuilderIO", header: "cimgui.h".} = object
  fontBuilder_Build* {...}{.importc: "FontBuilder_Build".}: proc (
      atlas: ptr ImFontAtlas): bool {...}{.cdecl, varargs.}
ImFontConfig {...}{.importc: "ImFontConfig", header: "cimgui.h".} = object
  fontData* {...}{.importc: "FontData".}: pointer
  fontDataSize* {...}{.importc: "FontDataSize".}: int32
  fontDataOwnedByAtlas* {...}{.importc: "FontDataOwnedByAtlas".}: bool
  fontNo* {...}{.importc: "FontNo".}: int32
  sizePixels* {...}{.importc: "SizePixels".}: float32
  oversampleH* {...}{.importc: "OversampleH".}: int32
  oversampleV* {...}{.importc: "OversampleV".}: int32
  pixelSnapH* {...}{.importc: "PixelSnapH".}: bool
  glyphExtraSpacing* {...}{.importc: "GlyphExtraSpacing".}: ImVec2
  glyphOffset* {...}{.importc: "GlyphOffset".}: ImVec2
  glyphRanges* {...}{.importc: "GlyphRanges".}: ptr ImWchar
  glyphMinAdvanceX* {...}{.importc: "GlyphMinAdvanceX".}: float32
  glyphMaxAdvanceX* {...}{.importc: "GlyphMaxAdvanceX".}: float32
  mergeMode* {...}{.importc: "MergeMode".}: bool
  fontBuilderFlags* {...}{.importc: "FontBuilderFlags".}: uint32
  rasterizerMultiply* {...}{.importc: "RasterizerMultiply".}: float32
  ellipsisChar* {...}{.importc: "EllipsisChar".}: ImWchar
  name* {...}{.importc: "Name".}: array[40, int8]
  dstFont* {...}{.importc: "DstFont".}: ptr ImFont
ImFontGlyph {...}{.importc: "ImFontGlyph", header: "cimgui.h".} = object
  colored* {...}{.importc: "Colored".}: uint32
  visible* {...}{.importc: "Visible".}: uint32
  codepoint* {...}{.importc: "Codepoint".}: uint32
  advanceX* {...}{.importc: "AdvanceX".}: float32
  x0* {...}{.importc: "X0".}: float32
  y0* {...}{.importc: "Y0".}: float32
  x1* {...}{.importc: "X1".}: float32
  y1* {...}{.importc: "Y1".}: float32
  u0* {...}{.importc: "U0".}: float32
  v0* {...}{.importc: "V0".}: float32
  u1* {...}{.importc: "U1".}: float32
  v1* {...}{.importc: "V1".}: float32
ImFontGlyphRangesBuilder {...}{.importc: "ImFontGlyphRangesBuilder",
                           header: "cimgui.h".} = object
  usedChars* {...}{.importc: "UsedChars".}: ImVector[uint32]
ImGuiColorMod {...}{.importc: "ImGuiColorMod", header: "cimgui.h".} = object
  col* {...}{.importc: "Col".}: ImGuiCol
  backupValue* {...}{.importc: "BackupValue".}: ImVec4
ImGuiContext {...}{.importc: "ImGuiContext", header: "cimgui.h".} = object
  initialized* {...}{.importc: "Initialized".}: bool
  fontAtlasOwnedByContext* {...}{.importc: "FontAtlasOwnedByContext".}: bool
  io* {...}{.importc: "IO".}: ImGuiIO
  style* {...}{.importc: "Style".}: ImGuiStyle
  font* {...}{.importc: "Font".}: ptr ImFont
  fontSize* {...}{.importc: "FontSize".}: float32
  fontBaseSize* {...}{.importc: "FontBaseSize".}: float32
  drawListSharedData* {...}{.importc: "DrawListSharedData".}: ImDrawListSharedData
  time* {...}{.importc: "Time".}: float64
  frameCount* {...}{.importc: "FrameCount".}: int32
  frameCountEnded* {...}{.importc: "FrameCountEnded".}: int32
  frameCountRendered* {...}{.importc: "FrameCountRendered".}: int32
  withinFrameScope* {...}{.importc: "WithinFrameScope".}: bool
  withinFrameScopeWithImplicitWindow* {...}{.importc: "WithinFrameScopeWithImplicitWindow".}: bool
  withinEndChild* {...}{.importc: "WithinEndChild".}: bool
  gcCompactAll* {...}{.importc: "GcCompactAll".}: bool
  testEngineHookItems* {...}{.importc: "TestEngineHookItems".}: bool
  testEngineHookIdInfo* {...}{.importc: "TestEngineHookIdInfo".}: ImGuiID
  testEngine* {...}{.importc: "TestEngine".}: pointer
  windows* {...}{.importc: "Windows".}: ImVector[ptr ImGuiWindow]
  windowsFocusOrder* {...}{.importc: "WindowsFocusOrder".}: ImVector[ptr ImGuiWindow]
  windowsTempSortBuffer* {...}{.importc: "WindowsTempSortBuffer".}: ImVector[
      ptr ImGuiWindow]
  currentWindowStack* {...}{.importc: "CurrentWindowStack".}: ImVector[
      ptr ImGuiWindow]
  windowsById* {...}{.importc: "WindowsById".}: ImGuiStorage
  windowsActiveCount* {...}{.importc: "WindowsActiveCount".}: int32
  currentWindow* {...}{.importc: "CurrentWindow".}: ptr ImGuiWindow
  hoveredWindow* {...}{.importc: "HoveredWindow".}: ptr ImGuiWindow
  hoveredRootWindow* {...}{.importc: "HoveredRootWindow".}: ptr ImGuiWindow
  hoveredWindowUnderMovingWindow* {...}{.importc: "HoveredWindowUnderMovingWindow".}: ptr ImGuiWindow
  movingWindow* {...}{.importc: "MovingWindow".}: ptr ImGuiWindow
  wheelingWindow* {...}{.importc: "WheelingWindow".}: ptr ImGuiWindow
  wheelingWindowRefMousePos* {...}{.importc: "WheelingWindowRefMousePos".}: ImVec2
  wheelingWindowTimer* {...}{.importc: "WheelingWindowTimer".}: float32
  hoveredId* {...}{.importc: "HoveredId".}: ImGuiID
  hoveredIdPreviousFrame* {...}{.importc: "HoveredIdPreviousFrame".}: ImGuiID
  hoveredIdAllowOverlap* {...}{.importc: "HoveredIdAllowOverlap".}: bool
  hoveredIdUsingMouseWheel* {...}{.importc: "HoveredIdUsingMouseWheel".}: bool
  hoveredIdPreviousFrameUsingMouseWheel* {...}{.
      importc: "HoveredIdPreviousFrameUsingMouseWheel".}: bool
  hoveredIdDisabled* {...}{.importc: "HoveredIdDisabled".}: bool
  hoveredIdTimer* {...}{.importc: "HoveredIdTimer".}: float32
  hoveredIdNotActiveTimer* {...}{.importc: "HoveredIdNotActiveTimer".}: float32
  activeId* {...}{.importc: "ActiveId".}: ImGuiID
  activeIdIsAlive* {...}{.importc: "ActiveIdIsAlive".}: ImGuiID
  activeIdTimer* {...}{.importc: "ActiveIdTimer".}: float32
  activeIdIsJustActivated* {...}{.importc: "ActiveIdIsJustActivated".}: bool
  activeIdAllowOverlap* {...}{.importc: "ActiveIdAllowOverlap".}: bool
  activeIdNoClearOnFocusLoss* {...}{.importc: "ActiveIdNoClearOnFocusLoss".}: bool
  activeIdHasBeenPressedBefore* {...}{.importc: "ActiveIdHasBeenPressedBefore".}: bool
  activeIdHasBeenEditedBefore* {...}{.importc: "ActiveIdHasBeenEditedBefore".}: bool
  activeIdHasBeenEditedThisFrame* {...}{.importc: "ActiveIdHasBeenEditedThisFrame".}: bool
  activeIdUsingMouseWheel* {...}{.importc: "ActiveIdUsingMouseWheel".}: bool
  activeIdUsingNavDirMask* {...}{.importc: "ActiveIdUsingNavDirMask".}: uint32
  activeIdUsingNavInputMask* {...}{.importc: "ActiveIdUsingNavInputMask".}: uint32
  activeIdUsingKeyInputMask* {...}{.importc: "ActiveIdUsingKeyInputMask".}: uint64
  activeIdClickOffset* {...}{.importc: "ActiveIdClickOffset".}: ImVec2
  activeIdWindow* {...}{.importc: "ActiveIdWindow".}: ptr ImGuiWindow
  activeIdSource* {...}{.importc: "ActiveIdSource".}: ImGuiInputSource
  activeIdMouseButton* {...}{.importc: "ActiveIdMouseButton".}: int32
  activeIdPreviousFrame* {...}{.importc: "ActiveIdPreviousFrame".}: ImGuiID
  activeIdPreviousFrameIsAlive* {...}{.importc: "ActiveIdPreviousFrameIsAlive".}: bool
  activeIdPreviousFrameHasBeenEditedBefore*
      {...}{.importc: "ActiveIdPreviousFrameHasBeenEditedBefore".}: bool
  activeIdPreviousFrameWindow* {...}{.importc: "ActiveIdPreviousFrameWindow".}: ptr ImGuiWindow
  lastActiveId* {...}{.importc: "LastActiveId".}: ImGuiID
  lastActiveIdTimer* {...}{.importc: "LastActiveIdTimer".}: float32
  nextWindowData* {...}{.importc: "NextWindowData".}: ImGuiNextWindowData
  nextItemData* {...}{.importc: "NextItemData".}: ImGuiNextItemData
  colorStack* {...}{.importc: "ColorStack".}: ImVector[ImGuiColorMod]
  styleVarStack* {...}{.importc: "StyleVarStack".}: ImVector[ImGuiStyleMod]
  fontStack* {...}{.importc: "FontStack".}: ImVector[ptr ImFont]
  focusScopeStack* {...}{.importc: "FocusScopeStack".}: ImVector[ImGuiID]
  itemFlagsStack* {...}{.importc: "ItemFlagsStack".}: ImVector[ImGuiItemFlags]
  groupStack* {...}{.importc: "GroupStack".}: ImVector[ImGuiGroupData]
  openPopupStack* {...}{.importc: "OpenPopupStack".}: ImVector[ImGuiPopupData]
  beginPopupStack* {...}{.importc: "BeginPopupStack".}: ImVector[ImGuiPopupData]
  viewports* {...}{.importc: "Viewports".}: ImVector[ptr ImGuiViewportP]
  navWindow* {...}{.importc: "NavWindow".}: ptr ImGuiWindow
  navId* {...}{.importc: "NavId".}: ImGuiID
  navFocusScopeId* {...}{.importc: "NavFocusScopeId".}: ImGuiID
  navActivateId* {...}{.importc: "NavActivateId".}: ImGuiID
  navActivateDownId* {...}{.importc: "NavActivateDownId".}: ImGuiID
  navActivatePressedId* {...}{.importc: "NavActivatePressedId".}: ImGuiID
  navInputId* {...}{.importc: "NavInputId".}: ImGuiID
  navJustTabbedId* {...}{.importc: "NavJustTabbedId".}: ImGuiID
  navJustMovedToId* {...}{.importc: "NavJustMovedToId".}: ImGuiID
  navJustMovedToFocusScopeId* {...}{.importc: "NavJustMovedToFocusScopeId".}: ImGuiID
  navJustMovedToKeyMods* {...}{.importc: "NavJustMovedToKeyMods".}: ImGuiKeyModFlags
  navNextActivateId* {...}{.importc: "NavNextActivateId".}: ImGuiID
  navInputSource* {...}{.importc: "NavInputSource".}: ImGuiInputSource
  navScoringRect* {...}{.importc: "NavScoringRect".}: ImRect
  navScoringCount* {...}{.importc: "NavScoringCount".}: int32
  navLayer* {...}{.importc: "NavLayer".}: ImGuiNavLayer
  navIdTabCounter* {...}{.importc: "NavIdTabCounter".}: int32
  navIdIsAlive* {...}{.importc: "NavIdIsAlive".}: bool
  navMousePosDirty* {...}{.importc: "NavMousePosDirty".}: bool
  navDisableHighlight* {...}{.importc: "NavDisableHighlight".}: bool
  navDisableMouseHover* {...}{.importc: "NavDisableMouseHover".}: bool
  navAnyRequest* {...}{.importc: "NavAnyRequest".}: bool
  navInitRequest* {...}{.importc: "NavInitRequest".}: bool
  navInitRequestFromMove* {...}{.importc: "NavInitRequestFromMove".}: bool
  navInitResultId* {...}{.importc: "NavInitResultId".}: ImGuiID
  navInitResultRectRel* {...}{.importc: "NavInitResultRectRel".}: ImRect
  navMoveRequest* {...}{.importc: "NavMoveRequest".}: bool
  navMoveRequestFlags* {...}{.importc: "NavMoveRequestFlags".}: ImGuiNavMoveFlags
  navMoveRequestForward* {...}{.importc: "NavMoveRequestForward".}: ImGuiNavForward
  navMoveRequestKeyMods* {...}{.importc: "NavMoveRequestKeyMods".}: ImGuiKeyModFlags
  navMoveDir* {...}{.importc: "NavMoveDir".}: ImGuiDir
  navMoveDirLast* {...}{.importc: "NavMoveDirLast".}: ImGuiDir
  navMoveClipDir* {...}{.importc: "NavMoveClipDir".}: ImGuiDir
  navMoveResultLocal* {...}{.importc: "NavMoveResultLocal".}: ImGuiNavMoveResult
  navMoveResultLocalVisibleSet* {...}{.importc: "NavMoveResultLocalVisibleSet".}: ImGuiNavMoveResult
  navMoveResultOther* {...}{.importc: "NavMoveResultOther".}: ImGuiNavMoveResult
  navWrapRequestWindow* {...}{.importc: "NavWrapRequestWindow".}: ptr ImGuiWindow
  navWrapRequestFlags* {...}{.importc: "NavWrapRequestFlags".}: ImGuiNavMoveFlags
  navWindowingTarget* {...}{.importc: "NavWindowingTarget".}: ptr ImGuiWindow
  navWindowingTargetAnim* {...}{.importc: "NavWindowingTargetAnim".}: ptr ImGuiWindow
  navWindowingListWindow* {...}{.importc: "NavWindowingListWindow".}: ptr ImGuiWindow
  navWindowingTimer* {...}{.importc: "NavWindowingTimer".}: float32
  navWindowingHighlightAlpha* {...}{.importc: "NavWindowingHighlightAlpha".}: float32
  navWindowingToggleLayer* {...}{.importc: "NavWindowingToggleLayer".}: bool
  focusRequestCurrWindow* {...}{.importc: "FocusRequestCurrWindow".}: ptr ImGuiWindow
  focusRequestNextWindow* {...}{.importc: "FocusRequestNextWindow".}: ptr ImGuiWindow
  focusRequestCurrCounterRegular* {...}{.importc: "FocusRequestCurrCounterRegular".}: int32
  focusRequestCurrCounterTabStop* {...}{.importc: "FocusRequestCurrCounterTabStop".}: int32
  focusRequestNextCounterRegular* {...}{.importc: "FocusRequestNextCounterRegular".}: int32
  focusRequestNextCounterTabStop* {...}{.importc: "FocusRequestNextCounterTabStop".}: int32
  focusTabPressed* {...}{.importc: "FocusTabPressed".}: bool
  dimBgRatio* {...}{.importc: "DimBgRatio".}: float32
  mouseCursor* {...}{.importc: "MouseCursor".}: ImGuiMouseCursor
  dragDropActive* {...}{.importc: "DragDropActive".}: bool
  dragDropWithinSource* {...}{.importc: "DragDropWithinSource".}: bool
  dragDropWithinTarget* {...}{.importc: "DragDropWithinTarget".}: bool
  dragDropSourceFlags* {...}{.importc: "DragDropSourceFlags".}: ImGuiDragDropFlags
  dragDropSourceFrameCount* {...}{.importc: "DragDropSourceFrameCount".}: int32
  dragDropMouseButton* {...}{.importc: "DragDropMouseButton".}: int32
  dragDropPayload* {...}{.importc: "DragDropPayload".}: ImGuiPayload
  dragDropTargetRect* {...}{.importc: "DragDropTargetRect".}: ImRect
  dragDropTargetId* {...}{.importc: "DragDropTargetId".}: ImGuiID
  dragDropAcceptFlags* {...}{.importc: "DragDropAcceptFlags".}: ImGuiDragDropFlags
  dragDropAcceptIdCurrRectSurface* {...}{.importc: "DragDropAcceptIdCurrRectSurface".}: float32
  dragDropAcceptIdCurr* {...}{.importc: "DragDropAcceptIdCurr".}: ImGuiID
  dragDropAcceptIdPrev* {...}{.importc: "DragDropAcceptIdPrev".}: ImGuiID
  dragDropAcceptFrameCount* {...}{.importc: "DragDropAcceptFrameCount".}: int32
  dragDropHoldJustPressedId* {...}{.importc: "DragDropHoldJustPressedId".}: ImGuiID
  dragDropPayloadBufHeap* {...}{.importc: "DragDropPayloadBufHeap".}: ImVector[cuchar]
  dragDropPayloadBufLocal* {...}{.importc: "DragDropPayloadBufLocal".}: array[16,
      cuchar]
  currentTable* {...}{.importc: "CurrentTable".}: ptr ImGuiTable
  tables* {...}{.importc: "Tables".}: ImVector[ImGuiTable]
  currentTableStack* {...}{.importc: "CurrentTableStack".}: ImVector[ImGuiPtrOrIndex]
  tablesLastTimeActive* {...}{.importc: "TablesLastTimeActive".}: ImVector[float32]
  drawChannelsTempMergeBuffer* {...}{.importc: "DrawChannelsTempMergeBuffer".}: ImVector[
      ImDrawChannel]
  currentTabBar* {...}{.importc: "CurrentTabBar".}: ptr ImGuiTabBar
  tabBars* {...}{.importc: "TabBars".}: ptr ImPool
  currentTabBarStack* {...}{.importc: "CurrentTabBarStack".}: ImVector[
      ImGuiPtrOrIndex]
  shrinkWidthBuffer* {...}{.importc: "ShrinkWidthBuffer".}: ImVector[
      ImGuiShrinkWidthItem]
  lastValidMousePos* {...}{.importc: "LastValidMousePos".}: ImVec2
  inputTextState* {...}{.importc: "InputTextState".}: ImGuiInputTextState
  inputTextPasswordFont* {...}{.importc: "InputTextPasswordFont".}: ImFont
  tempInputId* {...}{.importc: "TempInputId".}: ImGuiID
  colorEditOptions* {...}{.importc: "ColorEditOptions".}: ImGuiColorEditFlags
  colorEditLastHue* {...}{.importc: "ColorEditLastHue".}: float32
  colorEditLastSat* {...}{.importc: "ColorEditLastSat".}: float32
  colorEditLastColor* {...}{.importc: "ColorEditLastColor".}: array[3, float32]
  colorPickerRef* {...}{.importc: "ColorPickerRef".}: ImVec4
  sliderCurrentAccum* {...}{.importc: "SliderCurrentAccum".}: float32
  sliderCurrentAccumDirty* {...}{.importc: "SliderCurrentAccumDirty".}: bool
  dragCurrentAccumDirty* {...}{.importc: "DragCurrentAccumDirty".}: bool
  dragCurrentAccum* {...}{.importc: "DragCurrentAccum".}: float32
  dragSpeedDefaultRatio* {...}{.importc: "DragSpeedDefaultRatio".}: float32
  scrollbarClickDeltaToGrabCenter* {...}{.importc: "ScrollbarClickDeltaToGrabCenter".}: float32
  tooltipOverrideCount* {...}{.importc: "TooltipOverrideCount".}: int32
  tooltipSlowDelay* {...}{.importc: "TooltipSlowDelay".}: float32
  clipboardHandlerData* {...}{.importc: "ClipboardHandlerData".}: ImVector[int8]
  menusIdSubmittedThisFrame* {...}{.importc: "MenusIdSubmittedThisFrame".}: ImVector[
      ImGuiID]
  platformImePos* {...}{.importc: "PlatformImePos".}: ImVec2
  platformImeLastPos* {...}{.importc: "PlatformImeLastPos".}: ImVec2
  platformLocaleDecimalPoint* {...}{.importc: "PlatformLocaleDecimalPoint".}: int8
  settingsLoaded* {...}{.importc: "SettingsLoaded".}: bool
  settingsDirtyTimer* {...}{.importc: "SettingsDirtyTimer".}: float32
  settingsIniData* {...}{.importc: "SettingsIniData".}: ImGuiTextBuffer
  settingsHandlers* {...}{.importc: "SettingsHandlers".}: ImVector[
      ImGuiSettingsHandler]
  settingsWindows* {...}{.importc: "SettingsWindows".}: ImVector[ImGuiWindowSettings]
  settingsTables* {...}{.importc: "SettingsTables".}: ImVector[ImGuiTableSettings]
  hooks* {...}{.importc: "Hooks".}: ImVector[ImGuiContextHook]
  hookIdNext* {...}{.importc: "HookIdNext".}: ImGuiID
  logEnabled* {...}{.importc: "LogEnabled".}: bool
  logType* {...}{.importc: "LogType".}: ImGuiLogType
  logFile* {...}{.importc: "LogFile".}: ImFileHandle
  logBuffer* {...}{.importc: "LogBuffer".}: ImGuiTextBuffer
  logNextPrefix* {...}{.importc: "LogNextPrefix".}: cstring
  logNextSuffix* {...}{.importc: "LogNextSuffix".}: cstring
  logLinePosY* {...}{.importc: "LogLinePosY".}: float32
  logLineFirstItem* {...}{.importc: "LogLineFirstItem".}: bool
  logDepthRef* {...}{.importc: "LogDepthRef".}: int32
  logDepthToExpand* {...}{.importc: "LogDepthToExpand".}: int32
  logDepthToExpandDefault* {...}{.importc: "LogDepthToExpandDefault".}: int32
  debugItemPickerActive* {...}{.importc: "DebugItemPickerActive".}: bool
  debugItemPickerBreakId* {...}{.importc: "DebugItemPickerBreakId".}: ImGuiID
  debugMetricsConfig* {...}{.importc: "DebugMetricsConfig".}: ImGuiMetricsConfig
  framerateSecPerFrame* {...}{.importc: "FramerateSecPerFrame".}: array[120, float32]
  framerateSecPerFrameIdx* {...}{.importc: "FramerateSecPerFrameIdx".}: int32
  framerateSecPerFrameAccum* {...}{.importc: "FramerateSecPerFrameAccum".}: float32
  wantCaptureMouseNextFrame* {...}{.importc: "WantCaptureMouseNextFrame".}: int32
  wantCaptureKeyboardNextFrame* {...}{.importc: "WantCaptureKeyboardNextFrame".}: int32
  wantTextInputNextFrame* {...}{.importc: "WantTextInputNextFrame".}: int32
  tempBuffer* {...}{.importc: "TempBuffer".}: array[3072 + 1, int8]
ImGuiContextHook {...}{.importc: "ImGuiContextHook", header: "cimgui.h".} = object
  hookId* {...}{.importc: "HookId".}: ImGuiID
  `type`* {...}{.importc: "`type`".}: ImGuiContextHookType
  owner* {...}{.importc: "Owner".}: ImGuiID
  callback* {...}{.importc: "Callback".}: ImGuiContextHookCallback
  userData* {...}{.importc: "UserData".}: pointer
ImGuiDataTypeInfo {...}{.importc: "ImGuiDataTypeInfo", header: "cimgui.h".} = object
  size* {...}{.importc: "Size".}: uint
  name* {...}{.importc: "Name".}: cstring
  printFmt* {...}{.importc: "PrintFmt".}: cstring
  scanFmt* {...}{.importc: "ScanFmt".}: cstring
ImGuiDataTypeTempStorage {...}{.importc: "ImGuiDataTypeTempStorage",
                           header: "cimgui.h".} = object
  data* {...}{.importc: "Data".}: array[8, uint8]
ImGuiGroupData {...}{.importc: "ImGuiGroupData", header: "cimgui.h".} = object
  windowID* {...}{.importc: "WindowID".}: ImGuiID
  backupCursorPos* {...}{.importc: "BackupCursorPos".}: ImVec2
  backupCursorMaxPos* {...}{.importc: "BackupCursorMaxPos".}: ImVec2
  backupIndent* {...}{.importc: "BackupIndent".}: ImVec1
  backupGroupOffset* {...}{.importc: "BackupGroupOffset".}: ImVec1
  backupCurrLineSize* {...}{.importc: "BackupCurrLineSize".}: ImVec2
  backupCurrLineTextBaseOffset* {...}{.importc: "BackupCurrLineTextBaseOffset".}: float32
  backupActiveIdIsAlive* {...}{.importc: "BackupActiveIdIsAlive".}: ImGuiID
  backupActiveIdPreviousFrameIsAlive* {...}{.importc: "BackupActiveIdPreviousFrameIsAlive".}: bool
  emitItem* {...}{.importc: "EmitItem".}: bool
ImGuiIO {...}{.importc: "ImGuiIO", header: "cimgui.h".} = object
  configFlags* {...}{.importc: "ConfigFlags".}: ImGuiConfigFlags
  backendFlags* {...}{.importc: "BackendFlags".}: ImGuiBackendFlags
  displaySize* {...}{.importc: "DisplaySize".}: ImVec2
  deltaTime* {...}{.importc: "DeltaTime".}: float32
  iniSavingRate* {...}{.importc: "IniSavingRate".}: float32
  iniFilename* {...}{.importc: "IniFilename".}: cstring
  logFilename* {...}{.importc: "LogFilename".}: cstring
  mouseDoubleClickTime* {...}{.importc: "MouseDoubleClickTime".}: float32
  mouseDoubleClickMaxDist* {...}{.importc: "MouseDoubleClickMaxDist".}: float32
  mouseDragThreshold* {...}{.importc: "MouseDragThreshold".}: float32
  keyMap* {...}{.importc: "KeyMap".}: array[22, int32]
  keyRepeatDelay* {...}{.importc: "KeyRepeatDelay".}: float32
  keyRepeatRate* {...}{.importc: "KeyRepeatRate".}: float32
  userData* {...}{.importc: "UserData".}: pointer
  fonts* {...}{.importc: "Fonts".}: ptr ImFontAtlas
  fontGlobalScale* {...}{.importc: "FontGlobalScale".}: float32
  fontAllowUserScaling* {...}{.importc: "FontAllowUserScaling".}: bool
  fontDefault* {...}{.importc: "FontDefault".}: ptr ImFont
  displayFramebufferScale* {...}{.importc: "DisplayFramebufferScale".}: ImVec2
  mouseDrawCursor* {...}{.importc: "MouseDrawCursor".}: bool
  configMacOSXBehaviors* {...}{.importc: "ConfigMacOSXBehaviors".}: bool
  configInputTextCursorBlink* {...}{.importc: "ConfigInputTextCursorBlink".}: bool
  configDragClickToInputText* {...}{.importc: "ConfigDragClickToInputText".}: bool
  configWindowsResizeFromEdges* {...}{.importc: "ConfigWindowsResizeFromEdges".}: bool
  configWindowsMoveFromTitleBarOnly* {...}{.importc: "ConfigWindowsMoveFromTitleBarOnly".}: bool
  configMemoryCompactTimer* {...}{.importc: "ConfigMemoryCompactTimer".}: float32
  backendPlatformName* {...}{.importc: "BackendPlatformName".}: cstring
  backendRendererName* {...}{.importc: "BackendRendererName".}: cstring
  backendPlatformUserData* {...}{.importc: "BackendPlatformUserData".}: pointer
  backendRendererUserData* {...}{.importc: "BackendRendererUserData".}: pointer
  backendLanguageUserData* {...}{.importc: "BackendLanguageUserData".}: pointer
  getClipboardTextFn* {...}{.importc: "GetClipboardTextFn".}: proc (
      user_data: pointer): cstring {...}{.cdecl, varargs.}
  setClipboardTextFn* {...}{.importc: "SetClipboardTextFn".}: proc (
      user_data: pointer; text: cstring): void {...}{.cdecl, varargs.}
  clipboardUserData* {...}{.importc: "ClipboardUserData".}: pointer
  imeSetInputScreenPosFn* {...}{.importc: "ImeSetInputScreenPosFn".}: proc (x: int32;
      y: int32): void {...}{.cdecl, varargs.}
  imeWindowHandle* {...}{.importc: "ImeWindowHandle".}: pointer
  mousePos* {...}{.importc: "MousePos".}: ImVec2
  mouseDown* {...}{.importc: "MouseDown".}: array[5, bool]
  mouseWheel* {...}{.importc: "MouseWheel".}: float32
  mouseWheelH* {...}{.importc: "MouseWheelH".}: float32
  keyCtrl* {...}{.importc: "KeyCtrl".}: bool
  keyShift* {...}{.importc: "KeyShift".}: bool
  keyAlt* {...}{.importc: "KeyAlt".}: bool
  keySuper* {...}{.importc: "KeySuper".}: bool
  keysDown* {...}{.importc: "KeysDown".}: array[512, bool]
  navInputs* {...}{.importc: "NavInputs".}: array[21, float32]
  wantCaptureMouse* {...}{.importc: "WantCaptureMouse".}: bool
  wantCaptureKeyboard* {...}{.importc: "WantCaptureKeyboard".}: bool
  wantTextInput* {...}{.importc: "WantTextInput".}: bool
  wantSetMousePos* {...}{.importc: "WantSetMousePos".}: bool
  wantSaveIniSettings* {...}{.importc: "WantSaveIniSettings".}: bool
  navActive* {...}{.importc: "NavActive".}: bool
  navVisible* {...}{.importc: "NavVisible".}: bool
  framerate* {...}{.importc: "Framerate".}: float32
  metricsRenderVertices* {...}{.importc: "MetricsRenderVertices".}: int32
  metricsRenderIndices* {...}{.importc: "MetricsRenderIndices".}: int32
  metricsRenderWindows* {...}{.importc: "MetricsRenderWindows".}: int32
  metricsActiveWindows* {...}{.importc: "MetricsActiveWindows".}: int32
  metricsActiveAllocations* {...}{.importc: "MetricsActiveAllocations".}: int32
  mouseDelta* {...}{.importc: "MouseDelta".}: ImVec2
  keyMods* {...}{.importc: "KeyMods".}: ImGuiKeyModFlags
  mousePosPrev* {...}{.importc: "MousePosPrev".}: ImVec2
  mouseClickedPos* {...}{.importc: "MouseClickedPos".}: array[5, ImVec2]
  mouseClickedTime* {...}{.importc: "MouseClickedTime".}: array[5, float64]
  mouseClicked* {...}{.importc: "MouseClicked".}: array[5, bool]
  mouseDoubleClicked* {...}{.importc: "MouseDoubleClicked".}: array[5, bool]
  mouseReleased* {...}{.importc: "MouseReleased".}: array[5, bool]
  mouseDownOwned* {...}{.importc: "MouseDownOwned".}: array[5, bool]
  mouseDownWasDoubleClick* {...}{.importc: "MouseDownWasDoubleClick".}: array[5, bool]
  mouseDownDuration* {...}{.importc: "MouseDownDuration".}: array[5, float32]
  mouseDownDurationPrev* {...}{.importc: "MouseDownDurationPrev".}: array[5, float32]
  mouseDragMaxDistanceAbs* {...}{.importc: "MouseDragMaxDistanceAbs".}: array[5,
      ImVec2]
  mouseDragMaxDistanceSqr* {...}{.importc: "MouseDragMaxDistanceSqr".}: array[5,
      float32]
  keysDownDuration* {...}{.importc: "KeysDownDuration".}: array[512, float32]
  keysDownDurationPrev* {...}{.importc: "KeysDownDurationPrev".}: array[512, float32]
  navInputsDownDuration* {...}{.importc: "NavInputsDownDuration".}: array[21, float32]
  navInputsDownDurationPrev* {...}{.importc: "NavInputsDownDurationPrev".}: array[21,
      float32]
  penPressure* {...}{.importc: "PenPressure".}: float32
  inputQueueSurrogate* {...}{.importc: "InputQueueSurrogate".}: ImWchar16
  inputQueueCharacters* {...}{.importc: "InputQueueCharacters".}: ImVector[ImWchar]
ImGuiInputTextCallbackData {...}{.importc: "ImGuiInputTextCallbackData",
                             header: "cimgui.h".} = object
  eventFlag* {...}{.importc: "EventFlag".}: ImGuiInputTextFlags
  flags* {...}{.importc: "Flags".}: ImGuiInputTextFlags
  userData* {...}{.importc: "UserData".}: pointer
  eventChar* {...}{.importc: "EventChar".}: ImWchar
  eventKey* {...}{.importc: "EventKey".}: ImGuiKey
  buf* {...}{.importc: "Buf".}: cstring
  bufTextLen* {...}{.importc: "BufTextLen".}: int32
  bufSize* {...}{.importc: "BufSize".}: int32
  bufDirty* {...}{.importc: "BufDirty".}: bool
  cursorPos* {...}{.importc: "CursorPos".}: int32
  selectionStart* {...}{.importc: "SelectionStart".}: int32
  selectionEnd* {...}{.importc: "SelectionEnd".}: int32
ImGuiInputTextState {...}{.importc: "ImGuiInputTextState", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  curLenW* {...}{.importc: "CurLenW".}: int32
  curLenA* {...}{.importc: "CurLenA".}: int32
  textW* {...}{.importc: "TextW".}: ImVector[ImWchar]
  textA* {...}{.importc: "TextA".}: ImVector[int8]
  initialTextA* {...}{.importc: "InitialTextA".}: ImVector[int8]
  textAIsValid* {...}{.importc: "TextAIsValid".}: bool
  bufCapacityA* {...}{.importc: "BufCapacityA".}: int32
  scrollX* {...}{.importc: "ScrollX".}: float32
  stb* {...}{.importc: "Stb".}: STB_TexteditState
  cursorAnim* {...}{.importc: "CursorAnim".}: float32
  cursorFollow* {...}{.importc: "CursorFollow".}: bool
  selectedAllMouseLock* {...}{.importc: "SelectedAllMouseLock".}: bool
  edited* {...}{.importc: "Edited".}: bool
  userFlags* {...}{.importc: "UserFlags".}: ImGuiInputTextFlags
  userCallback* {...}{.importc: "UserCallback".}: ImGuiInputTextCallback
  userCallbackData* {...}{.importc: "UserCallbackData".}: pointer
ImGuiLastItemDataBackup {...}{.importc: "ImGuiLastItemDataBackup", header: "cimgui.h".} = object
  lastItemId* {...}{.importc: "LastItemId".}: ImGuiID
  lastItemStatusFlags* {...}{.importc: "LastItemStatusFlags".}: ImGuiItemStatusFlags
  lastItemRect* {...}{.importc: "LastItemRect".}: ImRect
  lastItemDisplayRect* {...}{.importc: "LastItemDisplayRect".}: ImRect
ImGuiListClipper {...}{.importc: "ImGuiListClipper", header: "cimgui.h".} = object
  displayStart* {...}{.importc: "DisplayStart".}: int32
  displayEnd* {...}{.importc: "DisplayEnd".}: int32
  itemsCount* {...}{.importc: "ItemsCount".}: int32
  stepNo* {...}{.importc: "StepNo".}: int32
  itemsFrozen* {...}{.importc: "ItemsFrozen".}: int32
  itemsHeight* {...}{.importc: "ItemsHeight".}: float32
  startPosY* {...}{.importc: "StartPosY".}: float32
ImGuiMenuColumns {...}{.importc: "ImGuiMenuColumns", header: "cimgui.h".} = object
  spacing* {...}{.importc: "Spacing".}: float32
  width* {...}{.importc: "Width".}: float32
  nextWidth* {...}{.importc: "NextWidth".}: float32
  pos* {...}{.importc: "Pos".}: array[3, float32]
  nextWidths* {...}{.importc: "NextWidths".}: array[3, float32]
ImGuiMetricsConfig {...}{.importc: "ImGuiMetricsConfig", header: "cimgui.h".} = object
  showWindowsRects* {...}{.importc: "ShowWindowsRects".}: bool
  showWindowsBeginOrder* {...}{.importc: "ShowWindowsBeginOrder".}: bool
  showTablesRects* {...}{.importc: "ShowTablesRects".}: bool
  showDrawCmdMesh* {...}{.importc: "ShowDrawCmdMesh".}: bool
  showDrawCmdBoundingBoxes* {...}{.importc: "ShowDrawCmdBoundingBoxes".}: bool
  showWindowsRectsType* {...}{.importc: "ShowWindowsRectsType".}: int32
  showTablesRectsType* {...}{.importc: "ShowTablesRectsType".}: int32
ImGuiNavMoveResult {...}{.importc: "ImGuiNavMoveResult", header: "cimgui.h".} = object
  window* {...}{.importc: "Window".}: ptr ImGuiWindow
  id* {...}{.importc: "ID".}: ImGuiID
  focusScopeId* {...}{.importc: "FocusScopeId".}: ImGuiID
  distBox* {...}{.importc: "DistBox".}: float32
  distCenter* {...}{.importc: "DistCenter".}: float32
  distAxial* {...}{.importc: "DistAxial".}: float32
  rectRel* {...}{.importc: "RectRel".}: ImRect
ImGuiNextItemData {...}{.importc: "ImGuiNextItemData", header: "cimgui.h".} = object
  flags* {...}{.importc: "Flags".}: ImGuiNextItemDataFlags
  width* {...}{.importc: "Width".}: float32
  focusScopeId* {...}{.importc: "FocusScopeId".}: ImGuiID
  openCond* {...}{.importc: "OpenCond".}: ImGuiCond
  openVal* {...}{.importc: "OpenVal".}: bool
ImGuiNextWindowData {...}{.importc: "ImGuiNextWindowData", header: "cimgui.h".} = object
  flags* {...}{.importc: "Flags".}: ImGuiNextWindowDataFlags
  posCond* {...}{.importc: "PosCond".}: ImGuiCond
  sizeCond* {...}{.importc: "SizeCond".}: ImGuiCond
  collapsedCond* {...}{.importc: "CollapsedCond".}: ImGuiCond
  posVal* {...}{.importc: "PosVal".}: ImVec2
  posPivotVal* {...}{.importc: "PosPivotVal".}: ImVec2
  sizeVal* {...}{.importc: "SizeVal".}: ImVec2
  contentSizeVal* {...}{.importc: "ContentSizeVal".}: ImVec2
  scrollVal* {...}{.importc: "ScrollVal".}: ImVec2
  collapsedVal* {...}{.importc: "CollapsedVal".}: bool
  sizeConstraintRect* {...}{.importc: "SizeConstraintRect".}: ImRect
  sizeCallback* {...}{.importc: "SizeCallback".}: ImGuiSizeCallback
  sizeCallbackUserData* {...}{.importc: "SizeCallbackUserData".}: pointer
  bgAlphaVal* {...}{.importc: "BgAlphaVal".}: float32
  menuBarOffsetMinVal* {...}{.importc: "MenuBarOffsetMinVal".}: ImVec2
ImGuiOldColumnData {...}{.importc: "ImGuiOldColumnData", header: "cimgui.h".} = object
  offsetNorm* {...}{.importc: "OffsetNorm".}: float32
  offsetNormBeforeResize* {...}{.importc: "OffsetNormBeforeResize".}: float32
  flags* {...}{.importc: "Flags".}: ImGuiOldColumnFlags
  clipRect* {...}{.importc: "ClipRect".}: ImRect
ImGuiOldColumns {...}{.importc: "ImGuiOldColumns", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  flags* {...}{.importc: "Flags".}: ImGuiOldColumnFlags
  isFirstFrame* {...}{.importc: "IsFirstFrame".}: bool
  isBeingResized* {...}{.importc: "IsBeingResized".}: bool
  current* {...}{.importc: "Current".}: int32
  count* {...}{.importc: "Count".}: int32
  offMinX* {...}{.importc: "OffMinX".}: float32
  offMaxX* {...}{.importc: "OffMaxX".}: float32
  lineMinY* {...}{.importc: "LineMinY".}: float32
  lineMaxY* {...}{.importc: "LineMaxY".}: float32
  hostCursorPosY* {...}{.importc: "HostCursorPosY".}: float32
  hostCursorMaxPosX* {...}{.importc: "HostCursorMaxPosX".}: float32
  hostInitialClipRect* {...}{.importc: "HostInitialClipRect".}: ImRect
  hostBackupClipRect* {...}{.importc: "HostBackupClipRect".}: ImRect
  hostBackupParentWorkRect* {...}{.importc: "HostBackupParentWorkRect".}: ImRect
  columns* {...}{.importc: "Columns".}: ImVector[ImGuiOldColumnData]
  splitter* {...}{.importc: "Splitter".}: ImDrawListSplitter
ImGuiOnceUponAFrame {...}{.importc: "ImGuiOnceUponAFrame", header: "cimgui.h".} = object
  refFrame* {...}{.importc: "RefFrame".}: int32
ImGuiPayload {...}{.importc: "ImGuiPayload", header: "cimgui.h".} = object
  data* {...}{.importc: "Data".}: pointer
  dataSize* {...}{.importc: "DataSize".}: int32
  sourceId* {...}{.importc: "SourceId".}: ImGuiID
  sourceParentId* {...}{.importc: "SourceParentId".}: ImGuiID
  dataFrameCount* {...}{.importc: "DataFrameCount".}: int32
  dataType* {...}{.importc: "DataType".}: array[32 + 1, int8]
  preview* {...}{.importc: "Preview".}: bool
  delivery* {...}{.importc: "Delivery".}: bool
ImGuiPopupData {...}{.importc: "ImGuiPopupData", header: "cimgui.h".} = object
  popupId* {...}{.importc: "PopupId".}: ImGuiID
  window* {...}{.importc: "Window".}: ptr ImGuiWindow
  sourceWindow* {...}{.importc: "SourceWindow".}: ptr ImGuiWindow
  openFrameCount* {...}{.importc: "OpenFrameCount".}: int32
  openParentId* {...}{.importc: "OpenParentId".}: ImGuiID
  openPopupPos* {...}{.importc: "OpenPopupPos".}: ImVec2
  openMousePos* {...}{.importc: "OpenMousePos".}: ImVec2
ImGuiPtrOrIndex {...}{.importc: "ImGuiPtrOrIndex", header: "cimgui.h".} = object
  `ptr`* {...}{.importc: "`ptr`".}: pointer
  index* {...}{.importc: "Index".}: int32
ImGuiSettingsHandler {...}{.importc: "ImGuiSettingsHandler", header: "cimgui.h".} = object
  typeName* {...}{.importc: "TypeName".}: cstring
  typeHash* {...}{.importc: "TypeHash".}: ImGuiID
  clearAllFn* {...}{.importc: "ClearAllFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler): void {...}{.cdecl, varargs.}
  readInitFn* {...}{.importc: "ReadInitFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler): void {...}{.cdecl, varargs.}
  readOpenFn* {...}{.importc: "ReadOpenFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler; name: cstring): pointer {...}{.cdecl,
      varargs.}
  readLineFn* {...}{.importc: "ReadLineFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler; entry: pointer; line: cstring): void {...}{.
      cdecl, varargs.}
  applyAllFn* {...}{.importc: "ApplyAllFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler): void {...}{.cdecl, varargs.}
  writeAllFn* {...}{.importc: "WriteAllFn".}: proc (ctx: ptr ImGuiContext;
      handler: ptr ImGuiSettingsHandler; out_buf: ptr ImGuiTextBuffer): void {...}{.
      cdecl, varargs.}
  userData* {...}{.importc: "UserData".}: pointer
ImGuiShrinkWidthItem {...}{.importc: "ImGuiShrinkWidthItem", header: "cimgui.h".} = object
  index* {...}{.importc: "Index".}: int32
  width* {...}{.importc: "Width".}: float32
ImGuiSizeCallbackData {...}{.importc: "ImGuiSizeCallbackData", header: "cimgui.h".} = object
  userData* {...}{.importc: "UserData".}: pointer
  pos* {...}{.importc: "Pos".}: ImVec2
  currentSize* {...}{.importc: "CurrentSize".}: ImVec2
  desiredSize* {...}{.importc: "DesiredSize".}: ImVec2
ImGuiStackSizes {...}{.importc: "ImGuiStackSizes", header: "cimgui.h".} = object
  sizeOfIDStack* {...}{.importc: "SizeOfIDStack".}: int16
  sizeOfColorStack* {...}{.importc: "SizeOfColorStack".}: int16
  sizeOfStyleVarStack* {...}{.importc: "SizeOfStyleVarStack".}: int16
  sizeOfFontStack* {...}{.importc: "SizeOfFontStack".}: int16
  sizeOfFocusScopeStack* {...}{.importc: "SizeOfFocusScopeStack".}: int16
  sizeOfGroupStack* {...}{.importc: "SizeOfGroupStack".}: int16
  sizeOfBeginPopupStack* {...}{.importc: "SizeOfBeginPopupStack".}: int16
ImGuiStorage {...}{.importc: "ImGuiStorage", header: "cimgui.h".} = object
  data* {...}{.importc: "Data".}: ImVector[ImGuiStoragePair]
ImGuiStyle {...}{.importc: "ImGuiStyle", header: "cimgui.h".} = object
  alpha* {...}{.importc: "Alpha".}: float32
  windowPadding* {...}{.importc: "WindowPadding".}: ImVec2
  windowRounding* {...}{.importc: "WindowRounding".}: float32
  windowBorderSize* {...}{.importc: "WindowBorderSize".}: float32
  windowMinSize* {...}{.importc: "WindowMinSize".}: ImVec2
  windowTitleAlign* {...}{.importc: "WindowTitleAlign".}: ImVec2
  windowMenuButtonPosition* {...}{.importc: "WindowMenuButtonPosition".}: ImGuiDir
  childRounding* {...}{.importc: "ChildRounding".}: float32
  childBorderSize* {...}{.importc: "ChildBorderSize".}: float32
  popupRounding* {...}{.importc: "PopupRounding".}: float32
  popupBorderSize* {...}{.importc: "PopupBorderSize".}: float32
  framePadding* {...}{.importc: "FramePadding".}: ImVec2
  frameRounding* {...}{.importc: "FrameRounding".}: float32
  frameBorderSize* {...}{.importc: "FrameBorderSize".}: float32
  itemSpacing* {...}{.importc: "ItemSpacing".}: ImVec2
  itemInnerSpacing* {...}{.importc: "ItemInnerSpacing".}: ImVec2
  cellPadding* {...}{.importc: "CellPadding".}: ImVec2
  touchExtraPadding* {...}{.importc: "TouchExtraPadding".}: ImVec2
  indentSpacing* {...}{.importc: "IndentSpacing".}: float32
  columnsMinSpacing* {...}{.importc: "ColumnsMinSpacing".}: float32
  scrollbarSize* {...}{.importc: "ScrollbarSize".}: float32
  scrollbarRounding* {...}{.importc: "ScrollbarRounding".}: float32
  grabMinSize* {...}{.importc: "GrabMinSize".}: float32
  grabRounding* {...}{.importc: "GrabRounding".}: float32
  logSliderDeadzone* {...}{.importc: "LogSliderDeadzone".}: float32
  tabRounding* {...}{.importc: "TabRounding".}: float32
  tabBorderSize* {...}{.importc: "TabBorderSize".}: float32
  tabMinWidthForCloseButton* {...}{.importc: "TabMinWidthForCloseButton".}: float32
  colorButtonPosition* {...}{.importc: "ColorButtonPosition".}: ImGuiDir
  buttonTextAlign* {...}{.importc: "ButtonTextAlign".}: ImVec2
  selectableTextAlign* {...}{.importc: "SelectableTextAlign".}: ImVec2
  displayWindowPadding* {...}{.importc: "DisplayWindowPadding".}: ImVec2
  displaySafeAreaPadding* {...}{.importc: "DisplaySafeAreaPadding".}: ImVec2
  mouseCursorScale* {...}{.importc: "MouseCursorScale".}: float32
  antiAliasedLines* {...}{.importc: "AntiAliasedLines".}: bool
  antiAliasedLinesUseTex* {...}{.importc: "AntiAliasedLinesUseTex".}: bool
  antiAliasedFill* {...}{.importc: "AntiAliasedFill".}: bool
  curveTessellationTol* {...}{.importc: "CurveTessellationTol".}: float32
  circleSegmentMaxError* {...}{.importc: "CircleSegmentMaxError".}: float32
  colors* {...}{.importc: "Colors".}: array[53, ImVec4]
ImGuiTabBar {...}{.importc: "ImGuiTabBar", header: "cimgui.h".} = object
  tabs* {...}{.importc: "Tabs".}: ImVector[ImGuiTabItem]
  flags* {...}{.importc: "Flags".}: ImGuiTabBarFlags
  id* {...}{.importc: "ID".}: ImGuiID
  selectedTabId* {...}{.importc: "SelectedTabId".}: ImGuiID
  nextSelectedTabId* {...}{.importc: "NextSelectedTabId".}: ImGuiID
  visibleTabId* {...}{.importc: "VisibleTabId".}: ImGuiID
  currFrameVisible* {...}{.importc: "CurrFrameVisible".}: int32
  prevFrameVisible* {...}{.importc: "PrevFrameVisible".}: int32
  barRect* {...}{.importc: "BarRect".}: ImRect
  currTabsContentsHeight* {...}{.importc: "CurrTabsContentsHeight".}: float32
  prevTabsContentsHeight* {...}{.importc: "PrevTabsContentsHeight".}: float32
  widthAllTabs* {...}{.importc: "WidthAllTabs".}: float32
  widthAllTabsIdeal* {...}{.importc: "WidthAllTabsIdeal".}: float32
  scrollingAnim* {...}{.importc: "ScrollingAnim".}: float32
  scrollingTarget* {...}{.importc: "ScrollingTarget".}: float32
  scrollingTargetDistToVisibility* {...}{.importc: "ScrollingTargetDistToVisibility".}: float32
  scrollingSpeed* {...}{.importc: "ScrollingSpeed".}: float32
  scrollingRectMinX* {...}{.importc: "ScrollingRectMinX".}: float32
  scrollingRectMaxX* {...}{.importc: "ScrollingRectMaxX".}: float32
  reorderRequestTabId* {...}{.importc: "ReorderRequestTabId".}: ImGuiID
  reorderRequestDir* {...}{.importc: "ReorderRequestDir".}: int8
  beginCount* {...}{.importc: "BeginCount".}: int8
  wantLayout* {...}{.importc: "WantLayout".}: bool
  visibleTabWasSubmitted* {...}{.importc: "VisibleTabWasSubmitted".}: bool
  tabsAddedNew* {...}{.importc: "TabsAddedNew".}: bool
  tabsActiveCount* {...}{.importc: "TabsActiveCount".}: int16
  lastTabItemIdx* {...}{.importc: "LastTabItemIdx".}: int16
  itemSpacingY* {...}{.importc: "ItemSpacingY".}: float32
  framePadding* {...}{.importc: "FramePadding".}: ImVec2
  backupCursorPos* {...}{.importc: "BackupCursorPos".}: ImVec2
  tabsNames* {...}{.importc: "TabsNames".}: ImGuiTextBuffer
ImGuiTabItem {...}{.importc: "ImGuiTabItem", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  flags* {...}{.importc: "Flags".}: ImGuiTabItemFlags
  lastFrameVisible* {...}{.importc: "LastFrameVisible".}: int32
  lastFrameSelected* {...}{.importc: "LastFrameSelected".}: int32
  offset* {...}{.importc: "Offset".}: float32
  width* {...}{.importc: "Width".}: float32
  contentWidth* {...}{.importc: "ContentWidth".}: float32
  nameOffset* {...}{.importc: "NameOffset".}: int16
  beginOrder* {...}{.importc: "BeginOrder".}: int16
  indexDuringLayout* {...}{.importc: "IndexDuringLayout".}: int16
  wantClose* {...}{.importc: "WantClose".}: bool
ImGuiTable {...}{.importc: "ImGuiTable", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  flags* {...}{.importc: "Flags".}: ImGuiTableFlags
  rawData* {...}{.importc: "RawData".}: pointer
  columns* {...}{.importc: "Columns".}: ImVector[ImGuiTableColumn]
  displayOrderToIndex* {...}{.importc: "DisplayOrderToIndex".}: ImVector[
      ImGuiTableColumnIdx]
  rowCellData* {...}{.importc: "RowCellData".}: ImVector[ImGuiTableCellData]
  enabledMaskByDisplayOrder* {...}{.importc: "EnabledMaskByDisplayOrder".}: uint64
  enabledMaskByIndex* {...}{.importc: "EnabledMaskByIndex".}: uint64
  visibleMaskByIndex* {...}{.importc: "VisibleMaskByIndex".}: uint64
  requestOutputMaskByIndex* {...}{.importc: "RequestOutputMaskByIndex".}: uint64
  settingsLoadedFlags* {...}{.importc: "SettingsLoadedFlags".}: ImGuiTableFlags
  settingsOffset* {...}{.importc: "SettingsOffset".}: int32
  lastFrameActive* {...}{.importc: "LastFrameActive".}: int32
  columnsCount* {...}{.importc: "ColumnsCount".}: int32
  currentRow* {...}{.importc: "CurrentRow".}: int32
  currentColumn* {...}{.importc: "CurrentColumn".}: int32
  instanceCurrent* {...}{.importc: "InstanceCurrent".}: int16
  instanceInteracted* {...}{.importc: "InstanceInteracted".}: int16
  rowPosY1* {...}{.importc: "RowPosY1".}: float32
  rowPosY2* {...}{.importc: "RowPosY2".}: float32
  rowMinHeight* {...}{.importc: "RowMinHeight".}: float32
  rowTextBaseline* {...}{.importc: "RowTextBaseline".}: float32
  rowIndentOffsetX* {...}{.importc: "RowIndentOffsetX".}: float32
  rowFlags* {...}{.importc: "RowFlags".}: ImGuiTableRowFlags
  lastRowFlags* {...}{.importc: "LastRowFlags".}: ImGuiTableRowFlags
  rowBgColorCounter* {...}{.importc: "RowBgColorCounter".}: int32
  rowBgColor* {...}{.importc: "RowBgColor".}: array[2, uint32]
  borderColorStrong* {...}{.importc: "BorderColorStrong".}: uint32
  borderColorLight* {...}{.importc: "BorderColorLight".}: uint32
  borderX1* {...}{.importc: "BorderX1".}: float32
  borderX2* {...}{.importc: "BorderX2".}: float32
  hostIndentX* {...}{.importc: "HostIndentX".}: float32
  minColumnWidth* {...}{.importc: "MinColumnWidth".}: float32
  outerPaddingX* {...}{.importc: "OuterPaddingX".}: float32
  cellPaddingX* {...}{.importc: "CellPaddingX".}: float32
  cellPaddingY* {...}{.importc: "CellPaddingY".}: float32
  cellSpacingX1* {...}{.importc: "CellSpacingX1".}: float32
  cellSpacingX2* {...}{.importc: "CellSpacingX2".}: float32
  lastOuterHeight* {...}{.importc: "LastOuterHeight".}: float32
  lastFirstRowHeight* {...}{.importc: "LastFirstRowHeight".}: float32
  innerWidth* {...}{.importc: "InnerWidth".}: float32
  columnsGivenWidth* {...}{.importc: "ColumnsGivenWidth".}: float32
  columnsAutoFitWidth* {...}{.importc: "ColumnsAutoFitWidth".}: float32
  resizedColumnNextWidth* {...}{.importc: "ResizedColumnNextWidth".}: float32
  resizeLockMinContentsX2* {...}{.importc: "ResizeLockMinContentsX2".}: float32
  refScale* {...}{.importc: "RefScale".}: float32
  outerRect* {...}{.importc: "OuterRect".}: ImRect
  innerRect* {...}{.importc: "InnerRect".}: ImRect
  workRect* {...}{.importc: "WorkRect".}: ImRect
  innerClipRect* {...}{.importc: "InnerClipRect".}: ImRect
  bgClipRect* {...}{.importc: "BgClipRect".}: ImRect
  bg0ClipRectForDrawCmd* {...}{.importc: "Bg0ClipRectForDrawCmd".}: ImRect
  bg2ClipRectForDrawCmd* {...}{.importc: "Bg2ClipRectForDrawCmd".}: ImRect
  hostClipRect* {...}{.importc: "HostClipRect".}: ImRect
  hostBackupWorkRect* {...}{.importc: "HostBackupWorkRect".}: ImRect
  hostBackupParentWorkRect* {...}{.importc: "HostBackupParentWorkRect".}: ImRect
  hostBackupInnerClipRect* {...}{.importc: "HostBackupInnerClipRect".}: ImRect
  hostBackupPrevLineSize* {...}{.importc: "HostBackupPrevLineSize".}: ImVec2
  hostBackupCurrLineSize* {...}{.importc: "HostBackupCurrLineSize".}: ImVec2
  hostBackupCursorMaxPos* {...}{.importc: "HostBackupCursorMaxPos".}: ImVec2
  userOuterSize* {...}{.importc: "UserOuterSize".}: ImVec2
  hostBackupColumnsOffset* {...}{.importc: "HostBackupColumnsOffset".}: ImVec1
  hostBackupItemWidth* {...}{.importc: "HostBackupItemWidth".}: float32
  hostBackupItemWidthStackSize* {...}{.importc: "HostBackupItemWidthStackSize".}: int32
  outerWindow* {...}{.importc: "OuterWindow".}: ptr ImGuiWindow
  innerWindow* {...}{.importc: "InnerWindow".}: ptr ImGuiWindow
  columnsNames* {...}{.importc: "ColumnsNames".}: ImGuiTextBuffer
  drawSplitter* {...}{.importc: "DrawSplitter".}: ImDrawListSplitter
  sortSpecsSingle* {...}{.importc: "SortSpecsSingle".}: ImGuiTableColumnSortSpecs
  sortSpecsMulti* {...}{.importc: "SortSpecsMulti".}: ImVector[
      ImGuiTableColumnSortSpecs]
  sortSpecs* {...}{.importc: "SortSpecs".}: ImGuiTableSortSpecs
  sortSpecsCount* {...}{.importc: "SortSpecsCount".}: ImGuiTableColumnIdx
  columnsEnabledCount* {...}{.importc: "ColumnsEnabledCount".}: ImGuiTableColumnIdx
  columnsEnabledFixedCount* {...}{.importc: "ColumnsEnabledFixedCount".}: ImGuiTableColumnIdx
  declColumnsCount* {...}{.importc: "DeclColumnsCount".}: ImGuiTableColumnIdx
  hoveredColumnBody* {...}{.importc: "HoveredColumnBody".}: ImGuiTableColumnIdx
  hoveredColumnBorder* {...}{.importc: "HoveredColumnBorder".}: ImGuiTableColumnIdx
  autoFitSingleColumn* {...}{.importc: "AutoFitSingleColumn".}: ImGuiTableColumnIdx
  resizedColumn* {...}{.importc: "ResizedColumn".}: ImGuiTableColumnIdx
  lastResizedColumn* {...}{.importc: "LastResizedColumn".}: ImGuiTableColumnIdx
  heldHeaderColumn* {...}{.importc: "HeldHeaderColumn".}: ImGuiTableColumnIdx
  reorderColumn* {...}{.importc: "ReorderColumn".}: ImGuiTableColumnIdx
  reorderColumnDir* {...}{.importc: "ReorderColumnDir".}: ImGuiTableColumnIdx
  leftMostStretchedColumn* {...}{.importc: "LeftMostStretchedColumn".}: ImGuiTableColumnIdx
  rightMostStretchedColumn* {...}{.importc: "RightMostStretchedColumn".}: ImGuiTableColumnIdx
  rightMostEnabledColumn* {...}{.importc: "RightMostEnabledColumn".}: ImGuiTableColumnIdx
  contextPopupColumn* {...}{.importc: "ContextPopupColumn".}: ImGuiTableColumnIdx
  freezeRowsRequest* {...}{.importc: "FreezeRowsRequest".}: ImGuiTableColumnIdx
  freezeRowsCount* {...}{.importc: "FreezeRowsCount".}: ImGuiTableColumnIdx
  freezeColumnsRequest* {...}{.importc: "FreezeColumnsRequest".}: ImGuiTableColumnIdx
  freezeColumnsCount* {...}{.importc: "FreezeColumnsCount".}: ImGuiTableColumnIdx
  rowCellDataCurrent* {...}{.importc: "RowCellDataCurrent".}: ImGuiTableColumnIdx
  dummyDrawChannel* {...}{.importc: "DummyDrawChannel".}: ImGuiTableDrawChannelIdx
  bg2DrawChannelCurrent* {...}{.importc: "Bg2DrawChannelCurrent".}: ImGuiTableDrawChannelIdx
  bg2DrawChannelUnfrozen* {...}{.importc: "Bg2DrawChannelUnfrozen".}: ImGuiTableDrawChannelIdx
  isLayoutLocked* {...}{.importc: "IsLayoutLocked".}: bool
  isInsideRow* {...}{.importc: "IsInsideRow".}: bool
  isInitializing* {...}{.importc: "IsInitializing".}: bool
  isSortSpecsDirty* {...}{.importc: "IsSortSpecsDirty".}: bool
  isUsingHeaders* {...}{.importc: "IsUsingHeaders".}: bool
  isContextPopupOpen* {...}{.importc: "IsContextPopupOpen".}: bool
  isSettingsRequestLoad* {...}{.importc: "IsSettingsRequestLoad".}: bool
  isSettingsDirty* {...}{.importc: "IsSettingsDirty".}: bool
  isDefaultDisplayOrder* {...}{.importc: "IsDefaultDisplayOrder".}: bool
  isResetAllRequest* {...}{.importc: "IsResetAllRequest".}: bool
  isResetDisplayOrderRequest* {...}{.importc: "IsResetDisplayOrderRequest".}: bool
  isUnfrozenRows* {...}{.importc: "IsUnfrozenRows".}: bool
  isDefaultSizingPolicy* {...}{.importc: "IsDefaultSizingPolicy".}: bool
  memoryCompacted* {...}{.importc: "MemoryCompacted".}: bool
  hostSkipItems* {...}{.importc: "HostSkipItems".}: bool
ImGuiTableCellData {...}{.importc: "ImGuiTableCellData", header: "cimgui.h".} = object
  bgColor* {...}{.importc: "BgColor".}: uint32
  column* {...}{.importc: "Column".}: ImGuiTableColumnIdx
ImGuiTableColumn {...}{.importc: "ImGuiTableColumn", header: "cimgui.h".} = object
  flags* {...}{.importc: "Flags".}: ImGuiTableColumnFlags
  widthGiven* {...}{.importc: "WidthGiven".}: float32
  minX* {...}{.importc: "MinX".}: float32
  maxX* {...}{.importc: "MaxX".}: float32
  widthRequest* {...}{.importc: "WidthRequest".}: float32
  widthAuto* {...}{.importc: "WidthAuto".}: float32
  stretchWeight* {...}{.importc: "StretchWeight".}: float32
  initStretchWeightOrWidth* {...}{.importc: "InitStretchWeightOrWidth".}: float32
  clipRect* {...}{.importc: "ClipRect".}: ImRect
  userID* {...}{.importc: "UserID".}: ImGuiID
  workMinX* {...}{.importc: "WorkMinX".}: float32
  workMaxX* {...}{.importc: "WorkMaxX".}: float32
  itemWidth* {...}{.importc: "ItemWidth".}: float32
  contentMaxXFrozen* {...}{.importc: "ContentMaxXFrozen".}: float32
  contentMaxXUnfrozen* {...}{.importc: "ContentMaxXUnfrozen".}: float32
  contentMaxXHeadersUsed* {...}{.importc: "ContentMaxXHeadersUsed".}: float32
  contentMaxXHeadersIdeal* {...}{.importc: "ContentMaxXHeadersIdeal".}: float32
  nameOffset* {...}{.importc: "NameOffset".}: int16
  displayOrder* {...}{.importc: "DisplayOrder".}: ImGuiTableColumnIdx
  indexWithinEnabledSet* {...}{.importc: "IndexWithinEnabledSet".}: ImGuiTableColumnIdx
  prevEnabledColumn* {...}{.importc: "PrevEnabledColumn".}: ImGuiTableColumnIdx
  nextEnabledColumn* {...}{.importc: "NextEnabledColumn".}: ImGuiTableColumnIdx
  sortOrder* {...}{.importc: "SortOrder".}: ImGuiTableColumnIdx
  drawChannelCurrent* {...}{.importc: "DrawChannelCurrent".}: ImGuiTableDrawChannelIdx
  drawChannelFrozen* {...}{.importc: "DrawChannelFrozen".}: ImGuiTableDrawChannelIdx
  drawChannelUnfrozen* {...}{.importc: "DrawChannelUnfrozen".}: ImGuiTableDrawChannelIdx
  isEnabled* {...}{.importc: "IsEnabled".}: bool
  isEnabledNextFrame* {...}{.importc: "IsEnabledNextFrame".}: bool
  isVisibleX* {...}{.importc: "IsVisibleX".}: bool
  isVisibleY* {...}{.importc: "IsVisibleY".}: bool
  isRequestOutput* {...}{.importc: "IsRequestOutput".}: bool
  isSkipItems* {...}{.importc: "IsSkipItems".}: bool
  isPreserveWidthAuto* {...}{.importc: "IsPreserveWidthAuto".}: bool
  navLayerCurrent* {...}{.importc: "NavLayerCurrent".}: int8
  autoFitQueue* {...}{.importc: "AutoFitQueue".}: uint8
  cannotSkipItemsQueue* {...}{.importc: "CannotSkipItemsQueue".}: uint8
  sortDirection* {...}{.importc: "SortDirection".}: uint8
  sortDirectionsAvailCount* {...}{.importc: "SortDirectionsAvailCount".}: uint8
  sortDirectionsAvailMask* {...}{.importc: "SortDirectionsAvailMask".}: uint8
  sortDirectionsAvailList* {...}{.importc: "SortDirectionsAvailList".}: uint8
ImGuiTableColumnSettings {...}{.importc: "ImGuiTableColumnSettings",
                           header: "cimgui.h".} = object
  widthOrWeight* {...}{.importc: "WidthOrWeight".}: float32
  userID* {...}{.importc: "UserID".}: ImGuiID
  index* {...}{.importc: "Index".}: ImGuiTableColumnIdx
  displayOrder* {...}{.importc: "DisplayOrder".}: ImGuiTableColumnIdx
  sortOrder* {...}{.importc: "SortOrder".}: ImGuiTableColumnIdx
  sortDirection* {...}{.importc: "SortDirection".}: uint8
  isEnabled* {...}{.importc: "IsEnabled".}: uint8
  isStretch* {...}{.importc: "IsStretch".}: uint8
ImGuiTableColumnSortSpecs {...}{.importc: "ImGuiTableColumnSortSpecs",
                            header: "cimgui.h".} = object
  columnUserID* {...}{.importc: "ColumnUserID".}: ImGuiID
  columnIndex* {...}{.importc: "ColumnIndex".}: int16
  sortOrder* {...}{.importc: "SortOrder".}: int16
  sortDirection* {...}{.importc: "SortDirection".}: ImGuiSortDirection
ImGuiTableSettings {...}{.importc: "ImGuiTableSettings", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  saveFlags* {...}{.importc: "SaveFlags".}: ImGuiTableFlags
  refScale* {...}{.importc: "RefScale".}: float32
  columnsCount* {...}{.importc: "ColumnsCount".}: ImGuiTableColumnIdx
  columnsCountMax* {...}{.importc: "ColumnsCountMax".}: ImGuiTableColumnIdx
  wantApply* {...}{.importc: "WantApply".}: bool
ImGuiTableSortSpecs {...}{.importc: "ImGuiTableSortSpecs", header: "cimgui.h".} = object
  specs* {...}{.importc: "Specs".}: ptr ImGuiTableColumnSortSpecs
  specsCount* {...}{.importc: "SpecsCount".}: int32
  specsDirty* {...}{.importc: "SpecsDirty".}: bool
ImGuiTextBuffer {...}{.importc: "ImGuiTextBuffer", header: "cimgui.h".} = object
  buf* {...}{.importc: "Buf".}: ImVector[int8]
ImGuiTextFilter {...}{.importc: "ImGuiTextFilter", header: "cimgui.h".} = object
  inputBuf* {...}{.importc: "InputBuf".}: array[256, int8]
  filters* {...}{.importc: "Filters".}: ImVector[ImGuiTextRange]
  countGrep* {...}{.importc: "CountGrep".}: int32
ImGuiTextRange {...}{.importc: "ImGuiTextRange", header: "cimgui.h".} = object
  b* {...}{.importc: "b".}: cstring
  e* {...}{.importc: "e".}: cstring
ImGuiViewport {...}{.importc: "ImGuiViewport", header: "cimgui.h".} = object
  flags* {...}{.importc: "Flags".}: ImGuiViewportFlags
  pos* {...}{.importc: "Pos".}: ImVec2
  size* {...}{.importc: "Size".}: ImVec2
  workPos* {...}{.importc: "WorkPos".}: ImVec2
  workSize* {...}{.importc: "WorkSize".}: ImVec2
ImGuiViewportP {...}{.importc: "ImGuiViewportP", header: "cimgui.h".} = object
  imGuiViewport* {...}{.importc: "_ImGuiViewport".}: ImGuiViewport
  drawListsLastFrame* {...}{.importc: "DrawListsLastFrame".}: array[2, int32]
  drawLists* {...}{.importc: "DrawLists".}: array[2, ptr ImDrawList]
  drawDataP* {...}{.importc: "DrawDataP".}: ImDrawData
  drawDataBuilder* {...}{.importc: "DrawDataBuilder".}: ImDrawDataBuilder
  workOffsetMin* {...}{.importc: "WorkOffsetMin".}: ImVec2
  workOffsetMax* {...}{.importc: "WorkOffsetMax".}: ImVec2
  currWorkOffsetMin* {...}{.importc: "CurrWorkOffsetMin".}: ImVec2
  currWorkOffsetMax* {...}{.importc: "CurrWorkOffsetMax".}: ImVec2
ImGuiWindow {...}{.importc: "ImGuiWindow", header: "cimgui.h".} = object
  name* {...}{.importc: "Name".}: cstring
  id* {...}{.importc: "ID".}: ImGuiID
  flags* {...}{.importc: "Flags".}: ImGuiWindowFlags
  pos* {...}{.importc: "Pos".}: ImVec2
  size* {...}{.importc: "Size".}: ImVec2
  sizeFull* {...}{.importc: "SizeFull".}: ImVec2
  contentSize* {...}{.importc: "ContentSize".}: ImVec2
  contentSizeIdeal* {...}{.importc: "ContentSizeIdeal".}: ImVec2
  contentSizeExplicit* {...}{.importc: "ContentSizeExplicit".}: ImVec2
  windowPadding* {...}{.importc: "WindowPadding".}: ImVec2
  windowRounding* {...}{.importc: "WindowRounding".}: float32
  windowBorderSize* {...}{.importc: "WindowBorderSize".}: float32
  nameBufLen* {...}{.importc: "NameBufLen".}: int32
  moveId* {...}{.importc: "MoveId".}: ImGuiID
  childId* {...}{.importc: "ChildId".}: ImGuiID
  scroll* {...}{.importc: "Scroll".}: ImVec2
  scrollMax* {...}{.importc: "ScrollMax".}: ImVec2
  scrollTarget* {...}{.importc: "ScrollTarget".}: ImVec2
  scrollTargetCenterRatio* {...}{.importc: "ScrollTargetCenterRatio".}: ImVec2
  scrollTargetEdgeSnapDist* {...}{.importc: "ScrollTargetEdgeSnapDist".}: ImVec2
  scrollbarSizes* {...}{.importc: "ScrollbarSizes".}: ImVec2
  scrollbarX* {...}{.importc: "ScrollbarX".}: bool
  scrollbarY* {...}{.importc: "ScrollbarY".}: bool
  active* {...}{.importc: "Active".}: bool
  wasActive* {...}{.importc: "WasActive".}: bool
  writeAccessed* {...}{.importc: "WriteAccessed".}: bool
  collapsed* {...}{.importc: "Collapsed".}: bool
  wantCollapseToggle* {...}{.importc: "WantCollapseToggle".}: bool
  skipItems* {...}{.importc: "SkipItems".}: bool
  appearing* {...}{.importc: "Appearing".}: bool
  hidden* {...}{.importc: "Hidden".}: bool
  isFallbackWindow* {...}{.importc: "IsFallbackWindow".}: bool
  hasCloseButton* {...}{.importc: "HasCloseButton".}: bool
  resizeBorderHeld* {...}{.importc: "ResizeBorderHeld".}: int8
  beginCount* {...}{.importc: "BeginCount".}: int16
  beginOrderWithinParent* {...}{.importc: "BeginOrderWithinParent".}: int16
  beginOrderWithinContext* {...}{.importc: "BeginOrderWithinContext".}: int16
  popupId* {...}{.importc: "PopupId".}: ImGuiID
  autoFitFramesX* {...}{.importc: "AutoFitFramesX".}: int8
  autoFitFramesY* {...}{.importc: "AutoFitFramesY".}: int8
  autoFitChildAxises* {...}{.importc: "AutoFitChildAxises".}: int8
  autoFitOnlyGrows* {...}{.importc: "AutoFitOnlyGrows".}: bool
  autoPosLastDirection* {...}{.importc: "AutoPosLastDirection".}: ImGuiDir
  hiddenFramesCanSkipItems* {...}{.importc: "HiddenFramesCanSkipItems".}: int8
  hiddenFramesCannotSkipItems* {...}{.importc: "HiddenFramesCannotSkipItems".}: int8
  hiddenFramesForRenderOnly* {...}{.importc: "HiddenFramesForRenderOnly".}: int8
  setWindowPosAllowFlags* {...}{.importc: "SetWindowPosAllowFlags".}: ImGuiCond
  setWindowSizeAllowFlags* {...}{.importc: "SetWindowSizeAllowFlags".}: ImGuiCond
  setWindowCollapsedAllowFlags* {...}{.importc: "SetWindowCollapsedAllowFlags".}: ImGuiCond
  setWindowPosVal* {...}{.importc: "SetWindowPosVal".}: ImVec2
  setWindowPosPivot* {...}{.importc: "SetWindowPosPivot".}: ImVec2
  iDStack* {...}{.importc: "IDStack".}: ImVector[ImGuiID]
  dc* {...}{.importc: "DC".}: ImGuiWindowTempData
  outerRectClipped* {...}{.importc: "OuterRectClipped".}: ImRect
  innerRect* {...}{.importc: "InnerRect".}: ImRect
  innerClipRect* {...}{.importc: "InnerClipRect".}: ImRect
  workRect* {...}{.importc: "WorkRect".}: ImRect
  parentWorkRect* {...}{.importc: "ParentWorkRect".}: ImRect
  clipRect* {...}{.importc: "ClipRect".}: ImRect
  contentRegionRect* {...}{.importc: "ContentRegionRect".}: ImRect
  hitTestHoleSize* {...}{.importc: "HitTestHoleSize".}: ImVec2ih
  hitTestHoleOffset* {...}{.importc: "HitTestHoleOffset".}: ImVec2ih
  lastFrameActive* {...}{.importc: "LastFrameActive".}: int32
  lastTimeActive* {...}{.importc: "LastTimeActive".}: float32
  itemWidthDefault* {...}{.importc: "ItemWidthDefault".}: float32
  stateStorage* {...}{.importc: "StateStorage".}: ImGuiStorage
  columnsStorage* {...}{.importc: "ColumnsStorage".}: ImVector[ImGuiOldColumns]
  fontWindowScale* {...}{.importc: "FontWindowScale".}: float32
  settingsOffset* {...}{.importc: "SettingsOffset".}: int32
  drawList* {...}{.importc: "DrawList".}: ptr ImDrawList
  drawListInst* {...}{.importc: "DrawListInst".}: ImDrawList
  parentWindow* {...}{.importc: "ParentWindow".}: ptr ImGuiWindow
  rootWindow* {...}{.importc: "RootWindow".}: ptr ImGuiWindow
  rootWindowForTitleBarHighlight* {...}{.importc: "RootWindowForTitleBarHighlight".}: ptr ImGuiWindow
  rootWindowForNav* {...}{.importc: "RootWindowForNav".}: ptr ImGuiWindow
  navLastChildNavWindow* {...}{.importc: "NavLastChildNavWindow".}: ptr ImGuiWindow
  navLastIds* {...}{.importc: "NavLastIds".}: array[2, ImGuiID]
  navRectRel* {...}{.importc: "NavRectRel".}: array[2, ImRect]
  memoryDrawListIdxCapacity* {...}{.importc: "MemoryDrawListIdxCapacity".}: int32
  memoryDrawListVtxCapacity* {...}{.importc: "MemoryDrawListVtxCapacity".}: int32
  memoryCompacted* {...}{.importc: "MemoryCompacted".}: bool
ImGuiWindowSettings {...}{.importc: "ImGuiWindowSettings", header: "cimgui.h".} = object
  id* {...}{.importc: "ID".}: ImGuiID
  pos* {...}{.importc: "Pos".}: ImVec2ih
  size* {...}{.importc: "Size".}: ImVec2ih
  collapsed* {...}{.importc: "Collapsed".}: bool
  wantApply* {...}{.importc: "WantApply".}: bool
ImGuiWindowTempData {...}{.importc: "ImGuiWindowTempData", header: "cimgui.h".} = object
  cursorPos* {...}{.importc: "CursorPos".}: ImVec2
  cursorPosPrevLine* {...}{.importc: "CursorPosPrevLine".}: ImVec2
  cursorStartPos* {...}{.importc: "CursorStartPos".}: ImVec2
  cursorMaxPos* {...}{.importc: "CursorMaxPos".}: ImVec2
  idealMaxPos* {...}{.importc: "IdealMaxPos".}: ImVec2
  currLineSize* {...}{.importc: "CurrLineSize".}: ImVec2
  prevLineSize* {...}{.importc: "PrevLineSize".}: ImVec2
  currLineTextBaseOffset* {...}{.importc: "CurrLineTextBaseOffset".}: float32
  prevLineTextBaseOffset* {...}{.importc: "PrevLineTextBaseOffset".}: float32
  indent* {...}{.importc: "Indent".}: ImVec1
  columnsOffset* {...}{.importc: "ColumnsOffset".}: ImVec1
  groupOffset* {...}{.importc: "GroupOffset".}: ImVec1
  lastItemId* {...}{.importc: "LastItemId".}: ImGuiID
  lastItemStatusFlags* {...}{.importc: "LastItemStatusFlags".}: ImGuiItemStatusFlags
  lastItemRect* {...}{.importc: "LastItemRect".}: ImRect
  lastItemDisplayRect* {...}{.importc: "LastItemDisplayRect".}: ImRect
  navLayerCurrent* {...}{.importc: "NavLayerCurrent".}: ImGuiNavLayer
  navLayerActiveMask* {...}{.importc: "NavLayerActiveMask".}: int32
  navLayerActiveMaskNext* {...}{.importc: "NavLayerActiveMaskNext".}: int32
  navFocusScopeIdCurrent* {...}{.importc: "NavFocusScopeIdCurrent".}: ImGuiID
  navHideHighlightOneFrame* {...}{.importc: "NavHideHighlightOneFrame".}: bool
  navHasScroll* {...}{.importc: "NavHasScroll".}: bool
  menuBarAppending* {...}{.importc: "MenuBarAppending".}: bool
  menuBarOffset* {...}{.importc: "MenuBarOffset".}: ImVec2
  menuColumns* {...}{.importc: "MenuColumns".}: ImGuiMenuColumns
  treeDepth* {...}{.importc: "TreeDepth".}: int32
  treeJumpToParentOnPopMask* {...}{.importc: "TreeJumpToParentOnPopMask".}: uint32
  childWindows* {...}{.importc: "ChildWindows".}: ImVector[ptr ImGuiWindow]
  stateStorage* {...}{.importc: "StateStorage".}: ptr ImGuiStorage
  currentColumns* {...}{.importc: "CurrentColumns".}: ptr ImGuiOldColumns
  currentTableIdx* {...}{.importc: "CurrentTableIdx".}: int32
  layoutType* {...}{.importc: "LayoutType".}: ImGuiLayoutType
  parentLayoutType* {...}{.importc: "ParentLayoutType".}: ImGuiLayoutType
  focusCounterRegular* {...}{.importc: "FocusCounterRegular".}: int32
  focusCounterTabStop* {...}{.importc: "FocusCounterTabStop".}: int32
  itemFlags* {...}{.importc: "ItemFlags".}: ImGuiItemFlags
  itemWidth* {...}{.importc: "ItemWidth".}: float32
  textWrapPos* {...}{.importc: "TextWrapPos".}: float32
  itemWidthStack* {...}{.importc: "ItemWidthStack".}: ImVector[float32]
  textWrapPosStack* {...}{.importc: "TextWrapPosStack".}: ImVector[float32]
  stackSizesOnBegin* {...}{.importc: "StackSizesOnBegin".}: ImGuiStackSizes
ImRect {...}{.importc: "ImRect", header: "cimgui.h".} = object
  min* {...}{.importc: "Min".}: ImVec2
  max* {...}{.importc: "Max".}: ImVec2
ImVec1 {...}{.importc: "ImVec1", header: "cimgui.h".} = object
  x* {...}{.importc: "x".}: float32
ImVec2 {...}{.importc: "ImVec2", header: "cimgui.h".} = object
  x* {...}{.importc: "x".}: float32
  y* {...}{.importc: "y".}: float32
ImVec2ih {...}{.importc: "ImVec2ih", header: "cimgui.h".} = object
  x* {...}{.importc: "x".}: int16
  y* {...}{.importc: "y".}: int16
ImVec4 {...}{.importc: "ImVec4", header: "cimgui.h".} = object
  x* {...}{.importc: "x".}: float32
  y* {...}{.importc: "y".}: float32
  z* {...}{.importc: "z".}: float32
  w* {...}{.importc: "w".}: float32
STB_TexteditState {...}{.importc: "STB_TexteditState", header: "cimgui.h".} = object
  cursor* {...}{.importc: "cursor".}: int32
  select_start* {...}{.importc: "select_start".}: int32
  select_end* {...}{.importc: "select_end".}: int32
  insert_mode* {...}{.importc: "insert_mode".}: cuchar
  row_count_per_page* {...}{.importc: "row_count_per_page".}: int32
  cursor_at_end_of_line* {...}{.importc: "cursor_at_end_of_line".}: cuchar
  initialized* {...}{.importc: "initialized".}: cuchar
  has_preferred_x* {...}{.importc: "has_preferred_x".}: cuchar
  single_line* {...}{.importc: "single_line".}: cuchar
  padding1* {...}{.importc: "padding1".}: cuchar
  padding2* {...}{.importc: "padding2".}: cuchar
  padding3* {...}{.importc: "padding3".}: cuchar
  preferred_x* {...}{.importc: "preferred_x".}: float32
  undostate* {...}{.importc: "undostate".}: StbUndoState
StbTexteditRow {...}{.importc: "StbTexteditRow", header: "cimgui.h".} = object
  x0* {...}{.importc: "x0".}: float32
  x1* {...}{.importc: "x1".}: float32
  baseline_y_delta* {...}{.importc: "baseline_y_delta".}: float32
  ymin* {...}{.importc: "ymin".}: float32
  ymax* {...}{.importc: "ymax".}: float32
  num_chars* {...}{.importc: "num_chars".}: int32
StbUndoRecord {...}{.importc: "StbUndoRecord", header: "cimgui.h".} = object
  where* {...}{.importc: "where".}: int32
  insert_length* {...}{.importc: "insert_length".}: int32
  delete_length* {...}{.importc: "delete_length".}: int32
  char_storage* {...}{.importc: "char_storage".}: int32
StbUndoState {...}{.importc: "StbUndoState", header: "cimgui.h".} = object
  undo_rec* {...}{.importc: "undo_rec".}: array[99, StbUndoRecord]
  undo_char* {...}{.importc: "undo_char".}: array[999, ImWchar]
  undo_point* {...}{.importc: "undo_point".}: int16
  redo_point* {...}{.importc: "redo_point".}: int16
  undo_char_point* {...}{.importc: "undo_char_point".}: int32
  redo_char_point* {...}{.importc: "redo_char_point".}: int32

Consts

imguiDll = "cimgui.so"

Procs

proc clearAllBits(self: ptr uint32): void {...}{.importc: "ImBitArray_ClearAllBits",
    cdecl, discardable.}
proc clearBit(self: ptr uint32; n: int32): void {...}{.
    importc: "ImBitArray_ClearBit", cdecl, discardable.}
proc newImBitArray(): void {...}{.importc: "ImBitArray_ImBitArray", cdecl,
                             discardable.}
proc setAllBits(self: ptr uint32): void {...}{.importc: "ImBitArray_SetAllBits",
    cdecl, discardable.}
proc setBit(self: ptr uint32; n: int32): void {...}{.importc: "ImBitArray_SetBit",
    cdecl, discardable.}
proc setBitRange(self: ptr uint32; n: int32; n2: int32): void {...}{.
    importc: "ImBitArray_SetBitRange", cdecl, discardable.}
proc testBit(self: ptr uint32; n: int32): bool {...}{.importc: "ImBitArray_TestBit",
    cdecl, discardable.}
proc destroy(self: ptr uint32): void {...}{.importc: "ImBitArray_destroy", cdecl,
                                       discardable.}
proc clear(self: ptr ImBitVector): void {...}{.importc: "ImBitVector_Clear", cdecl,
    discardable.}
proc clearBit(self: ptr ImBitVector; n: int32): void {...}{.
    importc: "ImBitVector_ClearBit", cdecl, discardable.}
proc create(self: ptr ImBitVector; sz: int32): void {...}{.
    importc: "ImBitVector_Create", cdecl, discardable.}
proc setBit(self: ptr ImBitVector; n: int32): void {...}{.
    importc: "ImBitVector_SetBit", cdecl, discardable.}
proc testBit(self: ptr ImBitVector; n: int32): bool {...}{.
    importc: "ImBitVector_TestBit", cdecl, discardable.}
proc alloc_chunk[T](self: ptr ImChunkStream; sz: uint): ptr T {...}{.
    importc: "ImChunkStream_alloc_chunk", cdecl, discardable.}
proc begin[T](self: ptr ImChunkStream): ptr T {...}{.importc: "ImChunkStream_begin",
    cdecl, discardable.}
proc chunk_size[T](self: ptr ImChunkStream; p: ptr T): int32 {...}{.
    importc: "ImChunkStream_chunk_size", cdecl, discardable.}
proc clear(self: ptr ImChunkStream): void {...}{.importc: "ImChunkStream_clear",
    cdecl, discardable.}
proc empty(self: ptr ImChunkStream): bool {...}{.importc: "ImChunkStream_empty",
    cdecl, discardable.}
proc `end`[T](self: ptr ImChunkStream): ptr T {...}{.importc: "ImChunkStream_end",
    cdecl, discardable.}
proc next_chunk[T](self: ptr ImChunkStream; p: ptr T): ptr T {...}{.
    importc: "ImChunkStream_next_chunk", cdecl, discardable.}
proc offset_from_ptr[T](self: ptr ImChunkStream; p: ptr T): int32 {...}{.
    importc: "ImChunkStream_offset_from_ptr", cdecl, discardable.}
proc ptr_from_offset[T](self: ptr ImChunkStream; off: int32): ptr T {...}{.
    importc: "ImChunkStream_ptr_from_offset", cdecl, discardable.}
proc size(self: ptr ImChunkStream): int32 {...}{.importc: "ImChunkStream_size",
    cdecl, discardable.}
proc swap(self: ptr ImChunkStream; rhs: ptr ImChunkStream): void {...}{.
    importc: "ImChunkStream_swap", cdecl, discardable.}
proc hSVNonUDT(pOut: ptr ImColor; h: float32; s: float32; v: float32;
               a: float32 = 1.0'f32): void {...}{.importc: "ImColor_HSV", cdecl,
    discardable.}
proc newImColor(): void {...}{.importc: "ImColor_ImColorNil", cdecl, discardable.}
proc newImColor(r: int32; g: int32; b: int32; a: int32 = 255): void {...}{.
    importc: "ImColor_ImColorInt", cdecl, discardable.}
proc newImColor(rgba: uint32): void {...}{.importc: "ImColor_ImColorU32", cdecl,
                                      discardable.}
proc newImColor(r: float32; g: float32; b: float32; a: float32 = 1.0'f32): void {...}{.
    importc: "ImColor_ImColorFloat", cdecl, discardable.}
proc newImColor(col: ImVec4): void {...}{.importc: "ImColor_ImColorVec4", cdecl,
                                     discardable.}
proc setHSV(self: ptr ImColor; h: float32; s: float32; v: float32;
            a: float32 = 1.0'f32): void {...}{.importc: "ImColor_SetHSV", cdecl,
    discardable.}
proc destroy(self: ptr ImColor): void {...}{.importc: "ImColor_destroy", cdecl,
                                        discardable.}
proc newImDrawCmd(): void {...}{.importc: "ImDrawCmd_ImDrawCmd", cdecl, discardable.}
proc destroy(self: ptr ImDrawCmd): void {...}{.importc: "ImDrawCmd_destroy", cdecl,
    discardable.}
proc clear(self: ptr ImDrawDataBuilder): void {...}{.
    importc: "ImDrawDataBuilder_Clear", cdecl, discardable.}
proc clearFreeMemory(self: ptr ImDrawDataBuilder): void {...}{.
    importc: "ImDrawDataBuilder_ClearFreeMemory", cdecl, discardable.}
proc flattenIntoSingleLayer(self: ptr ImDrawDataBuilder): void {...}{.
    importc: "ImDrawDataBuilder_FlattenIntoSingleLayer", cdecl, discardable.}
proc getDrawListCount(self: ptr ImDrawDataBuilder): int32 {...}{.
    importc: "ImDrawDataBuilder_GetDrawListCount", cdecl, discardable.}
proc clear(self: ptr ImDrawData): void {...}{.importc: "ImDrawData_Clear", cdecl,
    discardable.}
proc deIndexAllBuffers(self: ptr ImDrawData): void {...}{.
    importc: "ImDrawData_DeIndexAllBuffers", cdecl, discardable.}
proc newImDrawData(): void {...}{.importc: "ImDrawData_ImDrawData", cdecl,
                             discardable.}
proc scaleClipRects(self: ptr ImDrawData; fb_scale: ImVec2): void {...}{.
    importc: "ImDrawData_ScaleClipRects", cdecl, discardable.}
proc destroy(self: ptr ImDrawData): void {...}{.importc: "ImDrawData_destroy", cdecl,
    discardable.}
proc newImDrawListSharedData(): void {...}{.importc: "ImDrawListSharedData_ImDrawListSharedData",
                                       cdecl, discardable.}
proc setCircleSegmentMaxError(self: ptr ImDrawListSharedData; max_error: float32): void {...}{.
    importc: "ImDrawListSharedData_SetCircleSegmentMaxError", cdecl, discardable.}
proc destroy(self: ptr ImDrawListSharedData): void {...}{.
    importc: "ImDrawListSharedData_destroy", cdecl, discardable.}
proc clear(self: ptr ImDrawListSplitter): void {...}{.
    importc: "ImDrawListSplitter_Clear", cdecl, discardable.}
proc clearFreeMemory(self: ptr ImDrawListSplitter): void {...}{.
    importc: "ImDrawListSplitter_ClearFreeMemory", cdecl, discardable.}
proc newImDrawListSplitter(): void {...}{.importc: "ImDrawListSplitter_ImDrawListSplitter",
                                     cdecl, discardable.}
proc merge(self: ptr ImDrawListSplitter; draw_list: ptr ImDrawList): void {...}{.
    importc: "ImDrawListSplitter_Merge", cdecl, discardable.}
proc setCurrentChannel(self: ptr ImDrawListSplitter; draw_list: ptr ImDrawList;
                       channel_idx: int32): void {...}{.
    importc: "ImDrawListSplitter_SetCurrentChannel", cdecl, discardable.}
proc split(self: ptr ImDrawListSplitter; draw_list: ptr ImDrawList; count: int32): void {...}{.
    importc: "ImDrawListSplitter_Split", cdecl, discardable.}
proc destroy(self: ptr ImDrawListSplitter): void {...}{.
    importc: "ImDrawListSplitter_destroy", cdecl, discardable.}
proc addBezierCubic(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2;
                    p4: ImVec2; col: uint32; thickness: float32;
                    num_segments: int32 = 0): void {...}{.
    importc: "ImDrawList_AddBezierCubic", cdecl, discardable.}
proc addBezierQuadratic(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2;
                        p3: ImVec2; col: uint32; thickness: float32;
                        num_segments: int32 = 0): void {...}{.
    importc: "ImDrawList_AddBezierQuadratic", cdecl, discardable.}
proc addCallback(self: ptr ImDrawList; callback: ImDrawCallback;
                 callback_data: pointer): void {...}{.
    importc: "ImDrawList_AddCallback", cdecl, discardable.}
proc addCircle(self: ptr ImDrawList; center: ImVec2; radius: float32;
               col: uint32; num_segments: int32 = 0;
               thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddCircle", cdecl, discardable.}
proc addCircleFilled(self: ptr ImDrawList; center: ImVec2; radius: float32;
                     col: uint32; num_segments: int32 = 0): void {...}{.
    importc: "ImDrawList_AddCircleFilled", cdecl, discardable.}
proc addConvexPolyFilled(self: ptr ImDrawList; points: ptr ImVec2;
                         num_points: int32; col: uint32): void {...}{.
    importc: "ImDrawList_AddConvexPolyFilled", cdecl, discardable.}
proc addDrawCmd(self: ptr ImDrawList): void {...}{.importc: "ImDrawList_AddDrawCmd",
    cdecl, discardable.}
proc addImage(self: ptr ImDrawList; user_texture_id: ImTextureID; p_min: ImVec2;
              p_max: ImVec2; uv_min: ImVec2 = ImVec2(x: 0, y: 0);
              uv_max: ImVec2 = ImVec2(x: 1, y: 1); col: uint32 = high(uint32)): void {...}{.
    importc: "ImDrawList_AddImage", cdecl, discardable.}
proc addImageQuad(self: ptr ImDrawList; user_texture_id: ImTextureID;
                  p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2;
                  uv1: ImVec2 = ImVec2(x: 0, y: 0);
                  uv2: ImVec2 = ImVec2(x: 1, y: 0);
                  uv3: ImVec2 = ImVec2(x: 1, y: 1);
                  uv4: ImVec2 = ImVec2(x: 0, y: 1); col: uint32 = high(uint32)): void {...}{.
    importc: "ImDrawList_AddImageQuad", cdecl, discardable.}
proc addImageRounded(self: ptr ImDrawList; user_texture_id: ImTextureID;
                     p_min: ImVec2; p_max: ImVec2; uv_min: ImVec2;
                     uv_max: ImVec2; col: uint32; rounding: float32;
    rounding_corners: ImDrawCornerFlags = ImDrawCornerFlags.All): void {...}{.
    importc: "ImDrawList_AddImageRounded", cdecl, discardable.}
proc addLine(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; col: uint32;
             thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddLine", cdecl, discardable.}
proc addNgon(self: ptr ImDrawList; center: ImVec2; radius: float32; col: uint32;
             num_segments: int32; thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddNgon", cdecl, discardable.}
proc addNgonFilled(self: ptr ImDrawList; center: ImVec2; radius: float32;
                   col: uint32; num_segments: int32): void {...}{.
    importc: "ImDrawList_AddNgonFilled", cdecl, discardable.}
proc addPolyline(self: ptr ImDrawList; points: ptr ImVec2; num_points: int32;
                 col: uint32; closed: bool; thickness: float32): void {...}{.
    importc: "ImDrawList_AddPolyline", cdecl, discardable.}
proc addQuad(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2;
             p4: ImVec2; col: uint32; thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddQuad", cdecl, discardable.}
proc addQuadFilled(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2;
                   p4: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_AddQuadFilled", cdecl, discardable.}
proc addRect(self: ptr ImDrawList; p_min: ImVec2; p_max: ImVec2; col: uint32;
             rounding: float32 = 0.0'f32;
             rounding_corners: ImDrawCornerFlags = ImDrawCornerFlags.All;
             thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddRect", cdecl, discardable.}
proc addRectFilled(self: ptr ImDrawList; p_min: ImVec2; p_max: ImVec2;
                   col: uint32; rounding: float32 = 0.0'f32;
                   rounding_corners: ImDrawCornerFlags = ImDrawCornerFlags.All): void {...}{.
    importc: "ImDrawList_AddRectFilled", cdecl, discardable.}
proc addRectFilledMultiColor(self: ptr ImDrawList; p_min: ImVec2; p_max: ImVec2;
                             col_upr_left: uint32; col_upr_right: uint32;
                             col_bot_right: uint32; col_bot_left: uint32): void {...}{.
    importc: "ImDrawList_AddRectFilledMultiColor", cdecl, discardable.}
proc addText(self: ptr ImDrawList; pos: ImVec2; col: uint32;
             text_begin: cstring; text_end: cstring = nil): void {...}{.
    importc: "ImDrawList_AddTextVec2", cdecl, discardable.}
proc addText(self: ptr ImDrawList; font: ptr ImFont; font_size: float32;
             pos: ImVec2; col: uint32; text_begin: cstring;
             text_end: cstring = nil; wrap_width: float32 = 0.0'f32;
             cpu_fine_clip_rect: ptr ImVec4 = nil): void {...}{.
    importc: "ImDrawList_AddTextFontPtr", cdecl, discardable.}
proc addTriangle(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2;
                 col: uint32; thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_AddTriangle", cdecl, discardable.}
proc addTriangleFilled(self: ptr ImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2;
                       col: uint32): void {...}{.
    importc: "ImDrawList_AddTriangleFilled", cdecl, discardable.}
proc channelsMerge(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_ChannelsMerge", cdecl, discardable.}
proc channelsSetCurrent(self: ptr ImDrawList; n: int32): void {...}{.
    importc: "ImDrawList_ChannelsSetCurrent", cdecl, discardable.}
proc channelsSplit(self: ptr ImDrawList; count: int32): void {...}{.
    importc: "ImDrawList_ChannelsSplit", cdecl, discardable.}
proc cloneOutput(self: ptr ImDrawList): ptr ImDrawList {...}{.
    importc: "ImDrawList_CloneOutput", cdecl, discardable.}
proc getClipRectMaxNonUDT(pOut: ptr ImVec2; self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_GetClipRectMax", cdecl, discardable.}
proc getClipRectMinNonUDT(pOut: ptr ImVec2; self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_GetClipRectMin", cdecl, discardable.}
proc newImDrawList(shared_data: ptr ImDrawListSharedData): void {...}{.
    importc: "ImDrawList_ImDrawList", cdecl, discardable.}
proc pathArcTo(self: ptr ImDrawList; center: ImVec2; radius: float32;
               a_min: float32; a_max: float32; num_segments: int32 = 10): void {...}{.
    importc: "ImDrawList_PathArcTo", cdecl, discardable.}
proc pathArcToFast(self: ptr ImDrawList; center: ImVec2; radius: float32;
                   a_min_of_12: int32; a_max_of_12: int32): void {...}{.
    importc: "ImDrawList_PathArcToFast", cdecl, discardable.}
proc pathBezierCubicCurveTo(self: ptr ImDrawList; p2: ImVec2; p3: ImVec2;
                            p4: ImVec2; num_segments: int32 = 0): void {...}{.
    importc: "ImDrawList_PathBezierCubicCurveTo", cdecl, discardable.}
proc pathBezierQuadraticCurveTo(self: ptr ImDrawList; p2: ImVec2; p3: ImVec2;
                                num_segments: int32 = 0): void {...}{.
    importc: "ImDrawList_PathBezierQuadraticCurveTo", cdecl, discardable.}
proc pathClear(self: ptr ImDrawList): void {...}{.importc: "ImDrawList_PathClear",
    cdecl, discardable.}
proc pathFillConvex(self: ptr ImDrawList; col: uint32): void {...}{.
    importc: "ImDrawList_PathFillConvex", cdecl, discardable.}
proc pathLineTo(self: ptr ImDrawList; pos: ImVec2): void {...}{.
    importc: "ImDrawList_PathLineTo", cdecl, discardable.}
proc pathLineToMergeDuplicate(self: ptr ImDrawList; pos: ImVec2): void {...}{.
    importc: "ImDrawList_PathLineToMergeDuplicate", cdecl, discardable.}
proc pathRect(self: ptr ImDrawList; rect_min: ImVec2; rect_max: ImVec2;
              rounding: float32 = 0.0'f32;
              rounding_corners: ImDrawCornerFlags = ImDrawCornerFlags.All): void {...}{.
    importc: "ImDrawList_PathRect", cdecl, discardable.}
proc pathStroke(self: ptr ImDrawList; col: uint32; closed: bool;
                thickness: float32 = 1.0'f32): void {...}{.
    importc: "ImDrawList_PathStroke", cdecl, discardable.}
proc popClipRect(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_PopClipRect", cdecl, discardable.}
proc popTextureID(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_PopTextureID", cdecl, discardable.}
proc primQuadUV(self: ptr ImDrawList; a: ImVec2; b: ImVec2; c: ImVec2;
                d: ImVec2; uv_a: ImVec2; uv_b: ImVec2; uv_c: ImVec2;
                uv_d: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_PrimQuadUV", cdecl, discardable.}
proc primRect(self: ptr ImDrawList; a: ImVec2; b: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_PrimRect", cdecl, discardable.}
proc primRectUV(self: ptr ImDrawList; a: ImVec2; b: ImVec2; uv_a: ImVec2;
                uv_b: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_PrimRectUV", cdecl, discardable.}
proc primReserve(self: ptr ImDrawList; idx_count: int32; vtx_count: int32): void {...}{.
    importc: "ImDrawList_PrimReserve", cdecl, discardable.}
proc primUnreserve(self: ptr ImDrawList; idx_count: int32; vtx_count: int32): void {...}{.
    importc: "ImDrawList_PrimUnreserve", cdecl, discardable.}
proc primVtx(self: ptr ImDrawList; pos: ImVec2; uv: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_PrimVtx", cdecl, discardable.}
proc primWriteIdx(self: ptr ImDrawList; idx: ImDrawIdx): void {...}{.
    importc: "ImDrawList_PrimWriteIdx", cdecl, discardable.}
proc primWriteVtx(self: ptr ImDrawList; pos: ImVec2; uv: ImVec2; col: uint32): void {...}{.
    importc: "ImDrawList_PrimWriteVtx", cdecl, discardable.}
proc pushClipRect(self: ptr ImDrawList; clip_rect_min: ImVec2;
                  clip_rect_max: ImVec2;
                  intersect_with_current_clip_rect: bool = false): void {...}{.
    importc: "ImDrawList_PushClipRect", cdecl, discardable.}
proc pushClipRectFullScreen(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList_PushClipRectFullScreen", cdecl, discardable.}
proc pushTextureID(self: ptr ImDrawList; texture_id: ImTextureID): void {...}{.
    importc: "ImDrawList_PushTextureID", cdecl, discardable.}
proc ClearFreeMemory(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__ClearFreeMemory", cdecl, discardable.}
proc OnChangedClipRect(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__OnChangedClipRect", cdecl, discardable.}
proc OnChangedTextureID(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__OnChangedTextureID", cdecl, discardable.}
proc OnChangedVtxOffset(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__OnChangedVtxOffset", cdecl, discardable.}
proc PopUnusedDrawCmd(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__PopUnusedDrawCmd", cdecl, discardable.}
proc ResetForNewFrame(self: ptr ImDrawList): void {...}{.
    importc: "ImDrawList__ResetForNewFrame", cdecl, discardable.}
proc destroy(self: ptr ImDrawList): void {...}{.importc: "ImDrawList_destroy", cdecl,
    discardable.}
proc newImFontAtlasCustomRect(): void {...}{.importc: "ImFontAtlasCustomRect_ImFontAtlasCustomRect",
                                        cdecl, discardable.}
proc isPacked(self: ptr ImFontAtlasCustomRect): bool {...}{.
    importc: "ImFontAtlasCustomRect_IsPacked", cdecl, discardable.}
proc destroy(self: ptr ImFontAtlasCustomRect): void {...}{.
    importc: "ImFontAtlasCustomRect_destroy", cdecl, discardable.}
proc addCustomRectFontGlyph(self: ptr ImFontAtlas; font: ptr ImFont;
                            id: ImWchar; width: int32; height: int32;
                            advance_x: float32;
                            offset: ImVec2 = ImVec2(x: 0, y: 0)): int32 {...}{.
    importc: "ImFontAtlas_AddCustomRectFontGlyph", cdecl, discardable.}
proc addCustomRectRegular(self: ptr ImFontAtlas; width: int32; height: int32): int32 {...}{.
    importc: "ImFontAtlas_AddCustomRectRegular", cdecl, discardable.}
proc addFont(self: ptr ImFontAtlas; font_cfg: ptr ImFontConfig): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFont", cdecl, discardable.}
proc addFontDefault(self: ptr ImFontAtlas; font_cfg: ptr ImFontConfig = nil): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFontDefault", cdecl, discardable.}
proc addFontFromFileTTF(self: ptr ImFontAtlas; filename: cstring;
                        size_pixels: float32; font_cfg: ptr ImFontConfig = nil;
                        glyph_ranges: ptr ImWchar = nil): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFontFromFileTTF", cdecl, discardable.}
proc addFontFromMemoryCompressedBase85TTF(self: ptr ImFontAtlas;
    compressed_font_data_base85: cstring; size_pixels: float32;
    font_cfg: ptr ImFontConfig = nil; glyph_ranges: ptr ImWchar = nil): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF", cdecl,
    discardable.}
proc addFontFromMemoryCompressedTTF(self: ptr ImFontAtlas;
                                    compressed_font_data: pointer;
                                    compressed_font_size: int32;
                                    size_pixels: float32;
                                    font_cfg: ptr ImFontConfig = nil;
                                    glyph_ranges: ptr ImWchar = nil): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFontFromMemoryCompressedTTF", cdecl, discardable.}
proc addFontFromMemoryTTF(self: ptr ImFontAtlas; font_data: pointer;
                          font_size: int32; size_pixels: float32;
                          font_cfg: ptr ImFontConfig = nil;
                          glyph_ranges: ptr ImWchar = nil): ptr ImFont {...}{.
    importc: "ImFontAtlas_AddFontFromMemoryTTF", cdecl, discardable.}
proc build(self: ptr ImFontAtlas): bool {...}{.importc: "ImFontAtlas_Build", cdecl,
    discardable.}
proc calcCustomRectUV(self: ptr ImFontAtlas; rect: ptr ImFontAtlasCustomRect;
                      out_uv_min: ptr ImVec2; out_uv_max: ptr ImVec2): void {...}{.
    importc: "ImFontAtlas_CalcCustomRectUV", cdecl, discardable.}
proc clear(self: ptr ImFontAtlas): void {...}{.importc: "ImFontAtlas_Clear", cdecl,
    discardable.}
proc clearFonts(self: ptr ImFontAtlas): void {...}{.
    importc: "ImFontAtlas_ClearFonts", cdecl, discardable.}
proc clearInputData(self: ptr ImFontAtlas): void {...}{.
    importc: "ImFontAtlas_ClearInputData", cdecl, discardable.}
proc clearTexData(self: ptr ImFontAtlas): void {...}{.
    importc: "ImFontAtlas_ClearTexData", cdecl, discardable.}
proc getCustomRectByIndex(self: ptr ImFontAtlas; index: int32): ptr ImFontAtlasCustomRect {...}{.
    importc: "ImFontAtlas_GetCustomRectByIndex", cdecl, discardable.}
proc getGlyphRangesChineseFull(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesChineseFull", cdecl, discardable.}
proc getGlyphRangesChineseSimplifiedCommon(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", cdecl,
    discardable.}
proc getGlyphRangesCyrillic(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesCyrillic", cdecl, discardable.}
proc getGlyphRangesDefault(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesDefault", cdecl, discardable.}
proc getGlyphRangesJapanese(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesJapanese", cdecl, discardable.}
proc getGlyphRangesKorean(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesKorean", cdecl, discardable.}
proc getGlyphRangesThai(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesThai", cdecl, discardable.}
proc getGlyphRangesVietnamese(self: ptr ImFontAtlas): ptr ImWchar {...}{.
    importc: "ImFontAtlas_GetGlyphRangesVietnamese", cdecl, discardable.}
proc getMouseCursorTexData(self: ptr ImFontAtlas; cursor: ImGuiMouseCursor;
                           out_offset: ptr ImVec2; out_size: ptr ImVec2;
                           out_uv_border: var array[2, ImVec2];
                           out_uv_fill: var array[2, ImVec2]): bool {...}{.
    importc: "ImFontAtlas_GetMouseCursorTexData", cdecl, discardable.}
proc getTexDataAsAlpha8(self: ptr ImFontAtlas; out_pixels: ptr ptr cuchar;
                        out_width: ptr int32; out_height: ptr int32;
                        out_bytes_per_pixel: ptr int32 = nil): void {...}{.
    importc: "ImFontAtlas_GetTexDataAsAlpha8", cdecl, discardable.}
proc getTexDataAsRGBA32(self: ptr ImFontAtlas; out_pixels: ptr ptr cuchar;
                        out_width: ptr int32; out_height: ptr int32;
                        out_bytes_per_pixel: ptr int32 = nil): void {...}{.
    importc: "ImFontAtlas_GetTexDataAsRGBA32", cdecl, discardable.}
proc newImFontAtlas(): void {...}{.importc: "ImFontAtlas_ImFontAtlas", cdecl,
                              discardable.}
proc isBuilt(self: ptr ImFontAtlas): bool {...}{.importc: "ImFontAtlas_IsBuilt",
    cdecl, discardable.}
proc setTexID(self: ptr ImFontAtlas; id: ImTextureID): void {...}{.
    importc: "ImFontAtlas_SetTexID", cdecl, discardable.}
proc destroy(self: ptr ImFontAtlas): void {...}{.importc: "ImFontAtlas_destroy",
    cdecl, discardable.}
proc newImFontConfig(): void {...}{.importc: "ImFontConfig_ImFontConfig", cdecl,
                               discardable.}
proc destroy(self: ptr ImFontConfig): void {...}{.importc: "ImFontConfig_destroy",
    cdecl, discardable.}
proc addChar(self: ptr ImFontGlyphRangesBuilder; c: ImWchar): void {...}{.
    importc: "ImFontGlyphRangesBuilder_AddChar", cdecl, discardable.}
proc addRanges(self: ptr ImFontGlyphRangesBuilder; ranges: ptr ImWchar): void {...}{.
    importc: "ImFontGlyphRangesBuilder_AddRanges", cdecl, discardable.}
proc addText(self: ptr ImFontGlyphRangesBuilder; text: cstring;
             text_end: cstring = nil): void {...}{.
    importc: "ImFontGlyphRangesBuilder_AddText", cdecl, discardable.}
proc buildRanges(self: ptr ImFontGlyphRangesBuilder;
                 out_ranges: ptr ImVector[ImWchar]): void {...}{.
    importc: "ImFontGlyphRangesBuilder_BuildRanges", cdecl, discardable.}
proc clear(self: ptr ImFontGlyphRangesBuilder): void {...}{.
    importc: "ImFontGlyphRangesBuilder_Clear", cdecl, discardable.}
proc getBit(self: ptr ImFontGlyphRangesBuilder; n: uint): bool {...}{.
    importc: "ImFontGlyphRangesBuilder_GetBit", cdecl, discardable.}
proc newImFontGlyphRangesBuilder(): void {...}{.
    importc: "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder", cdecl,
    discardable.}
proc setBit(self: ptr ImFontGlyphRangesBuilder; n: uint): void {...}{.
    importc: "ImFontGlyphRangesBuilder_SetBit", cdecl, discardable.}
proc destroy(self: ptr ImFontGlyphRangesBuilder): void {...}{.
    importc: "ImFontGlyphRangesBuilder_destroy", cdecl, discardable.}
proc addGlyph(self: ptr ImFont; src_cfg: ptr ImFontConfig; c: ImWchar;
              x0: float32; y0: float32; x1: float32; y1: float32; u0: float32;
              v0: float32; u1: float32; v1: float32; advance_x: float32): void {...}{.
    importc: "ImFont_AddGlyph", cdecl, discardable.}
proc addRemapChar(self: ptr ImFont; dst: ImWchar; src: ImWchar;
                  overwrite_dst: bool = true): void {...}{.
    importc: "ImFont_AddRemapChar", cdecl, discardable.}
proc buildLookupTable(self: ptr ImFont): void {...}{.
    importc: "ImFont_BuildLookupTable", cdecl, discardable.}
proc calcTextSizeANonUDT(pOut: ptr ImVec2; self: ptr ImFont; size: float32;
                         max_width: float32; wrap_width: float32;
                         text_begin: cstring; text_end: cstring = nil;
                         remaining: ptr cstring = nil): void {...}{.
    importc: "ImFont_CalcTextSizeA", cdecl, discardable.}
proc calcWordWrapPositionA(self: ptr ImFont; scale: float32; text: cstring;
                           text_end: cstring; wrap_width: float32): cstring {...}{.
    importc: "ImFont_CalcWordWrapPositionA", cdecl, discardable.}
proc clearOutputData(self: ptr ImFont): void {...}{.
    importc: "ImFont_ClearOutputData", cdecl, discardable.}
proc findGlyph(self: ptr ImFont; c: ImWchar): ptr ImFontGlyph {...}{.
    importc: "ImFont_FindGlyph", cdecl, discardable.}
proc findGlyphNoFallback(self: ptr ImFont; c: ImWchar): ptr ImFontGlyph {...}{.
    importc: "ImFont_FindGlyphNoFallback", cdecl, discardable.}
proc getCharAdvance(self: ptr ImFont; c: ImWchar): float32 {...}{.
    importc: "ImFont_GetCharAdvance", cdecl, discardable.}
proc getDebugName(self: ptr ImFont): cstring {...}{.importc: "ImFont_GetDebugName",
    cdecl, discardable.}
proc growIndex(self: ptr ImFont; new_size: int32): void {...}{.
    importc: "ImFont_GrowIndex", cdecl, discardable.}
proc newImFont(): void {...}{.importc: "ImFont_ImFont", cdecl, discardable.}
proc isGlyphRangeUnused(self: ptr ImFont; c_begin: uint32; c_last: uint32): bool {...}{.
    importc: "ImFont_IsGlyphRangeUnused", cdecl, discardable.}
proc isLoaded(self: ptr ImFont): bool {...}{.importc: "ImFont_IsLoaded", cdecl,
                                        discardable.}
proc renderChar(self: ptr ImFont; draw_list: ptr ImDrawList; size: float32;
                pos: ImVec2; col: uint32; c: ImWchar): void {...}{.
    importc: "ImFont_RenderChar", cdecl, discardable.}
proc renderText(self: ptr ImFont; draw_list: ptr ImDrawList; size: float32;
                pos: ImVec2; col: uint32; clip_rect: ImVec4;
                text_begin: cstring; text_end: cstring;
                wrap_width: float32 = 0.0'f32; cpu_fine_clip: bool = false): void {...}{.
    importc: "ImFont_RenderText", cdecl, discardable.}
proc setFallbackChar(self: ptr ImFont; c: ImWchar): void {...}{.
    importc: "ImFont_SetFallbackChar", cdecl, discardable.}
proc setGlyphVisible(self: ptr ImFont; c: ImWchar; visible: bool): void {...}{.
    importc: "ImFont_SetGlyphVisible", cdecl, discardable.}
proc destroy(self: ptr ImFont): void {...}{.importc: "ImFont_destroy", cdecl,
                                       discardable.}
proc newImGuiContextHook(): void {...}{.importc: "ImGuiContextHook_ImGuiContextHook",
                                   cdecl, discardable.}
proc destroy(self: ptr ImGuiContextHook): void {...}{.
    importc: "ImGuiContextHook_destroy", cdecl, discardable.}
proc newImGuiContext(shared_font_atlas: ptr ImFontAtlas): void {...}{.
    importc: "ImGuiContext_ImGuiContext", cdecl, discardable.}
proc destroy(self: ptr ImGuiContext): void {...}{.importc: "ImGuiContext_destroy",
    cdecl, discardable.}
proc addInputCharacter(self: ptr ImGuiIO; c: uint32): void {...}{.
    importc: "ImGuiIO_AddInputCharacter", cdecl, discardable.}
proc addInputCharacterUTF16(self: ptr ImGuiIO; c: ImWchar16): void {...}{.
    importc: "ImGuiIO_AddInputCharacterUTF16", cdecl, discardable.}
proc addInputCharactersUTF8(self: ptr ImGuiIO; str: cstring): void {...}{.
    importc: "ImGuiIO_AddInputCharactersUTF8", cdecl, discardable.}
proc clearInputCharacters(self: ptr ImGuiIO): void {...}{.
    importc: "ImGuiIO_ClearInputCharacters", cdecl, discardable.}
proc newImGuiIO(): void {...}{.importc: "ImGuiIO_ImGuiIO", cdecl, discardable.}
proc destroy(self: ptr ImGuiIO): void {...}{.importc: "ImGuiIO_destroy", cdecl,
                                        discardable.}
proc clearSelection(self: ptr ImGuiInputTextCallbackData): void {...}{.
    importc: "ImGuiInputTextCallbackData_ClearSelection", cdecl, discardable.}
proc deleteChars(self: ptr ImGuiInputTextCallbackData; pos: int32;
                 bytes_count: int32): void {...}{.
    importc: "ImGuiInputTextCallbackData_DeleteChars", cdecl, discardable.}
proc hasSelection(self: ptr ImGuiInputTextCallbackData): bool {...}{.
    importc: "ImGuiInputTextCallbackData_HasSelection", cdecl, discardable.}
proc newImGuiInputTextCallbackData(): void {...}{.
    importc: "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData", cdecl,
    discardable.}
proc insertChars(self: ptr ImGuiInputTextCallbackData; pos: int32;
                 text: cstring; text_end: cstring = nil): void {...}{.
    importc: "ImGuiInputTextCallbackData_InsertChars", cdecl, discardable.}
proc selectAll(self: ptr ImGuiInputTextCallbackData): void {...}{.
    importc: "ImGuiInputTextCallbackData_SelectAll", cdecl, discardable.}
proc destroy(self: ptr ImGuiInputTextCallbackData): void {...}{.
    importc: "ImGuiInputTextCallbackData_destroy", cdecl, discardable.}
proc clearFreeMemory(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_ClearFreeMemory", cdecl, discardable.}
proc clearSelection(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_ClearSelection", cdecl, discardable.}
proc clearText(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_ClearText", cdecl, discardable.}
proc cursorAnimReset(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_CursorAnimReset", cdecl, discardable.}
proc cursorClamp(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_CursorClamp", cdecl, discardable.}
proc getRedoAvailCount(self: ptr ImGuiInputTextState): int32 {...}{.
    importc: "ImGuiInputTextState_GetRedoAvailCount", cdecl, discardable.}
proc getUndoAvailCount(self: ptr ImGuiInputTextState): int32 {...}{.
    importc: "ImGuiInputTextState_GetUndoAvailCount", cdecl, discardable.}
proc hasSelection(self: ptr ImGuiInputTextState): bool {...}{.
    importc: "ImGuiInputTextState_HasSelection", cdecl, discardable.}
proc newImGuiInputTextState(): void {...}{.importc: "ImGuiInputTextState_ImGuiInputTextState",
                                      cdecl, discardable.}
proc onKeyPressed(self: ptr ImGuiInputTextState; key: int32): void {...}{.
    importc: "ImGuiInputTextState_OnKeyPressed", cdecl, discardable.}
proc selectAll(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_SelectAll", cdecl, discardable.}
proc destroy(self: ptr ImGuiInputTextState): void {...}{.
    importc: "ImGuiInputTextState_destroy", cdecl, discardable.}
proc backup(self: ptr ImGuiLastItemDataBackup): void {...}{.
    importc: "ImGuiLastItemDataBackup_Backup", cdecl, discardable.}
proc newImGuiLastItemDataBackup(): void {...}{.
    importc: "ImGuiLastItemDataBackup_ImGuiLastItemDataBackup", cdecl,
    discardable.}
proc restore(self: ptr ImGuiLastItemDataBackup): void {...}{.
    importc: "ImGuiLastItemDataBackup_Restore", cdecl, discardable.}
proc destroy(self: ptr ImGuiLastItemDataBackup): void {...}{.
    importc: "ImGuiLastItemDataBackup_destroy", cdecl, discardable.}
proc begin(self: ptr ImGuiListClipper; items_count: int32;
           items_height: float32 = -1.0'f32): void {...}{.
    importc: "ImGuiListClipper_Begin", cdecl, discardable.}
proc `end`(self: ptr ImGuiListClipper): void {...}{.importc: "ImGuiListClipper_End",
    cdecl, discardable.}
proc newImGuiListClipper(): void {...}{.importc: "ImGuiListClipper_ImGuiListClipper",
                                   cdecl, discardable.}
proc step(self: ptr ImGuiListClipper): bool {...}{.importc: "ImGuiListClipper_Step",
    cdecl, discardable.}
proc destroy(self: ptr ImGuiListClipper): void {...}{.
    importc: "ImGuiListClipper_destroy", cdecl, discardable.}
proc calcExtraSpace(self: ptr ImGuiMenuColumns; avail_w: float32): float32 {...}{.
    importc: "ImGuiMenuColumns_CalcExtraSpace", cdecl, discardable.}
proc declColumns(self: ptr ImGuiMenuColumns; w0: float32; w1: float32;
                 w2: float32): float32 {...}{.
    importc: "ImGuiMenuColumns_DeclColumns", cdecl, discardable.}
proc newImGuiMenuColumns(): void {...}{.importc: "ImGuiMenuColumns_ImGuiMenuColumns",
                                   cdecl, discardable.}
proc update(self: ptr ImGuiMenuColumns; count: int32; spacing: float32;
            clear: bool): void {...}{.importc: "ImGuiMenuColumns_Update", cdecl,
                                 discardable.}
proc destroy(self: ptr ImGuiMenuColumns): void {...}{.
    importc: "ImGuiMenuColumns_destroy", cdecl, discardable.}
proc newImGuiMetricsConfig(): void {...}{.importc: "ImGuiMetricsConfig_ImGuiMetricsConfig",
                                     cdecl, discardable.}
proc destroy(self: ptr ImGuiMetricsConfig): void {...}{.
    importc: "ImGuiMetricsConfig_destroy", cdecl, discardable.}
proc clear(self: ptr ImGuiNavMoveResult): void {...}{.
    importc: "ImGuiNavMoveResult_Clear", cdecl, discardable.}
proc newImGuiNavMoveResult(): void {...}{.importc: "ImGuiNavMoveResult_ImGuiNavMoveResult",
                                     cdecl, discardable.}
proc destroy(self: ptr ImGuiNavMoveResult): void {...}{.
    importc: "ImGuiNavMoveResult_destroy", cdecl, discardable.}
proc clearFlags(self: ptr ImGuiNextItemData): void {...}{.
    importc: "ImGuiNextItemData_ClearFlags", cdecl, discardable.}
proc newImGuiNextItemData(): void {...}{.importc: "ImGuiNextItemData_ImGuiNextItemData",
                                    cdecl, discardable.}
proc destroy(self: ptr ImGuiNextItemData): void {...}{.
    importc: "ImGuiNextItemData_destroy", cdecl, discardable.}
proc clearFlags(self: ptr ImGuiNextWindowData): void {...}{.
    importc: "ImGuiNextWindowData_ClearFlags", cdecl, discardable.}
proc newImGuiNextWindowData(): void {...}{.importc: "ImGuiNextWindowData_ImGuiNextWindowData",
                                      cdecl, discardable.}
proc destroy(self: ptr ImGuiNextWindowData): void {...}{.
    importc: "ImGuiNextWindowData_destroy", cdecl, discardable.}
proc newImGuiOldColumnData(): void {...}{.importc: "ImGuiOldColumnData_ImGuiOldColumnData",
                                     cdecl, discardable.}
proc destroy(self: ptr ImGuiOldColumnData): void {...}{.
    importc: "ImGuiOldColumnData_destroy", cdecl, discardable.}
proc newImGuiOldColumns(): void {...}{.importc: "ImGuiOldColumns_ImGuiOldColumns",
                                  cdecl, discardable.}
proc destroy(self: ptr ImGuiOldColumns): void {...}{.
    importc: "ImGuiOldColumns_destroy", cdecl, discardable.}
proc newImGuiOnceUponAFrame(): void {...}{.importc: "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame",
                                      cdecl, discardable.}
proc destroy(self: ptr ImGuiOnceUponAFrame): void {...}{.
    importc: "ImGuiOnceUponAFrame_destroy", cdecl, discardable.}
proc clear(self: ptr ImGuiPayload): void {...}{.importc: "ImGuiPayload_Clear", cdecl,
    discardable.}
proc newImGuiPayload(): void {...}{.importc: "ImGuiPayload_ImGuiPayload", cdecl,
                               discardable.}
proc isDataType(self: ptr ImGuiPayload; type: cstring): bool {...}{.
    importc: "ImGuiPayload_IsDataType", cdecl, discardable.}
proc isDelivery(self: ptr ImGuiPayload): bool {...}{.
    importc: "ImGuiPayload_IsDelivery", cdecl, discardable.}
proc isPreview(self: ptr ImGuiPayload): bool {...}{.
    importc: "ImGuiPayload_IsPreview", cdecl, discardable.}
proc destroy(self: ptr ImGuiPayload): void {...}{.importc: "ImGuiPayload_destroy",
    cdecl, discardable.}
proc newImGuiPopupData(): void {...}{.importc: "ImGuiPopupData_ImGuiPopupData",
                                 cdecl, discardable.}
proc destroy(self: ptr ImGuiPopupData): void {...}{.
    importc: "ImGuiPopupData_destroy", cdecl, discardable.}
proc newImGuiPtrOrIndex(ptr: pointer): void {...}{.
    importc: "ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr", cdecl, discardable.}
proc newImGuiPtrOrIndex(index: int32): void {...}{.
    importc: "ImGuiPtrOrIndex_ImGuiPtrOrIndexInt", cdecl, discardable.}
proc destroy(self: ptr ImGuiPtrOrIndex): void {...}{.
    importc: "ImGuiPtrOrIndex_destroy", cdecl, discardable.}
proc newImGuiSettingsHandler(): void {...}{.importc: "ImGuiSettingsHandler_ImGuiSettingsHandler",
                                       cdecl, discardable.}
proc destroy(self: ptr ImGuiSettingsHandler): void {...}{.
    importc: "ImGuiSettingsHandler_destroy", cdecl, discardable.}
proc compareWithCurrentState(self: ptr ImGuiStackSizes): void {...}{.
    importc: "ImGuiStackSizes_CompareWithCurrentState", cdecl, discardable.}
proc newImGuiStackSizes(): void {...}{.importc: "ImGuiStackSizes_ImGuiStackSizes",
                                  cdecl, discardable.}
proc setToCurrentState(self: ptr ImGuiStackSizes): void {...}{.
    importc: "ImGuiStackSizes_SetToCurrentState", cdecl, discardable.}
proc destroy(self: ptr ImGuiStackSizes): void {...}{.
    importc: "ImGuiStackSizes_destroy", cdecl, discardable.}
proc newImGuiStoragePair(key: ImGuiID; val_i: int32): void {...}{.
    importc: "ImGuiStoragePair_ImGuiStoragePairInt", cdecl, discardable.}
proc newImGuiStoragePair(key: ImGuiID; val_f: float32): void {...}{.
    importc: "ImGuiStoragePair_ImGuiStoragePairFloat", cdecl, discardable.}
proc newImGuiStoragePair(key: ImGuiID; val_p: pointer): void {...}{.
    importc: "ImGuiStoragePair_ImGuiStoragePairPtr", cdecl, discardable.}
proc destroy(self: ptr ImGuiStoragePair): void {...}{.
    importc: "ImGuiStoragePair_destroy", cdecl, discardable.}
proc buildSortByKey(self: ptr ImGuiStorage): void {...}{.
    importc: "ImGuiStorage_BuildSortByKey", cdecl, discardable.}
proc clear(self: ptr ImGuiStorage): void {...}{.importc: "ImGuiStorage_Clear", cdecl,
    discardable.}
proc getBool(self: ptr ImGuiStorage; key: ImGuiID; default_val: bool = false): bool {...}{.
    importc: "ImGuiStorage_GetBool", cdecl, discardable.}
proc getBoolRef(self: ptr ImGuiStorage; key: ImGuiID; default_val: bool = false): ptr bool {...}{.
    importc: "ImGuiStorage_GetBoolRef", cdecl, discardable.}
proc getFloat(self: ptr ImGuiStorage; key: ImGuiID;
              default_val: float32 = 0.0'f32): float32 {...}{.
    importc: "ImGuiStorage_GetFloat", cdecl, discardable.}
proc getFloatRef(self: ptr ImGuiStorage; key: ImGuiID;
                 default_val: float32 = 0.0'f32): ptr float32 {...}{.
    importc: "ImGuiStorage_GetFloatRef", cdecl, discardable.}
proc getInt(self: ptr ImGuiStorage; key: ImGuiID; default_val: int32 = 0): int32 {...}{.
    importc: "ImGuiStorage_GetInt", cdecl, discardable.}
proc getIntRef(self: ptr ImGuiStorage; key: ImGuiID; default_val: int32 = 0): ptr int32 {...}{.
    importc: "ImGuiStorage_GetIntRef", cdecl, discardable.}
proc getVoidPtr(self: ptr ImGuiStorage; key: ImGuiID): pointer {...}{.
    importc: "ImGuiStorage_GetVoidPtr", cdecl, discardable.}
proc getVoidPtrRef(self: ptr ImGuiStorage; key: ImGuiID;
                   default_val: pointer = nil): ptr pointer {...}{.
    importc: "ImGuiStorage_GetVoidPtrRef", cdecl, discardable.}
proc setAllInt(self: ptr ImGuiStorage; val: int32): void {...}{.
    importc: "ImGuiStorage_SetAllInt", cdecl, discardable.}
proc setBool(self: ptr ImGuiStorage; key: ImGuiID; val: bool): void {...}{.
    importc: "ImGuiStorage_SetBool", cdecl, discardable.}
proc setFloat(self: ptr ImGuiStorage; key: ImGuiID; val: float32): void {...}{.
    importc: "ImGuiStorage_SetFloat", cdecl, discardable.}
proc setInt(self: ptr ImGuiStorage; key: ImGuiID; val: int32): void {...}{.
    importc: "ImGuiStorage_SetInt", cdecl, discardable.}
proc setVoidPtr(self: ptr ImGuiStorage; key: ImGuiID; val: pointer): void {...}{.
    importc: "ImGuiStorage_SetVoidPtr", cdecl, discardable.}
proc newImGuiStyleMod(idx: ImGuiStyleVar; v: int32): void {...}{.
    importc: "ImGuiStyleMod_ImGuiStyleModInt", cdecl, discardable.}
proc newImGuiStyleMod(idx: ImGuiStyleVar; v: float32): void {...}{.
    importc: "ImGuiStyleMod_ImGuiStyleModFloat", cdecl, discardable.}
proc newImGuiStyleMod(idx: ImGuiStyleVar; v: ImVec2): void {...}{.
    importc: "ImGuiStyleMod_ImGuiStyleModVec2", cdecl, discardable.}
proc destroy(self: ptr ImGuiStyleMod): void {...}{.importc: "ImGuiStyleMod_destroy",
    cdecl, discardable.}
proc newImGuiStyle(): void {...}{.importc: "ImGuiStyle_ImGuiStyle", cdecl,
                             discardable.}
proc scaleAllSizes(self: ptr ImGuiStyle; scale_factor: float32): void {...}{.
    importc: "ImGuiStyle_ScaleAllSizes", cdecl, discardable.}
proc destroy(self: ptr ImGuiStyle): void {...}{.importc: "ImGuiStyle_destroy", cdecl,
    discardable.}
proc getTabName(self: ptr ImGuiTabBar; tab: ptr ImGuiTabItem): cstring {...}{.
    importc: "ImGuiTabBar_GetTabName", cdecl, discardable.}
proc getTabOrder(self: ptr ImGuiTabBar; tab: ptr ImGuiTabItem): int32 {...}{.
    importc: "ImGuiTabBar_GetTabOrder", cdecl, discardable.}
proc newImGuiTabBar(): void {...}{.importc: "ImGuiTabBar_ImGuiTabBar", cdecl,
                              discardable.}
proc destroy(self: ptr ImGuiTabBar): void {...}{.importc: "ImGuiTabBar_destroy",
    cdecl, discardable.}
proc newImGuiTabItem(): void {...}{.importc: "ImGuiTabItem_ImGuiTabItem", cdecl,
                               discardable.}
proc destroy(self: ptr ImGuiTabItem): void {...}{.importc: "ImGuiTabItem_destroy",
    cdecl, discardable.}
proc newImGuiTableColumnSettings(): void {...}{.
    importc: "ImGuiTableColumnSettings_ImGuiTableColumnSettings", cdecl,
    discardable.}
proc destroy(self: ptr ImGuiTableColumnSettings): void {...}{.
    importc: "ImGuiTableColumnSettings_destroy", cdecl, discardable.}
proc newImGuiTableColumnSortSpecs(): void {...}{.
    importc: "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs", cdecl,
    discardable.}
proc destroy(self: ptr ImGuiTableColumnSortSpecs): void {...}{.
    importc: "ImGuiTableColumnSortSpecs_destroy", cdecl, discardable.}
proc newImGuiTableColumn(): void {...}{.importc: "ImGuiTableColumn_ImGuiTableColumn",
                                   cdecl, discardable.}
proc destroy(self: ptr ImGuiTableColumn): void {...}{.
    importc: "ImGuiTableColumn_destroy", cdecl, discardable.}
proc getColumnSettings(self: ptr ImGuiTableSettings): ptr ImGuiTableColumnSettings {...}{.
    importc: "ImGuiTableSettings_GetColumnSettings", cdecl, discardable.}
proc newImGuiTableSettings(): void {...}{.importc: "ImGuiTableSettings_ImGuiTableSettings",
                                     cdecl, discardable.}
proc destroy(self: ptr ImGuiTableSettings): void {...}{.
    importc: "ImGuiTableSettings_destroy", cdecl, discardable.}
proc newImGuiTableSortSpecs(): void {...}{.importc: "ImGuiTableSortSpecs_ImGuiTableSortSpecs",
                                      cdecl, discardable.}
proc destroy(self: ptr ImGuiTableSortSpecs): void {...}{.
    importc: "ImGuiTableSortSpecs_destroy", cdecl, discardable.}
proc newImGuiTable(): void {...}{.importc: "ImGuiTable_ImGuiTable", cdecl,
                             discardable.}
proc destroy(self: ptr ImGuiTable): void {...}{.importc: "ImGuiTable_destroy", cdecl,
    discardable.}
proc newImGuiTextBuffer(): void {...}{.importc: "ImGuiTextBuffer_ImGuiTextBuffer",
                                  cdecl, discardable.}
proc append(self: ptr ImGuiTextBuffer; str: cstring; str_end: cstring = nil): void {...}{.
    importc: "ImGuiTextBuffer_append", cdecl, discardable.}
proc appendf(self: ptr ImGuiTextBuffer; fmt: cstring): void {...}{.
    importc: "ImGuiTextBuffer_appendf", varargs, cdecl, discardable.}
proc appendfv(self: ptr ImGuiTextBuffer; fmt: cstring): void {...}{.
    importc: "ImGuiTextBuffer_appendfv", varargs, cdecl, discardable.}
proc begin(self: ptr ImGuiTextBuffer): cstring {...}{.
    importc: "ImGuiTextBuffer_begin", cdecl, discardable.}
proc c_str(self: ptr ImGuiTextBuffer): cstring {...}{.
    importc: "ImGuiTextBuffer_c_str", cdecl, discardable.}
proc clear(self: ptr ImGuiTextBuffer): void {...}{.importc: "ImGuiTextBuffer_clear",
    cdecl, discardable.}
proc destroy(self: ptr ImGuiTextBuffer): void {...}{.
    importc: "ImGuiTextBuffer_destroy", cdecl, discardable.}
proc empty(self: ptr ImGuiTextBuffer): bool {...}{.importc: "ImGuiTextBuffer_empty",
    cdecl, discardable.}
proc `end`(self: ptr ImGuiTextBuffer): cstring {...}{.importc: "ImGuiTextBuffer_end",
    cdecl, discardable.}
proc reserve(self: ptr ImGuiTextBuffer; capacity: int32): void {...}{.
    importc: "ImGuiTextBuffer_reserve", cdecl, discardable.}
proc size(self: ptr ImGuiTextBuffer): int32 {...}{.importc: "ImGuiTextBuffer_size",
    cdecl, discardable.}
proc build(self: ptr ImGuiTextFilter): void {...}{.importc: "ImGuiTextFilter_Build",
    cdecl, discardable.}
proc clear(self: ptr ImGuiTextFilter): void {...}{.importc: "ImGuiTextFilter_Clear",
    cdecl, discardable.}
proc draw(self: ptr ImGuiTextFilter; label: cstring = "Filter(inc,-exc)";
          width: float32 = 0.0'f32): bool {...}{.importc: "ImGuiTextFilter_Draw",
    cdecl, discardable.}
proc newImGuiTextFilter(default_filter: cstring = ""): void {...}{.
    importc: "ImGuiTextFilter_ImGuiTextFilter", cdecl, discardable.}
proc isActive(self: ptr ImGuiTextFilter): bool {...}{.
    importc: "ImGuiTextFilter_IsActive", cdecl, discardable.}
proc passFilter(self: ptr ImGuiTextFilter; text: cstring;
                text_end: cstring = nil): bool {...}{.
    importc: "ImGuiTextFilter_PassFilter", cdecl, discardable.}
proc destroy(self: ptr ImGuiTextFilter): void {...}{.
    importc: "ImGuiTextFilter_destroy", cdecl, discardable.}
proc newImGuiTextRange(): void {...}{.importc: "ImGuiTextRange_ImGuiTextRangeNil",
                                 cdecl, discardable.}
proc newImGuiTextRange(b: cstring; e: cstring): void {...}{.
    importc: "ImGuiTextRange_ImGuiTextRangeStr", cdecl, discardable.}
proc destroy(self: ptr ImGuiTextRange): void {...}{.
    importc: "ImGuiTextRange_destroy", cdecl, discardable.}
proc empty(self: ptr ImGuiTextRange): bool {...}{.importc: "ImGuiTextRange_empty",
    cdecl, discardable.}
proc split(self: ptr ImGuiTextRange; separator: int8;
           out: ptr ImVector[ImGuiTextRange]): void {...}{.
    importc: "ImGuiTextRange_split", cdecl, discardable.}
proc getMainRectNonUDT(pOut: ptr ImRect; self: ptr ImGuiViewportP): void {...}{.
    importc: "ImGuiViewportP_GetMainRect", cdecl, discardable.}
proc getWorkRectNonUDT(pOut: ptr ImRect; self: ptr ImGuiViewportP): void {...}{.
    importc: "ImGuiViewportP_GetWorkRect", cdecl, discardable.}
proc newImGuiViewportP(): void {...}{.importc: "ImGuiViewportP_ImGuiViewportP",
                                 cdecl, discardable.}
proc updateWorkRect(self: ptr ImGuiViewportP): void {...}{.
    importc: "ImGuiViewportP_UpdateWorkRect", cdecl, discardable.}
proc destroy(self: ptr ImGuiViewportP): void {...}{.
    importc: "ImGuiViewportP_destroy", cdecl, discardable.}
proc getCenterNonUDT(pOut: ptr ImVec2; self: ptr ImGuiViewport): void {...}{.
    importc: "ImGuiViewport_GetCenter", cdecl, discardable.}
proc getWorkCenterNonUDT(pOut: ptr ImVec2; self: ptr ImGuiViewport): void {...}{.
    importc: "ImGuiViewport_GetWorkCenter", cdecl, discardable.}
proc newImGuiViewport(): void {...}{.importc: "ImGuiViewport_ImGuiViewport", cdecl,
                                discardable.}
proc destroy(self: ptr ImGuiViewport): void {...}{.importc: "ImGuiViewport_destroy",
    cdecl, discardable.}
proc getName(self: ptr ImGuiWindowSettings): cstring {...}{.
    importc: "ImGuiWindowSettings_GetName", cdecl, discardable.}
proc newImGuiWindowSettings(): void {...}{.importc: "ImGuiWindowSettings_ImGuiWindowSettings",
                                      cdecl, discardable.}
proc destroy(self: ptr ImGuiWindowSettings): void {...}{.
    importc: "ImGuiWindowSettings_destroy", cdecl, discardable.}
proc calcFontSize(self: ptr ImGuiWindow): float32 {...}{.
    importc: "ImGuiWindow_CalcFontSize", cdecl, discardable.}
proc getID(self: ptr ImGuiWindow; str: cstring; str_end: cstring = nil): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDStr", cdecl, discardable.}
proc getID(self: ptr ImGuiWindow; ptr: pointer): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDPtr", cdecl, discardable.}
proc getID(self: ptr ImGuiWindow; n: int32): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDInt", cdecl, discardable.}
proc getIDFromRectangle(self: ptr ImGuiWindow; r_abs: ImRect): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDFromRectangle", cdecl, discardable.}
proc getIDNoKeepAlive(self: ptr ImGuiWindow; str: cstring;
                      str_end: cstring = nil): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDNoKeepAliveStr", cdecl, discardable.}
proc getIDNoKeepAlive(self: ptr ImGuiWindow; ptr: pointer): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDNoKeepAlivePtr", cdecl, discardable.}
proc getIDNoKeepAlive(self: ptr ImGuiWindow; n: int32): ImGuiID {...}{.
    importc: "ImGuiWindow_GetIDNoKeepAliveInt", cdecl, discardable.}
proc newImGuiWindow(context: ptr ImGuiContext; name: cstring): void {...}{.
    importc: "ImGuiWindow_ImGuiWindow", cdecl, discardable.}
proc menuBarHeight(self: ptr ImGuiWindow): float32 {...}{.
    importc: "ImGuiWindow_MenuBarHeight", cdecl, discardable.}
proc menuBarRectNonUDT(pOut: ptr ImRect; self: ptr ImGuiWindow): void {...}{.
    importc: "ImGuiWindow_MenuBarRect", cdecl, discardable.}
proc rectNonUDT(pOut: ptr ImRect; self: ptr ImGuiWindow): void {...}{.
    importc: "ImGuiWindow_Rect", cdecl, discardable.}
proc titleBarHeight(self: ptr ImGuiWindow): float32 {...}{.
    importc: "ImGuiWindow_TitleBarHeight", cdecl, discardable.}
proc titleBarRectNonUDT(pOut: ptr ImRect; self: ptr ImGuiWindow): void {...}{.
    importc: "ImGuiWindow_TitleBarRect", cdecl, discardable.}
proc destroy(self: ptr ImGuiWindow): void {...}{.importc: "ImGuiWindow_destroy",
    cdecl, discardable.}
proc add[T](self: ptr ImPool): ptr T {...}{.importc: "ImPool_Add", cdecl, discardable.}
proc clear(self: ptr ImPool): void {...}{.importc: "ImPool_Clear", cdecl, discardable.}
proc contains[T](self: ptr ImPool; p: ptr T): bool {...}{.importc: "ImPool_Contains",
    cdecl, discardable.}
proc getByIndex[T](self: ptr ImPool; n: ImPoolIdx): ptr T {...}{.
    importc: "ImPool_GetByIndex", cdecl, discardable.}
proc getByKey[T](self: ptr ImPool; key: ImGuiID): ptr T {...}{.
    importc: "ImPool_GetByKey", cdecl, discardable.}
proc getIndex[T](self: ptr ImPool; p: ptr T): ImPoolIdx {...}{.
    importc: "ImPool_GetIndex", cdecl, discardable.}
proc getOrAddByKey[T](self: ptr ImPool; key: ImGuiID): ptr T {...}{.
    importc: "ImPool_GetOrAddByKey", cdecl, discardable.}
proc getSize(self: ptr ImPool): int32 {...}{.importc: "ImPool_GetSize", cdecl,
                                        discardable.}
proc newImPool(): void {...}{.importc: "ImPool_ImPool", cdecl, discardable.}
proc remove[T](self: ptr ImPool; key: ImGuiID; p: ptr T): void {...}{.
    importc: "ImPool_RemoveTPtr", cdecl, discardable.}
proc remove(self: ptr ImPool; key: ImGuiID; idx: ImPoolIdx): void {...}{.
    importc: "ImPool_RemovePoolIdx", cdecl, discardable.}
proc reserve(self: ptr ImPool; capacity: int32): void {...}{.
    importc: "ImPool_Reserve", cdecl, discardable.}
proc destroy(self: ptr ImPool): void {...}{.importc: "ImPool_destroy", cdecl,
                                       discardable.}
proc add(self: ptr ImRect; p: ImVec2): void {...}{.importc: "ImRect_AddVec2", cdecl,
    discardable.}
proc add(self: ptr ImRect; r: ImRect): void {...}{.importc: "ImRect_AddRect", cdecl,
    discardable.}
proc clipWith(self: ptr ImRect; r: ImRect): void {...}{.importc: "ImRect_ClipWith",
    cdecl, discardable.}
proc clipWithFull(self: ptr ImRect; r: ImRect): void {...}{.
    importc: "ImRect_ClipWithFull", cdecl, discardable.}
proc contains(self: ptr ImRect; p: ImVec2): bool {...}{.
    importc: "ImRect_ContainsVec2", cdecl, discardable.}
proc contains(self: ptr ImRect; r: ImRect): bool {...}{.
    importc: "ImRect_ContainsRect", cdecl, discardable.}
proc expand(self: ptr ImRect; amount: float32): void {...}{.
    importc: "ImRect_ExpandFloat", cdecl, discardable.}
proc expand(self: ptr ImRect; amount: ImVec2): void {...}{.
    importc: "ImRect_ExpandVec2", cdecl, discardable.}
proc floor(self: ptr ImRect): void {...}{.importc: "ImRect_Floor", cdecl, discardable.}
proc getBLNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetBL", cdecl, discardable.}
proc getBRNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetBR", cdecl, discardable.}
proc getCenterNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetCenter", cdecl, discardable.}
proc getHeight(self: ptr ImRect): float32 {...}{.importc: "ImRect_GetHeight", cdecl,
    discardable.}
proc getSizeNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetSize", cdecl, discardable.}
proc getTLNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetTL", cdecl, discardable.}
proc getTRNonUDT(pOut: ptr ImVec2; self: ptr ImRect): void {...}{.
    importc: "ImRect_GetTR", cdecl, discardable.}
proc getWidth(self: ptr ImRect): float32 {...}{.importc: "ImRect_GetWidth", cdecl,
    discardable.}
proc newImRect(): void {...}{.importc: "ImRect_ImRectNil", cdecl, discardable.}
proc newImRect(min: ImVec2; max: ImVec2): void {...}{.importc: "ImRect_ImRectVec2",
    cdecl, discardable.}
proc newImRect(v: ImVec4): void {...}{.importc: "ImRect_ImRectVec4", cdecl,
                                  discardable.}
proc newImRect(x1: float32; y1: float32; x2: float32; y2: float32): void {...}{.
    importc: "ImRect_ImRectFloat", cdecl, discardable.}
proc isInverted(self: ptr ImRect): bool {...}{.importc: "ImRect_IsInverted", cdecl,
    discardable.}
proc overlaps(self: ptr ImRect; r: ImRect): bool {...}{.importc: "ImRect_Overlaps",
    cdecl, discardable.}
proc toVec4NonUDT(pOut: ptr ImVec4; self: ptr ImRect): void {...}{.
    importc: "ImRect_ToVec4", cdecl, discardable.}
proc translate(self: ptr ImRect; d: ImVec2): void {...}{.importc: "ImRect_Translate",
    cdecl, discardable.}
proc translateX(self: ptr ImRect; dx: float32): void {...}{.
    importc: "ImRect_TranslateX", cdecl, discardable.}
proc translateY(self: ptr ImRect; dy: float32): void {...}{.
    importc: "ImRect_TranslateY", cdecl, discardable.}
proc destroy(self: ptr ImRect): void {...}{.importc: "ImRect_destroy", cdecl,
                                       discardable.}
proc getArenaSizeInBytes(self: ptr ImSpanAllocator): int32 {...}{.
    importc: "ImSpanAllocator_GetArenaSizeInBytes", cdecl, discardable.}
proc getSpanPtrBegin(self: ptr ImSpanAllocator; n: int32): pointer {...}{.
    importc: "ImSpanAllocator_GetSpanPtrBegin", cdecl, discardable.}
proc getSpanPtrEnd(self: ptr ImSpanAllocator; n: int32): pointer {...}{.
    importc: "ImSpanAllocator_GetSpanPtrEnd", cdecl, discardable.}
proc newImSpanAllocator(): void {...}{.importc: "ImSpanAllocator_ImSpanAllocator",
                                  cdecl, discardable.}
proc reserveBytes(self: ptr ImSpanAllocator; n: int32; sz: uint): void {...}{.
    importc: "ImSpanAllocator_ReserveBytes", cdecl, discardable.}
proc setArenaBasePtr(self: ptr ImSpanAllocator; base_ptr: pointer): void {...}{.
    importc: "ImSpanAllocator_SetArenaBasePtr", cdecl, discardable.}
proc destroy(self: ptr ImSpanAllocator): void {...}{.
    importc: "ImSpanAllocator_destroy", cdecl, discardable.}
proc newImSpan(): void {...}{.importc: "ImSpan_ImSpanNil", cdecl, discardable.}
proc newImSpan[T](data: ptr T; size: int32): void {...}{.
    importc: "ImSpan_ImSpanTPtrInt", cdecl, discardable.}
proc newImSpan[T](data: ptr T; data_end: ptr T): void {...}{.
    importc: "ImSpan_ImSpanTPtrTPtr", cdecl, discardable.}
proc begin[T](self: ptr ImSpan): ptr T {...}{.importc: "ImSpan_beginNil", cdecl,
    discardable.}
proc destroy(self: ptr ImSpan): void {...}{.importc: "ImSpan_destroy", cdecl,
                                       discardable.}
proc `end`[T](self: ptr ImSpan): ptr T {...}{.importc: "ImSpan_endNil", cdecl,
    discardable.}
proc index_from_ptr[T](self: ptr ImSpan; it: ptr T): int32 {...}{.
    importc: "ImSpan_index_from_ptr", cdecl, discardable.}
proc set[T](self: ptr ImSpan; data: ptr T; size: int32): void {...}{.
    importc: "ImSpan_setInt", cdecl, discardable.}
proc set[T](self: ptr ImSpan; data: ptr T; data_end: ptr T): void {...}{.
    importc: "ImSpan_setTPtr", cdecl, discardable.}
proc size(self: ptr ImSpan): int32 {...}{.importc: "ImSpan_size", cdecl, discardable.}
proc size_in_bytes(self: ptr ImSpan): int32 {...}{.importc: "ImSpan_size_in_bytes",
    cdecl, discardable.}
proc newImVec1(): void {...}{.importc: "ImVec1_ImVec1Nil", cdecl, discardable.}
proc newImVec1(x: float32): void {...}{.importc: "ImVec1_ImVec1Float", cdecl,
                                   discardable.}
proc destroy(self: ptr ImVec1): void {...}{.importc: "ImVec1_destroy", cdecl,
                                       discardable.}
proc newImVec2(): void {...}{.importc: "ImVec2_ImVec2Nil", cdecl, discardable.}
proc newImVec2(x: float32; y: float32): void {...}{.importc: "ImVec2_ImVec2Float",
    cdecl, discardable.}
proc destroy(self: ptr ImVec2): void {...}{.importc: "ImVec2_destroy", cdecl,
                                       discardable.}
proc newImVec2ih(): void {...}{.importc: "ImVec2ih_ImVec2ihNil", cdecl, discardable.}
proc newImVec2ih(x: int16; y: int16): void {...}{.importc: "ImVec2ih_ImVec2ihshort",
    cdecl, discardable.}
proc newImVec2ih(rhs: ImVec2): void {...}{.importc: "ImVec2ih_ImVec2ihVec2", cdecl,
                                      discardable.}
proc destroy(self: ptr ImVec2ih): void {...}{.importc: "ImVec2ih_destroy", cdecl,
    discardable.}
proc newImVec4(): void {...}{.importc: "ImVec4_ImVec4Nil", cdecl, discardable.}
proc newImVec4(x: float32; y: float32; z: float32; w: float32): void {...}{.
    importc: "ImVec4_ImVec4Float", cdecl, discardable.}
proc destroy(self: ptr ImVec4): void {...}{.importc: "ImVec4_destroy", cdecl,
                                       discardable.}
proc grow_capacity(self: ptr ImVector; sz: int32): int32 {...}{.
    importc: "ImVector__grow_capacity", cdecl, discardable.}
proc back[T](self: ptr ImVector): ptr T {...}{.importc: "ImVector_backNil", cdecl,
    discardable.}
proc begin[T](self: ptr ImVector): ptr T {...}{.importc: "ImVector_beginNil", cdecl,
    discardable.}
proc capacity(self: ptr ImVector): int32 {...}{.importc: "ImVector_capacity", cdecl,
    discardable.}
proc clear(self: ptr ImVector): void {...}{.importc: "ImVector_clear", cdecl,
                                       discardable.}
proc contains[T](self: ptr ImVector; v: T): bool {...}{.importc: "ImVector_contains",
    cdecl, discardable.}
proc destroy(self: ptr ImVector): void {...}{.importc: "ImVector_destroy", cdecl,
    discardable.}
proc empty(self: ptr ImVector): bool {...}{.importc: "ImVector_empty", cdecl,
                                       discardable.}
proc `end`[T](self: ptr ImVector): ptr T {...}{.importc: "ImVector_endNil", cdecl,
    discardable.}
proc erase[T](self: ptr ImVector; it: ptr T): ptr T {...}{.
    importc: "ImVector_eraseNil", cdecl, discardable.}
proc erase[T](self: ptr ImVector; it: ptr T; it_last: ptr T): ptr T {...}{.
    importc: "ImVector_eraseTPtr", cdecl, discardable.}
proc erase_unsorted[T](self: ptr ImVector; it: ptr T): ptr T {...}{.
    importc: "ImVector_erase_unsorted", cdecl, discardable.}
proc find[T](self: ptr ImVector; v: T): ptr T {...}{.importc: "ImVector_findNil",
    cdecl, discardable.}
proc find_erase[T](self: ptr ImVector; v: T): bool {...}{.
    importc: "ImVector_find_erase", cdecl, discardable.}
proc find_erase_unsorted[T](self: ptr ImVector; v: T): bool {...}{.
    importc: "ImVector_find_erase_unsorted", cdecl, discardable.}
proc front[T](self: ptr ImVector): ptr T {...}{.importc: "ImVector_frontNil", cdecl,
    discardable.}
proc index_from_ptr[T](self: ptr ImVector; it: ptr T): int32 {...}{.
    importc: "ImVector_index_from_ptr", cdecl, discardable.}
proc insert[T](self: ptr ImVector; it: ptr T; v: T): ptr T {...}{.
    importc: "ImVector_insert", cdecl, discardable.}
proc max_size(self: ptr ImVector): int32 {...}{.importc: "ImVector_max_size", cdecl,
    discardable.}
proc pop_back(self: ptr ImVector): void {...}{.importc: "ImVector_pop_back", cdecl,
    discardable.}
proc push_back[T](self: ptr ImVector; v: T): void {...}{.
    importc: "ImVector_push_back", cdecl, discardable.}
proc push_front[T](self: ptr ImVector; v: T): void {...}{.
    importc: "ImVector_push_front", cdecl, discardable.}
proc reserve(self: ptr ImVector; new_capacity: int32): void {...}{.
    importc: "ImVector_reserve", cdecl, discardable.}
proc resize(self: ptr ImVector; new_size: int32): void {...}{.
    importc: "ImVector_resizeNil", cdecl, discardable.}
proc resize[T](self: ptr ImVector; new_size: int32; v: T): void {...}{.
    importc: "ImVector_resizeT", cdecl, discardable.}
proc shrink(self: ptr ImVector; new_size: int32): void {...}{.
    importc: "ImVector_shrink", cdecl, discardable.}
proc size(self: ptr ImVector): int32 {...}{.importc: "ImVector_size", cdecl,
                                       discardable.}
proc size_in_bytes(self: ptr ImVector): int32 {...}{.
    importc: "ImVector_size_in_bytes", cdecl, discardable.}
proc swap(self: ptr ImVector; rhs: ptr ImVector): void {...}{.
    importc: "ImVector_swap", cdecl, discardable.}
proc igAcceptDragDropPayload(type: cstring;
                             flags: ImGuiDragDropFlags = 0.ImGuiDragDropFlags): ptr ImGuiPayload {...}{.
    importc: "igAcceptDragDropPayload", cdecl, discardable.}
proc igActivateItem(id: ImGuiID): void {...}{.importc: "igActivateItem", cdecl,
    discardable.}
proc igAddContextHook(context: ptr ImGuiContext; hook: ptr ImGuiContextHook): ImGuiID {...}{.
    importc: "igAddContextHook", cdecl, discardable.}
proc igAlignTextToFramePadding(): void {...}{.importc: "igAlignTextToFramePadding",
    cdecl, discardable.}
proc igArrowButton(str_id: cstring; dir: ImGuiDir): bool {...}{.
    importc: "igArrowButton", cdecl, discardable.}
proc igArrowButtonEx(str_id: cstring; dir: ImGuiDir; size_arg: ImVec2;
                     flags: ImGuiButtonFlags = 0.ImGuiButtonFlags): bool {...}{.
    importc: "igArrowButtonEx", cdecl, discardable.}
proc igBegin(name: cstring; p_open: ptr bool = nil;
             flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBegin", cdecl, discardable.}
proc igBeginChild(str_id: cstring; size: ImVec2 = ImVec2(x: 0, y: 0);
                  border: bool = false;
                  flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBeginChildStr", cdecl, discardable.}
proc igBeginChild(id: ImGuiID; size: ImVec2 = ImVec2(x: 0, y: 0);
                  border: bool = false;
                  flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBeginChildID", cdecl, discardable.}
proc igBeginChildEx(name: cstring; id: ImGuiID; size_arg: ImVec2; border: bool;
                    flags: ImGuiWindowFlags): bool {...}{.importc: "igBeginChildEx",
    cdecl, discardable.}
proc igBeginChildFrame(id: ImGuiID; size: ImVec2;
                       flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBeginChildFrame", cdecl, discardable.}
proc igBeginColumns(str_id: cstring; count: int32;
                    flags: ImGuiOldColumnFlags = 0.ImGuiOldColumnFlags): void {...}{.
    importc: "igBeginColumns", cdecl, discardable.}
proc igBeginCombo(label: cstring; preview_value: cstring;
                  flags: ImGuiComboFlags = 0.ImGuiComboFlags): bool {...}{.
    importc: "igBeginCombo", cdecl, discardable.}
proc igBeginDragDropSource(flags: ImGuiDragDropFlags = 0.ImGuiDragDropFlags): bool {...}{.
    importc: "igBeginDragDropSource", cdecl, discardable.}
proc igBeginDragDropTarget(): bool {...}{.importc: "igBeginDragDropTarget", cdecl,
                                     discardable.}
proc igBeginDragDropTargetCustom(bb: ImRect; id: ImGuiID): bool {...}{.
    importc: "igBeginDragDropTargetCustom", cdecl, discardable.}
proc igBeginGroup(): void {...}{.importc: "igBeginGroup", cdecl, discardable.}
proc igBeginListBox(label: cstring; size: ImVec2 = ImVec2(x: 0, y: 0)): bool {...}{.
    importc: "igBeginListBox", cdecl, discardable.}
proc igBeginMainMenuBar(): bool {...}{.importc: "igBeginMainMenuBar", cdecl,
                                  discardable.}
proc igBeginMenu(label: cstring; enabled: bool = true): bool {...}{.
    importc: "igBeginMenu", cdecl, discardable.}
proc igBeginMenuBar(): bool {...}{.importc: "igBeginMenuBar", cdecl, discardable.}
proc igBeginPopup(str_id: cstring; flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBeginPopup", cdecl, discardable.}
proc igBeginPopupContextItem(str_id: cstring = nil;
                             popup_flags: ImGuiPopupFlags = 1.ImGuiPopupFlags): bool {...}{.
    importc: "igBeginPopupContextItem", cdecl, discardable.}
proc igBeginPopupContextVoid(str_id: cstring = nil;
                             popup_flags: ImGuiPopupFlags = 1.ImGuiPopupFlags): bool {...}{.
    importc: "igBeginPopupContextVoid", cdecl, discardable.}
proc igBeginPopupContextWindow(str_id: cstring = nil;
                               popup_flags: ImGuiPopupFlags = 1.ImGuiPopupFlags): bool {...}{.
    importc: "igBeginPopupContextWindow", cdecl, discardable.}
proc igBeginPopupEx(id: ImGuiID; extra_flags: ImGuiWindowFlags): bool {...}{.
    importc: "igBeginPopupEx", cdecl, discardable.}
proc igBeginPopupModal(name: cstring; p_open: ptr bool = nil;
                       flags: ImGuiWindowFlags = 0.ImGuiWindowFlags): bool {...}{.
    importc: "igBeginPopupModal", cdecl, discardable.}
proc igBeginTabBar(str_id: cstring; flags: ImGuiTabBarFlags = 0.ImGuiTabBarFlags): bool {...}{.
    importc: "igBeginTabBar", cdecl, discardable.}
proc igBeginTabBarEx(tab_bar: ptr ImGuiTabBar; bb: ImRect;
                     flags: ImGuiTabBarFlags): bool {...}{.
    importc: "igBeginTabBarEx", cdecl, discardable.}
proc igBeginTabItem(label: cstring; p_open: ptr bool = nil;
                    flags: ImGuiTabItemFlags = 0.ImGuiTabItemFlags): bool {...}{.
    importc: "igBeginTabItem", cdecl, discardable.}
proc igBeginTable(str_id: cstring; column: int32;
                  flags: ImGuiTableFlags = 0.ImGuiTableFlags;
                  outer_size: ImVec2 = ImVec2(x: 0.0'f32, y: 0.0'f32);
                  inner_width: float32 = 0.0'f32): bool {...}{.
    importc: "igBeginTable", cdecl, discardable.}
proc igBeginTableEx(name: cstring; id: ImGuiID; columns_count: int32;
                    flags: ImGuiTableFlags = 0.ImGuiTableFlags;
                    outer_size: ImVec2 = ImVec2(x: 0, y: 0);
                    inner_width: float32 = 0.0'f32): bool {...}{.
    importc: "igBeginTableEx", cdecl, discardable.}
proc igBeginTooltip(): void {...}{.importc: "igBeginTooltip", cdecl, discardable.}
proc igBeginTooltipEx(extra_flags: ImGuiWindowFlags;
                      tooltip_flags: ImGuiTooltipFlags): void {...}{.
    importc: "igBeginTooltipEx", cdecl, discardable.}
proc igBringWindowToDisplayBack(window: ptr ImGuiWindow): void {...}{.
    importc: "igBringWindowToDisplayBack", cdecl, discardable.}
proc igBringWindowToDisplayFront(window: ptr ImGuiWindow): void {...}{.
    importc: "igBringWindowToDisplayFront", cdecl, discardable.}
proc igBringWindowToFocusFront(window: ptr ImGuiWindow): void {...}{.
    importc: "igBringWindowToFocusFront", cdecl, discardable.}
proc igBullet(): void {...}{.importc: "igBullet", cdecl, discardable.}
proc igBulletText(fmt: cstring): void {...}{.importc: "igBulletText", varargs, cdecl,
                                        discardable.}
proc igBulletTextV(fmt: cstring): void {...}{.importc: "igBulletTextV", varargs,
    cdecl, discardable.}
proc igButton(label: cstring; size: ImVec2 = ImVec2(x: 0, y: 0)): bool {...}{.
    importc: "igButton", cdecl, discardable.}
proc igButtonBehavior(bb: ImRect; id: ImGuiID; out_hovered: ptr bool;
                      out_held: ptr bool;
                      flags: ImGuiButtonFlags = 0.ImGuiButtonFlags): bool {...}{.
    importc: "igButtonBehavior", cdecl, discardable.}
proc igButtonEx(label: cstring; size_arg: ImVec2 = ImVec2(x: 0, y: 0);
                flags: ImGuiButtonFlags = 0.ImGuiButtonFlags): bool {...}{.
    importc: "igButtonEx", cdecl, discardable.}
proc igCalcItemSizeNonUDT(pOut: ptr ImVec2; size: ImVec2; default_w: float32;
                          default_h: float32): void {...}{.importc: "igCalcItemSize",
    cdecl, discardable.}
proc igCalcItemWidth(): float32 {...}{.importc: "igCalcItemWidth", cdecl, discardable.}
proc igCalcListClipping(items_count: int32; items_height: float32;
                        out_items_display_start: ptr int32;
                        out_items_display_end: ptr int32): void {...}{.
    importc: "igCalcListClipping", cdecl, discardable.}
proc igCalcTextSizeNonUDT(pOut: ptr ImVec2; text: cstring;
                          text_end: cstring = nil;
                          hide_text_after_double_hash: bool = false;
                          wrap_width: float32 = -1.0'f32): void {...}{.
    importc: "igCalcTextSize", cdecl, discardable.}
proc igCalcTypematicRepeatAmount(t0: float32; t1: float32;
                                 repeat_delay: float32; repeat_rate: float32): int32 {...}{.
    importc: "igCalcTypematicRepeatAmount", cdecl, discardable.}
proc igCalcWindowNextAutoFitSizeNonUDT(pOut: ptr ImVec2; window: ptr ImGuiWindow): void {...}{.
    importc: "igCalcWindowNextAutoFitSize", cdecl, discardable.}
proc igCalcWrapWidthForPos(pos: ImVec2; wrap_pos_x: float32): float32 {...}{.
    importc: "igCalcWrapWidthForPos", cdecl, discardable.}
proc igCallContextHooks(context: ptr ImGuiContext; type: ImGuiContextHookType): void {...}{.
    importc: "igCallContextHooks", cdecl, discardable.}
proc igCaptureKeyboardFromApp(want_capture_keyboard_value: bool = true): void {...}{.
    importc: "igCaptureKeyboardFromApp", cdecl, discardable.}
proc igCaptureMouseFromApp(want_capture_mouse_value: bool = true): void {...}{.
    importc: "igCaptureMouseFromApp", cdecl, discardable.}
proc igCheckbox(label: cstring; v: ptr bool): bool {...}{.importc: "igCheckbox",
    cdecl, discardable.}
proc igCheckboxFlags(label: cstring; flags: ptr int32; flags_value: int32): bool {...}{.
    importc: "igCheckboxFlagsIntPtr", cdecl, discardable.}
proc igCheckboxFlags(label: cstring; flags: ptr uint32; flags_value: uint32): bool {...}{.
    importc: "igCheckboxFlagsUintPtr", cdecl, discardable.}
proc igCheckboxFlags(label: cstring; flags: ptr int64; flags_value: int64): bool {...}{.
    importc: "igCheckboxFlagsS64Ptr", cdecl, discardable.}
proc igCheckboxFlags(label: cstring; flags: ptr uint64; flags_value: uint64): bool {...}{.
    importc: "igCheckboxFlagsU64Ptr", cdecl, discardable.}
proc igClearActiveID(): void {...}{.importc: "igClearActiveID", cdecl, discardable.}
proc igClearDragDrop(): void {...}{.importc: "igClearDragDrop", cdecl, discardable.}
proc igClearIniSettings(): void {...}{.importc: "igClearIniSettings", cdecl,
                                  discardable.}
proc igCloseButton(id: ImGuiID; pos: ImVec2): bool {...}{.importc: "igCloseButton",
    cdecl, discardable.}
proc igCloseCurrentPopup(): void {...}{.importc: "igCloseCurrentPopup", cdecl,
                                   discardable.}
proc igClosePopupToLevel(remaining: int32;
                         restore_focus_to_window_under_popup: bool): void {...}{.
    importc: "igClosePopupToLevel", cdecl, discardable.}
proc igClosePopupsOverWindow(ref_window: ptr ImGuiWindow;
                             restore_focus_to_window_under_popup: bool): void {...}{.
    importc: "igClosePopupsOverWindow", cdecl, discardable.}
proc igCollapseButton(id: ImGuiID; pos: ImVec2): bool {...}{.
    importc: "igCollapseButton", cdecl, discardable.}
proc igCollapsingHeader(label: cstring;
                        flags: ImGuiTreeNodeFlags = 0.ImGuiTreeNodeFlags): bool {...}{.
    importc: "igCollapsingHeaderTreeNodeFlags", cdecl, discardable.}
proc igCollapsingHeader(label: cstring; p_visible: ptr bool;
                        flags: ImGuiTreeNodeFlags = 0.ImGuiTreeNodeFlags): bool {...}{.
    importc: "igCollapsingHeaderBoolPtr", cdecl, discardable.}
proc igColorButton(desc_id: cstring; col: ImVec4;
                   flags: ImGuiColorEditFlags = 0.ImGuiColorEditFlags;
                   size: ImVec2 = ImVec2(x: 0, y: 0)): bool {...}{.
    importc: "igColorButton", cdecl, discardable.}
proc igColorConvertFloat4ToU32(in: ImVec4): uint32 {...}{.
    importc: "igColorConvertFloat4ToU32", cdecl, discardable.}
proc igColorConvertHSVtoRGB(h: float32; s: float32; v: float32;
                            out_r: ptr float32; out_g: ptr float32;
                            out_b: ptr float32): void {...}{.
    importc: "igColorConvertHSVtoRGB", cdecl, discardable.}
proc igColorConvertRGBtoHSV(r: float32; g: float32; b: float32;
                            out_h: ptr float32; out_s: ptr float32;
                            out_v: ptr float32): void {...}{.
    importc: "igColorConvertRGBtoHSV", cdecl, discardable.}
proc igColorConvertU32ToFloat4NonUDT(pOut: ptr ImVec4; in: uint32): void {...}{.
    importc: "igColorConvertU32ToFloat4", cdecl, discardable.}
proc igColorEdit3(label: cstring; col: var array[3, float32];
                  flags: ImGuiColorEditFlags = 0.ImGuiColorEditFlags): bool {...}{.
    importc: "igColorEdit3", cdecl, discardable.}
proc igColorEdit4(label: cstring; col: var array[4, float32];
                  flags: ImGuiColorEditFlags = 0.ImGuiColorEditFlags): bool {...}{.
    importc: "igColorEdit4", cdecl, discardable.}
proc igColorEditOptionsPopup(col: ptr float32; flags: ImGuiColorEditFlags): void {...}{.
    importc: "igColorEditOptionsPopup", cdecl, discardable.}
proc igColorPicker3(label: cstring; col: var array[3, float32];
                    flags: ImGuiColorEditFlags = 0.ImGuiColorEditFlags): bool {...}{.
    importc: "igColorPicker3", cdecl, discardable.}
proc igColorPicker4(label: cstring; col: var array[4, float32];
                    flags: ImGuiColorEditFlags = 0.ImGuiColorEditFlags;
                    ref_col: ptr float32 = nil): bool {...}{.
    importc: "igColorPicker4", cdecl, discardable.}
proc igColorPickerOptionsPopup(ref_col: ptr float32; flags: ImGuiColorEditFlags): void {...}{.
    importc: "igColorPickerOptionsPopup", cdecl, discardable.}
proc igColorTooltip(text: cstring; col: ptr float32; flags: ImGuiColorEditFlags): void {...}{.
    importc: "igColorTooltip", cdecl, discardable.}
proc igColumns(count: int32 = 1; id: cstring = nil; border: bool = true): void {...}{.
    importc: "igColumns", cdecl, discardable.}
proc igCombo(label: cstring; current_item: ptr int32; items: ptr cstring;
             items_count: int32; popup_max_height_in_items: int32 = -1): bool {...}{.
    importc: "igComboStr_arr", cdecl, discardable.}
proc igCombo(label: cstring; current_item: ptr int32;
             items_separated_by_zeros: cstring;
             popup_max_height_in_items: int32 = -1): bool {...}{.
    importc: "igComboStr", cdecl, discardable.}
proc igCombo(label: cstring; current_item: ptr int32; items_getter: proc (
    data: pointer; idx: int32; out_text: ptr cstring): bool {...}{.cdecl, varargs.};
             data: pointer; items_count: int32;
             popup_max_height_in_items: int32 = -1): bool {...}{.
    importc: "igComboFnBoolPtr", cdecl, discardable.}
proc igCreateContext(shared_font_atlas: ptr ImFontAtlas = nil): ptr ImGuiContext {...}{.
    importc: "igCreateContext", cdecl, discardable.}
proc igCreateNewWindowSettings(name: cstring): ptr ImGuiWindowSettings {...}{.
    importc: "igCreateNewWindowSettings", cdecl, discardable.}
proc igDataTypeApplyOp(data_type: ImGuiDataType; op: int32; output: pointer;
                       arg_1: pointer; arg_2: pointer): void {...}{.
    importc: "igDataTypeApplyOp", cdecl, discardable.}
proc igDataTypeApplyOpFromText(buf: cstring; initial_value_buf: cstring;
                               data_type: ImGuiDataType; p_data: pointer;
                               format: cstring): bool {...}{.
    importc: "igDataTypeApplyOpFromText", cdecl, discardable.}
proc igDataTypeClamp(data_type: ImGuiDataType; p_data: pointer; p_min: pointer;
                     p_max: pointer): bool {...}{.importc: "igDataTypeClamp", cdecl,
    discardable.}
proc igDataTypeCompare(data_type: ImGuiDataType; arg_1: pointer; arg_2: pointer): int32 {...}{.
    importc: "igDataTypeCompare", cdecl, discardable.}
proc igDataTypeFormatString(buf: cstring; buf_size: int32;
                            data_type: ImGuiDataType; p_data: pointer;
                            format: cstring): int32 {...}{.
    importc: "igDataTypeFormatString", cdecl, discardable.}
proc igDataTypeGetInfo(data_type: ImGuiDataType): ptr ImGuiDataTypeInfo {...}{.
    importc: "igDataTypeGetInfo", cdecl, discardable.}
proc igDebugCheckVersionAndDataLayout(version_str: cstring; sz_io: uint;
                                      sz_style: uint; sz_vec2: uint;
                                      sz_vec4: uint; sz_drawvert: uint;
                                      sz_drawidx: uint): bool {...}{.
    importc: "igDebugCheckVersionAndDataLayout", cdecl, discardable.}
proc igDebugDrawItemRect(col: uint32 = 4278190335'u32): void {...}{.
    importc: "igDebugDrawItemRect", cdecl, discardable.}
proc igDebugNodeColumns(columns: ptr ImGuiOldColumns): void {...}{.
    importc: "igDebugNodeColumns", cdecl, discardable.}
proc igDebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list: ptr ImDrawList;
    draw_list: ptr ImDrawList; draw_cmd: ptr ImDrawCmd; show_mesh: bool;
    show_aabb: bool): void {...}{.importc: "igDebugNodeDrawCmdShowMeshAndBoundingBox",
                             cdecl, discardable.}
proc igDebugNodeDrawList(window: ptr ImGuiWindow; draw_list: ptr ImDrawList;
                         label: cstring): void {...}{.importc: "igDebugNodeDrawList",
    cdecl, discardable.}
proc igDebugNodeStorage(storage: ptr ImGuiStorage; label: cstring): void {...}{.
    importc: "igDebugNodeStorage", cdecl, discardable.}
proc igDebugNodeTabBar(tab_bar: ptr ImGuiTabBar; label: cstring): void {...}{.
    importc: "igDebugNodeTabBar", cdecl, discardable.}
proc igDebugNodeTable(table: ptr ImGuiTable): void {...}{.
    importc: "igDebugNodeTable", cdecl, discardable.}
proc igDebugNodeTableSettings(settings: ptr ImGuiTableSettings): void {...}{.
    importc: "igDebugNodeTableSettings", cdecl, discardable.}
proc igDebugNodeViewport(viewport: ptr ImGuiViewportP): void {...}{.
    importc: "igDebugNodeViewport", cdecl, discardable.}
proc igDebugNodeWindow(window: ptr ImGuiWindow; label: cstring): void {...}{.
    importc: "igDebugNodeWindow", cdecl, discardable.}
proc igDebugNodeWindowSettings(settings: ptr ImGuiWindowSettings): void {...}{.
    importc: "igDebugNodeWindowSettings", cdecl, discardable.}
proc igDebugNodeWindowsList(windows: ptr ImVector[ptr ImGuiWindow];
                            label: cstring): void {...}{.
    importc: "igDebugNodeWindowsList", cdecl, discardable.}
proc igDebugRenderViewportThumbnail(draw_list: ptr ImDrawList;
                                    viewport: ptr ImGuiViewportP; bb: ImRect): void {...}{.
    importc: "igDebugRenderViewportThumbnail", cdecl, discardable.}
proc igDebugStartItemPicker(): void {...}{.importc: "igDebugStartItemPicker", cdecl,
                                      discardable.}
proc igDestroyContext(ctx: ptr ImGuiContext = nil): void {...}{.
    importc: "igDestroyContext", cdecl, discardable.}
proc igDragBehavior(id: ImGuiID; data_type: ImGuiDataType; p_v: pointer;
                    v_speed: float32; p_min: pointer; p_max: pointer;
                    format: cstring; flags: ImGuiSliderFlags): bool {...}{.
    importc: "igDragBehavior", cdecl, discardable.}
proc igDragFloat(label: cstring; v: ptr float32; v_speed: float32 = 1.0'f32;
                 v_min: float32 = 0.0'f32; v_max: float32 = 0.0'f32;
                 format: cstring = "%.3f";
                 flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragFloat", cdecl, discardable.}
proc igDragFloat2(label: cstring; v: var array[2, float32];
                  v_speed: float32 = 1.0'f32; v_min: float32 = 0.0'f32;
                  v_max: float32 = 0.0'f32; format: cstring = "%.3f";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragFloat2", cdecl, discardable.}
proc igDragFloat3(label: cstring; v: var array[3, float32];
                  v_speed: float32 = 1.0'f32; v_min: float32 = 0.0'f32;
                  v_max: float32 = 0.0'f32; format: cstring = "%.3f";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragFloat3", cdecl, discardable.}
proc igDragFloat4(label: cstring; v: var array[4, float32];
                  v_speed: float32 = 1.0'f32; v_min: float32 = 0.0'f32;
                  v_max: float32 = 0.0'f32; format: cstring = "%.3f";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragFloat4", cdecl, discardable.}
proc igDragFloatRange2(label: cstring; v_current_min: ptr float32;
                       v_current_max: ptr float32; v_speed: float32 = 1.0'f32;
                       v_min: float32 = 0.0'f32; v_max: float32 = 0.0'f32;
                       format: cstring = "%.3f"; format_max: cstring = nil;
                       flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragFloatRange2", cdecl, discardable.}
proc igDragInt(label: cstring; v: ptr int32; v_speed: float32 = 1.0'f32;
               v_min: int32 = 0; v_max: int32 = 0; format: cstring = "%d";
               flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragInt", cdecl, discardable.}
proc igDragInt2(label: cstring; v: var array[2, int32];
                v_speed: float32 = 1.0'f32; v_min: int32 = 0; v_max: int32 = 0;
                format: cstring = "%d";
                flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragInt2", cdecl, discardable.}
proc igDragInt3(label: cstring; v: var array[3, int32];
                v_speed: float32 = 1.0'f32; v_min: int32 = 0; v_max: int32 = 0;
                format: cstring = "%d";
                flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragInt3", cdecl, discardable.}
proc igDragInt4(label: cstring; v: var array[4, int32];
                v_speed: float32 = 1.0'f32; v_min: int32 = 0; v_max: int32 = 0;
                format: cstring = "%d";
                flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragInt4", cdecl, discardable.}
proc igDragIntRange2(label: cstring; v_current_min: ptr int32;
                     v_current_max: ptr int32; v_speed: float32 = 1.0'f32;
                     v_min: int32 = 0; v_max: int32 = 0; format: cstring = "%d";
                     format_max: cstring = nil;
                     flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragIntRange2", cdecl, discardable.}
proc igDragScalar(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                  v_speed: float32; p_min: pointer = nil; p_max: pointer = nil;
                  format: cstring = nil;
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragScalar", cdecl, discardable.}
proc igDragScalarN(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                   components: int32; v_speed: float32; p_min: pointer = nil;
                   p_max: pointer = nil; format: cstring = nil;
                   flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igDragScalarN", cdecl, discardable.}
proc igDummy(size: ImVec2): void {...}{.importc: "igDummy", cdecl, discardable.}
proc igEnd(): void {...}{.importc: "igEnd", cdecl, discardable.}
proc igEndChild(): void {...}{.importc: "igEndChild", cdecl, discardable.}
proc igEndChildFrame(): void {...}{.importc: "igEndChildFrame", cdecl, discardable.}
proc igEndColumns(): void {...}{.importc: "igEndColumns", cdecl, discardable.}
proc igEndCombo(): void {...}{.importc: "igEndCombo", cdecl, discardable.}
proc igEndDragDropSource(): void {...}{.importc: "igEndDragDropSource", cdecl,
                                   discardable.}
proc igEndDragDropTarget(): void {...}{.importc: "igEndDragDropTarget", cdecl,
                                   discardable.}
proc igEndFrame(): void {...}{.importc: "igEndFrame", cdecl, discardable.}
proc igEndGroup(): void {...}{.importc: "igEndGroup", cdecl, discardable.}
proc igEndListBox(): void {...}{.importc: "igEndListBox", cdecl, discardable.}
proc igEndMainMenuBar(): void {...}{.importc: "igEndMainMenuBar", cdecl, discardable.}
proc igEndMenu(): void {...}{.importc: "igEndMenu", cdecl, discardable.}
proc igEndMenuBar(): void {...}{.importc: "igEndMenuBar", cdecl, discardable.}
proc igEndPopup(): void {...}{.importc: "igEndPopup", cdecl, discardable.}
proc igEndTabBar(): void {...}{.importc: "igEndTabBar", cdecl, discardable.}
proc igEndTabItem(): void {...}{.importc: "igEndTabItem", cdecl, discardable.}
proc igEndTable(): void {...}{.importc: "igEndTable", cdecl, discardable.}
proc igEndTooltip(): void {...}{.importc: "igEndTooltip", cdecl, discardable.}
proc igErrorCheckEndFrameRecover(log_callback: ImGuiErrorLogCallback;
                                 user_data: pointer = nil): void {...}{.
    importc: "igErrorCheckEndFrameRecover", cdecl, discardable.}
proc igFindBestWindowPosForPopupNonUDT(pOut: ptr ImVec2; window: ptr ImGuiWindow): void {...}{.
    importc: "igFindBestWindowPosForPopup", cdecl, discardable.}
proc igFindBestWindowPosForPopupExNonUDT(pOut: ptr ImVec2; ref_pos: ImVec2;
    size: ImVec2; last_dir: ptr ImGuiDir; r_outer: ImRect; r_avoid: ImRect;
    policy: ImGuiPopupPositionPolicy): void {...}{.
    importc: "igFindBestWindowPosForPopupEx", cdecl, discardable.}
proc igFindOrCreateColumns(window: ptr ImGuiWindow; id: ImGuiID): ptr ImGuiOldColumns {...}{.
    importc: "igFindOrCreateColumns", cdecl, discardable.}
proc igFindOrCreateWindowSettings(name: cstring): ptr ImGuiWindowSettings {...}{.
    importc: "igFindOrCreateWindowSettings", cdecl, discardable.}
proc igFindRenderedTextEnd(text: cstring; text_end: cstring = nil): cstring {...}{.
    importc: "igFindRenderedTextEnd", cdecl, discardable.}
proc igFindSettingsHandler(type_name: cstring): ptr ImGuiSettingsHandler {...}{.
    importc: "igFindSettingsHandler", cdecl, discardable.}
proc igFindWindowByID(id: ImGuiID): ptr ImGuiWindow {...}{.
    importc: "igFindWindowByID", cdecl, discardable.}
proc igFindWindowByName(name: cstring): ptr ImGuiWindow {...}{.
    importc: "igFindWindowByName", cdecl, discardable.}
proc igFindWindowSettings(id: ImGuiID): ptr ImGuiWindowSettings {...}{.
    importc: "igFindWindowSettings", cdecl, discardable.}
proc igFocusTopMostWindowUnderOne(under_this_window: ptr ImGuiWindow;
                                  ignore_window: ptr ImGuiWindow): void {...}{.
    importc: "igFocusTopMostWindowUnderOne", cdecl, discardable.}
proc igFocusWindow(window: ptr ImGuiWindow): void {...}{.importc: "igFocusWindow",
    cdecl, discardable.}
proc igFocusableItemRegister(window: ptr ImGuiWindow; id: ImGuiID): bool {...}{.
    importc: "igFocusableItemRegister", cdecl, discardable.}
proc igFocusableItemUnregister(window: ptr ImGuiWindow): void {...}{.
    importc: "igFocusableItemUnregister", cdecl, discardable.}
proc igGcAwakeTransientWindowBuffers(window: ptr ImGuiWindow): void {...}{.
    importc: "igGcAwakeTransientWindowBuffers", cdecl, discardable.}
proc igGcCompactTransientMiscBuffers(): void {...}{.
    importc: "igGcCompactTransientMiscBuffers", cdecl, discardable.}
proc igGcCompactTransientWindowBuffers(window: ptr ImGuiWindow): void {...}{.
    importc: "igGcCompactTransientWindowBuffers", cdecl, discardable.}
proc igGetActiveID(): ImGuiID {...}{.importc: "igGetActiveID", cdecl, discardable.}
proc igGetBackgroundDrawList(): ptr ImDrawList {...}{.
    importc: "igGetBackgroundDrawListNil", cdecl, discardable.}
proc igGetBackgroundDrawList(viewport: ptr ImGuiViewport): ptr ImDrawList {...}{.
    importc: "igGetBackgroundDrawListViewportPtr", cdecl, discardable.}
proc igGetClipboardText(): cstring {...}{.importc: "igGetClipboardText", cdecl,
                                     discardable.}
proc igGetColorU32(idx: ImGuiCol; alpha_mul: float32 = 1.0'f32): uint32 {...}{.
    importc: "igGetColorU32Col", cdecl, discardable.}
proc igGetColorU32(col: ImVec4): uint32 {...}{.importc: "igGetColorU32Vec4", cdecl,
    discardable.}
proc igGetColorU32(col: uint32): uint32 {...}{.importc: "igGetColorU32U32", cdecl,
    discardable.}
proc igGetColumnIndex(): int32 {...}{.importc: "igGetColumnIndex", cdecl, discardable.}
proc igGetColumnNormFromOffset(columns: ptr ImGuiOldColumns; offset: float32): float32 {...}{.
    importc: "igGetColumnNormFromOffset", cdecl, discardable.}
proc igGetColumnOffset(column_index: int32 = -1): float32 {...}{.
    importc: "igGetColumnOffset", cdecl, discardable.}
proc igGetColumnOffsetFromNorm(columns: ptr ImGuiOldColumns;
                               offset_norm: float32): float32 {...}{.
    importc: "igGetColumnOffsetFromNorm", cdecl, discardable.}
proc igGetColumnWidth(column_index: int32 = -1): float32 {...}{.
    importc: "igGetColumnWidth", cdecl, discardable.}
proc igGetColumnsCount(): int32 {...}{.importc: "igGetColumnsCount", cdecl,
                                  discardable.}
proc igGetColumnsID(str_id: cstring; count: int32): ImGuiID {...}{.
    importc: "igGetColumnsID", cdecl, discardable.}
proc igGetContentRegionAvailNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetContentRegionAvail", cdecl, discardable.}
proc igGetContentRegionMaxNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetContentRegionMax", cdecl, discardable.}
proc igGetContentRegionMaxAbsNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetContentRegionMaxAbs", cdecl, discardable.}
proc igGetCurrentContext(): ptr ImGuiContext {...}{.importc: "igGetCurrentContext",
    cdecl, discardable.}
proc igGetCurrentWindow(): ptr ImGuiWindow {...}{.importc: "igGetCurrentWindow",
    cdecl, discardable.}
proc igGetCurrentWindowRead(): ptr ImGuiWindow {...}{.
    importc: "igGetCurrentWindowRead", cdecl, discardable.}
proc igGetCursorPosNonUDT(pOut: ptr ImVec2): void {...}{.importc: "igGetCursorPos",
    cdecl, discardable.}
proc igGetCursorPosX(): float32 {...}{.importc: "igGetCursorPosX", cdecl, discardable.}
proc igGetCursorPosY(): float32 {...}{.importc: "igGetCursorPosY", cdecl, discardable.}
proc igGetCursorScreenPosNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetCursorScreenPos", cdecl, discardable.}
proc igGetCursorStartPosNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetCursorStartPos", cdecl, discardable.}
proc igGetDefaultFont(): ptr ImFont {...}{.importc: "igGetDefaultFont", cdecl,
                                      discardable.}
proc igGetDragDropPayload(): ptr ImGuiPayload {...}{.importc: "igGetDragDropPayload",
    cdecl, discardable.}
proc igGetDrawData(): ptr ImDrawData {...}{.importc: "igGetDrawData", cdecl,
                                       discardable.}
proc igGetDrawListSharedData(): ptr ImDrawListSharedData {...}{.
    importc: "igGetDrawListSharedData", cdecl, discardable.}
proc igGetFocusID(): ImGuiID {...}{.importc: "igGetFocusID", cdecl, discardable.}
proc igGetFocusScope(): ImGuiID {...}{.importc: "igGetFocusScope", cdecl, discardable.}
proc igGetFocusedFocusScope(): ImGuiID {...}{.importc: "igGetFocusedFocusScope",
    cdecl, discardable.}
proc igGetFont(): ptr ImFont {...}{.importc: "igGetFont", cdecl, discardable.}
proc igGetFontSize(): float32 {...}{.importc: "igGetFontSize", cdecl, discardable.}
proc igGetFontTexUvWhitePixelNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetFontTexUvWhitePixel", cdecl, discardable.}
proc igGetForegroundDrawList(): ptr ImDrawList {...}{.
    importc: "igGetForegroundDrawListNil", cdecl, discardable.}
proc igGetForegroundDrawList(window: ptr ImGuiWindow): ptr ImDrawList {...}{.
    importc: "igGetForegroundDrawListWindowPtr", cdecl, discardable.}
proc igGetForegroundDrawList(viewport: ptr ImGuiViewport): ptr ImDrawList {...}{.
    importc: "igGetForegroundDrawListViewportPtr", cdecl, discardable.}
proc igGetFrameCount(): int32 {...}{.importc: "igGetFrameCount", cdecl, discardable.}
proc igGetFrameHeight(): float32 {...}{.importc: "igGetFrameHeight", cdecl,
                                   discardable.}
proc igGetFrameHeightWithSpacing(): float32 {...}{.
    importc: "igGetFrameHeightWithSpacing", cdecl, discardable.}
proc igGetHoveredID(): ImGuiID {...}{.importc: "igGetHoveredID", cdecl, discardable.}
proc igGetID(str_id: cstring): ImGuiID {...}{.importc: "igGetIDStr", cdecl,
    discardable.}
proc igGetID(str_id_begin: cstring; str_id_end: cstring): ImGuiID {...}{.
    importc: "igGetIDStrStr", cdecl, discardable.}
proc igGetID(ptr_id: pointer): ImGuiID {...}{.importc: "igGetIDPtr", cdecl,
    discardable.}
proc igGetIDWithSeed(str_id_begin: cstring; str_id_end: cstring; seed: ImGuiID): ImGuiID {...}{.
    importc: "igGetIDWithSeed", cdecl, discardable.}
proc igGetIO(): ptr ImGuiIO {...}{.importc: "igGetIO", cdecl, discardable.}
proc igGetInputTextState(id: ImGuiID): ptr ImGuiInputTextState {...}{.
    importc: "igGetInputTextState", cdecl, discardable.}
proc igGetItemID(): ImGuiID {...}{.importc: "igGetItemID", cdecl, discardable.}
proc igGetItemRectMaxNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetItemRectMax", cdecl, discardable.}
proc igGetItemRectMinNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetItemRectMin", cdecl, discardable.}
proc igGetItemRectSizeNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetItemRectSize", cdecl, discardable.}
proc igGetItemStatusFlags(): ImGuiItemStatusFlags {...}{.
    importc: "igGetItemStatusFlags", cdecl, discardable.}
proc igGetItemsFlags(): ImGuiItemFlags {...}{.importc: "igGetItemsFlags", cdecl,
    discardable.}
proc igGetKeyIndex(imgui_key: ImGuiKey): int32 {...}{.importc: "igGetKeyIndex",
    cdecl, discardable.}
proc igGetKeyPressedAmount(key_index: int32; repeat_delay: float32;
                           rate: float32): int32 {...}{.
    importc: "igGetKeyPressedAmount", cdecl, discardable.}
proc igGetMainViewport(): ptr ImGuiViewport {...}{.importc: "igGetMainViewport",
    cdecl, discardable.}
proc igGetMergedKeyModFlags(): ImGuiKeyModFlags {...}{.
    importc: "igGetMergedKeyModFlags", cdecl, discardable.}
proc igGetMouseCursor(): ImGuiMouseCursor {...}{.importc: "igGetMouseCursor", cdecl,
    discardable.}
proc igGetMouseDragDeltaNonUDT(pOut: ptr ImVec2;
                               button: ImGuiMouseButton = 0.ImGuiMouseButton;
                               lock_threshold: float32 = -1.0'f32): void {...}{.
    importc: "igGetMouseDragDelta", cdecl, discardable.}
proc igGetMousePosNonUDT(pOut: ptr ImVec2): void {...}{.importc: "igGetMousePos",
    cdecl, discardable.}
proc igGetMousePosOnOpeningCurrentPopupNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetMousePosOnOpeningCurrentPopup", cdecl, discardable.}
proc igGetNavInputAmount(n: ImGuiNavInput; mode: ImGuiInputReadMode): float32 {...}{.
    importc: "igGetNavInputAmount", cdecl, discardable.}
proc igGetNavInputAmount2dNonUDT(pOut: ptr ImVec2;
                                 dir_sources: ImGuiNavDirSourceFlags;
                                 mode: ImGuiInputReadMode;
                                 slow_factor: float32 = 0.0'f32;
                                 fast_factor: float32 = 0.0'f32): void {...}{.
    importc: "igGetNavInputAmount2d", cdecl, discardable.}
proc igGetScrollMaxX(): float32 {...}{.importc: "igGetScrollMaxX", cdecl, discardable.}
proc igGetScrollMaxY(): float32 {...}{.importc: "igGetScrollMaxY", cdecl, discardable.}
proc igGetScrollX(): float32 {...}{.importc: "igGetScrollX", cdecl, discardable.}
proc igGetScrollY(): float32 {...}{.importc: "igGetScrollY", cdecl, discardable.}
proc igGetStateStorage(): ptr ImGuiStorage {...}{.importc: "igGetStateStorage",
    cdecl, discardable.}
proc igGetStyle(): ptr ImGuiStyle {...}{.importc: "igGetStyle", cdecl, discardable.}
proc igGetStyleColorName(idx: ImGuiCol): cstring {...}{.
    importc: "igGetStyleColorName", cdecl, discardable.}
proc igGetStyleColorVec4(idx: ImGuiCol): ptr ImVec4 {...}{.
    importc: "igGetStyleColorVec4", cdecl, discardable.}
proc igGetTextLineHeight(): float32 {...}{.importc: "igGetTextLineHeight", cdecl,
                                      discardable.}
proc igGetTextLineHeightWithSpacing(): float32 {...}{.
    importc: "igGetTextLineHeightWithSpacing", cdecl, discardable.}
proc igGetTime(): float64 {...}{.importc: "igGetTime", cdecl, discardable.}
proc igGetTopMostPopupModal(): ptr ImGuiWindow {...}{.
    importc: "igGetTopMostPopupModal", cdecl, discardable.}
proc igGetTreeNodeToLabelSpacing(): float32 {...}{.
    importc: "igGetTreeNodeToLabelSpacing", cdecl, discardable.}
proc igGetVersion(): cstring {...}{.importc: "igGetVersion", cdecl, discardable.}
proc igGetWindowAllowedExtentRectNonUDT(pOut: ptr ImRect;
                                        window: ptr ImGuiWindow): void {...}{.
    importc: "igGetWindowAllowedExtentRect", cdecl, discardable.}
proc igGetWindowContentRegionMaxNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetWindowContentRegionMax", cdecl, discardable.}
proc igGetWindowContentRegionMinNonUDT(pOut: ptr ImVec2): void {...}{.
    importc: "igGetWindowContentRegionMin", cdecl, discardable.}
proc igGetWindowContentRegionWidth(): float32 {...}{.
    importc: "igGetWindowContentRegionWidth", cdecl, discardable.}
proc igGetWindowDrawList(): ptr ImDrawList {...}{.importc: "igGetWindowDrawList",
    cdecl, discardable.}
proc igGetWindowHeight(): float32 {...}{.importc: "igGetWindowHeight", cdecl,
                                    discardable.}
proc igGetWindowPosNonUDT(pOut: ptr ImVec2): void {...}{.importc: "igGetWindowPos",
    cdecl, discardable.}
proc igGetWindowResizeID(window: ptr ImGuiWindow; n: int32): ImGuiID {...}{.
    importc: "igGetWindowResizeID", cdecl, discardable.}
proc igGetWindowScrollbarID(window: ptr ImGuiWindow; axis: ImGuiAxis): ImGuiID {...}{.
    importc: "igGetWindowScrollbarID", cdecl, discardable.}
proc igGetWindowScrollbarRectNonUDT(pOut: ptr ImRect; window: ptr ImGuiWindow;
                                    axis: ImGuiAxis): void {...}{.
    importc: "igGetWindowScrollbarRect", cdecl, discardable.}
proc igGetWindowSizeNonUDT(pOut: ptr ImVec2): void {...}{.importc: "igGetWindowSize",
    cdecl, discardable.}
proc igGetWindowWidth(): float32 {...}{.importc: "igGetWindowWidth", cdecl,
                                   discardable.}
proc igImAbs(x: float32): float32 {...}{.importc: "igImAbsFloat", cdecl, discardable.}
proc igImAbs(x: float64): float64 {...}{.importc: "igImAbsdouble", cdecl, discardable.}
proc igImAlphaBlendColors(col_a: uint32; col_b: uint32): uint32 {...}{.
    importc: "igImAlphaBlendColors", cdecl, discardable.}
proc igImBezierCubicCalcNonUDT(pOut: ptr ImVec2; p1: ImVec2; p2: ImVec2;
                               p3: ImVec2; p4: ImVec2; t: float32): void {...}{.
    importc: "igImBezierCubicCalc", cdecl, discardable.}
proc igImBezierCubicClosestPointNonUDT(pOut: ptr ImVec2; p1: ImVec2; p2: ImVec2;
                                       p3: ImVec2; p4: ImVec2; p: ImVec2;
                                       num_segments: int32): void {...}{.
    importc: "igImBezierCubicClosestPoint", cdecl, discardable.}
proc igImBezierCubicClosestPointCasteljauNonUDT(pOut: ptr ImVec2; p1: ImVec2;
    p2: ImVec2; p3: ImVec2; p4: ImVec2; p: ImVec2; tess_tol: float32): void {...}{.
    importc: "igImBezierCubicClosestPointCasteljau", cdecl, discardable.}
proc igImBezierQuadraticCalcNonUDT(pOut: ptr ImVec2; p1: ImVec2; p2: ImVec2;
                                   p3: ImVec2; t: float32): void {...}{.
    importc: "igImBezierQuadraticCalc", cdecl, discardable.}
proc igImBitArrayClearBit(arr: ptr uint32; n: int32): void {...}{.
    importc: "igImBitArrayClearBit", cdecl, discardable.}
proc igImBitArraySetBit(arr: ptr uint32; n: int32): void {...}{.
    importc: "igImBitArraySetBit", cdecl, discardable.}
proc igImBitArraySetBitRange(arr: ptr uint32; n: int32; n2: int32): void {...}{.
    importc: "igImBitArraySetBitRange", cdecl, discardable.}
proc igImBitArrayTestBit(arr: ptr uint32; n: int32): bool {...}{.
    importc: "igImBitArrayTestBit", cdecl, discardable.}
proc igImCharIsBlankA(c: int8): bool {...}{.importc: "igImCharIsBlankA", cdecl,
                                       discardable.}
proc igImCharIsBlankW(c: uint32): bool {...}{.importc: "igImCharIsBlankW", cdecl,
    discardable.}
proc igImClampNonUDT(pOut: ptr ImVec2; v: ImVec2; mn: ImVec2; mx: ImVec2): void {...}{.
    importc: "igImClamp", cdecl, discardable.}
proc igImDot(a: ImVec2; b: ImVec2): float32 {...}{.importc: "igImDot", cdecl,
    discardable.}
proc igImFileClose(file: ImFileHandle): bool {...}{.importc: "igImFileClose", cdecl,
    discardable.}
proc igImFileGetSize(file: ImFileHandle): uint64 {...}{.importc: "igImFileGetSize",
    cdecl, discardable.}
proc igImFileLoadToMemory(filename: cstring; mode: cstring;
                          out_file_size: ptr uint = nil;
                          padding_bytes: int32 = 0): pointer {...}{.
    importc: "igImFileLoadToMemory", cdecl, discardable.}
proc igImFileOpen(filename: cstring; mode: cstring): ImFileHandle {...}{.
    importc: "igImFileOpen", cdecl, discardable.}
proc igImFileRead(data: pointer; size: uint64; count: uint64; file: ImFileHandle): uint64 {...}{.
    importc: "igImFileRead", cdecl, discardable.}
proc igImFileWrite(data: pointer; size: uint64; count: uint64;
                   file: ImFileHandle): uint64 {...}{.importc: "igImFileWrite",
    cdecl, discardable.}
proc igImFloor(f: float32): float32 {...}{.importc: "igImFloorFloat", cdecl,
                                      discardable.}
proc igImFloorNonUDT(pOut: ptr ImVec2; v: ImVec2): void {...}{.
    importc: "igImFloorVec2", cdecl, discardable.}
proc igImFontAtlasBuildFinish(atlas: ptr ImFontAtlas): void {...}{.
    importc: "igImFontAtlasBuildFinish", cdecl, discardable.}
proc igImFontAtlasBuildInit(atlas: ptr ImFontAtlas): void {...}{.
    importc: "igImFontAtlasBuildInit", cdecl, discardable.}
proc igImFontAtlasBuildMultiplyCalcLookupTable(out_table: cuchar;
    in_multiply_factor: float32): void {...}{.
    importc: "igImFontAtlasBuildMultiplyCalcLookupTable", cdecl, discardable.}
proc igImFontAtlasBuildMultiplyRectAlpha8(table: cuchar; pixels: ptr cuchar;
    x: int32; y: int32; w: int32; h: int32; stride: int32): void {...}{.
    importc: "igImFontAtlasBuildMultiplyRectAlpha8", cdecl, discardable.}
proc igImFontAtlasBuildPackCustomRects(atlas: ptr ImFontAtlas;
                                       stbrp_context_opaque: pointer): void {...}{.
    importc: "igImFontAtlasBuildPackCustomRects", cdecl, discardable.}
proc igImFontAtlasBuildRender32bppRectFromString(atlas: ptr ImFontAtlas;
    x: int32; y: int32; w: int32; h: int32; in_str: cstring;
    in_marker_char: int8; in_marker_pixel_value: uint32): void {...}{.
    importc: "igImFontAtlasBuildRender32bppRectFromString", cdecl, discardable.}
proc igImFontAtlasBuildRender8bppRectFromString(atlas: ptr ImFontAtlas;
    x: int32; y: int32; w: int32; h: int32; in_str: cstring;
    in_marker_char: int8; in_marker_pixel_value: cuchar): void {...}{.
    importc: "igImFontAtlasBuildRender8bppRectFromString", cdecl, discardable.}
proc igImFontAtlasBuildSetupFont(atlas: ptr ImFontAtlas; font: ptr ImFont;
                                 font_config: ptr ImFontConfig; ascent: float32;
                                 descent: float32): void {...}{.
    importc: "igImFontAtlasBuildSetupFont", cdecl, discardable.}
proc igImFontAtlasGetBuilderForStbTruetype(): ptr ImFontBuilderIO {...}{.
    importc: "igImFontAtlasGetBuilderForStbTruetype", cdecl, discardable.}
proc igImFormatString(buf: cstring; buf_size: uint; fmt: cstring): int32 {...}{.
    importc: "igImFormatString", varargs, cdecl, discardable.}
proc igImFormatStringV(buf: cstring; buf_size: uint; fmt: cstring): int32 {...}{.
    importc: "igImFormatStringV", varargs, cdecl, discardable.}
proc igImGetDirQuadrantFromDelta(dx: float32; dy: float32): ImGuiDir {...}{.
    importc: "igImGetDirQuadrantFromDelta", cdecl, discardable.}
proc igImHashData(data: pointer; data_size: uint; seed: uint32 = 0): ImGuiID {...}{.
    importc: "igImHashData", cdecl, discardable.}
proc igImHashStr(data: cstring; data_size: uint = 0; seed: uint32 = 0): ImGuiID {...}{.
    importc: "igImHashStr", cdecl, discardable.}
proc igImInvLength(lhs: ImVec2; fail_value: float32): float32 {...}{.
    importc: "igImInvLength", cdecl, discardable.}
proc igImIsPowerOfTwo(v: int32): bool {...}{.importc: "igImIsPowerOfTwoInt", cdecl,
                                        discardable.}
proc igImIsPowerOfTwo(v: uint64): bool {...}{.importc: "igImIsPowerOfTwoU64", cdecl,
    discardable.}
proc igImLengthSqr(lhs: ImVec2): float32 {...}{.importc: "igImLengthSqrVec2", cdecl,
    discardable.}
proc igImLengthSqr(lhs: ImVec4): float32 {...}{.importc: "igImLengthSqrVec4", cdecl,
    discardable.}
proc igImLerpNonUDT(pOut: ptr ImVec2; a: ImVec2; b: ImVec2; t: float32): void {...}{.
    importc: "igImLerpVec2Float", cdecl, discardable.}
proc igImLerpNonUDT2(pOut: ptr ImVec2; a: ImVec2; b: ImVec2; t: ImVec2): void {...}{.
    importc: "igImLerpVec2Vec2", cdecl, discardable.}
proc igImLerpNonUDT3(pOut: ptr ImVec4; a: ImVec4; b: ImVec4; t: float32): void {...}{.
    importc: "igImLerpVec4", cdecl, discardable.}
proc igImLineClosestPointNonUDT(pOut: ptr ImVec2; a: ImVec2; b: ImVec2;
                                p: ImVec2): void {...}{.
    importc: "igImLineClosestPoint", cdecl, discardable.}
proc igImLinearSweep(current: float32; target: float32; speed: float32): float32 {...}{.
    importc: "igImLinearSweep", cdecl, discardable.}
proc igImLog(x: float32): float32 {...}{.importc: "igImLogFloat", cdecl, discardable.}
proc igImLog(x: float64): float64 {...}{.importc: "igImLogdouble", cdecl, discardable.}
proc igImMaxNonUDT(pOut: ptr ImVec2; lhs: ImVec2; rhs: ImVec2): void {...}{.
    importc: "igImMax", cdecl, discardable.}
proc igImMinNonUDT(pOut: ptr ImVec2; lhs: ImVec2; rhs: ImVec2): void {...}{.
    importc: "igImMin", cdecl, discardable.}
proc igImModPositive(a: int32; b: int32): int32 {...}{.importc: "igImModPositive",
    cdecl, discardable.}
proc igImMulNonUDT(pOut: ptr ImVec2; lhs: ImVec2; rhs: ImVec2): void {...}{.
    importc: "igImMul", cdecl, discardable.}
proc igImParseFormatFindEnd(format: cstring): cstring {...}{.
    importc: "igImParseFormatFindEnd", cdecl, discardable.}
proc igImParseFormatFindStart(format: cstring): cstring {...}{.
    importc: "igImParseFormatFindStart", cdecl, discardable.}
proc igImParseFormatPrecision(format: cstring; default_value: int32): int32 {...}{.
    importc: "igImParseFormatPrecision", cdecl, discardable.}
proc igImParseFormatTrimDecorations(format: cstring; buf: cstring;
                                    buf_size: uint): cstring {...}{.
    importc: "igImParseFormatTrimDecorations", cdecl, discardable.}
proc igImPow(x: float32; y: float32): float32 {...}{.importc: "igImPowFloat", cdecl,
    discardable.}
proc igImPow(x: float64; y: float64): float64 {...}{.importc: "igImPowdouble", cdecl,
    discardable.}
proc igImRotateNonUDT(pOut: ptr ImVec2; v: ImVec2; cos_a: float32;
                      sin_a: float32): void {...}{.importc: "igImRotate", cdecl,
    discardable.}
proc igImSaturate(f: float32): float32 {...}{.importc: "igImSaturate", cdecl,
    discardable.}
proc igImSign(x: float32): float32 {...}{.importc: "igImSignFloat", cdecl,
                                     discardable.}
proc igImSign(x: float64): float64 {...}{.importc: "igImSigndouble", cdecl,
                                     discardable.}
proc igImStrSkipBlank(str: cstring): cstring {...}{.importc: "igImStrSkipBlank",
    cdecl, discardable.}
proc igImStrTrimBlanks(str: cstring): void {...}{.importc: "igImStrTrimBlanks",
    cdecl, discardable.}
proc igImStrbolW(buf_mid_line: ptr ImWchar; buf_begin: ptr ImWchar): ptr ImWchar {...}{.
    importc: "igImStrbolW", cdecl, discardable.}
proc igImStrchrRange(str_begin: cstring; str_end: cstring; c: int8): cstring {...}{.
    importc: "igImStrchrRange", cdecl, discardable.}
proc igImStrdup(str: cstring): cstring {...}{.importc: "igImStrdup", cdecl,
    discardable.}
proc igImStrdupcpy(dst: cstring; p_dst_size: ptr uint; str: cstring): cstring {...}{.
    importc: "igImStrdupcpy", cdecl, discardable.}
proc igImStreolRange(str: cstring; str_end: cstring): cstring {...}{.
    importc: "igImStreolRange", cdecl, discardable.}
proc igImStricmp(str1: cstring; str2: cstring): int32 {...}{.importc: "igImStricmp",
    cdecl, discardable.}
proc igImStristr(haystack: cstring; haystack_end: cstring; needle: cstring;
                 needle_end: cstring): cstring {...}{.importc: "igImStristr", cdecl,
    discardable.}
proc igImStrlenW(str: ptr ImWchar): int32 {...}{.importc: "igImStrlenW", cdecl,
    discardable.}
proc igImStrncpy(dst: cstring; src: cstring; count: uint): void {...}{.
    importc: "igImStrncpy", cdecl, discardable.}
proc igImStrnicmp(str1: cstring; str2: cstring; count: uint): int32 {...}{.
    importc: "igImStrnicmp", cdecl, discardable.}
proc igImTextCharFromUtf8(out_char: ptr uint32; in_text: cstring;
                          in_text_end: cstring): int32 {...}{.
    importc: "igImTextCharFromUtf8", cdecl, discardable.}
proc igImTextCountCharsFromUtf8(in_text: cstring; in_text_end: cstring): int32 {...}{.
    importc: "igImTextCountCharsFromUtf8", cdecl, discardable.}
proc igImTextCountUtf8BytesFromChar(in_text: cstring; in_text_end: cstring): int32 {...}{.
    importc: "igImTextCountUtf8BytesFromChar", cdecl, discardable.}
proc igImTextCountUtf8BytesFromStr(in_text: ptr ImWchar;
                                   in_text_end: ptr ImWchar): int32 {...}{.
    importc: "igImTextCountUtf8BytesFromStr", cdecl, discardable.}
proc igImTextStrFromUtf8(buf: ptr ImWchar; buf_size: int32; in_text: cstring;
                         in_text_end: cstring; in_remaining: ptr cstring = nil): int32 {...}{.
    importc: "igImTextStrFromUtf8", cdecl, discardable.}
proc igImTextStrToUtf8(buf: cstring; buf_size: int32; in_text: ptr ImWchar;
                       in_text_end: ptr ImWchar): int32 {...}{.
    importc: "igImTextStrToUtf8", cdecl, discardable.}
proc igImTriangleArea(a: ImVec2; b: ImVec2; c: ImVec2): float32 {...}{.
    importc: "igImTriangleArea", cdecl, discardable.}
proc igImTriangleBarycentricCoords(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2;
                                   out_u: ptr float32; out_v: ptr float32;
                                   out_w: ptr float32): void {...}{.
    importc: "igImTriangleBarycentricCoords", cdecl, discardable.}
proc igImTriangleClosestPointNonUDT(pOut: ptr ImVec2; a: ImVec2; b: ImVec2;
                                    c: ImVec2; p: ImVec2): void {...}{.
    importc: "igImTriangleClosestPoint", cdecl, discardable.}
proc igImTriangleContainsPoint(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2): bool {...}{.
    importc: "igImTriangleContainsPoint", cdecl, discardable.}
proc igImUpperPowerOfTwo(v: int32): int32 {...}{.importc: "igImUpperPowerOfTwo",
    cdecl, discardable.}
proc igImage(user_texture_id: ImTextureID; size: ImVec2;
             uv0: ImVec2 = ImVec2(x: 0, y: 0); uv1: ImVec2 = ImVec2(x: 1, y: 1);
             tint_col: ImVec4 = ImVec4(x: 1, y: 1, z: 1, w: 1);
             border_col: ImVec4 = ImVec4(x: 0, y: 0, z: 0, w: 0)): void {...}{.
    importc: "igImage", cdecl, discardable.}
proc igImageButton(user_texture_id: ImTextureID; size: ImVec2;
                   uv0: ImVec2 = ImVec2(x: 0, y: 0);
                   uv1: ImVec2 = ImVec2(x: 1, y: 1); frame_padding: int32 = -1;
                   bg_col: ImVec4 = ImVec4(x: 0, y: 0, z: 0, w: 0);
                   tint_col: ImVec4 = ImVec4(x: 1, y: 1, z: 1, w: 1)): bool {...}{.
    importc: "igImageButton", cdecl, discardable.}
proc igImageButtonEx(id: ImGuiID; texture_id: ImTextureID; size: ImVec2;
                     uv0: ImVec2; uv1: ImVec2; padding: ImVec2; bg_col: ImVec4;
                     tint_col: ImVec4): bool {...}{.importc: "igImageButtonEx",
    cdecl, discardable.}
proc igIndent(indent_w: float32 = 0.0'f32): void {...}{.importc: "igIndent", cdecl,
    discardable.}
proc igInitialize(context: ptr ImGuiContext): void {...}{.importc: "igInitialize",
    cdecl, discardable.}
proc igInputDouble(label: cstring; v: ptr float64; step: float64 = 0.0;
                   step_fast: float64 = 0.0; format: cstring = "%.6f";
                   flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputDouble", cdecl, discardable.}
proc igInputFloat(label: cstring; v: ptr float32; step: float32 = 0.0'f32;
                  step_fast: float32 = 0.0'f32; format: cstring = "%.3f";
                  flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputFloat", cdecl, discardable.}
proc igInputFloat2(label: cstring; v: var array[2, float32];
                   format: cstring = "%.3f";
                   flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputFloat2", cdecl, discardable.}
proc igInputFloat3(label: cstring; v: var array[3, float32];
                   format: cstring = "%.3f";
                   flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputFloat3", cdecl, discardable.}
proc igInputFloat4(label: cstring; v: var array[4, float32];
                   format: cstring = "%.3f";
                   flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputFloat4", cdecl, discardable.}
proc igInputInt(label: cstring; v: ptr int32; step: int32 = 1;
                step_fast: int32 = 100;
                flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputInt", cdecl, discardable.}
proc igInputInt2(label: cstring; v: var array[2, int32];
                 flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputInt2", cdecl, discardable.}
proc igInputInt3(label: cstring; v: var array[3, int32];
                 flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputInt3", cdecl, discardable.}
proc igInputInt4(label: cstring; v: var array[4, int32];
                 flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputInt4", cdecl, discardable.}
proc igInputScalar(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                   p_step: pointer = nil; p_step_fast: pointer = nil;
                   format: cstring = nil;
                   flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputScalar", cdecl, discardable.}
proc igInputScalarN(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                    components: int32; p_step: pointer = nil;
                    p_step_fast: pointer = nil; format: cstring = nil;
                    flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags): bool {...}{.
    importc: "igInputScalarN", cdecl, discardable.}
proc igInputText(label: cstring; buf: cstring; buf_size: uint;
                 flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags;
                 callback: ImGuiInputTextCallback = nil;
                 user_data: pointer = nil): bool {...}{.importc: "igInputText",
    cdecl, discardable.}
proc igInputTextEx(label: cstring; hint: cstring; buf: cstring; buf_size: int32;
                   size_arg: ImVec2; flags: ImGuiInputTextFlags;
                   callback: ImGuiInputTextCallback = nil;
                   user_data: pointer = nil): bool {...}{.importc: "igInputTextEx",
    cdecl, discardable.}
proc igInputTextMultiline(label: cstring; buf: cstring; buf_size: uint;
                          size: ImVec2 = ImVec2(x: 0, y: 0);
                          flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags;
                          callback: ImGuiInputTextCallback = nil;
                          user_data: pointer = nil): bool {...}{.
    importc: "igInputTextMultiline", cdecl, discardable.}
proc igInputTextWithHint(label: cstring; hint: cstring; buf: cstring;
                         buf_size: uint;
                         flags: ImGuiInputTextFlags = 0.ImGuiInputTextFlags;
                         callback: ImGuiInputTextCallback = nil;
                         user_data: pointer = nil): bool {...}{.
    importc: "igInputTextWithHint", cdecl, discardable.}
proc igInvisibleButton(str_id: cstring; size: ImVec2;
                       flags: ImGuiButtonFlags = 0.ImGuiButtonFlags): bool {...}{.
    importc: "igInvisibleButton", cdecl, discardable.}
proc igIsActiveIdUsingKey(key: ImGuiKey): bool {...}{.
    importc: "igIsActiveIdUsingKey", cdecl, discardable.}
proc igIsActiveIdUsingNavDir(dir: ImGuiDir): bool {...}{.
    importc: "igIsActiveIdUsingNavDir", cdecl, discardable.}
proc igIsActiveIdUsingNavInput(input: ImGuiNavInput): bool {...}{.
    importc: "igIsActiveIdUsingNavInput", cdecl, discardable.}
proc igIsAnyItemActive(): bool {...}{.importc: "igIsAnyItemActive", cdecl,
                                 discardable.}
proc igIsAnyItemFocused(): bool {...}{.importc: "igIsAnyItemFocused", cdecl,
                                  discardable.}
proc igIsAnyItemHovered(): bool {...}{.importc: "igIsAnyItemHovered", cdecl,
                                  discardable.}
proc igIsAnyMouseDown(): bool {...}{.importc: "igIsAnyMouseDown", cdecl, discardable.}
proc igIsClippedEx(bb: ImRect; id: ImGuiID; clip_even_when_logged: bool): bool {...}{.
    importc: "igIsClippedEx", cdecl, discardable.}
proc igIsDragDropPayloadBeingAccepted(): bool {...}{.
    importc: "igIsDragDropPayloadBeingAccepted", cdecl, discardable.}
proc igIsItemActivated(): bool {...}{.importc: "igIsItemActivated", cdecl,
                                 discardable.}
proc igIsItemActive(): bool {...}{.importc: "igIsItemActive", cdecl, discardable.}
proc igIsItemClicked(mouse_button: ImGuiMouseButton = 0.ImGuiMouseButton): bool {...}{.
    importc: "igIsItemClicked", cdecl, discardable.}
proc igIsItemDeactivated(): bool {...}{.importc: "igIsItemDeactivated", cdecl,
                                   discardable.}
proc igIsItemDeactivatedAfterEdit(): bool {...}{.
    importc: "igIsItemDeactivatedAfterEdit", cdecl, discardable.}
proc igIsItemEdited(): bool {...}{.importc: "igIsItemEdited", cdecl, discardable.}
proc igIsItemFocused(): bool {...}{.importc: "igIsItemFocused", cdecl, discardable.}
proc igIsItemHovered(flags: ImGuiHoveredFlags = 0.ImGuiHoveredFlags): bool {...}{.
    importc: "igIsItemHovered", cdecl, discardable.}
proc igIsItemToggledOpen(): bool {...}{.importc: "igIsItemToggledOpen", cdecl,
                                   discardable.}
proc igIsItemToggledSelection(): bool {...}{.importc: "igIsItemToggledSelection",
                                        cdecl, discardable.}
proc igIsItemVisible(): bool {...}{.importc: "igIsItemVisible", cdecl, discardable.}
proc igIsKeyDown(user_key_index: int32): bool {...}{.importc: "igIsKeyDown", cdecl,
    discardable.}
proc igIsKeyPressed(user_key_index: int32; repeat: bool = true): bool {...}{.
    importc: "igIsKeyPressed", cdecl, discardable.}
proc igIsKeyPressedMap(key: ImGuiKey; repeat: bool = true): bool {...}{.
    importc: "igIsKeyPressedMap", cdecl, discardable.}
proc igIsKeyReleased(user_key_index: int32): bool {...}{.importc: "igIsKeyReleased",
    cdecl, discardable.}
proc igIsMouseClicked(button: ImGuiMouseButton; repeat: bool = false): bool {...}{.
    importc: "igIsMouseClicked", cdecl, discardable.}
proc igIsMouseDoubleClicked(button: ImGuiMouseButton): bool {...}{.
    importc: "igIsMouseDoubleClicked", cdecl, discardable.}
proc igIsMouseDown(button: ImGuiMouseButton): bool {...}{.importc: "igIsMouseDown",
    cdecl, discardable.}
proc igIsMouseDragPastThreshold(button: ImGuiMouseButton;
                                lock_threshold: float32 = -1.0'f32): bool {...}{.
    importc: "igIsMouseDragPastThreshold", cdecl, discardable.}
proc igIsMouseDragging(button: ImGuiMouseButton;
                       lock_threshold: float32 = -1.0'f32): bool {...}{.
    importc: "igIsMouseDragging", cdecl, discardable.}
proc igIsMouseHoveringRect(r_min: ImVec2; r_max: ImVec2; clip: bool = true): bool {...}{.
    importc: "igIsMouseHoveringRect", cdecl, discardable.}
proc igIsMousePosValid(mouse_pos: ptr ImVec2 = nil): bool {...}{.
    importc: "igIsMousePosValid", cdecl, discardable.}
proc igIsMouseReleased(button: ImGuiMouseButton): bool {...}{.
    importc: "igIsMouseReleased", cdecl, discardable.}
proc igIsNavInputDown(n: ImGuiNavInput): bool {...}{.importc: "igIsNavInputDown",
    cdecl, discardable.}
proc igIsNavInputTest(n: ImGuiNavInput; rm: ImGuiInputReadMode): bool {...}{.
    importc: "igIsNavInputTest", cdecl, discardable.}
proc igIsPopupOpen(str_id: cstring; flags: ImGuiPopupFlags = 0.ImGuiPopupFlags): bool {...}{.
    importc: "igIsPopupOpenStr", cdecl, discardable.}
proc igIsPopupOpen(id: ImGuiID; popup_flags: ImGuiPopupFlags): bool {...}{.
    importc: "igIsPopupOpenID", cdecl, discardable.}
proc igIsRectVisible(size: ImVec2): bool {...}{.importc: "igIsRectVisibleNil", cdecl,
    discardable.}
proc igIsRectVisible(rect_min: ImVec2; rect_max: ImVec2): bool {...}{.
    importc: "igIsRectVisibleVec2", cdecl, discardable.}
proc igIsWindowAbove(potential_above: ptr ImGuiWindow;
                     potential_below: ptr ImGuiWindow): bool {...}{.
    importc: "igIsWindowAbove", cdecl, discardable.}
proc igIsWindowAppearing(): bool {...}{.importc: "igIsWindowAppearing", cdecl,
                                   discardable.}
proc igIsWindowChildOf(window: ptr ImGuiWindow;
                       potential_parent: ptr ImGuiWindow): bool {...}{.
    importc: "igIsWindowChildOf", cdecl, discardable.}
proc igIsWindowCollapsed(): bool {...}{.importc: "igIsWindowCollapsed", cdecl,
                                   discardable.}
proc igIsWindowFocused(flags: ImGuiFocusedFlags = 0.ImGuiFocusedFlags): bool {...}{.
    importc: "igIsWindowFocused", cdecl, discardable.}
proc igIsWindowHovered(flags: ImGuiHoveredFlags = 0.ImGuiHoveredFlags): bool {...}{.
    importc: "igIsWindowHovered", cdecl, discardable.}
proc igIsWindowNavFocusable(window: ptr ImGuiWindow): bool {...}{.
    importc: "igIsWindowNavFocusable", cdecl, discardable.}
proc igItemAdd(bb: ImRect; id: ImGuiID; nav_bb: ptr ImRect = nil): bool {...}{.
    importc: "igItemAdd", cdecl, discardable.}
proc igItemHoverable(bb: ImRect; id: ImGuiID): bool {...}{.
    importc: "igItemHoverable", cdecl, discardable.}
proc igItemSize(size: ImVec2; text_baseline_y: float32 = -1.0'f32): void {...}{.
    importc: "igItemSizeVec2", cdecl, discardable.}
proc igItemSize(bb: ImRect; text_baseline_y: float32 = -1.0'f32): void {...}{.
    importc: "igItemSizeRect", cdecl, discardable.}
proc igKeepAliveID(id: ImGuiID): void {...}{.importc: "igKeepAliveID", cdecl,
                                        discardable.}
proc igLabelText(label: cstring; fmt: cstring): void {...}{.importc: "igLabelText",
    varargs, cdecl, discardable.}
proc igLabelTextV(label: cstring; fmt: cstring): void {...}{.importc: "igLabelTextV",
    varargs, cdecl, discardable.}
proc igListBox(label: cstring; current_item: ptr int32; items: ptr cstring;
               items_count: int32; height_in_items: int32 = -1): bool {...}{.
    importc: "igListBoxStr_arr", cdecl, discardable.}
proc igListBox(label: cstring; current_item: ptr int32; items_getter: proc (
    data: pointer; idx: int32; out_text: ptr cstring): bool {...}{.cdecl, varargs.};
               data: pointer; items_count: int32; height_in_items: int32 = -1): bool {...}{.
    importc: "igListBoxFnBoolPtr", cdecl, discardable.}
proc igLoadIniSettingsFromDisk(ini_filename: cstring): void {...}{.
    importc: "igLoadIniSettingsFromDisk", cdecl, discardable.}
proc igLoadIniSettingsFromMemory(ini_data: cstring; ini_size: uint = 0): void {...}{.
    importc: "igLoadIniSettingsFromMemory", cdecl, discardable.}
proc igLogBegin(type: ImGuiLogType; auto_open_depth: int32): void {...}{.
    importc: "igLogBegin", cdecl, discardable.}
proc igLogButtons(): void {...}{.importc: "igLogButtons", cdecl, discardable.}
proc igLogFinish(): void {...}{.importc: "igLogFinish", cdecl, discardable.}
proc igLogRenderedText(ref_pos: ptr ImVec2; text: cstring;
                       text_end: cstring = nil): void {...}{.
    importc: "igLogRenderedText", cdecl, discardable.}
proc igLogSetNextTextDecoration(prefix: cstring; suffix: cstring): void {...}{.
    importc: "igLogSetNextTextDecoration", cdecl, discardable.}
proc igLogText(fmt: cstring): void {...}{.importc: "igLogText", varargs, cdecl,
                                     discardable.}
proc igLogToBuffer(auto_open_depth: int32 = -1): void {...}{.
    importc: "igLogToBuffer", cdecl, discardable.}
proc igLogToClipboard(auto_open_depth: int32 = -1): void {...}{.
    importc: "igLogToClipboard", cdecl, discardable.}
proc igLogToFile(auto_open_depth: int32 = -1; filename: cstring = nil): void {...}{.
    importc: "igLogToFile", cdecl, discardable.}
proc igLogToTTY(auto_open_depth: int32 = -1): void {...}{.importc: "igLogToTTY",
    cdecl, discardable.}
proc igMarkIniSettingsDirty(): void {...}{.importc: "igMarkIniSettingsDirtyNil",
                                      cdecl, discardable.}
proc igMarkIniSettingsDirty(window: ptr ImGuiWindow): void {...}{.
    importc: "igMarkIniSettingsDirtyWindowPtr", cdecl, discardable.}
proc igMarkItemEdited(id: ImGuiID): void {...}{.importc: "igMarkItemEdited", cdecl,
    discardable.}
proc igMemAlloc(size: uint): pointer {...}{.importc: "igMemAlloc", cdecl, discardable.}
proc igMemFree(ptr: pointer): void {...}{.importc: "igMemFree", cdecl, discardable.}
proc igMenuItem(label: cstring; shortcut: cstring = nil; selected: bool = false;
                enabled: bool = true): bool {...}{.importc: "igMenuItemBool", cdecl,
    discardable.}
proc igMenuItem(label: cstring; shortcut: cstring; p_selected: ptr bool;
                enabled: bool = true): bool {...}{.importc: "igMenuItemBoolPtr",
    cdecl, discardable.}
proc igNavInitWindow(window: ptr ImGuiWindow; force_reinit: bool): void {...}{.
    importc: "igNavInitWindow", cdecl, discardable.}
proc igNavMoveRequestButNoResultYet(): bool {...}{.
    importc: "igNavMoveRequestButNoResultYet", cdecl, discardable.}
proc igNavMoveRequestCancel(): void {...}{.importc: "igNavMoveRequestCancel", cdecl,
                                      discardable.}
proc igNavMoveRequestForward(move_dir: ImGuiDir; clip_dir: ImGuiDir;
                             bb_rel: ImRect; move_flags: ImGuiNavMoveFlags): void {...}{.
    importc: "igNavMoveRequestForward", cdecl, discardable.}
proc igNavMoveRequestTryWrapping(window: ptr ImGuiWindow;
                                 move_flags: ImGuiNavMoveFlags): void {...}{.
    importc: "igNavMoveRequestTryWrapping", cdecl, discardable.}
proc igNewFrame(): void {...}{.importc: "igNewFrame", cdecl, discardable.}
proc igNewLine(): void {...}{.importc: "igNewLine", cdecl, discardable.}
proc igNextColumn(): void {...}{.importc: "igNextColumn", cdecl, discardable.}
proc igOpenPopup(str_id: cstring;
                 popup_flags: ImGuiPopupFlags = 0.ImGuiPopupFlags): void {...}{.
    importc: "igOpenPopup", cdecl, discardable.}
proc igOpenPopupEx(id: ImGuiID;
                   popup_flags: ImGuiPopupFlags = None.ImGuiPopupFlags): void {...}{.
    importc: "igOpenPopupEx", cdecl, discardable.}
proc igOpenPopupOnItemClick(str_id: cstring = nil;
                            popup_flags: ImGuiPopupFlags = 1.ImGuiPopupFlags): void {...}{.
    importc: "igOpenPopupOnItemClick", cdecl, discardable.}
proc igPlotEx(plot_type: ImGuiPlotType; label: cstring; values_getter: proc (
    data: pointer; idx: int32): float32 {...}{.cdecl, varargs.}; data: pointer;
              values_count: int32; values_offset: int32; overlay_text: cstring;
              scale_min: float32; scale_max: float32; frame_size: ImVec2): int32 {...}{.
    importc: "igPlotEx", cdecl, discardable.}
proc igPlotHistogram(label: cstring; values: ptr float32; values_count: int32;
                     values_offset: int32 = 0; overlay_text: cstring = nil;
                     scale_min: float32 = high(float32);
                     scale_max: float32 = high(float32);
                     graph_size: ImVec2 = ImVec2(x: 0, y: 0);
                     stride: int32 = 4.int32): void {...}{.
    importc: "igPlotHistogramFloatPtr", cdecl, discardable.}
proc igPlotHistogram(label: cstring; values_getter: proc (data: pointer;
    idx: int32): float32 {...}{.cdecl, varargs.}; data: pointer; values_count: int32;
                     values_offset: int32 = 0; overlay_text: cstring = nil;
                     scale_min: float32 = high(float32);
                     scale_max: float32 = high(float32);
                     graph_size: ImVec2 = ImVec2(x: 0, y: 0)): void {...}{.
    importc: "igPlotHistogramFnFloatPtr", cdecl, discardable.}
proc igPlotLines(label: cstring; values: ptr float32; values_count: int32;
                 values_offset: int32 = 0; overlay_text: cstring = nil;
                 scale_min: float32 = high(float32);
                 scale_max: float32 = high(float32);
                 graph_size: ImVec2 = ImVec2(x: 0, y: 0);
                 stride: int32 = 4.int32): void {...}{.
    importc: "igPlotLinesFloatPtr", cdecl, discardable.}
proc igPlotLines(label: cstring; values_getter: proc (data: pointer; idx: int32): float32 {...}{.
    cdecl, varargs.}; data: pointer; values_count: int32;
                 values_offset: int32 = 0; overlay_text: cstring = nil;
                 scale_min: float32 = high(float32);
                 scale_max: float32 = high(float32);
                 graph_size: ImVec2 = ImVec2(x: 0, y: 0)): void {...}{.
    importc: "igPlotLinesFnFloatPtr", cdecl, discardable.}
proc igPopAllowKeyboardFocus(): void {...}{.importc: "igPopAllowKeyboardFocus",
                                       cdecl, discardable.}
proc igPopButtonRepeat(): void {...}{.importc: "igPopButtonRepeat", cdecl,
                                 discardable.}
proc igPopClipRect(): void {...}{.importc: "igPopClipRect", cdecl, discardable.}
proc igPopColumnsBackground(): void {...}{.importc: "igPopColumnsBackground", cdecl,
                                      discardable.}
proc igPopFocusScope(): void {...}{.importc: "igPopFocusScope", cdecl, discardable.}
proc igPopFont(): void {...}{.importc: "igPopFont", cdecl, discardable.}
proc igPopID(): void {...}{.importc: "igPopID", cdecl, discardable.}
proc igPopItemFlag(): void {...}{.importc: "igPopItemFlag", cdecl, discardable.}
proc igPopItemWidth(): void {...}{.importc: "igPopItemWidth", cdecl, discardable.}
proc igPopStyleColor(count: int32 = 1): void {...}{.importc: "igPopStyleColor",
    cdecl, discardable.}
proc igPopStyleVar(count: int32 = 1): void {...}{.importc: "igPopStyleVar", cdecl,
    discardable.}
proc igPopTextWrapPos(): void {...}{.importc: "igPopTextWrapPos", cdecl, discardable.}
proc igProgressBar(fraction: float32; size_arg: ImVec2 = ImVec2(x: 0, y: 0);
                   overlay: cstring = nil): void {...}{.importc: "igProgressBar",
    cdecl, discardable.}
proc igPushAllowKeyboardFocus(allow_keyboard_focus: bool): void {...}{.
    importc: "igPushAllowKeyboardFocus", cdecl, discardable.}
proc igPushButtonRepeat(repeat: bool): void {...}{.importc: "igPushButtonRepeat",
    cdecl, discardable.}
proc igPushClipRect(clip_rect_min: ImVec2; clip_rect_max: ImVec2;
                    intersect_with_current_clip_rect: bool): void {...}{.
    importc: "igPushClipRect", cdecl, discardable.}
proc igPushColumnClipRect(column_index: int32): void {...}{.
    importc: "igPushColumnClipRect", cdecl, discardable.}
proc igPushColumnsBackground(): void {...}{.importc: "igPushColumnsBackground",
                                       cdecl, discardable.}
proc igPushFocusScope(id: ImGuiID): void {...}{.importc: "igPushFocusScope", cdecl,
    discardable.}
proc igPushFont(font: ptr ImFont): void {...}{.importc: "igPushFont", cdecl,
    discardable.}
proc igPushID(str_id: cstring): void {...}{.importc: "igPushIDStr", cdecl,
                                       discardable.}
proc igPushID(str_id_begin: cstring; str_id_end: cstring): void {...}{.
    importc: "igPushIDStrStr", cdecl, discardable.}
proc igPushID(ptr_id: pointer): void {...}{.importc: "igPushIDPtr", cdecl,
                                       discardable.}
proc igPushID(int_id: int32): void {...}{.importc: "igPushIDInt", cdecl, discardable.}
proc igPushItemFlag(option: ImGuiItemFlags; enabled: bool): void {...}{.
    importc: "igPushItemFlag", cdecl, discardable.}
proc igPushItemWidth(item_width: float32): void {...}{.importc: "igPushItemWidth",
    cdecl, discardable.}
proc igPushMultiItemsWidths(components: int32; width_full: float32): void {...}{.
    importc: "igPushMultiItemsWidths", cdecl, discardable.}
proc igPushOverrideID(id: ImGuiID): void {...}{.importc: "igPushOverrideID", cdecl,
    discardable.}
proc igPushStyleColor(idx: ImGuiCol; col: uint32): void {...}{.
    importc: "igPushStyleColorU32", cdecl, discardable.}
proc igPushStyleColor(idx: ImGuiCol; col: ImVec4): void {...}{.
    importc: "igPushStyleColorVec4", cdecl, discardable.}
proc igPushStyleVar(idx: ImGuiStyleVar; val: float32): void {...}{.
    importc: "igPushStyleVarFloat", cdecl, discardable.}
proc igPushStyleVar(idx: ImGuiStyleVar; val: ImVec2): void {...}{.
    importc: "igPushStyleVarVec2", cdecl, discardable.}
proc igPushTextWrapPos(wrap_local_pos_x: float32 = 0.0'f32): void {...}{.
    importc: "igPushTextWrapPos", cdecl, discardable.}
proc igRadioButton(label: cstring; active: bool): bool {...}{.
    importc: "igRadioButtonBool", cdecl, discardable.}
proc igRadioButton(label: cstring; v: ptr int32; v_button: int32): bool {...}{.
    importc: "igRadioButtonIntPtr", cdecl, discardable.}
proc igRemoveContextHook(context: ptr ImGuiContext; hook_to_remove: ImGuiID): void {...}{.
    importc: "igRemoveContextHook", cdecl, discardable.}
proc igRender(): void {...}{.importc: "igRender", cdecl, discardable.}
proc igRenderArrow(draw_list: ptr ImDrawList; pos: ImVec2; col: uint32;
                   dir: ImGuiDir; scale: float32 = 1.0'f32): void {...}{.
    importc: "igRenderArrow", cdecl, discardable.}
proc igRenderArrowPointingAt(draw_list: ptr ImDrawList; pos: ImVec2;
                             half_sz: ImVec2; direction: ImGuiDir; col: uint32): void {...}{.
    importc: "igRenderArrowPointingAt", cdecl, discardable.}
proc igRenderBullet(draw_list: ptr ImDrawList; pos: ImVec2; col: uint32): void {...}{.
    importc: "igRenderBullet", cdecl, discardable.}
proc igRenderCheckMark(draw_list: ptr ImDrawList; pos: ImVec2; col: uint32;
                       sz: float32): void {...}{.importc: "igRenderCheckMark", cdecl,
    discardable.}
proc igRenderColorRectWithAlphaCheckerboard(draw_list: ptr ImDrawList;
    p_min: ImVec2; p_max: ImVec2; fill_col: uint32; grid_step: float32;
    grid_off: ImVec2; rounding: float32 = 0.0'f32;
    rounding_corners_flags: int32 = -1): void {...}{.
    importc: "igRenderColorRectWithAlphaCheckerboard", cdecl, discardable.}
proc igRenderFrame(p_min: ImVec2; p_max: ImVec2; fill_col: uint32;
                   border: bool = true; rounding: float32 = 0.0'f32): void {...}{.
    importc: "igRenderFrame", cdecl, discardable.}
proc igRenderFrameBorder(p_min: ImVec2; p_max: ImVec2;
                         rounding: float32 = 0.0'f32): void {...}{.
    importc: "igRenderFrameBorder", cdecl, discardable.}
proc igRenderMouseCursor(draw_list: ptr ImDrawList; pos: ImVec2; scale: float32;
                         mouse_cursor: ImGuiMouseCursor; col_fill: uint32;
                         col_border: uint32; col_shadow: uint32): void {...}{.
    importc: "igRenderMouseCursor", cdecl, discardable.}
proc igRenderNavHighlight(bb: ImRect; id: ImGuiID; flags: ImGuiNavHighlightFlags = TypeDefault.ImGuiNavHighlightFlags): void {...}{.
    importc: "igRenderNavHighlight", cdecl, discardable.}
proc igRenderRectFilledRangeH(draw_list: ptr ImDrawList; rect: ImRect;
                              col: uint32; x_start_norm: float32;
                              x_end_norm: float32; rounding: float32): void {...}{.
    importc: "igRenderRectFilledRangeH", cdecl, discardable.}
proc igRenderRectFilledWithHole(draw_list: ptr ImDrawList; outer: ImRect;
                                inner: ImRect; col: uint32; rounding: float32): void {...}{.
    importc: "igRenderRectFilledWithHole", cdecl, discardable.}
proc igRenderText(pos: ImVec2; text: cstring; text_end: cstring = nil;
                  hide_text_after_hash: bool = true): void {...}{.
    importc: "igRenderText", cdecl, discardable.}
proc igRenderTextClipped(pos_min: ImVec2; pos_max: ImVec2; text: cstring;
                         text_end: cstring; text_size_if_known: ptr ImVec2;
                         align: ImVec2 = ImVec2(x: 0, y: 0);
                         clip_rect: ptr ImRect = nil): void {...}{.
    importc: "igRenderTextClipped", cdecl, discardable.}
proc igRenderTextClippedEx(draw_list: ptr ImDrawList; pos_min: ImVec2;
                           pos_max: ImVec2; text: cstring; text_end: cstring;
                           text_size_if_known: ptr ImVec2;
                           align: ImVec2 = ImVec2(x: 0, y: 0);
                           clip_rect: ptr ImRect = nil): void {...}{.
    importc: "igRenderTextClippedEx", cdecl, discardable.}
proc igRenderTextEllipsis(draw_list: ptr ImDrawList; pos_min: ImVec2;
                          pos_max: ImVec2; clip_max_x: float32;
                          ellipsis_max_x: float32; text: cstring;
                          text_end: cstring; text_size_if_known: ptr ImVec2): void {...}{.
    importc: "igRenderTextEllipsis", cdecl, discardable.}
proc igRenderTextWrapped(pos: ImVec2; text: cstring; text_end: cstring;
                         wrap_width: float32): void {...}{.
    importc: "igRenderTextWrapped", cdecl, discardable.}
proc igResetMouseDragDelta(button: ImGuiMouseButton = 0.ImGuiMouseButton): void {...}{.
    importc: "igResetMouseDragDelta", cdecl, discardable.}
proc igSameLine(offset_from_start_x: float32 = 0.0'f32;
                spacing: float32 = -1.0'f32): void {...}{.importc: "igSameLine",
    cdecl, discardable.}
proc igSaveIniSettingsToDisk(ini_filename: cstring): void {...}{.
    importc: "igSaveIniSettingsToDisk", cdecl, discardable.}
proc igSaveIniSettingsToMemory(out_ini_size: ptr uint = nil): cstring {...}{.
    importc: "igSaveIniSettingsToMemory", cdecl, discardable.}
proc igScrollToBringRectIntoViewNonUDT(pOut: ptr ImVec2;
                                       window: ptr ImGuiWindow;
                                       item_rect: ImRect): void {...}{.
    importc: "igScrollToBringRectIntoView", cdecl, discardable.}
proc igScrollbar(axis: ImGuiAxis): void {...}{.importc: "igScrollbar", cdecl,
    discardable.}
proc igScrollbarEx(bb: ImRect; id: ImGuiID; axis: ImGuiAxis;
                   p_scroll_v: ptr float32; avail_v: float32;
                   contents_v: float32; rounding_corners: ImDrawCornerFlags): bool {...}{.
    importc: "igScrollbarEx", cdecl, discardable.}
proc igSelectable(label: cstring; selected: bool = false;
                  flags: ImGuiSelectableFlags = 0.ImGuiSelectableFlags;
                  size: ImVec2 = ImVec2(x: 0, y: 0)): bool {...}{.
    importc: "igSelectableBool", cdecl, discardable.}
proc igSelectable(label: cstring; p_selected: ptr bool;
                  flags: ImGuiSelectableFlags = 0.ImGuiSelectableFlags;
                  size: ImVec2 = ImVec2(x: 0, y: 0)): bool {...}{.
    importc: "igSelectableBoolPtr", cdecl, discardable.}
proc igSeparator(): void {...}{.importc: "igSeparator", cdecl, discardable.}
proc igSeparatorEx(flags: ImGuiSeparatorFlags): void {...}{.importc: "igSeparatorEx",
    cdecl, discardable.}
proc igSetActiveID(id: ImGuiID; window: ptr ImGuiWindow): void {...}{.
    importc: "igSetActiveID", cdecl, discardable.}
proc igSetAllocatorFunctions(alloc_func: proc (sz: uint; user_data: pointer): pointer {...}{.
    cdecl, varargs.}; free_func: proc (ptr: pointer; user_data: pointer): void {...}{.
    cdecl, varargs.}; user_data: pointer = nil): void {...}{.
    importc: "igSetAllocatorFunctions", cdecl, discardable.}
proc igSetClipboardText(text: cstring): void {...}{.importc: "igSetClipboardText",
    cdecl, discardable.}
proc igSetColorEditOptions(flags: ImGuiColorEditFlags): void {...}{.
    importc: "igSetColorEditOptions", cdecl, discardable.}
proc igSetColumnOffset(column_index: int32; offset_x: float32): void {...}{.
    importc: "igSetColumnOffset", cdecl, discardable.}
proc igSetColumnWidth(column_index: int32; width: float32): void {...}{.
    importc: "igSetColumnWidth", cdecl, discardable.}
proc igSetCurrentContext(ctx: ptr ImGuiContext): void {...}{.
    importc: "igSetCurrentContext", cdecl, discardable.}
proc igSetCurrentFont(font: ptr ImFont): void {...}{.importc: "igSetCurrentFont",
    cdecl, discardable.}
proc igSetCursorPos(local_pos: ImVec2): void {...}{.importc: "igSetCursorPos", cdecl,
    discardable.}
proc igSetCursorPosX(local_x: float32): void {...}{.importc: "igSetCursorPosX",
    cdecl, discardable.}
proc igSetCursorPosY(local_y: float32): void {...}{.importc: "igSetCursorPosY",
    cdecl, discardable.}
proc igSetCursorScreenPos(pos: ImVec2): void {...}{.importc: "igSetCursorScreenPos",
    cdecl, discardable.}
proc igSetDragDropPayload(type: cstring; data: pointer; sz: uint;
                          cond: ImGuiCond = 0.ImGuiCond): bool {...}{.
    importc: "igSetDragDropPayload", cdecl, discardable.}
proc igSetFocusID(id: ImGuiID; window: ptr ImGuiWindow): void {...}{.
    importc: "igSetFocusID", cdecl, discardable.}
proc igSetHoveredID(id: ImGuiID): void {...}{.importc: "igSetHoveredID", cdecl,
    discardable.}
proc igSetItemAllowOverlap(): void {...}{.importc: "igSetItemAllowOverlap", cdecl,
                                     discardable.}
proc igSetItemDefaultFocus(): void {...}{.importc: "igSetItemDefaultFocus", cdecl,
                                     discardable.}
proc igSetItemUsingMouseWheel(): void {...}{.importc: "igSetItemUsingMouseWheel",
                                        cdecl, discardable.}
proc igSetKeyboardFocusHere(offset: int32 = 0): void {...}{.
    importc: "igSetKeyboardFocusHere", cdecl, discardable.}
proc igSetLastItemData(window: ptr ImGuiWindow; item_id: ImGuiID;
                       status_flags: ImGuiItemStatusFlags; item_rect: ImRect): void {...}{.
    importc: "igSetLastItemData", cdecl, discardable.}
proc igSetMouseCursor(cursor_type: ImGuiMouseCursor): void {...}{.
    importc: "igSetMouseCursor", cdecl, discardable.}
proc igSetNavID(id: ImGuiID; nav_layer: int32; focus_scope_id: ImGuiID): void {...}{.
    importc: "igSetNavID", cdecl, discardable.}
proc igSetNavIDWithRectRel(id: ImGuiID; nav_layer: int32;
                           focus_scope_id: ImGuiID; rect_rel: ImRect): void {...}{.
    importc: "igSetNavIDWithRectRel", cdecl, discardable.}
proc igSetNextItemOpen(is_open: bool; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetNextItemOpen", cdecl, discardable.}
proc igSetNextItemWidth(item_width: float32): void {...}{.
    importc: "igSetNextItemWidth", cdecl, discardable.}
proc igSetNextWindowBgAlpha(alpha: float32): void {...}{.
    importc: "igSetNextWindowBgAlpha", cdecl, discardable.}
proc igSetNextWindowCollapsed(collapsed: bool; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetNextWindowCollapsed", cdecl, discardable.}
proc igSetNextWindowContentSize(size: ImVec2): void {...}{.
    importc: "igSetNextWindowContentSize", cdecl, discardable.}
proc igSetNextWindowFocus(): void {...}{.importc: "igSetNextWindowFocus", cdecl,
                                    discardable.}
proc igSetNextWindowPos(pos: ImVec2; cond: ImGuiCond = 0.ImGuiCond;
                        pivot: ImVec2 = ImVec2(x: 0, y: 0)): void {...}{.
    importc: "igSetNextWindowPos", cdecl, discardable.}
proc igSetNextWindowScroll(scroll: ImVec2): void {...}{.
    importc: "igSetNextWindowScroll", cdecl, discardable.}
proc igSetNextWindowSize(size: ImVec2; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetNextWindowSize", cdecl, discardable.}
proc igSetNextWindowSizeConstraints(size_min: ImVec2; size_max: ImVec2;
                                    custom_callback: ImGuiSizeCallback = nil;
                                    custom_callback_data: pointer = nil): void {...}{.
    importc: "igSetNextWindowSizeConstraints", cdecl, discardable.}
proc igSetScrollFromPosX(local_x: float32; center_x_ratio: float32 = 0.5'f32): void {...}{.
    importc: "igSetScrollFromPosXFloat", cdecl, discardable.}
proc igSetScrollFromPosX(window: ptr ImGuiWindow; local_x: float32;
                         center_x_ratio: float32): void {...}{.
    importc: "igSetScrollFromPosXWindowPtr", cdecl, discardable.}
proc igSetScrollFromPosY(local_y: float32; center_y_ratio: float32 = 0.5'f32): void {...}{.
    importc: "igSetScrollFromPosYFloat", cdecl, discardable.}
proc igSetScrollFromPosY(window: ptr ImGuiWindow; local_y: float32;
                         center_y_ratio: float32): void {...}{.
    importc: "igSetScrollFromPosYWindowPtr", cdecl, discardable.}
proc igSetScrollHereX(center_x_ratio: float32 = 0.5'f32): void {...}{.
    importc: "igSetScrollHereX", cdecl, discardable.}
proc igSetScrollHereY(center_y_ratio: float32 = 0.5'f32): void {...}{.
    importc: "igSetScrollHereY", cdecl, discardable.}
proc igSetScrollX(scroll_x: float32): void {...}{.importc: "igSetScrollXFloat",
    cdecl, discardable.}
proc igSetScrollX(window: ptr ImGuiWindow; scroll_x: float32): void {...}{.
    importc: "igSetScrollXWindowPtr", cdecl, discardable.}
proc igSetScrollY(scroll_y: float32): void {...}{.importc: "igSetScrollYFloat",
    cdecl, discardable.}
proc igSetScrollY(window: ptr ImGuiWindow; scroll_y: float32): void {...}{.
    importc: "igSetScrollYWindowPtr", cdecl, discardable.}
proc igSetStateStorage(storage: ptr ImGuiStorage): void {...}{.
    importc: "igSetStateStorage", cdecl, discardable.}
proc igSetTabItemClosed(tab_or_docked_window_label: cstring): void {...}{.
    importc: "igSetTabItemClosed", cdecl, discardable.}
proc igSetTooltip(fmt: cstring): void {...}{.importc: "igSetTooltip", varargs, cdecl,
                                        discardable.}
proc igSetTooltipV(fmt: cstring): void {...}{.importc: "igSetTooltipV", varargs,
    cdecl, discardable.}
proc igSetWindowClipRectBeforeSetChannel(window: ptr ImGuiWindow;
    clip_rect: ImRect): void {...}{.importc: "igSetWindowClipRectBeforeSetChannel",
                               cdecl, discardable.}
proc igSetWindowCollapsed(collapsed: bool; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowCollapsedBool", cdecl, discardable.}
proc igSetWindowCollapsed(name: cstring; collapsed: bool;
                          cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowCollapsedStr", cdecl, discardable.}
proc igSetWindowCollapsed(window: ptr ImGuiWindow; collapsed: bool;
                          cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowCollapsedWindowPtr", cdecl, discardable.}
proc igSetWindowFocus(): void {...}{.importc: "igSetWindowFocusNil", cdecl,
                                discardable.}
proc igSetWindowFocus(name: cstring): void {...}{.importc: "igSetWindowFocusStr",
    cdecl, discardable.}
proc igSetWindowFontScale(scale: float32): void {...}{.
    importc: "igSetWindowFontScale", cdecl, discardable.}
proc igSetWindowHitTestHole(window: ptr ImGuiWindow; pos: ImVec2; size: ImVec2): void {...}{.
    importc: "igSetWindowHitTestHole", cdecl, discardable.}
proc igSetWindowPos(pos: ImVec2; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowPosVec2", cdecl, discardable.}
proc igSetWindowPos(name: cstring; pos: ImVec2; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowPosStr", cdecl, discardable.}
proc igSetWindowPos(window: ptr ImGuiWindow; pos: ImVec2;
                    cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowPosWindowPtr", cdecl, discardable.}
proc igSetWindowSize(size: ImVec2; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowSizeVec2", cdecl, discardable.}
proc igSetWindowSize(name: cstring; size: ImVec2; cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowSizeStr", cdecl, discardable.}
proc igSetWindowSize(window: ptr ImGuiWindow; size: ImVec2;
                     cond: ImGuiCond = 0.ImGuiCond): void {...}{.
    importc: "igSetWindowSizeWindowPtr", cdecl, discardable.}
proc igShadeVertsLinearColorGradientKeepAlpha(draw_list: ptr ImDrawList;
    vert_start_idx: int32; vert_end_idx: int32; gradient_p0: ImVec2;
    gradient_p1: ImVec2; col0: uint32; col1: uint32): void {...}{.
    importc: "igShadeVertsLinearColorGradientKeepAlpha", cdecl, discardable.}
proc igShadeVertsLinearUV(draw_list: ptr ImDrawList; vert_start_idx: int32;
                          vert_end_idx: int32; a: ImVec2; b: ImVec2;
                          uv_a: ImVec2; uv_b: ImVec2; clamp: bool): void {...}{.
    importc: "igShadeVertsLinearUV", cdecl, discardable.}
proc igShowAboutWindow(p_open: ptr bool = nil): void {...}{.
    importc: "igShowAboutWindow", cdecl, discardable.}
proc igShowDemoWindow(p_open: ptr bool = nil): void {...}{.
    importc: "igShowDemoWindow", cdecl, discardable.}
proc igShowFontSelector(label: cstring): void {...}{.importc: "igShowFontSelector",
    cdecl, discardable.}
proc igShowMetricsWindow(p_open: ptr bool = nil): void {...}{.
    importc: "igShowMetricsWindow", cdecl, discardable.}
proc igShowStyleEditor(ref: ptr ImGuiStyle = nil): void {...}{.
    importc: "igShowStyleEditor", cdecl, discardable.}
proc igShowStyleSelector(label: cstring): bool {...}{.importc: "igShowStyleSelector",
    cdecl, discardable.}
proc igShowUserGuide(): void {...}{.importc: "igShowUserGuide", cdecl, discardable.}
proc igShrinkWidths(items: ptr ImGuiShrinkWidthItem; count: int32;
                    width_excess: float32): void {...}{.importc: "igShrinkWidths",
    cdecl, discardable.}
proc igShutdown(context: ptr ImGuiContext): void {...}{.importc: "igShutdown", cdecl,
    discardable.}
proc igSliderAngle(label: cstring; v_rad: ptr float32;
                   v_degrees_min: float32 = -360.0'f32;
                   v_degrees_max: float32 = +360.0'f32;
                   format: cstring = "%.0f deg";
                   flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderAngle", cdecl, discardable.}
proc igSliderBehavior(bb: ImRect; id: ImGuiID; data_type: ImGuiDataType;
                      p_v: pointer; p_min: pointer; p_max: pointer;
                      format: cstring; flags: ImGuiSliderFlags;
                      out_grab_bb: ptr ImRect): bool {...}{.
    importc: "igSliderBehavior", cdecl, discardable.}
proc igSliderFloat(label: cstring; v: ptr float32; v_min: float32;
                   v_max: float32; format: cstring = "%.3f";
                   flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderFloat", cdecl, discardable.}
proc igSliderFloat2(label: cstring; v: var array[2, float32]; v_min: float32;
                    v_max: float32; format: cstring = "%.3f";
                    flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderFloat2", cdecl, discardable.}
proc igSliderFloat3(label: cstring; v: var array[3, float32]; v_min: float32;
                    v_max: float32; format: cstring = "%.3f";
                    flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderFloat3", cdecl, discardable.}
proc igSliderFloat4(label: cstring; v: var array[4, float32]; v_min: float32;
                    v_max: float32; format: cstring = "%.3f";
                    flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderFloat4", cdecl, discardable.}
proc igSliderInt(label: cstring; v: ptr int32; v_min: int32; v_max: int32;
                 format: cstring = "%d";
                 flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderInt", cdecl, discardable.}
proc igSliderInt2(label: cstring; v: var array[2, int32]; v_min: int32;
                  v_max: int32; format: cstring = "%d";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderInt2", cdecl, discardable.}
proc igSliderInt3(label: cstring; v: var array[3, int32]; v_min: int32;
                  v_max: int32; format: cstring = "%d";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderInt3", cdecl, discardable.}
proc igSliderInt4(label: cstring; v: var array[4, int32]; v_min: int32;
                  v_max: int32; format: cstring = "%d";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderInt4", cdecl, discardable.}
proc igSliderScalar(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                    p_min: pointer; p_max: pointer; format: cstring = nil;
                    flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderScalar", cdecl, discardable.}
proc igSliderScalarN(label: cstring; data_type: ImGuiDataType; p_data: pointer;
                     components: int32; p_min: pointer; p_max: pointer;
                     format: cstring = nil;
                     flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igSliderScalarN", cdecl, discardable.}
proc igSmallButton(label: cstring): bool {...}{.importc: "igSmallButton", cdecl,
    discardable.}
proc igSpacing(): void {...}{.importc: "igSpacing", cdecl, discardable.}
proc igSplitterBehavior(bb: ImRect; id: ImGuiID; axis: ImGuiAxis;
                        size1: ptr float32; size2: ptr float32;
                        min_size1: float32; min_size2: float32;
                        hover_extend: float32 = 0.0'f32;
                        hover_visibility_delay: float32 = 0.0'f32): bool {...}{.
    importc: "igSplitterBehavior", cdecl, discardable.}
proc igStartMouseMovingWindow(window: ptr ImGuiWindow): void {...}{.
    importc: "igStartMouseMovingWindow", cdecl, discardable.}
proc igStyleColorsClassic(dst: ptr ImGuiStyle = nil): void {...}{.
    importc: "igStyleColorsClassic", cdecl, discardable.}
proc igStyleColorsDark(dst: ptr ImGuiStyle = nil): void {...}{.
    importc: "igStyleColorsDark", cdecl, discardable.}
proc igStyleColorsLight(dst: ptr ImGuiStyle = nil): void {...}{.
    importc: "igStyleColorsLight", cdecl, discardable.}
proc igTabBarCloseTab(tab_bar: ptr ImGuiTabBar; tab: ptr ImGuiTabItem): void {...}{.
    importc: "igTabBarCloseTab", cdecl, discardable.}
proc igTabBarFindTabByID(tab_bar: ptr ImGuiTabBar; tab_id: ImGuiID): ptr ImGuiTabItem {...}{.
    importc: "igTabBarFindTabByID", cdecl, discardable.}
proc igTabBarProcessReorder(tab_bar: ptr ImGuiTabBar): bool {...}{.
    importc: "igTabBarProcessReorder", cdecl, discardable.}
proc igTabBarQueueReorder(tab_bar: ptr ImGuiTabBar; tab: ptr ImGuiTabItem;
                          dir: int32): void {...}{.importc: "igTabBarQueueReorder",
    cdecl, discardable.}
proc igTabBarRemoveTab(tab_bar: ptr ImGuiTabBar; tab_id: ImGuiID): void {...}{.
    importc: "igTabBarRemoveTab", cdecl, discardable.}
proc igTabItemBackground(draw_list: ptr ImDrawList; bb: ImRect;
                         flags: ImGuiTabItemFlags; col: uint32): void {...}{.
    importc: "igTabItemBackground", cdecl, discardable.}
proc igTabItemButton(label: cstring;
                     flags: ImGuiTabItemFlags = 0.ImGuiTabItemFlags): bool {...}{.
    importc: "igTabItemButton", cdecl, discardable.}
proc igTabItemCalcSizeNonUDT(pOut: ptr ImVec2; label: cstring;
                             has_close_button: bool): void {...}{.
    importc: "igTabItemCalcSize", cdecl, discardable.}
proc igTabItemEx(tab_bar: ptr ImGuiTabBar; label: cstring; p_open: ptr bool;
                 flags: ImGuiTabItemFlags): bool {...}{.importc: "igTabItemEx",
    cdecl, discardable.}
proc igTabItemLabelAndCloseButton(draw_list: ptr ImDrawList; bb: ImRect;
                                  flags: ImGuiTabItemFlags;
                                  frame_padding: ImVec2; label: cstring;
                                  tab_id: ImGuiID; close_button_id: ImGuiID;
                                  is_contents_visible: bool;
                                  out_just_closed: ptr bool;
                                  out_text_clipped: ptr bool): void {...}{.
    importc: "igTabItemLabelAndCloseButton", cdecl, discardable.}
proc igTableBeginApplyRequests(table: ptr ImGuiTable): void {...}{.
    importc: "igTableBeginApplyRequests", cdecl, discardable.}
proc igTableBeginCell(table: ptr ImGuiTable; column_n: int32): void {...}{.
    importc: "igTableBeginCell", cdecl, discardable.}
proc igTableBeginInitMemory(table: ptr ImGuiTable; columns_count: int32): void {...}{.
    importc: "igTableBeginInitMemory", cdecl, discardable.}
proc igTableBeginRow(table: ptr ImGuiTable): void {...}{.importc: "igTableBeginRow",
    cdecl, discardable.}
proc igTableDrawBorders(table: ptr ImGuiTable): void {...}{.
    importc: "igTableDrawBorders", cdecl, discardable.}
proc igTableDrawContextMenu(table: ptr ImGuiTable): void {...}{.
    importc: "igTableDrawContextMenu", cdecl, discardable.}
proc igTableEndCell(table: ptr ImGuiTable): void {...}{.importc: "igTableEndCell",
    cdecl, discardable.}
proc igTableEndRow(table: ptr ImGuiTable): void {...}{.importc: "igTableEndRow",
    cdecl, discardable.}
proc igTableFindByID(id: ImGuiID): ptr ImGuiTable {...}{.importc: "igTableFindByID",
    cdecl, discardable.}
proc igTableFixColumnSortDirection(table: ptr ImGuiTable;
                                   column: ptr ImGuiTableColumn): void {...}{.
    importc: "igTableFixColumnSortDirection", cdecl, discardable.}
proc igTableGcCompactSettings(): void {...}{.importc: "igTableGcCompactSettings",
                                        cdecl, discardable.}
proc igTableGcCompactTransientBuffers(table: ptr ImGuiTable): void {...}{.
    importc: "igTableGcCompactTransientBuffers", cdecl, discardable.}
proc igTableGetBoundSettings(table: ptr ImGuiTable): ptr ImGuiTableSettings {...}{.
    importc: "igTableGetBoundSettings", cdecl, discardable.}
proc igTableGetCellBgRectNonUDT(pOut: ptr ImRect; table: ptr ImGuiTable;
                                column_n: int32): void {...}{.
    importc: "igTableGetCellBgRect", cdecl, discardable.}
proc igTableGetColumnCount(): int32 {...}{.importc: "igTableGetColumnCount", cdecl,
                                      discardable.}
proc igTableGetColumnFlags(column_n: int32 = -1): ImGuiTableColumnFlags {...}{.
    importc: "igTableGetColumnFlags", cdecl, discardable.}
proc igTableGetColumnIndex(): int32 {...}{.importc: "igTableGetColumnIndex", cdecl,
                                      discardable.}
proc igTableGetColumnName(column_n: int32 = -1): cstring {...}{.
    importc: "igTableGetColumnNameInt", cdecl, discardable.}
proc igTableGetColumnName(table: ptr ImGuiTable; column_n: int32): cstring {...}{.
    importc: "igTableGetColumnNameTablePtr", cdecl, discardable.}
proc igTableGetColumnNextSortDirection(column: ptr ImGuiTableColumn): ImGuiSortDirection {...}{.
    importc: "igTableGetColumnNextSortDirection", cdecl, discardable.}
proc igTableGetColumnResizeID(table: ptr ImGuiTable; column_n: int32;
                              instance_no: int32 = 0): ImGuiID {...}{.
    importc: "igTableGetColumnResizeID", cdecl, discardable.}
proc igTableGetColumnWidthAuto(table: ptr ImGuiTable;
                               column: ptr ImGuiTableColumn): float32 {...}{.
    importc: "igTableGetColumnWidthAuto", cdecl, discardable.}
proc igTableGetHeaderRowHeight(): float32 {...}{.
    importc: "igTableGetHeaderRowHeight", cdecl, discardable.}
proc igTableGetHoveredColumn(): int32 {...}{.importc: "igTableGetHoveredColumn",
                                        cdecl, discardable.}
proc igTableGetMaxColumnWidth(table: ptr ImGuiTable; column_n: int32): float32 {...}{.
    importc: "igTableGetMaxColumnWidth", cdecl, discardable.}
proc igTableGetRowIndex(): int32 {...}{.importc: "igTableGetRowIndex", cdecl,
                                   discardable.}
proc igTableGetSortSpecs(): ptr ImGuiTableSortSpecs {...}{.
    importc: "igTableGetSortSpecs", cdecl, discardable.}
proc igTableHeader(label: cstring): void {...}{.importc: "igTableHeader", cdecl,
    discardable.}
proc igTableHeadersRow(): void {...}{.importc: "igTableHeadersRow", cdecl,
                                 discardable.}
proc igTableLoadSettings(table: ptr ImGuiTable): void {...}{.
    importc: "igTableLoadSettings", cdecl, discardable.}
proc igTableMergeDrawChannels(table: ptr ImGuiTable): void {...}{.
    importc: "igTableMergeDrawChannels", cdecl, discardable.}
proc igTableNextColumn(): bool {...}{.importc: "igTableNextColumn", cdecl,
                                 discardable.}
proc igTableNextRow(row_flags: ImGuiTableRowFlags = 0.ImGuiTableRowFlags;
                    min_row_height: float32 = 0.0'f32): void {...}{.
    importc: "igTableNextRow", cdecl, discardable.}
proc igTableOpenContextMenu(column_n: int32 = -1): void {...}{.
    importc: "igTableOpenContextMenu", cdecl, discardable.}
proc igTablePopBackgroundChannel(): void {...}{.
    importc: "igTablePopBackgroundChannel", cdecl, discardable.}
proc igTablePushBackgroundChannel(): void {...}{.
    importc: "igTablePushBackgroundChannel", cdecl, discardable.}
proc igTableRemove(table: ptr ImGuiTable): void {...}{.importc: "igTableRemove",
    cdecl, discardable.}
proc igTableResetSettings(table: ptr ImGuiTable): void {...}{.
    importc: "igTableResetSettings", cdecl, discardable.}
proc igTableSaveSettings(table: ptr ImGuiTable): void {...}{.
    importc: "igTableSaveSettings", cdecl, discardable.}
proc igTableSetBgColor(target: ImGuiTableBgTarget; color: uint32;
                       column_n: int32 = -1): void {...}{.
    importc: "igTableSetBgColor", cdecl, discardable.}
proc igTableSetColumnEnabled(column_n: int32; enabled: bool): void {...}{.
    importc: "igTableSetColumnEnabled", cdecl, discardable.}
proc igTableSetColumnIndex(column_n: int32): bool {...}{.
    importc: "igTableSetColumnIndex", cdecl, discardable.}
proc igTableSetColumnSortDirection(column_n: int32;
                                   sort_direction: ImGuiSortDirection;
                                   append_to_sort_specs: bool): void {...}{.
    importc: "igTableSetColumnSortDirection", cdecl, discardable.}
proc igTableSetColumnWidth(column_n: int32; width: float32): void {...}{.
    importc: "igTableSetColumnWidth", cdecl, discardable.}
proc igTableSetColumnWidthAutoAll(table: ptr ImGuiTable): void {...}{.
    importc: "igTableSetColumnWidthAutoAll", cdecl, discardable.}
proc igTableSetColumnWidthAutoSingle(table: ptr ImGuiTable; column_n: int32): void {...}{.
    importc: "igTableSetColumnWidthAutoSingle", cdecl, discardable.}
proc igTableSettingsCreate(id: ImGuiID; columns_count: int32): ptr ImGuiTableSettings {...}{.
    importc: "igTableSettingsCreate", cdecl, discardable.}
proc igTableSettingsFindByID(id: ImGuiID): ptr ImGuiTableSettings {...}{.
    importc: "igTableSettingsFindByID", cdecl, discardable.}
proc igTableSettingsInstallHandler(context: ptr ImGuiContext): void {...}{.
    importc: "igTableSettingsInstallHandler", cdecl, discardable.}
proc igTableSetupColumn(label: cstring;
                        flags: ImGuiTableColumnFlags = 0.ImGuiTableColumnFlags;
                        init_width_or_weight: float32 = 0.0'f32;
                        user_id: uint32 = 0): void {...}{.
    importc: "igTableSetupColumn", cdecl, discardable.}
proc igTableSetupDrawChannels(table: ptr ImGuiTable): void {...}{.
    importc: "igTableSetupDrawChannels", cdecl, discardable.}
proc igTableSetupScrollFreeze(cols: int32; rows: int32): void {...}{.
    importc: "igTableSetupScrollFreeze", cdecl, discardable.}
proc igTableSortSpecsBuild(table: ptr ImGuiTable): void {...}{.
    importc: "igTableSortSpecsBuild", cdecl, discardable.}
proc igTableSortSpecsSanitize(table: ptr ImGuiTable): void {...}{.
    importc: "igTableSortSpecsSanitize", cdecl, discardable.}
proc igTableUpdateBorders(table: ptr ImGuiTable): void {...}{.
    importc: "igTableUpdateBorders", cdecl, discardable.}
proc igTableUpdateColumnsWeightFromWidth(table: ptr ImGuiTable): void {...}{.
    importc: "igTableUpdateColumnsWeightFromWidth", cdecl, discardable.}
proc igTableUpdateLayout(table: ptr ImGuiTable): void {...}{.
    importc: "igTableUpdateLayout", cdecl, discardable.}
proc igTempInputIsActive(id: ImGuiID): bool {...}{.importc: "igTempInputIsActive",
    cdecl, discardable.}
proc igTempInputScalar(bb: ImRect; id: ImGuiID; label: cstring;
                       data_type: ImGuiDataType; p_data: pointer;
                       format: cstring; p_clamp_min: pointer = nil;
                       p_clamp_max: pointer = nil): bool {...}{.
    importc: "igTempInputScalar", cdecl, discardable.}
proc igTempInputText(bb: ImRect; id: ImGuiID; label: cstring; buf: cstring;
                     buf_size: int32; flags: ImGuiInputTextFlags): bool {...}{.
    importc: "igTempInputText", cdecl, discardable.}
proc igText(fmt: cstring): void {...}{.importc: "igText", varargs, cdecl, discardable.}
proc igTextColored(col: ImVec4; fmt: cstring): void {...}{.importc: "igTextColored",
    varargs, cdecl, discardable.}
proc igTextColoredV(col: ImVec4; fmt: cstring): void {...}{.
    importc: "igTextColoredV", varargs, cdecl, discardable.}
proc igTextDisabled(fmt: cstring): void {...}{.importc: "igTextDisabled", varargs,
    cdecl, discardable.}
proc igTextDisabledV(fmt: cstring): void {...}{.importc: "igTextDisabledV", varargs,
    cdecl, discardable.}
proc igTextEx(text: cstring; text_end: cstring = nil;
              flags: ImGuiTextFlags = 0.ImGuiTextFlags): void {...}{.
    importc: "igTextEx", cdecl, discardable.}
proc igTextUnformatted(text: cstring; text_end: cstring = nil): void {...}{.
    importc: "igTextUnformatted", cdecl, discardable.}
proc igTextV(fmt: cstring): void {...}{.importc: "igTextV", varargs, cdecl,
                                   discardable.}
proc igTextWrapped(fmt: cstring): void {...}{.importc: "igTextWrapped", varargs,
    cdecl, discardable.}
proc igTextWrappedV(fmt: cstring): void {...}{.importc: "igTextWrappedV", varargs,
    cdecl, discardable.}
proc igTreeNode(label: cstring): bool {...}{.importc: "igTreeNodeStr", cdecl,
                                        discardable.}
proc igTreeNode(str_id: cstring; fmt: cstring): bool {...}{.
    importc: "igTreeNodeStrStr", varargs, cdecl, discardable.}
proc igTreeNode(ptr_id: pointer; fmt: cstring): bool {...}{.importc: "igTreeNodePtr",
    varargs, cdecl, discardable.}
proc igTreeNodeBehavior(id: ImGuiID; flags: ImGuiTreeNodeFlags; label: cstring;
                        label_end: cstring = nil): bool {...}{.
    importc: "igTreeNodeBehavior", cdecl, discardable.}
proc igTreeNodeBehaviorIsOpen(id: ImGuiID;
                              flags: ImGuiTreeNodeFlags = 0.ImGuiTreeNodeFlags): bool {...}{.
    importc: "igTreeNodeBehaviorIsOpen", cdecl, discardable.}
proc igTreeNodeEx(label: cstring;
                  flags: ImGuiTreeNodeFlags = 0.ImGuiTreeNodeFlags): bool {...}{.
    importc: "igTreeNodeExStr", cdecl, discardable.}
proc igTreeNodeEx(str_id: cstring; flags: ImGuiTreeNodeFlags; fmt: cstring): bool {...}{.
    importc: "igTreeNodeExStrStr", varargs, cdecl, discardable.}
proc igTreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: cstring): bool {...}{.
    importc: "igTreeNodeExPtr", varargs, cdecl, discardable.}
proc igTreeNodeExV(str_id: cstring; flags: ImGuiTreeNodeFlags; fmt: cstring): bool {...}{.
    importc: "igTreeNodeExVStr", varargs, cdecl, discardable.}
proc igTreeNodeExV(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: cstring): bool {...}{.
    importc: "igTreeNodeExVPtr", varargs, cdecl, discardable.}
proc igTreeNodeV(str_id: cstring; fmt: cstring): bool {...}{.
    importc: "igTreeNodeVStr", varargs, cdecl, discardable.}
proc igTreeNodeV(ptr_id: pointer; fmt: cstring): bool {...}{.
    importc: "igTreeNodeVPtr", varargs, cdecl, discardable.}
proc igTreePop(): void {...}{.importc: "igTreePop", cdecl, discardable.}
proc igTreePush(str_id: cstring): void {...}{.importc: "igTreePushStr", cdecl,
    discardable.}
proc igTreePush(ptr_id: pointer = nil): void {...}{.importc: "igTreePushPtr", cdecl,
    discardable.}
proc igTreePushOverrideID(id: ImGuiID): void {...}{.importc: "igTreePushOverrideID",
    cdecl, discardable.}
proc igUnindent(indent_w: float32 = 0.0'f32): void {...}{.importc: "igUnindent",
    cdecl, discardable.}
proc igUpdateHoveredWindowAndCaptureFlags(): void {...}{.
    importc: "igUpdateHoveredWindowAndCaptureFlags", cdecl, discardable.}
proc igUpdateMouseMovingWindowEndFrame(): void {...}{.
    importc: "igUpdateMouseMovingWindowEndFrame", cdecl, discardable.}
proc igUpdateMouseMovingWindowNewFrame(): void {...}{.
    importc: "igUpdateMouseMovingWindowNewFrame", cdecl, discardable.}
proc igUpdateWindowParentAndRootLinks(window: ptr ImGuiWindow;
                                      flags: ImGuiWindowFlags;
                                      parent_window: ptr ImGuiWindow): void {...}{.
    importc: "igUpdateWindowParentAndRootLinks", cdecl, discardable.}
proc igVSliderFloat(label: cstring; size: ImVec2; v: ptr float32;
                    v_min: float32; v_max: float32; format: cstring = "%.3f";
                    flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igVSliderFloat", cdecl, discardable.}
proc igVSliderInt(label: cstring; size: ImVec2; v: ptr int32; v_min: int32;
                  v_max: int32; format: cstring = "%d";
                  flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igVSliderInt", cdecl, discardable.}
proc igVSliderScalar(label: cstring; size: ImVec2; data_type: ImGuiDataType;
                     p_data: pointer; p_min: pointer; p_max: pointer;
                     format: cstring = nil;
                     flags: ImGuiSliderFlags = 0.ImGuiSliderFlags): bool {...}{.
    importc: "igVSliderScalar", cdecl, discardable.}
proc igValue(prefix: cstring; b: bool): void {...}{.importc: "igValueBool", cdecl,
    discardable.}
proc igValue(prefix: cstring; v: int32): void {...}{.importc: "igValueInt", cdecl,
    discardable.}
proc igValue(prefix: cstring; v: uint32): void {...}{.importc: "igValueUint", cdecl,
    discardable.}
proc igValue(prefix: cstring; v: float32; float_format: cstring = nil): void {...}{.
    importc: "igValueFloat", cdecl, discardable.}
proc igStyleColorsCherry(dst: ptr ImGuiStyle = nil): void {...}{.raises: [], tags: [].}
To conmemorate this bindings this style is included as a default. Style created originally by r-lyeh