text: //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
  //based on imgui.h file version "1.72b" from Dear ImGui https://github.com/ocornut/imgui
  #ifndef CIMGUI_INCLUDED
  #define CIMGUI_INCLUDED
  #include <stdio.h>
  #include <stdint.h>
  #if defined _WIN32 || defined __CYGWIN__
      #ifdef CIMGUI_NO_EXPORT
          #define API
      #else
          #define API __declspec(dllexport)
      #endif
      #ifndef __GNUC__
      #define snprintf sprintf_s
      #endif
  #else
      #define API
  #endif
  
  #if defined __cplusplus
      #define EXTERN extern "C"
  #else
      #include <stdarg.h>
      #include <stdbool.h>
      #define EXTERN extern
  #endif
  
  #define CIMGUI_API EXTERN API
  #define CONST const
  
  
  #ifdef _MSC_VER
  typedef unsigned __int64 ImU64;
  #else
  //typedef unsigned long long ImU64;
  #endif
  
  //UDT stuff
  typedef struct ImVec2_Simple { float x; float y; } ImVec2_Simple;
  typedef struct ImVec4_Simple { float x; float y; float z; float w;} ImVec4_Simple;
  typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
  
  
  #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
  typedef struct ImGuiStoragePair ImGuiStoragePair;
  typedef struct ImGuiTextRange ImGuiTextRange;
  typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect;
  typedef struct ImVec4 ImVec4;
  typedef struct ImVec2 ImVec2;
  typedef struct ImGuiTextFilter ImGuiTextFilter;
  typedef struct ImGuiTextBuffer ImGuiTextBuffer;
  typedef struct ImGuiStyle ImGuiStyle;
  typedef struct ImGuiStorage ImGuiStorage;
  typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
  typedef struct ImGuiPayload ImGuiPayload;
  typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
  typedef struct ImGuiListClipper ImGuiListClipper;
  typedef struct ImGuiInputTextCallbackData ImGuiInputTextCallbackData;
  typedef struct ImGuiIO ImGuiIO;
  typedef struct ImGuiContext ImGuiContext;
  typedef struct ImColor ImColor;
  typedef struct ImFontGlyphRangesBuilder ImFontGlyphRangesBuilder;
  typedef struct ImFontGlyph ImFontGlyph;
  typedef struct ImFontConfig ImFontConfig;
  typedef struct ImFontAtlas ImFontAtlas;
  typedef struct ImFont ImFont;
  typedef struct ImDrawVert ImDrawVert;
  typedef struct ImDrawListSplitter ImDrawListSplitter;
  typedef struct ImDrawListSharedData ImDrawListSharedData;
  typedef struct ImDrawList ImDrawList;
  typedef struct ImDrawData ImDrawData;
  typedef struct ImDrawCmd ImDrawCmd;
  typedef struct ImDrawChannel ImDrawChannel;
  
  struct ImDrawChannel;
  struct ImDrawCmd;
  struct ImDrawData;
  struct ImDrawList;
  struct ImDrawListSharedData;
  struct ImDrawListSplitter;
  struct ImDrawVert;
  struct ImFont;
  struct ImFontAtlas;
  struct ImFontConfig;
  struct ImFontGlyph;
  struct ImFontGlyphRangesBuilder;
  struct ImColor;
  struct ImGuiContext;
  struct ImGuiIO;
  struct ImGuiInputTextCallbackData;
  struct ImGuiListClipper;
  struct ImGuiOnceUponAFrame;
  struct ImGuiPayload;
  struct ImGuiSizeCallbackData;
  struct ImGuiStorage;
  struct ImGuiStyle;
  struct ImGuiTextBuffer;
  struct ImGuiTextFilter;
  typedef void* ImTextureID;
  typedef unsigned int ImGuiID;
  typedef unsigned short ImWchar;
  typedef int ImGuiCol;
  typedef int ImGuiCond;
  typedef int ImGuiDataType;
  typedef int ImGuiDir;
  typedef int ImGuiKey;
  typedef int ImGuiNavInput;
  typedef int ImGuiMouseCursor;
  typedef int ImGuiStyleVar;
  typedef int ImDrawCornerFlags;
  typedef int ImDrawListFlags;
  typedef int ImFontAtlasFlags;
  typedef int ImGuiBackendFlags;
  typedef int ImGuiColorEditFlags;
  typedef int ImGuiConfigFlags;
  typedef int ImGuiComboFlags;
  typedef int ImGuiDragDropFlags;
  typedef int ImGuiFocusedFlags;
  typedef int ImGuiHoveredFlags;
  typedef int ImGuiInputTextFlags;
  typedef int ImGuiSelectableFlags;
  typedef int ImGuiTabBarFlags;
  typedef int ImGuiTabItemFlags;
  typedef int ImGuiTreeNodeFlags;
  typedef int ImGuiWindowFlags;
  typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data);
  typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
  typedef signed char ImS8;
  typedef unsigned char ImU8;
  typedef signed short ImS16;
  typedef unsigned short ImU16;
  typedef signed int ImS32;
  typedef unsigned int ImU32;
  typedef int64_t ImS64;
  typedef uint64_t ImU64;
  typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd);
  typedef unsigned short ImDrawIdx;typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;
  typedef struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
  typedef struct ImVector_ImWchar {int Size;int Capacity;ImWchar* Data;} ImVector_ImWchar;
  typedef struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert;
  typedef struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
  typedef struct ImVector_ImGuiTextRange {int Size;int Capacity;ImGuiTextRange* Data;} ImVector_ImGuiTextRange;
  typedef struct ImVector_ImGuiStoragePair {int Size;int Capacity;ImGuiStoragePair* Data;} ImVector_ImGuiStoragePair;
  typedef struct ImVector_ImDrawChannel {int Size;int Capacity;ImDrawChannel* Data;} ImVector_ImDrawChannel;
  typedef struct ImVector_char {int Size;int Capacity;char* Data;} ImVector_char;
  typedef struct ImVector_ImU32 {int Size;int Capacity;ImU32* Data;} ImVector_ImU32;
  typedef struct ImVector_ImFontAtlasCustomRect {int Size;int Capacity;ImFontAtlasCustomRect* Data;} ImVector_ImFontAtlasCustomRect;
  typedef struct ImVector_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID;
  typedef struct ImVector_ImFontConfig {int Size;int Capacity;ImFontConfig* Data;} ImVector_ImFontConfig;
  typedef struct ImVector_ImFontPtr {int Size;int Capacity;ImFont** Data;} ImVector_ImFontPtr;
  typedef struct ImVector_ImDrawCmd {int Size;int Capacity;ImDrawCmd* Data;} ImVector_ImDrawCmd;
  typedef struct ImVector_ImVec4 {int Size;int Capacity;ImVec4* Data;} ImVector_ImVec4;
  typedef struct ImVector_ImDrawIdx {int Size;int Capacity;ImDrawIdx* Data;} ImVector_ImDrawIdx;
  typedef struct ImVector_ImVec2 {int Size;int Capacity;ImVec2* Data;} ImVector_ImVec2;
  
  struct ImVec2
  {
      float x, y;
  };
  struct ImVec4
  {
      float x, y, z, w;
  };
  enum ImGuiWindowFlags_
  {
      ImGuiWindowFlags_None = 0,
      ImGuiWindowFlags_NoTitleBar = 1 << 0,
      ImGuiWindowFlags_NoResize = 1 << 1,
      ImGuiWindowFlags_NoMove = 1 << 2,
      ImGuiWindowFlags_NoScrollbar = 1 << 3,
      ImGuiWindowFlags_NoScrollWithMouse = 1 << 4,
      ImGuiWindowFlags_NoCollapse = 1 << 5,
      ImGuiWindowFlags_AlwaysAutoResize = 1 << 6,
      ImGuiWindowFlags_NoBackground = 1 << 7,
      ImGuiWindowFlags_NoSavedSettings = 1 << 8,
      ImGuiWindowFlags_NoMouseInputs = 1 << 9,
      ImGuiWindowFlags_MenuBar = 1 << 10,
      ImGuiWindowFlags_HorizontalScrollbar = 1 << 11,
      ImGuiWindowFlags_NoFocusOnAppearing = 1 << 12,
      ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13,
      ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14,
      ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15,
      ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,
      ImGuiWindowFlags_NoNavInputs = 1 << 18,
      ImGuiWindowFlags_NoNavFocus = 1 << 19,
      ImGuiWindowFlags_UnsavedDocument = 1 << 20,
      ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
      ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
      ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
      ImGuiWindowFlags_NavFlattened = 1 << 23,
      ImGuiWindowFlags_ChildWindow = 1 << 24,
      ImGuiWindowFlags_Tooltip = 1 << 25,
      ImGuiWindowFlags_Popup = 1 << 26,
      ImGuiWindowFlags_Modal = 1 << 27,
      ImGuiWindowFlags_ChildMenu = 1 << 28
  };
  enum ImGuiInputTextFlags_
  {
      ImGuiInputTextFlags_None = 0,
      ImGuiInputTextFlags_CharsDecimal = 1 << 0,
      ImGuiInputTextFlags_CharsHexadecimal = 1 << 1,
      ImGuiInputTextFlags_CharsUppercase = 1 << 2,
      ImGuiInputTextFlags_CharsNoBlank = 1 << 3,
      ImGuiInputTextFlags_AutoSelectAll = 1 << 4,
      ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5,
      ImGuiInputTextFlags_CallbackCompletion = 1 << 6,
      ImGuiInputTextFlags_CallbackHistory = 1 << 7,
      ImGuiInputTextFlags_CallbackAlways = 1 << 8,
      ImGuiInputTextFlags_CallbackCharFilter = 1 << 9,
      ImGuiInputTextFlags_AllowTabInput = 1 << 10,
      ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11,
      ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12,
      ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13,
      ImGuiInputTextFlags_ReadOnly = 1 << 14,
      ImGuiInputTextFlags_Password = 1 << 15,
      ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
      ImGuiInputTextFlags_CharsScientific = 1 << 17,
      ImGuiInputTextFlags_CallbackResize = 1 << 18,
      ImGuiInputTextFlags_Multiline = 1 << 20,
      ImGuiInputTextFlags_NoMarkEdited = 1 << 21
  };
  enum ImGuiTreeNodeFlags_
  {
      ImGuiTreeNodeFlags_None = 0,
      ImGuiTreeNodeFlags_Selected = 1 << 0,
      ImGuiTreeNodeFlags_Framed = 1 << 1,
      ImGuiTreeNodeFlags_AllowItemOverlap = 1 << 2,
      ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3,
      ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4,
      ImGuiTreeNodeFlags_DefaultOpen = 1 << 5,
      ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 << 6,
      ImGuiTreeNodeFlags_OpenOnArrow = 1 << 7,
      ImGuiTreeNodeFlags_Leaf = 1 << 8,
      ImGuiTreeNodeFlags_Bullet = 1 << 9,
      ImGuiTreeNodeFlags_FramePadding = 1 << 10,
      ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 13,
      ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog
  };
  enum ImGuiSelectableFlags_
  {
      ImGuiSelectableFlags_None = 0,
      ImGuiSelectableFlags_DontClosePopups = 1 << 0,
      ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
      ImGuiSelectableFlags_AllowDoubleClick = 1 << 2,
      ImGuiSelectableFlags_Disabled = 1 << 3
  };
  enum ImGuiComboFlags_
  {
      ImGuiComboFlags_None = 0,
      ImGuiComboFlags_PopupAlignLeft = 1 << 0,
      ImGuiComboFlags_HeightSmall = 1 << 1,
      ImGuiComboFlags_HeightRegular = 1 << 2,
      ImGuiComboFlags_HeightLarge = 1 << 3,
      ImGuiComboFlags_HeightLargest = 1 << 4,
      ImGuiComboFlags_NoArrowButton = 1 << 5,
      ImGuiComboFlags_NoPreview = 1 << 6,
      ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
  };
  enum ImGuiTabBarFlags_
  {
      ImGuiTabBarFlags_None = 0,
      ImGuiTabBarFlags_Reorderable = 1 << 0,
      ImGuiTabBarFlags_AutoSelectNewTabs = 1 << 1,
      ImGuiTabBarFlags_TabListPopupButton = 1 << 2,
      ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 << 3,
      ImGuiTabBarFlags_NoTabListScrollingButtons = 1 << 4,
      ImGuiTabBarFlags_NoTooltip = 1 << 5,
      ImGuiTabBarFlags_FittingPolicyResizeDown = 1 << 6,
      ImGuiTabBarFlags_FittingPolicyScroll = 1 << 7,
      ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll,
      ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown
  };
  enum ImGuiTabItemFlags_
  {
      ImGuiTabItemFlags_None = 0,
      ImGuiTabItemFlags_UnsavedDocument = 1 << 0,
      ImGuiTabItemFlags_SetSelected = 1 << 1,
      ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 << 2,
      ImGuiTabItemFlags_NoPushId = 1 << 3
  };
  enum ImGuiFocusedFlags_
  {
      ImGuiFocusedFlags_None = 0,
      ImGuiFocusedFlags_ChildWindows = 1 << 0,
      ImGuiFocusedFlags_RootWindow = 1 << 1,
      ImGuiFocusedFlags_AnyWindow = 1 << 2,
      ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows
  };
  enum ImGuiHoveredFlags_
  {
      ImGuiHoveredFlags_None = 0,
      ImGuiHoveredFlags_ChildWindows = 1 << 0,
      ImGuiHoveredFlags_RootWindow = 1 << 1,
      ImGuiHoveredFlags_AnyWindow = 1 << 2,
      ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3,
      ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5,
      ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6,
      ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7,
      ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
      ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
  };
  enum ImGuiDragDropFlags_
  {
      ImGuiDragDropFlags_None = 0,
      ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0,
      ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1,
      ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2,
      ImGuiDragDropFlags_SourceAllowNullID = 1 << 3,
      ImGuiDragDropFlags_SourceExtern = 1 << 4,
      ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5,
      ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10,
      ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11,
      ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12,
      ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect
  };
  enum ImGuiDataType_
  {
      ImGuiDataType_S8,
      ImGuiDataType_U8,
      ImGuiDataType_S16,
      ImGuiDataType_U16,
      ImGuiDataType_S32,
      ImGuiDataType_U32,
      ImGuiDataType_S64,
      ImGuiDataType_U64,
      ImGuiDataType_Float,
      ImGuiDataType_Double,
      ImGuiDataType_COUNT
  };
  enum ImGuiDir_
  {
      ImGuiDir_None = -1,
      ImGuiDir_Left = 0,
      ImGuiDir_Right = 1,
      ImGuiDir_Up = 2,
      ImGuiDir_Down = 3,
      ImGuiDir_COUNT
  };
  enum ImGuiKey_
  {
      ImGuiKey_Tab,
      ImGuiKey_LeftArrow,
      ImGuiKey_RightArrow,
      ImGuiKey_UpArrow,
      ImGuiKey_DownArrow,
      ImGuiKey_PageUp,
      ImGuiKey_PageDown,
      ImGuiKey_Home,
      ImGuiKey_End,
      ImGuiKey_Insert,
      ImGuiKey_Delete,
      ImGuiKey_Backspace,
      ImGuiKey_Space,
      ImGuiKey_Enter,
      ImGuiKey_Escape,
      ImGuiKey_KeyPadEnter,
      ImGuiKey_A,
      ImGuiKey_C,
      ImGuiKey_V,
      ImGuiKey_X,
      ImGuiKey_Y,
      ImGuiKey_Z,
      ImGuiKey_COUNT
  };
  enum ImGuiNavInput_
  {
      ImGuiNavInput_Activate,
      ImGuiNavInput_Cancel,
      ImGuiNavInput_Input,
      ImGuiNavInput_Menu,
      ImGuiNavInput_DpadLeft,
      ImGuiNavInput_DpadRight,
      ImGuiNavInput_DpadUp,
      ImGuiNavInput_DpadDown,
      ImGuiNavInput_LStickLeft,
      ImGuiNavInput_LStickRight,
      ImGuiNavInput_LStickUp,
      ImGuiNavInput_LStickDown,
      ImGuiNavInput_FocusPrev,
      ImGuiNavInput_FocusNext,
      ImGuiNavInput_TweakSlow,
      ImGuiNavInput_TweakFast,
      ImGuiNavInput_KeyMenu_,
      ImGuiNavInput_KeyTab_,
      ImGuiNavInput_KeyLeft_,
      ImGuiNavInput_KeyRight_,
      ImGuiNavInput_KeyUp_,
      ImGuiNavInput_KeyDown_,
      ImGuiNavInput_COUNT,
      ImGuiNavInput_InternalStart_ = ImGuiNavInput_KeyMenu_
  };
  enum ImGuiConfigFlags_
  {
      ImGuiConfigFlags_None = 0,
      ImGuiConfigFlags_NavEnableKeyboard = 1 << 0,
      ImGuiConfigFlags_NavEnableGamepad = 1 << 1,
      ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2,
      ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3,
      ImGuiConfigFlags_NoMouse = 1 << 4,
      ImGuiConfigFlags_NoMouseCursorChange = 1 << 5,
      ImGuiConfigFlags_IsSRGB = 1 << 20,
      ImGuiConfigFlags_IsTouchScreen = 1 << 21
  };
  enum ImGuiBackendFlags_
  {
      ImGuiBackendFlags_None = 0,
      ImGuiBackendFlags_HasGamepad = 1 << 0,
      ImGuiBackendFlags_HasMouseCursors = 1 << 1,
      ImGuiBackendFlags_HasSetMousePos = 1 << 2,
      ImGuiBackendFlags_RendererHasVtxOffset = 1 << 3
  };
  enum ImGuiCol_
  {
      ImGuiCol_Text,
      ImGuiCol_TextDisabled,
      ImGuiCol_WindowBg,
      ImGuiCol_ChildBg,
      ImGuiCol_PopupBg,
      ImGuiCol_Border,
      ImGuiCol_BorderShadow,
      ImGuiCol_FrameBg,
      ImGuiCol_FrameBgHovered,
      ImGuiCol_FrameBgActive,
      ImGuiCol_TitleBg,
      ImGuiCol_TitleBgActive,
      ImGuiCol_TitleBgCollapsed,
      ImGuiCol_MenuBarBg,
      ImGuiCol_ScrollbarBg,
      ImGuiCol_ScrollbarGrab,
      ImGuiCol_ScrollbarGrabHovered,
      ImGuiCol_ScrollbarGrabActive,
      ImGuiCol_CheckMark,
      ImGuiCol_SliderGrab,
      ImGuiCol_SliderGrabActive,
      ImGuiCol_Button,
      ImGuiCol_ButtonHovered,
      ImGuiCol_ButtonActive,
      ImGuiCol_Header,
      ImGuiCol_HeaderHovered,
      ImGuiCol_HeaderActive,
      ImGuiCol_Separator,
      ImGuiCol_SeparatorHovered,
      ImGuiCol_SeparatorActive,
      ImGuiCol_ResizeGrip,
      ImGuiCol_ResizeGripHovered,
      ImGuiCol_ResizeGripActive,
      ImGuiCol_Tab,
      ImGuiCol_TabHovered,
      ImGuiCol_TabActive,
      ImGuiCol_TabUnfocused,
      ImGuiCol_TabUnfocusedActive,
      ImGuiCol_PlotLines,
      ImGuiCol_PlotLinesHovered,
      ImGuiCol_PlotHistogram,
      ImGuiCol_PlotHistogramHovered,
      ImGuiCol_TextSelectedBg,
      ImGuiCol_DragDropTarget,
      ImGuiCol_NavHighlight,
      ImGuiCol_NavWindowingHighlight,
      ImGuiCol_NavWindowingDimBg,
      ImGuiCol_ModalWindowDimBg,
      ImGuiCol_COUNT
  };
  enum ImGuiStyleVar_
  {
      ImGuiStyleVar_Alpha,
      ImGuiStyleVar_WindowPadding,
      ImGuiStyleVar_WindowRounding,
      ImGuiStyleVar_WindowBorderSize,
      ImGuiStyleVar_WindowMinSize,
      ImGuiStyleVar_WindowTitleAlign,
      ImGuiStyleVar_ChildRounding,
      ImGuiStyleVar_ChildBorderSize,
      ImGuiStyleVar_PopupRounding,
      ImGuiStyleVar_PopupBorderSize,
      ImGuiStyleVar_FramePadding,
      ImGuiStyleVar_FrameRounding,
      ImGuiStyleVar_FrameBorderSize,
      ImGuiStyleVar_ItemSpacing,
      ImGuiStyleVar_ItemInnerSpacing,
      ImGuiStyleVar_IndentSpacing,
      ImGuiStyleVar_ScrollbarSize,
      ImGuiStyleVar_ScrollbarRounding,
      ImGuiStyleVar_GrabMinSize,
      ImGuiStyleVar_GrabRounding,
      ImGuiStyleVar_TabRounding,
      ImGuiStyleVar_ButtonTextAlign,
      ImGuiStyleVar_SelectableTextAlign,
      ImGuiStyleVar_COUNT
  };
  enum ImGuiColorEditFlags_
  {
      ImGuiColorEditFlags_None = 0,
      ImGuiColorEditFlags_NoAlpha = 1 << 1,
      ImGuiColorEditFlags_NoPicker = 1 << 2,
      ImGuiColorEditFlags_NoOptions = 1 << 3,
      ImGuiColorEditFlags_NoSmallPreview = 1 << 4,
      ImGuiColorEditFlags_NoInputs = 1 << 5,
      ImGuiColorEditFlags_NoTooltip = 1 << 6,
      ImGuiColorEditFlags_NoLabel = 1 << 7,
      ImGuiColorEditFlags_NoSidePreview = 1 << 8,
      ImGuiColorEditFlags_NoDragDrop = 1 << 9,
      ImGuiColorEditFlags_AlphaBar = 1 << 16,
      ImGuiColorEditFlags_AlphaPreview = 1 << 17,
      ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18,
      ImGuiColorEditFlags_HDR = 1 << 19,
      ImGuiColorEditFlags_DisplayRGB = 1 << 20,
      ImGuiColorEditFlags_DisplayHSV = 1 << 21,
      ImGuiColorEditFlags_DisplayHex = 1 << 22,
      ImGuiColorEditFlags_Uint8 = 1 << 23,
      ImGuiColorEditFlags_Float = 1 << 24,
      ImGuiColorEditFlags_PickerHueBar = 1 << 25,
      ImGuiColorEditFlags_PickerHueWheel = 1 << 26,
      ImGuiColorEditFlags_InputRGB = 1 << 27,
      ImGuiColorEditFlags_InputHSV = 1 << 28,
      ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_DisplayRGB|ImGuiColorEditFlags_InputRGB|ImGuiColorEditFlags_PickerHueBar,
      ImGuiColorEditFlags__DisplayMask = ImGuiColorEditFlags_DisplayRGB|ImGuiColorEditFlags_DisplayHSV|ImGuiColorEditFlags_DisplayHex,
      ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_Float,
      ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_PickerHueWheel|ImGuiColorEditFlags_PickerHueBar,
      ImGuiColorEditFlags__InputMask = ImGuiColorEditFlags_InputRGB|ImGuiColorEditFlags_InputHSV
  };
  enum ImGuiMouseCursor_
  {
      ImGuiMouseCursor_None = -1,
      ImGuiMouseCursor_Arrow = 0,
      ImGuiMouseCursor_TextInput,
      ImGuiMouseCursor_ResizeAll,
      ImGuiMouseCursor_ResizeNS,
      ImGuiMouseCursor_ResizeEW,
      ImGuiMouseCursor_ResizeNESW,
      ImGuiMouseCursor_ResizeNWSE,
      ImGuiMouseCursor_Hand,
      ImGuiMouseCursor_COUNT
  };
  enum ImGuiCond_
  {
      ImGuiCond_Always = 1 << 0,
      ImGuiCond_Once = 1 << 1,
      ImGuiCond_FirstUseEver = 1 << 2,
      ImGuiCond_Appearing = 1 << 3
  };
  struct ImGuiStyle
  {
      float Alpha;
      ImVec2 WindowPadding;
      float WindowRounding;
      float WindowBorderSize;
      ImVec2 WindowMinSize;
      ImVec2 WindowTitleAlign;
      ImGuiDir WindowMenuButtonPosition;
      float ChildRounding;
      float ChildBorderSize;
      float PopupRounding;
      float PopupBorderSize;
      ImVec2 FramePadding;
      float FrameRounding;
      float FrameBorderSize;
      ImVec2 ItemSpacing;
      ImVec2 ItemInnerSpacing;
      ImVec2 TouchExtraPadding;
      float IndentSpacing;
      float ColumnsMinSpacing;
      float ScrollbarSize;
      float ScrollbarRounding;
      float GrabMinSize;
      float GrabRounding;
      float TabRounding;
      float TabBorderSize;
      ImGuiDir ColorButtonPosition;
      ImVec2 ButtonTextAlign;
      ImVec2 SelectableTextAlign;
      ImVec2 DisplayWindowPadding;
      ImVec2 DisplaySafeAreaPadding;
      float MouseCursorScale;
      bool AntiAliasedLines;
      bool AntiAliasedFill;
      float CurveTessellationTol;
      ImVec4 Colors[ImGuiCol_COUNT];
  };
  struct ImGuiIO
  {
      ImGuiConfigFlags ConfigFlags;
      ImGuiBackendFlags BackendFlags;
      ImVec2 DisplaySize;
      float DeltaTime;
      float IniSavingRate;
      const char* IniFilename;
      const char* LogFilename;
      float MouseDoubleClickTime;
      float MouseDoubleClickMaxDist;
      float MouseDragThreshold;
      int KeyMap[ImGuiKey_COUNT];
      float KeyRepeatDelay;
      float KeyRepeatRate;
      void* UserData;
      ImFontAtlas*Fonts;
      float FontGlobalScale;
      bool FontAllowUserScaling;
      ImFont* FontDefault;
      ImVec2 DisplayFramebufferScale;
      bool MouseDrawCursor;
      bool ConfigMacOSXBehaviors;
      bool ConfigInputTextCursorBlink;
      bool ConfigWindowsResizeFromEdges;
      bool ConfigWindowsMoveFromTitleBarOnly;
      const char* BackendPlatformName;
      const char* BackendRendererName;
      void* BackendPlatformUserData;
      void* BackendRendererUserData;
      void* BackendLanguageUserData;
      const char* (*GetClipboardTextFn)(void* user_data);
      void (*SetClipboardTextFn)(void* user_data, const char* text);
      void* ClipboardUserData;
      void (*ImeSetInputScreenPosFn)(int x, int y);
      void* ImeWindowHandle;
      void* RenderDrawListsFnUnused;
      ImVec2 MousePos;
      bool MouseDown[5];
      float MouseWheel;
      float MouseWheelH;
      bool KeyCtrl;
      bool KeyShift;
      bool KeyAlt;
      bool KeySuper;
      bool KeysDown[512];
      float NavInputs[ImGuiNavInput_COUNT];
      bool WantCaptureMouse;
      bool WantCaptureKeyboard;
      bool WantTextInput;
      bool WantSetMousePos;
      bool WantSaveIniSettings;
      bool NavActive;
      bool NavVisible;
      float Framerate;
      int MetricsRenderVertices;
      int MetricsRenderIndices;
      int MetricsRenderWindows;
      int MetricsActiveWindows;
      int MetricsActiveAllocations;
      ImVec2 MouseDelta;
      ImVec2 MousePosPrev;
      ImVec2 MouseClickedPos[5];
      double MouseClickedTime[5];
      bool MouseClicked[5];
      bool MouseDoubleClicked[5];
      bool MouseReleased[5];
      bool MouseDownOwned[5];
      bool MouseDownWasDoubleClick[5];
      float MouseDownDuration[5];
      float MouseDownDurationPrev[5];
      ImVec2 MouseDragMaxDistanceAbs[5];
      float MouseDragMaxDistanceSqr[5];
      float KeysDownDuration[512];
      float KeysDownDurationPrev[512];
      float NavInputsDownDuration[ImGuiNavInput_COUNT];
      float NavInputsDownDurationPrev[ImGuiNavInput_COUNT];
      ImVector_ImWchar InputQueueCharacters;
  };
  struct ImGuiInputTextCallbackData
  {
      ImGuiInputTextFlags EventFlag;
      ImGuiInputTextFlags Flags;
      void* UserData;
      ImWchar EventChar;
      ImGuiKey EventKey;
      char* Buf;
      int BufTextLen;
      int BufSize;
      bool BufDirty;
      int CursorPos;
      int SelectionStart;
      int SelectionEnd;
  };
  struct ImGuiSizeCallbackData
  {
      void* UserData;
      ImVec2 Pos;
      ImVec2 CurrentSize;
      ImVec2 DesiredSize;
  };
  struct ImGuiPayload
  {
      void* Data;
      int DataSize;
      ImGuiID SourceId;
      ImGuiID SourceParentId;
      int DataFrameCount;
      char DataType[32+1];
      bool Preview;
      bool Delivery;
  };
  struct ImGuiOnceUponAFrame
  {
       int RefFrame;
  };
  struct ImGuiTextFilter
  {
      char InputBuf[256];
      ImVector_ImGuiTextRange Filters;
      int CountGrep;
  };
  struct ImGuiTextBuffer
  {
      ImVector_char Buf;
  };
  struct ImGuiStorage
  {
      ImVector_ImGuiStoragePair Data;
  };
  struct ImGuiListClipper
  {
      float StartPosY;
      float ItemsHeight;
      int ItemsCount, StepNo, DisplayStart, DisplayEnd;
  };
  struct ImColor
  {
      ImVec4 Value;
  };
  struct ImDrawCmd
  {
      unsigned int ElemCount;
      ImVec4 ClipRect;
      ImTextureID TextureId;
      unsigned int VtxOffset;
      unsigned int IdxOffset;
      ImDrawCallback UserCallback;
      void* UserCallbackData;
  };
  struct ImDrawVert
  {
      ImVec2 pos;
      ImVec2 uv;
      ImU32 col;
  };
  struct ImDrawChannel
  {
      ImVector_ImDrawCmd _CmdBuffer;
      ImVector_ImDrawIdx _IdxBuffer;
  };
  struct ImDrawListSplitter
  {
      int _Current;
      int _Count;
      ImVector_ImDrawChannel _Channels;
  };
  enum ImDrawCornerFlags_
  {
      ImDrawCornerFlags_None = 0,
      ImDrawCornerFlags_TopLeft = 1 << 0,
      ImDrawCornerFlags_TopRight = 1 << 1,
      ImDrawCornerFlags_BotLeft = 1 << 2,
      ImDrawCornerFlags_BotRight = 1 << 3,
      ImDrawCornerFlags_Top = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight,
      ImDrawCornerFlags_Bot = ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight,
      ImDrawCornerFlags_Left = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft,
      ImDrawCornerFlags_Right = ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight,
      ImDrawCornerFlags_All = 0xF
  };
  enum ImDrawListFlags_
  {
      ImDrawListFlags_None = 0,
      ImDrawListFlags_AntiAliasedLines = 1 << 0,
      ImDrawListFlags_AntiAliasedFill = 1 << 1,
      ImDrawListFlags_AllowVtxOffset = 1 << 2
  };
  struct ImDrawList
  {
      ImVector_ImDrawCmd CmdBuffer;
      ImVector_ImDrawIdx IdxBuffer;
      ImVector_ImDrawVert VtxBuffer;
      ImDrawListFlags Flags;
      const ImDrawListSharedData* _Data;
      const char* _OwnerName;
      unsigned int _VtxCurrentOffset;
      unsigned int _VtxCurrentIdx;
      ImDrawVert* _VtxWritePtr;
      ImDrawIdx* _IdxWritePtr;
      ImVector_ImVec4 _ClipRectStack;
      ImVector_ImTextureID _TextureIdStack;
      ImVector_ImVec2 _Path;
      ImDrawListSplitter _Splitter;
  };
  struct ImDrawData
  {
      bool Valid;
      ImDrawList** CmdLists;
      int CmdListsCount;
      int TotalIdxCount;
      int TotalVtxCount;
      ImVec2 DisplayPos;
      ImVec2 DisplaySize;
      ImVec2 FramebufferScale;
  };
  struct ImFontConfig
  {
      void* FontData;
      int FontDataSize;
      bool FontDataOwnedByAtlas;
      int FontNo;
      float SizePixels;
      int OversampleH;
      int OversampleV;
      bool PixelSnapH;
      ImVec2 GlyphExtraSpacing;
      ImVec2 GlyphOffset;
      const ImWchar* GlyphRanges;
      float GlyphMinAdvanceX;
      float GlyphMaxAdvanceX;
      bool MergeMode;
      unsigned int RasterizerFlags;
      float RasterizerMultiply;
      char Name[40];
      ImFont* DstFont;
  };
  struct ImFontGlyph
  {
      ImWchar Codepoint;
      float AdvanceX;
      float X0, Y0, X1, Y1;
      float U0, V0, U1, V1;
  };
  struct ImFontGlyphRangesBuilder
  {
      ImVector_ImU32 UsedChars;
  };
  struct ImFontAtlasCustomRect
  {
      unsigned int ID;
      unsigned short Width, Height;
      unsigned short X, Y;
      float GlyphAdvanceX;
      ImVec2 GlyphOffset;
      ImFont* Font;
  };
  enum ImFontAtlasFlags_
  {
      ImFontAtlasFlags_None = 0,
      ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0,
      ImFontAtlasFlags_NoMouseCursors = 1 << 1
  };
  struct ImFontAtlas
  {
      bool Locked;
      ImFontAtlasFlags Flags;
      ImTextureID TexID;
      int TexDesiredWidth;
      int TexGlyphPadding;
      unsigned char* TexPixelsAlpha8;
      unsigned int* TexPixelsRGBA32;
      int TexWidth;
      int TexHeight;
      ImVec2 TexUvScale;
      ImVec2 TexUvWhitePixel;
      ImVector_ImFontPtr Fonts;
      ImVector_ImFontAtlasCustomRect CustomRects;
      ImVector_ImFontConfig ConfigData;
      int CustomRectIds[1];
  };
  struct ImFont
  {
      ImVector_float IndexAdvanceX;
      float FallbackAdvanceX;
      float FontSize;
      ImVector_ImWchar IndexLookup;
      ImVector_ImFontGlyph Glyphs;
      const ImFontGlyph* FallbackGlyph;
      ImVec2 DisplayOffset;
      ImFontAtlas* ContainerAtlas;
      const ImFontConfig* ConfigData;
      short ConfigDataCount;
      ImWchar FallbackChar;
      float Scale;
      float Ascent, Descent;
      int MetricsTotalSurface;
      bool DirtyLookupTables;
  };
      struct ImGuiTextRange
      {
          const char* b;
          const char* e;
  };
      struct ImGuiStoragePair
      {
          ImGuiID key;
          union { int val_i; float val_f; void* val_p; };
  };
  #else
  struct GLFWwindow;
  struct SDL_Window;
  typedef union SDL_Event SDL_Event;
  inline ImVec2_Simple ImVec2ToSimple(ImVec2 vec)
  {
  	ImVec2_Simple result;
      result.x = vec.x;
      result.y = vec.y;
      return result;
  }
  inline ImVec4_Simple ImVec4ToSimple(ImVec4 vec)
  {
  	ImVec4_Simple result;
      result.x = vec.x;
      result.y = vec.y;
  	result.z = vec.z;
      result.w = vec.w;
      return result;
  }
  inline ImColor_Simple ImColorToSimple(ImColor col)
  {
  	ImColor_Simple result;
      result.Value = ImVec4ToSimple(col.Value);
      return result;
  }
  #endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
  
  #ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
  typedef ImGuiStorage::ImGuiStoragePair ImGuiStoragePair;
  typedef ImGuiTextFilter::ImGuiTextRange ImGuiTextRange;
  typedef ImVector<float> ImVector_float;
  typedef ImVector<ImWchar> ImVector_ImWchar;
  typedef ImVector<ImDrawVert> ImVector_ImDrawVert;
  typedef ImVector<ImFontGlyph> ImVector_ImFontGlyph;
  typedef ImVector<ImGuiTextRange> ImVector_ImGuiTextRange;
  typedef ImVector<ImGuiStoragePair> ImVector_ImGuiStoragePair;
  typedef ImVector<ImDrawChannel> ImVector_ImDrawChannel;
  typedef ImVector<char> ImVector_char;
  typedef ImVector<ImU32> ImVector_ImU32;
  typedef ImVector<ImFontAtlasCustomRect> ImVector_ImFontAtlasCustomRect;
  typedef ImVector<ImTextureID> ImVector_ImTextureID;
  typedef ImVector<ImFontConfig> ImVector_ImFontConfig;
  typedef ImVector<ImFont*> ImVector_ImFontPtr;
  typedef ImVector<ImDrawCmd> ImVector_ImDrawCmd;
  typedef ImVector<ImVec4> ImVector_ImVec4;
  typedef ImVector<ImDrawIdx> ImVector_ImDrawIdx;
  typedef ImVector<ImVec2> ImVector_ImVec2;
  #endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
  CIMGUI_API ImVec2* ImVec2_ImVec2(void);
  CIMGUI_API void ImVec2_destroy(ImVec2* self);
  CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y);
  CIMGUI_API ImVec4* ImVec4_ImVec4(void);
  CIMGUI_API void ImVec4_destroy(ImVec4* self);
  CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w);
  CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas);
  CIMGUI_API void igDestroyContext(ImGuiContext* ctx);
  CIMGUI_API ImGuiContext* igGetCurrentContext(void);
  CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx);
  CIMGUI_API bool igDebugCheckVersionAndDataLayout(const char* version_str,size_t sz_io,size_t sz_style,size_t sz_vec2,size_t sz_vec4,size_t sz_drawvert,size_t sz_drawidx);
  CIMGUI_API ImGuiIO* igGetIO(void);
  CIMGUI_API ImGuiStyle* igGetStyle(void);
  CIMGUI_API void igNewFrame(void);
  CIMGUI_API void igEndFrame(void);
  CIMGUI_API void igRender(void);
  CIMGUI_API ImDrawData* igGetDrawData(void);
  CIMGUI_API void igShowDemoWindow(bool* p_open);
  CIMGUI_API void igShowAboutWindow(bool* p_open);
  CIMGUI_API void igShowMetricsWindow(bool* p_open);
  CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref);
  CIMGUI_API bool igShowStyleSelector(const char* label);
  CIMGUI_API void igShowFontSelector(const char* label);
  CIMGUI_API void igShowUserGuide(void);
  CIMGUI_API const char* igGetVersion(void);
  CIMGUI_API void igStyleColorsDark(ImGuiStyle* dst);
  CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst);
  CIMGUI_API void igStyleColorsLight(ImGuiStyle* dst);
  CIMGUI_API bool igBegin(const char* name,bool* p_open,ImGuiWindowFlags flags);
  CIMGUI_API void igEnd(void);
  CIMGUI_API bool igBeginChild(const char* str_id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
  CIMGUI_API bool igBeginChildID(ImGuiID id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
  CIMGUI_API void igEndChild(void);
  CIMGUI_API bool igIsWindowAppearing(void);
  CIMGUI_API bool igIsWindowCollapsed(void);
  CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags);
  CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags flags);
  CIMGUI_API ImDrawList* igGetWindowDrawList(void);
  CIMGUI_API ImVec2 igGetWindowPos(void);
  CIMGUI_API ImVec2 igGetWindowSize(void);
  CIMGUI_API float igGetWindowWidth(void);
  CIMGUI_API float igGetWindowHeight(void);
  CIMGUI_API void igSetNextWindowPos(const ImVec2 pos,ImGuiCond cond,const ImVec2 pivot);
  CIMGUI_API void igSetNextWindowSize(const ImVec2 size,ImGuiCond cond);
  CIMGUI_API void igSetNextWindowSizeConstraints(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,void* custom_callback_data);
  CIMGUI_API void igSetNextWindowContentSize(const ImVec2 size);
  CIMGUI_API void igSetNextWindowCollapsed(bool collapsed,ImGuiCond cond);
  CIMGUI_API void igSetNextWindowFocus(void);
  CIMGUI_API void igSetNextWindowBgAlpha(float alpha);
  CIMGUI_API void igSetWindowPosVec2(const ImVec2 pos,ImGuiCond cond);
  CIMGUI_API void igSetWindowSizeVec2(const ImVec2 size,ImGuiCond cond);
  CIMGUI_API void igSetWindowCollapsedBool(bool collapsed,ImGuiCond cond);
  CIMGUI_API void igSetWindowFocus(void);
  CIMGUI_API void igSetWindowFontScale(float scale);
  CIMGUI_API void igSetWindowPosStr(const char* name,const ImVec2 pos,ImGuiCond cond);
  CIMGUI_API void igSetWindowSizeStr(const char* name,const ImVec2 size,ImGuiCond cond);
  CIMGUI_API void igSetWindowCollapsedStr(const char* name,bool collapsed,ImGuiCond cond);
  CIMGUI_API void igSetWindowFocusStr(const char* name);
  CIMGUI_API ImVec2 igGetContentRegionMax(void);
  CIMGUI_API ImVec2 igGetContentRegionAvail(void);
  CIMGUI_API ImVec2 igGetWindowContentRegionMin(void);
  CIMGUI_API ImVec2 igGetWindowContentRegionMax(void);
  CIMGUI_API float igGetWindowContentRegionWidth(void);
  CIMGUI_API float igGetScrollX(void);
  CIMGUI_API float igGetScrollY(void);
  CIMGUI_API float igGetScrollMaxX(void);
  CIMGUI_API float igGetScrollMaxY(void);
  CIMGUI_API void igSetScrollX(float scroll_x);
  CIMGUI_API void igSetScrollY(float scroll_y);
  CIMGUI_API void igSetScrollHereX(float center_x_ratio);
  CIMGUI_API void igSetScrollHereY(float center_y_ratio);
  CIMGUI_API void igSetScrollFromPosX(float local_x,float center_x_ratio);
  CIMGUI_API void igSetScrollFromPosY(float local_y,float center_y_ratio);
  CIMGUI_API void igPushFont(ImFont* font);
  CIMGUI_API void igPopFont(void);
  CIMGUI_API void igPushStyleColorU32(ImGuiCol idx,ImU32 col);
  CIMGUI_API void igPushStyleColor(ImGuiCol idx,const ImVec4 col);
  CIMGUI_API void igPopStyleColor(int count);
  CIMGUI_API void igPushStyleVarFloat(ImGuiStyleVar idx,float val);
  CIMGUI_API void igPushStyleVarVec2(ImGuiStyleVar idx,const ImVec2 val);
  CIMGUI_API void igPopStyleVar(int count);
  CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx);
  CIMGUI_API ImFont* igGetFont(void);
  CIMGUI_API float igGetFontSize(void);
  CIMGUI_API ImVec2 igGetFontTexUvWhitePixel(void);
  CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx,float alpha_mul);
  CIMGUI_API ImU32 igGetColorU32Vec4(const ImVec4 col);
  CIMGUI_API ImU32 igGetColorU32U32(ImU32 col);
  CIMGUI_API void igPushItemWidth(float item_width);
  CIMGUI_API void igPopItemWidth(void);
  CIMGUI_API void igSetNextItemWidth(float item_width);
  CIMGUI_API float igCalcItemWidth(void);
  CIMGUI_API void igPushTextWrapPos(float wrap_local_pos_x);
  CIMGUI_API void igPopTextWrapPos(void);
  CIMGUI_API void igPushAllowKeyboardFocus(bool allow_keyboard_focus);
  CIMGUI_API void igPopAllowKeyboardFocus(void);
  CIMGUI_API void igPushButtonRepeat(bool repeat);
  CIMGUI_API void igPopButtonRepeat(void);
  CIMGUI_API void igSeparator(void);
  CIMGUI_API void igSameLine(float offset_from_start_x,float spacing);
  CIMGUI_API void igNewLine(void);
  CIMGUI_API void igSpacing(void);
  CIMGUI_API void igDummy(const ImVec2 size);
  CIMGUI_API void igIndent(float indent_w);
  CIMGUI_API void igUnindent(float indent_w);
  CIMGUI_API void igBeginGroup(void);
  CIMGUI_API void igEndGroup(void);
  CIMGUI_API ImVec2 igGetCursorPos(void);
  CIMGUI_API float igGetCursorPosX(void);
  CIMGUI_API float igGetCursorPosY(void);
  CIMGUI_API void igSetCursorPos(const ImVec2 local_pos);
  CIMGUI_API void igSetCursorPosX(float local_x);
  CIMGUI_API void igSetCursorPosY(float local_y);
  CIMGUI_API ImVec2 igGetCursorStartPos(void);
  CIMGUI_API ImVec2 igGetCursorScreenPos(void);
  CIMGUI_API void igSetCursorScreenPos(const ImVec2 pos);
  CIMGUI_API void igAlignTextToFramePadding(void);
  CIMGUI_API float igGetTextLineHeight(void);
  CIMGUI_API float igGetTextLineHeightWithSpacing(void);
  CIMGUI_API float igGetFrameHeight(void);
  CIMGUI_API float igGetFrameHeightWithSpacing(void);
  CIMGUI_API void igPushIDStr(const char* str_id);
  CIMGUI_API void igPushIDRange(const char* str_id_begin,const char* str_id_end);
  CIMGUI_API void igPushIDPtr(const void* ptr_id);
  CIMGUI_API void igPushIDInt(int int_id);
  CIMGUI_API void igPopID(void);
  CIMGUI_API ImGuiID igGetIDStr(const char* str_id);
  CIMGUI_API ImGuiID igGetIDRange(const char* str_id_begin,const char* str_id_end);
  CIMGUI_API ImGuiID igGetIDPtr(const void* ptr_id);
  CIMGUI_API void igTextUnformatted(const char* text,const char* text_end);
  CIMGUI_API void igText(const char* fmt,...);
  CIMGUI_API void igTextV(const char* fmt,va_list args);
  CIMGUI_API void igTextColored(const ImVec4 col,const char* fmt,...);
  CIMGUI_API void igTextColoredV(const ImVec4 col,const char* fmt,va_list args);
  CIMGUI_API void igTextDisabled(const char* fmt,...);
  CIMGUI_API void igTextDisabledV(const char* fmt,va_list args);
  CIMGUI_API void igTextWrapped(const char* fmt,...);
  CIMGUI_API void igTextWrappedV(const char* fmt,va_list args);
  CIMGUI_API void igLabelText(const char* label,const char* fmt,...);
  CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args);
  CIMGUI_API void igBulletText(const char* fmt,...);
  CIMGUI_API void igBulletTextV(const char* fmt,va_list args);
  CIMGUI_API bool igButton(const char* label,const ImVec2 size);
  CIMGUI_API bool igSmallButton(const char* label);
  CIMGUI_API bool igInvisibleButton(const char* str_id,const ImVec2 size);
  CIMGUI_API bool igArrowButton(const char* str_id,ImGuiDir dir);
  CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col);
  CIMGUI_API bool igImageButton(ImTextureID user_texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,int frame_padding,const ImVec4 bg_col,const ImVec4 tint_col);
  CIMGUI_API bool igCheckbox(const char* label,bool* v);
  CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned int flags_value);
  CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
  CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
  CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
  CIMGUI_API void igBullet(void);
  CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
  CIMGUI_API void igEndCombo(void);
  CIMGUI_API bool igCombo(const char* label,int* current_item,const char* const items[],int items_count,int popup_max_height_in_items);
  CIMGUI_API bool igComboStr(const char* label,int* current_item,const char* items_separated_by_zeros,int popup_max_height_in_items);
  CIMGUI_API bool igComboFnPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int popup_max_height_in_items);
  CIMGUI_API bool igDragFloat(const char* label,float* v,float v_speed,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igDragFloat2(const char* label,float v[2],float v_speed,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igDragFloat3(const char* label,float v[3],float v_speed,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igDragFloat4(const char* label,float v[4],float v_speed,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igDragFloatRange2(const char* label,float* v_current_min,float* v_current_max,float v_speed,float v_min,float v_max,const char* format,const char* format_max,float power);
  CIMGUI_API bool igDragInt(const char* label,int* v,float v_speed,int v_min,int v_max,const char* format);
  CIMGUI_API bool igDragInt2(const char* label,int v[2],float v_speed,int v_min,int v_max,const char* format);
  CIMGUI_API bool igDragInt3(const char* label,int v[3],float v_speed,int v_min,int v_max,const char* format);
  CIMGUI_API bool igDragInt4(const char* label,int v[4],float v_speed,int v_min,int v_max,const char* format);
  CIMGUI_API bool igDragIntRange2(const char* label,int* v_current_min,int* v_current_max,float v_speed,int v_min,int v_max,const char* format,const char* format_max);
  CIMGUI_API bool igDragScalar(const char* label,ImGuiDataType data_type,void* v,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
  CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,int components,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
  CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igSliderFloat2(const char* label,float v[2],float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igSliderFloat3(const char* label,float v[3],float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igSliderFloat4(const char* label,float v[4],float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igSliderAngle(const char* label,float* v_rad,float v_degrees_min,float v_degrees_max,const char* format);
  CIMGUI_API bool igSliderInt(const char* label,int* v,int v_min,int v_max,const char* format);
  CIMGUI_API bool igSliderInt2(const char* label,int v[2],int v_min,int v_max,const char* format);
  CIMGUI_API bool igSliderInt3(const char* label,int v[3],int v_min,int v_max,const char* format);
  CIMGUI_API bool igSliderInt4(const char* label,int v[4],int v_min,int v_max,const char* format);
  CIMGUI_API bool igSliderScalar(const char* label,ImGuiDataType data_type,void* v,const void* v_min,const void* v_max,const char* format,float power);
  CIMGUI_API bool igSliderScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* v_min,const void* v_max,const char* format,float power);
  CIMGUI_API bool igVSliderFloat(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,float power);
  CIMGUI_API bool igVSliderInt(const char* label,const ImVec2 size,int* v,int v_min,int v_max,const char* format);
  CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataType data_type,void* v,const void* v_min,const void* v_max,const char* format,float power);
  CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
  CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
  CIMGUI_API bool igInputTextWithHint(const char* label,const char* hint,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
  CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags flags);
  CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags);
  CIMGUI_API bool igColorEdit4(const char* label,float col[4],ImGuiColorEditFlags flags);
  CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags);
  CIMGUI_API bool igColorPicker4(const char* label,float col[4],ImGuiColorEditFlags flags,const float* ref_col);
  CIMGUI_API bool igColorButton(const char* desc_id,const ImVec4 col,ImGuiColorEditFlags flags,ImVec2 size);
  CIMGUI_API void igSetColorEditOptions(ImGuiColorEditFlags flags);
  CIMGUI_API bool igTreeNodeStr(const char* label);
  CIMGUI_API bool igTreeNodeStrStr(const char* str_id,const char* fmt,...);
  CIMGUI_API bool igTreeNodePtr(const void* ptr_id,const char* fmt,...);
  CIMGUI_API bool igTreeNodeVStr(const char* str_id,const char* fmt,va_list args);
  CIMGUI_API bool igTreeNodeVPtr(const void* ptr_id,const char* fmt,va_list args);
  CIMGUI_API bool igTreeNodeExStr(const char* label,ImGuiTreeNodeFlags flags);
  CIMGUI_API bool igTreeNodeExStrStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,...);
  CIMGUI_API bool igTreeNodeExPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,...);
  CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args);
  CIMGUI_API bool igTreeNodeExVPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args);
  CIMGUI_API void igTreePushStr(const char* str_id);
  CIMGUI_API void igTreePushPtr(const void* ptr_id);
  CIMGUI_API void igTreePop(void);
  CIMGUI_API float igGetTreeNodeToLabelSpacing(void);
  CIMGUI_API bool igCollapsingHeader(const char* label,ImGuiTreeNodeFlags flags);
  CIMGUI_API bool igCollapsingHeaderBoolPtr(const char* label,bool* p_open,ImGuiTreeNodeFlags flags);
  CIMGUI_API void igSetNextItemOpen(bool is_open,ImGuiCond cond);
  CIMGUI_API bool igSelectable(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size);
  CIMGUI_API bool igSelectableBoolPtr(const char* label,bool* p_selected,ImGuiSelectableFlags flags,const ImVec2 size);
  CIMGUI_API bool igListBoxStr_arr(const char* label,int* current_item,const char* const items[],int items_count,int height_in_items);
  CIMGUI_API bool igListBoxFnPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int height_in_items);
  CIMGUI_API bool igListBoxHeaderVec2(const char* label,const ImVec2 size);
  CIMGUI_API bool igListBoxHeaderInt(const char* label,int items_count,int height_in_items);
  CIMGUI_API void igListBoxFooter(void);
  CIMGUI_API void igPlotLines(const char* label,const float* values,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size,int stride);
  CIMGUI_API void igPlotLinesFnPtr(const char* label,float(*values_getter)(void* data,int idx),void* data,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size);
  CIMGUI_API void igPlotHistogramFloatPtr(const char* label,const float* values,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size,int stride);
  CIMGUI_API void igPlotHistogramFnPtr(const char* label,float(*values_getter)(void* data,int idx),void* data,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size);
  CIMGUI_API void igValueBool(const char* prefix,bool b);
  CIMGUI_API void igValueInt(const char* prefix,int v);
  CIMGUI_API void igValueUint(const char* prefix,unsigned int v);
  CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format);
  CIMGUI_API bool igBeginMainMenuBar(void);
  CIMGUI_API void igEndMainMenuBar(void);
  CIMGUI_API bool igBeginMenuBar(void);
  CIMGUI_API void igEndMenuBar(void);
  CIMGUI_API bool igBeginMenu(const char* label,bool enabled);
  CIMGUI_API void igEndMenu(void);
  CIMGUI_API bool igMenuItemBool(const char* label,const char* shortcut,bool selected,bool enabled);
  CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p_selected,bool enabled);
  CIMGUI_API void igBeginTooltip(void);
  CIMGUI_API void igEndTooltip(void);
  CIMGUI_API void igSetTooltip(const char* fmt,...);
  CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
  CIMGUI_API void igOpenPopup(const char* str_id);
  CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags);
  CIMGUI_API bool igBeginPopupContextItem(const char* str_id,int mouse_button);
  CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,int mouse_button,bool also_over_items);
  CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,int mouse_button);
  CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags);
  CIMGUI_API void igEndPopup(void);
  CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,int mouse_button);
  CIMGUI_API bool igIsPopupOpen(const char* str_id);
  CIMGUI_API void igCloseCurrentPopup(void);
  CIMGUI_API void igColumns(int count,const char* id,bool border);
  CIMGUI_API void igNextColumn(void);
  CIMGUI_API int igGetColumnIndex(void);
  CIMGUI_API float igGetColumnWidth(int column_index);
  CIMGUI_API void igSetColumnWidth(int column_index,float width);
  CIMGUI_API float igGetColumnOffset(int column_index);
  CIMGUI_API void igSetColumnOffset(int column_index,float offset_x);
  CIMGUI_API int igGetColumnsCount(void);
  CIMGUI_API bool igBeginTabBar(const char* str_id,ImGuiTabBarFlags flags);
  CIMGUI_API void igEndTabBar(void);
  CIMGUI_API bool igBeginTabItem(const char* label,bool* p_open,ImGuiTabItemFlags flags);
  CIMGUI_API void igEndTabItem(void);
  CIMGUI_API void igSetTabItemClosed(const char* tab_or_docked_window_label);
  CIMGUI_API void igLogToTTY(int auto_open_depth);
  CIMGUI_API void igLogToFile(int auto_open_depth,const char* filename);
  CIMGUI_API void igLogToClipboard(int auto_open_depth);
  CIMGUI_API void igLogFinish(void);
  CIMGUI_API void igLogButtons(void);
  CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags);
  CIMGUI_API bool igSetDragDropPayload(const char* type,const void* data,size_t sz,ImGuiCond cond);
  CIMGUI_API void igEndDragDropSource(void);
  CIMGUI_API bool igBeginDragDropTarget(void);
  CIMGUI_API const ImGuiPayload* igAcceptDragDropPayload(const char* type,ImGuiDragDropFlags flags);
  CIMGUI_API void igEndDragDropTarget(void);
  CIMGUI_API const ImGuiPayload* igGetDragDropPayload(void);
  CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
  CIMGUI_API void igPopClipRect(void);
  CIMGUI_API void igSetItemDefaultFocus(void);
  CIMGUI_API void igSetKeyboardFocusHere(int offset);
  CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
  CIMGUI_API bool igIsItemActive(void);
  CIMGUI_API bool igIsItemFocused(void);
  CIMGUI_API bool igIsItemClicked(int mouse_button);
  CIMGUI_API bool igIsItemVisible(void);
  CIMGUI_API bool igIsItemEdited(void);
  CIMGUI_API bool igIsItemActivated(void);
  CIMGUI_API bool igIsItemDeactivated(void);
  CIMGUI_API bool igIsItemDeactivatedAfterEdit(void);
  CIMGUI_API bool igIsAnyItemHovered(void);
  CIMGUI_API bool igIsAnyItemActive(void);
  CIMGUI_API bool igIsAnyItemFocused(void);
  CIMGUI_API ImVec2 igGetItemRectMin(void);
  CIMGUI_API ImVec2 igGetItemRectMax(void);
  CIMGUI_API ImVec2 igGetItemRectSize(void);
  CIMGUI_API void igSetItemAllowOverlap(void);
  CIMGUI_API bool igIsRectVisible(const ImVec2 size);
  CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max);
  CIMGUI_API double igGetTime(void);
  CIMGUI_API int igGetFrameCount(void);
  CIMGUI_API ImDrawList* igGetBackgroundDrawList(void);
  CIMGUI_API ImDrawList* igGetForegroundDrawList(void);
  CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void);
  CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx);
  CIMGUI_API void igSetStateStorage(ImGuiStorage* storage);
  CIMGUI_API ImGuiStorage* igGetStateStorage(void);
  CIMGUI_API ImVec2 igCalcTextSize(const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
  CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end);
  CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags);
  CIMGUI_API void igEndChildFrame(void);
  CIMGUI_API ImVec4 igColorConvertU32ToFloat4(ImU32 in);
  CIMGUI_API ImU32 igColorConvertFloat4ToU32(const ImVec4 in);
  CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key);
  CIMGUI_API bool igIsKeyDown(int user_key_index);
  CIMGUI_API bool igIsKeyPressed(int user_key_index,bool repeat);
  CIMGUI_API bool igIsKeyReleased(int user_key_index);
  CIMGUI_API int igGetKeyPressedAmount(int key_index,float repeat_delay,float rate);
  CIMGUI_API bool igIsMouseDown(int button);
  CIMGUI_API bool igIsAnyMouseDown(void);
  CIMGUI_API bool igIsMouseClicked(int button,bool repeat);
  CIMGUI_API bool igIsMouseDoubleClicked(int button);
  CIMGUI_API bool igIsMouseReleased(int button);
  CIMGUI_API bool igIsMouseDragging(int button,float lock_threshold);
  CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
  CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
  CIMGUI_API ImVec2 igGetMousePos(void);
  CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup(void);
  CIMGUI_API ImVec2 igGetMouseDragDelta(int button,float lock_threshold);
  CIMGUI_API void igResetMouseDragDelta(int button);
  CIMGUI_API ImGuiMouseCursor igGetMouseCursor(void);
  CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type);
  CIMGUI_API void igCaptureKeyboardFromApp(bool want_capture_keyboard_value);
  CIMGUI_API void igCaptureMouseFromApp(bool want_capture_mouse_value);
  CIMGUI_API const char* igGetClipboardText(void);
  CIMGUI_API void igSetClipboardText(const char* text);
  CIMGUI_API void igLoadIniSettingsFromDisk(const char* ini_filename);
  CIMGUI_API void igLoadIniSettingsFromMemory(const char* ini_data,size_t ini_size);
  CIMGUI_API void igSaveIniSettingsToDisk(const char* ini_filename);
  CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size);
  CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
  CIMGUI_API void* igMemAlloc(size_t size);
  CIMGUI_API void igMemFree(void* ptr);
  CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void);
  CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self);
  CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
  CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,unsigned int c);
  CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* str);
  CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
  CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void);
  CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self);
  CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void);
  CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self);
  CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
  CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
  CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
  CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void);
  CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self);
  CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
  CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
  CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
  CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
  CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void);
  CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self);
  CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter);
  CIMGUI_API void ImGuiTextFilter_destroy(ImGuiTextFilter* self);
  CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width);
  CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
  CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
  CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
  CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
  CIMGUI_API ImGuiTextRange* ImGuiTextRange_ImGuiTextRange(void);
  CIMGUI_API void ImGuiTextRange_destroy(ImGuiTextRange* self);
  CIMGUI_API ImGuiTextRange* ImGuiTextRange_ImGuiTextRangeStr(const char* _b,const char* _e);
  CIMGUI_API bool ImGuiTextRange_empty(ImGuiTextRange* self);
  CIMGUI_API void ImGuiTextRange_split(ImGuiTextRange* self,char separator,ImVector_ImGuiTextRange* out);
  CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void);
  CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self);
  CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
  CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
  CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
  CIMGUI_API bool ImGuiTextBuffer_empty(ImGuiTextBuffer* self);
  CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
  CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity);
  CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
  CIMGUI_API void ImGuiTextBuffer_append(ImGuiTextBuffer* self,const char* str,const char* str_end);
  CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args);
  CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairInt(ImGuiID _key,int _val_i);
  CIMGUI_API void ImGuiStoragePair_destroy(ImGuiStoragePair* self);
  CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairFloat(ImGuiID _key,float _val_f);
  CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairPtr(ImGuiID _key,void* _val_p);
  CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self);
  CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val);
  CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val);
  CIMGUI_API bool ImGuiStorage_GetBool(ImGuiStorage* self,ImGuiID key,bool default_val);
  CIMGUI_API void ImGuiStorage_SetBool(ImGuiStorage* self,ImGuiID key,bool val);
  CIMGUI_API float ImGuiStorage_GetFloat(ImGuiStorage* self,ImGuiID key,float default_val);
  CIMGUI_API void ImGuiStorage_SetFloat(ImGuiStorage* self,ImGuiID key,float val);
  CIMGUI_API void* ImGuiStorage_GetVoidPtr(ImGuiStorage* self,ImGuiID key);
  CIMGUI_API void ImGuiStorage_SetVoidPtr(ImGuiStorage* self,ImGuiID key,void* val);
  CIMGUI_API int* ImGuiStorage_GetIntRef(ImGuiStorage* self,ImGuiID key,int default_val);
  CIMGUI_API bool* ImGuiStorage_GetBoolRef(ImGuiStorage* self,ImGuiID key,bool default_val);
  CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float default_val);
  CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val);
  CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
  CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
  CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height);
  CIMGUI_API void ImGuiListClipper_destroy(ImGuiListClipper* self);
  CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self);
  CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height);
  CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self);
  CIMGUI_API ImColor* ImColor_ImColor(void);
  CIMGUI_API void ImColor_destroy(ImColor* self);
  CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a);
  CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba);
  CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a);
  CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col);
  CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
  CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
  CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void);
  CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self);
  CIMGUI_API ImDrawListSplitter* ImDrawListSplitter_ImDrawListSplitter(void);
  CIMGUI_API void ImDrawListSplitter_destroy(ImDrawListSplitter* self);
  CIMGUI_API void ImDrawListSplitter_Clear(ImDrawListSplitter* self);
  CIMGUI_API void ImDrawListSplitter_ClearFreeMemory(ImDrawListSplitter* self);
  CIMGUI_API void ImDrawListSplitter_Split(ImDrawListSplitter* self,ImDrawList* draw_list,int count);
  CIMGUI_API void ImDrawListSplitter_Merge(ImDrawListSplitter* self,ImDrawList* draw_list);
  CIMGUI_API void ImDrawListSplitter_SetCurrentChannel(ImDrawListSplitter* self,ImDrawList* draw_list,int channel_idx);
  CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data);
  CIMGUI_API void ImDrawList_destroy(ImDrawList* self);
  CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
  CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
  CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
  CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* self,ImTextureID texture_id);
  CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self);
  CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
  CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
  CIMGUI_API void ImDrawList_AddLine(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float thickness);
  CIMGUI_API void ImDrawList_AddRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners,float thickness);
  CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners);
  CIMGUI_API void ImDrawList_AddRectFilledMultiColor(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col_upr_left,ImU32 col_upr_right,ImU32 col_bot_right,ImU32 col_bot_left);
  CIMGUI_API void ImDrawList_AddQuad(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,ImU32 col,float thickness);
  CIMGUI_API void ImDrawList_AddQuadFilled(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,ImU32 col);
  CIMGUI_API void ImDrawList_AddTriangle(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,ImU32 col,float thickness);
  CIMGUI_API void ImDrawList_AddTriangleFilled(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,ImU32 col);
  CIMGUI_API void ImDrawList_AddCircle(ImDrawList* self,const ImVec2 centre,float radius,ImU32 col,int num_segments,float thickness);
  CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* self,const ImVec2 centre,float radius,ImU32 col,int num_segments);
  CIMGUI_API void ImDrawList_AddText(ImDrawList* self,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end);
  CIMGUI_API void ImDrawList_AddTextFontPtr(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect);
  CIMGUI_API void ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col);
  CIMGUI_API void ImDrawList_AddImageQuad(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,const ImVec2 uv_a,const ImVec2 uv_b,const ImVec2 uv_c,const ImVec2 uv_d,ImU32 col);
  CIMGUI_API void ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners);
  CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,bool closed,float thickness);
  CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col);
  CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,const ImVec2 cp0,const ImVec2 cp1,const ImVec2 pos1,ImU32 col,float thickness,int num_segments);
  CIMGUI_API void ImDrawList_PathClear(ImDrawList* self);
  CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
  CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
  CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col);
  CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
  CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 centre,float radius,float a_min,float a_max,int num_segments);
  CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 centre,float radius,int a_min_of_12,int a_max_of_12);
  CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,int num_segments);
  CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max,float rounding,ImDrawCornerFlags rounding_corners);
  CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* callback_data);
  CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* self);
  CIMGUI_API ImDrawList* ImDrawList_CloneOutput(ImDrawList* self);
  CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* self,int count);
  CIMGUI_API void ImDrawList_ChannelsMerge(ImDrawList* self);
  CIMGUI_API void ImDrawList_ChannelsSetCurrent(ImDrawList* self,int n);
  CIMGUI_API void ImDrawList_Clear(ImDrawList* self);
  CIMGUI_API void ImDrawList_ClearFreeMemory(ImDrawList* self);
  CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* self,int idx_count,int vtx_count);
  CIMGUI_API void ImDrawList_PrimRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col);
  CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col);
  CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,const ImVec2 uv_a,const ImVec2 uv_b,const ImVec2 uv_c,const ImVec2 uv_d,ImU32 col);
  CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
  CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
  CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
  CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
  CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
  CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void);
  CIMGUI_API void ImDrawData_destroy(ImDrawData* self);
  CIMGUI_API void ImDrawData_Clear(ImDrawData* self);
  CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self);
  CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 fb_scale);
  CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void);
  CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self);
  CIMGUI_API ImFontGlyphRangesBuilder* ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder(void);
  CIMGUI_API void ImFontGlyphRangesBuilder_destroy(ImFontGlyphRangesBuilder* self);
  CIMGUI_API void ImFontGlyphRangesBuilder_Clear(ImFontGlyphRangesBuilder* self);
  CIMGUI_API bool ImFontGlyphRangesBuilder_GetBit(ImFontGlyphRangesBuilder* self,int n);
  CIMGUI_API void ImFontGlyphRangesBuilder_SetBit(ImFontGlyphRangesBuilder* self,int n);
  CIMGUI_API void ImFontGlyphRangesBuilder_AddChar(ImFontGlyphRangesBuilder* self,ImWchar c);
  CIMGUI_API void ImFontGlyphRangesBuilder_AddText(ImFontGlyphRangesBuilder* self,const char* text,const char* text_end);
  CIMGUI_API void ImFontGlyphRangesBuilder_AddRanges(ImFontGlyphRangesBuilder* self,const ImWchar* ranges);
  CIMGUI_API void ImFontGlyphRangesBuilder_BuildRanges(ImFontGlyphRangesBuilder* self,ImVector_ImWchar* out_ranges);
  CIMGUI_API ImFontAtlasCustomRect* ImFontAtlasCustomRect_ImFontAtlasCustomRect(void);
  CIMGUI_API void ImFontAtlasCustomRect_destroy(ImFontAtlasCustomRect* self);
  CIMGUI_API bool ImFontAtlasCustomRect_IsPacked(ImFontAtlasCustomRect* self);
  CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void);
  CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self);
  CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg);
  CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg);
  CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
  CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font_data,int font_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
  CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
  CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
  CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self);
  CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
  CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
  CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
  CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self);
  CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel);
  CIMGUI_API void ImFontAtlas_GetTexDataAsRGBA32(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel);
  CIMGUI_API bool ImFontAtlas_IsBuilt(ImFontAtlas* self);
  CIMGUI_API void ImFontAtlas_SetTexID(ImFontAtlas* self,ImTextureID id);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesDefault(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesKorean(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesJapanese(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self);
  CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesVietnamese(ImFontAtlas* self);
  CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,unsigned int id,int width,int height);
  CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset);
  CIMGUI_API const ImFontAtlasCustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index);
  CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const ImFontAtlasCustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max);
  CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]);
  CIMGUI_API ImFont* ImFont_ImFont(void);
  CIMGUI_API void ImFont_destroy(ImFont* self);
  CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c);
  CIMGUI_API const ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c);
  CIMGUI_API float ImFont_GetCharAdvance(ImFont* self,ImWchar c);
  CIMGUI_API bool ImFont_IsLoaded(ImFont* self);
  CIMGUI_API const char* ImFont_GetDebugName(ImFont* self);
  CIMGUI_API ImVec2 ImFont_CalcTextSizeA(ImFont* self,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining);
  CIMGUI_API const char* ImFont_CalcWordWrapPositionA(ImFont* self,float scale,const char* text,const char* text_end,float wrap_width);
  CIMGUI_API void ImFont_RenderChar(ImFont* self,ImDrawList* draw_list,float size,ImVec2 pos,ImU32 col,ImWchar c);
  CIMGUI_API void ImFont_RenderText(ImFont* self,ImDrawList* draw_list,float size,ImVec2 pos,ImU32 col,const ImVec4 clip_rect,const char* text_begin,const char* text_end,float wrap_width,bool cpu_fine_clip);
  CIMGUI_API void ImFont_BuildLookupTable(ImFont* self);
  CIMGUI_API void ImFont_ClearOutputData(ImFont* self);
  CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size);
  CIMGUI_API void ImFont_AddGlyph(ImFont* self,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x);
  CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst);
  CIMGUI_API void ImFont_SetFallbackChar(ImFont* self,ImWchar c);
  CIMGUI_API void igGetWindowPos_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetWindowPos_nonUDT2(void);
  CIMGUI_API void igGetWindowSize_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetWindowSize_nonUDT2(void);
  CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetContentRegionMax_nonUDT2(void);
  CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetContentRegionAvail_nonUDT2(void);
  CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetWindowContentRegionMin_nonUDT2(void);
  CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetWindowContentRegionMax_nonUDT2(void);
  CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2(void);
  CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetCursorPos_nonUDT2(void);
  CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetCursorStartPos_nonUDT2(void);
  CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetCursorScreenPos_nonUDT2(void);
  CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetItemRectMin_nonUDT2(void);
  CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetItemRectMax_nonUDT2(void);
  CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetItemRectSize_nonUDT2(void);
  CIMGUI_API void igCalcTextSize_nonUDT(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
  CIMGUI_API ImVec2_Simple igCalcTextSize_nonUDT2(const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
  CIMGUI_API void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in);
  CIMGUI_API ImVec4_Simple igColorConvertU32ToFloat4_nonUDT2(ImU32 in);
  CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetMousePos_nonUDT2(void);
  CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut);
  CIMGUI_API ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2(void);
  CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold);
  CIMGUI_API ImVec2_Simple igGetMouseDragDelta_nonUDT2(int button,float lock_threshold);
  CIMGUI_API void ImColor_HSV_nonUDT(ImColor *pOut,ImColor* self,float h,float s,float v,float a);
  CIMGUI_API ImColor_Simple ImColor_HSV_nonUDT2(ImColor* self,float h,float s,float v,float a);
  CIMGUI_API void ImDrawList_GetClipRectMin_nonUDT(ImVec2 *pOut,ImDrawList* self);
  CIMGUI_API ImVec2_Simple ImDrawList_GetClipRectMin_nonUDT2(ImDrawList* self);
  CIMGUI_API void ImDrawList_GetClipRectMax_nonUDT(ImVec2 *pOut,ImDrawList* self);
  CIMGUI_API ImVec2_Simple ImDrawList_GetClipRectMax_nonUDT2(ImDrawList* self);
  CIMGUI_API void ImFont_CalcTextSizeA_nonUDT(ImVec2 *pOut,ImFont* self,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining);
  CIMGUI_API ImVec2_Simple ImFont_CalcTextSizeA_nonUDT2(ImFont* self,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining);
  CIMGUI_API ImVector_float* ImVector_float_ImVector_float(void);
  CIMGUI_API void ImVector_float_destroy(ImVector_float* self);
  CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_ImVector_ImWchar(void);
  CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self);
  CIMGUI_API ImVector_ImDrawVert* ImVector_ImDrawVert_ImVector_ImDrawVert(void);
  CIMGUI_API void ImVector_ImDrawVert_destroy(ImVector_ImDrawVert* self);
  CIMGUI_API ImVector_ImFontGlyph* ImVector_ImFontGlyph_ImVector_ImFontGlyph(void);
  CIMGUI_API void ImVector_ImFontGlyph_destroy(ImVector_ImFontGlyph* self);
  CIMGUI_API ImVector_ImGuiTextRange* ImVector_ImGuiTextRange_ImVector_ImGuiTextRange(void);
  CIMGUI_API void ImVector_ImGuiTextRange_destroy(ImVector_ImGuiTextRange* self);
  CIMGUI_API ImVector_ImGuiStoragePair* ImVector_ImGuiStoragePair_ImVector_ImGuiStoragePair(void);
  CIMGUI_API void ImVector_ImGuiStoragePair_destroy(ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImVector_ImDrawChannel* ImVector_ImDrawChannel_ImVector_ImDrawChannel(void);
  CIMGUI_API void ImVector_ImDrawChannel_destroy(ImVector_ImDrawChannel* self);
  CIMGUI_API ImVector_char* ImVector_char_ImVector_char(void);
  CIMGUI_API void ImVector_char_destroy(ImVector_char* self);
  CIMGUI_API ImVector_ImU32* ImVector_ImU32_ImVector_ImU32(void);
  CIMGUI_API void ImVector_ImU32_destroy(ImVector_ImU32* self);
  CIMGUI_API ImVector_ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_ImVector_ImFontAtlasCustomRect(void);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_destroy(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImVector_ImTextureID* ImVector_ImTextureID_ImVector_ImTextureID(void);
  CIMGUI_API void ImVector_ImTextureID_destroy(ImVector_ImTextureID* self);
  CIMGUI_API ImVector_ImFontConfig* ImVector_ImFontConfig_ImVector_ImFontConfig(void);
  CIMGUI_API void ImVector_ImFontConfig_destroy(ImVector_ImFontConfig* self);
  CIMGUI_API ImVector_ImFontPtr* ImVector_ImFontPtr_ImVector_ImFontPtr(void);
  CIMGUI_API void ImVector_ImFontPtr_destroy(ImVector_ImFontPtr* self);
  CIMGUI_API ImVector_ImDrawCmd* ImVector_ImDrawCmd_ImVector_ImDrawCmd(void);
  CIMGUI_API void ImVector_ImDrawCmd_destroy(ImVector_ImDrawCmd* self);
  CIMGUI_API ImVector_ImVec4* ImVector_ImVec4_ImVector_ImVec4(void);
  CIMGUI_API void ImVector_ImVec4_destroy(ImVector_ImVec4* self);
  CIMGUI_API ImVector_ImDrawIdx* ImVector_ImDrawIdx_ImVector_ImDrawIdx(void);
  CIMGUI_API void ImVector_ImDrawIdx_destroy(ImVector_ImDrawIdx* self);
  CIMGUI_API ImVector_ImVec2* ImVector_ImVec2_ImVector_ImVec2(void);
  CIMGUI_API void ImVector_ImVec2_destroy(ImVector_ImVec2* self);
  CIMGUI_API ImVector_float* ImVector_float_ImVector_floatVector(const ImVector_float src);
  CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_ImVector_ImWcharVector(const ImVector_ImWchar src);
  CIMGUI_API ImVector_ImDrawVert* ImVector_ImDrawVert_ImVector_ImDrawVertVector(const ImVector_ImDrawVert src);
  CIMGUI_API ImVector_ImFontGlyph* ImVector_ImFontGlyph_ImVector_ImFontGlyphVector(const ImVector_ImFontGlyph src);
  CIMGUI_API ImVector_ImGuiTextRange* ImVector_ImGuiTextRange_ImVector_ImGuiTextRangeVector(const ImVector_ImGuiTextRange src);
  CIMGUI_API ImVector_ImGuiStoragePair* ImVector_ImGuiStoragePair_ImVector_ImGuiStoragePairVector(const ImVector_ImGuiStoragePair src);
  CIMGUI_API ImVector_ImDrawChannel* ImVector_ImDrawChannel_ImVector_ImDrawChannelVector(const ImVector_ImDrawChannel src);
  CIMGUI_API ImVector_char* ImVector_char_ImVector_charVector(const ImVector_char src);
  CIMGUI_API ImVector_ImU32* ImVector_ImU32_ImVector_ImU32Vector(const ImVector_ImU32 src);
  CIMGUI_API ImVector_ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_ImVector_ImFontAtlasCustomRectVector(const ImVector_ImFontAtlasCustomRect src);
  CIMGUI_API ImVector_ImTextureID* ImVector_ImTextureID_ImVector_ImTextureIDVector(const ImVector_ImTextureID src);
  CIMGUI_API ImVector_ImFontConfig* ImVector_ImFontConfig_ImVector_ImFontConfigVector(const ImVector_ImFontConfig src);
  CIMGUI_API ImVector_ImFontPtr* ImVector_ImFontPtr_ImVector_ImFontPtrVector(const ImVector_ImFontPtr src);
  CIMGUI_API ImVector_ImDrawCmd* ImVector_ImDrawCmd_ImVector_ImDrawCmdVector(const ImVector_ImDrawCmd src);
  CIMGUI_API ImVector_ImVec4* ImVector_ImVec4_ImVector_ImVec4Vector(const ImVector_ImVec4 src);
  CIMGUI_API ImVector_ImDrawIdx* ImVector_ImDrawIdx_ImVector_ImDrawIdxVector(const ImVector_ImDrawIdx src);
  CIMGUI_API ImVector_ImVec2* ImVector_ImVec2_ImVector_ImVec2Vector(const ImVector_ImVec2 src);
  CIMGUI_API bool ImVector_float_empty(const ImVector_float* self);
  CIMGUI_API bool ImVector_ImWchar_empty(const ImVector_ImWchar* self);
  CIMGUI_API bool ImVector_ImDrawVert_empty(const ImVector_ImDrawVert* self);
  CIMGUI_API bool ImVector_ImFontGlyph_empty(const ImVector_ImFontGlyph* self);
  CIMGUI_API bool ImVector_ImGuiTextRange_empty(const ImVector_ImGuiTextRange* self);
  CIMGUI_API bool ImVector_ImGuiStoragePair_empty(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API bool ImVector_ImDrawChannel_empty(const ImVector_ImDrawChannel* self);
  CIMGUI_API bool ImVector_char_empty(const ImVector_char* self);
  CIMGUI_API bool ImVector_ImU32_empty(const ImVector_ImU32* self);
  CIMGUI_API bool ImVector_ImFontAtlasCustomRect_empty(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API bool ImVector_ImTextureID_empty(const ImVector_ImTextureID* self);
  CIMGUI_API bool ImVector_ImFontConfig_empty(const ImVector_ImFontConfig* self);
  CIMGUI_API bool ImVector_ImFontPtr_empty(const ImVector_ImFontPtr* self);
  CIMGUI_API bool ImVector_ImDrawCmd_empty(const ImVector_ImDrawCmd* self);
  CIMGUI_API bool ImVector_ImVec4_empty(const ImVector_ImVec4* self);
  CIMGUI_API bool ImVector_ImDrawIdx_empty(const ImVector_ImDrawIdx* self);
  CIMGUI_API bool ImVector_ImVec2_empty(const ImVector_ImVec2* self);
  CIMGUI_API int ImVector_float_size(const ImVector_float* self);
  CIMGUI_API int ImVector_ImWchar_size(const ImVector_ImWchar* self);
  CIMGUI_API int ImVector_ImDrawVert_size(const ImVector_ImDrawVert* self);
  CIMGUI_API int ImVector_ImFontGlyph_size(const ImVector_ImFontGlyph* self);
  CIMGUI_API int ImVector_ImGuiTextRange_size(const ImVector_ImGuiTextRange* self);
  CIMGUI_API int ImVector_ImGuiStoragePair_size(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API int ImVector_ImDrawChannel_size(const ImVector_ImDrawChannel* self);
  CIMGUI_API int ImVector_char_size(const ImVector_char* self);
  CIMGUI_API int ImVector_ImU32_size(const ImVector_ImU32* self);
  CIMGUI_API int ImVector_ImFontAtlasCustomRect_size(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API int ImVector_ImTextureID_size(const ImVector_ImTextureID* self);
  CIMGUI_API int ImVector_ImFontConfig_size(const ImVector_ImFontConfig* self);
  CIMGUI_API int ImVector_ImFontPtr_size(const ImVector_ImFontPtr* self);
  CIMGUI_API int ImVector_ImDrawCmd_size(const ImVector_ImDrawCmd* self);
  CIMGUI_API int ImVector_ImVec4_size(const ImVector_ImVec4* self);
  CIMGUI_API int ImVector_ImDrawIdx_size(const ImVector_ImDrawIdx* self);
  CIMGUI_API int ImVector_ImVec2_size(const ImVector_ImVec2* self);
  CIMGUI_API int ImVector_float_size_in_bytes(const ImVector_float* self);
  CIMGUI_API int ImVector_ImWchar_size_in_bytes(const ImVector_ImWchar* self);
  CIMGUI_API int ImVector_ImDrawVert_size_in_bytes(const ImVector_ImDrawVert* self);
  CIMGUI_API int ImVector_ImFontGlyph_size_in_bytes(const ImVector_ImFontGlyph* self);
  CIMGUI_API int ImVector_ImGuiTextRange_size_in_bytes(const ImVector_ImGuiTextRange* self);
  CIMGUI_API int ImVector_ImGuiStoragePair_size_in_bytes(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API int ImVector_ImDrawChannel_size_in_bytes(const ImVector_ImDrawChannel* self);
  CIMGUI_API int ImVector_char_size_in_bytes(const ImVector_char* self);
  CIMGUI_API int ImVector_ImU32_size_in_bytes(const ImVector_ImU32* self);
  CIMGUI_API int ImVector_ImFontAtlasCustomRect_size_in_bytes(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API int ImVector_ImTextureID_size_in_bytes(const ImVector_ImTextureID* self);
  CIMGUI_API int ImVector_ImFontConfig_size_in_bytes(const ImVector_ImFontConfig* self);
  CIMGUI_API int ImVector_ImFontPtr_size_in_bytes(const ImVector_ImFontPtr* self);
  CIMGUI_API int ImVector_ImDrawCmd_size_in_bytes(const ImVector_ImDrawCmd* self);
  CIMGUI_API int ImVector_ImVec4_size_in_bytes(const ImVector_ImVec4* self);
  CIMGUI_API int ImVector_ImDrawIdx_size_in_bytes(const ImVector_ImDrawIdx* self);
  CIMGUI_API int ImVector_ImVec2_size_in_bytes(const ImVector_ImVec2* self);
  CIMGUI_API int ImVector_float_capacity(const ImVector_float* self);
  CIMGUI_API int ImVector_ImWchar_capacity(const ImVector_ImWchar* self);
  CIMGUI_API int ImVector_ImDrawVert_capacity(const ImVector_ImDrawVert* self);
  CIMGUI_API int ImVector_ImFontGlyph_capacity(const ImVector_ImFontGlyph* self);
  CIMGUI_API int ImVector_ImGuiTextRange_capacity(const ImVector_ImGuiTextRange* self);
  CIMGUI_API int ImVector_ImGuiStoragePair_capacity(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API int ImVector_ImDrawChannel_capacity(const ImVector_ImDrawChannel* self);
  CIMGUI_API int ImVector_char_capacity(const ImVector_char* self);
  CIMGUI_API int ImVector_ImU32_capacity(const ImVector_ImU32* self);
  CIMGUI_API int ImVector_ImFontAtlasCustomRect_capacity(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API int ImVector_ImTextureID_capacity(const ImVector_ImTextureID* self);
  CIMGUI_API int ImVector_ImFontConfig_capacity(const ImVector_ImFontConfig* self);
  CIMGUI_API int ImVector_ImFontPtr_capacity(const ImVector_ImFontPtr* self);
  CIMGUI_API int ImVector_ImDrawCmd_capacity(const ImVector_ImDrawCmd* self);
  CIMGUI_API int ImVector_ImVec4_capacity(const ImVector_ImVec4* self);
  CIMGUI_API int ImVector_ImDrawIdx_capacity(const ImVector_ImDrawIdx* self);
  CIMGUI_API int ImVector_ImVec2_capacity(const ImVector_ImVec2* self);
  CIMGUI_API void ImVector_float_clear(ImVector_float* self);
  CIMGUI_API void ImVector_ImWchar_clear(ImVector_ImWchar* self);
  CIMGUI_API void ImVector_ImDrawVert_clear(ImVector_ImDrawVert* self);
  CIMGUI_API void ImVector_ImFontGlyph_clear(ImVector_ImFontGlyph* self);
  CIMGUI_API void ImVector_ImGuiTextRange_clear(ImVector_ImGuiTextRange* self);
  CIMGUI_API void ImVector_ImGuiStoragePair_clear(ImVector_ImGuiStoragePair* self);
  CIMGUI_API void ImVector_ImDrawChannel_clear(ImVector_ImDrawChannel* self);
  CIMGUI_API void ImVector_char_clear(ImVector_char* self);
  CIMGUI_API void ImVector_ImU32_clear(ImVector_ImU32* self);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_clear(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API void ImVector_ImTextureID_clear(ImVector_ImTextureID* self);
  CIMGUI_API void ImVector_ImFontConfig_clear(ImVector_ImFontConfig* self);
  CIMGUI_API void ImVector_ImFontPtr_clear(ImVector_ImFontPtr* self);
  CIMGUI_API void ImVector_ImDrawCmd_clear(ImVector_ImDrawCmd* self);
  CIMGUI_API void ImVector_ImVec4_clear(ImVector_ImVec4* self);
  CIMGUI_API void ImVector_ImDrawIdx_clear(ImVector_ImDrawIdx* self);
  CIMGUI_API void ImVector_ImVec2_clear(ImVector_ImVec2* self);
  CIMGUI_API float* ImVector_float_begin(ImVector_float* self);
  CIMGUI_API ImWchar* ImVector_ImWchar_begin(ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_begin(ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_begin(ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_begin(ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_begin(ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_begin(ImVector_ImDrawChannel* self);
  CIMGUI_API char* ImVector_char_begin(ImVector_char* self);
  CIMGUI_API ImU32* ImVector_ImU32_begin(ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_begin(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_begin(ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_begin(ImVector_ImFontConfig* self);
  CIMGUI_API ImFont** ImVector_ImFontPtr_begin(ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_begin(ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4* ImVector_ImVec4_begin(ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_begin(ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2* ImVector_ImVec2_begin(ImVector_ImVec2* self);
  CIMGUI_API float const * ImVector_float_begin_const(const ImVector_float* self);
  CIMGUI_API ImWchar const * ImVector_ImWchar_begin_const(const ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert const * ImVector_ImDrawVert_begin_const(const ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph const * ImVector_ImFontGlyph_begin_const(const ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange const * ImVector_ImGuiTextRange_begin_const(const ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair const * ImVector_ImGuiStoragePair_begin_const(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel const * ImVector_ImDrawChannel_begin_const(const ImVector_ImDrawChannel* self);
  CIMGUI_API char const * ImVector_char_begin_const(const ImVector_char* self);
  CIMGUI_API ImU32 const * ImVector_ImU32_begin_const(const ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect const * ImVector_ImFontAtlasCustomRect_begin_const(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID const * ImVector_ImTextureID_begin_const(const ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig const * ImVector_ImFontConfig_begin_const(const ImVector_ImFontConfig* self);
  CIMGUI_API ImFont* const * ImVector_ImFontPtr_begin_const(const ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd const * ImVector_ImDrawCmd_begin_const(const ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4 const * ImVector_ImVec4_begin_const(const ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx const * ImVector_ImDrawIdx_begin_const(const ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2 const * ImVector_ImVec2_begin_const(const ImVector_ImVec2* self);
  CIMGUI_API float* ImVector_float_end(ImVector_float* self);
  CIMGUI_API ImWchar* ImVector_ImWchar_end(ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_end(ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_end(ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_end(ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_end(ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_end(ImVector_ImDrawChannel* self);
  CIMGUI_API char* ImVector_char_end(ImVector_char* self);
  CIMGUI_API ImU32* ImVector_ImU32_end(ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_end(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_end(ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_end(ImVector_ImFontConfig* self);
  CIMGUI_API ImFont** ImVector_ImFontPtr_end(ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_end(ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4* ImVector_ImVec4_end(ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_end(ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2* ImVector_ImVec2_end(ImVector_ImVec2* self);
  CIMGUI_API float const * ImVector_float_end_const(const ImVector_float* self);
  CIMGUI_API ImWchar const * ImVector_ImWchar_end_const(const ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert const * ImVector_ImDrawVert_end_const(const ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph const * ImVector_ImFontGlyph_end_const(const ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange const * ImVector_ImGuiTextRange_end_const(const ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair const * ImVector_ImGuiStoragePair_end_const(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel const * ImVector_ImDrawChannel_end_const(const ImVector_ImDrawChannel* self);
  CIMGUI_API char const * ImVector_char_end_const(const ImVector_char* self);
  CIMGUI_API ImU32 const * ImVector_ImU32_end_const(const ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect const * ImVector_ImFontAtlasCustomRect_end_const(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID const * ImVector_ImTextureID_end_const(const ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig const * ImVector_ImFontConfig_end_const(const ImVector_ImFontConfig* self);
  CIMGUI_API ImFont* const * ImVector_ImFontPtr_end_const(const ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd const * ImVector_ImDrawCmd_end_const(const ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4 const * ImVector_ImVec4_end_const(const ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx const * ImVector_ImDrawIdx_end_const(const ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2 const * ImVector_ImVec2_end_const(const ImVector_ImVec2* self);
  CIMGUI_API float* ImVector_float_front(ImVector_float* self);
  CIMGUI_API ImWchar* ImVector_ImWchar_front(ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_front(ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_front(ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_front(ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_front(ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_front(ImVector_ImDrawChannel* self);
  CIMGUI_API char* ImVector_char_front(ImVector_char* self);
  CIMGUI_API ImU32* ImVector_ImU32_front(ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_front(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_front(ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_front(ImVector_ImFontConfig* self);
  CIMGUI_API ImFont** ImVector_ImFontPtr_front(ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_front(ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4* ImVector_ImVec4_front(ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_front(ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2* ImVector_ImVec2_front(ImVector_ImVec2* self);
  CIMGUI_API float const * ImVector_float_front_const(const ImVector_float* self);
  CIMGUI_API ImWchar const * ImVector_ImWchar_front_const(const ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert const * ImVector_ImDrawVert_front_const(const ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph const * ImVector_ImFontGlyph_front_const(const ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange const * ImVector_ImGuiTextRange_front_const(const ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair const * ImVector_ImGuiStoragePair_front_const(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel const * ImVector_ImDrawChannel_front_const(const ImVector_ImDrawChannel* self);
  CIMGUI_API char const * ImVector_char_front_const(const ImVector_char* self);
  CIMGUI_API ImU32 const * ImVector_ImU32_front_const(const ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect const * ImVector_ImFontAtlasCustomRect_front_const(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID const * ImVector_ImTextureID_front_const(const ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig const * ImVector_ImFontConfig_front_const(const ImVector_ImFontConfig* self);
  CIMGUI_API ImFont* const * ImVector_ImFontPtr_front_const(const ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd const * ImVector_ImDrawCmd_front_const(const ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4 const * ImVector_ImVec4_front_const(const ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx const * ImVector_ImDrawIdx_front_const(const ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2 const * ImVector_ImVec2_front_const(const ImVector_ImVec2* self);
  CIMGUI_API float* ImVector_float_back(ImVector_float* self);
  CIMGUI_API ImWchar* ImVector_ImWchar_back(ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_back(ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_back(ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_back(ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_back(ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_back(ImVector_ImDrawChannel* self);
  CIMGUI_API char* ImVector_char_back(ImVector_char* self);
  CIMGUI_API ImU32* ImVector_ImU32_back(ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_back(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_back(ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_back(ImVector_ImFontConfig* self);
  CIMGUI_API ImFont** ImVector_ImFontPtr_back(ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_back(ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4* ImVector_ImVec4_back(ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_back(ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2* ImVector_ImVec2_back(ImVector_ImVec2* self);
  CIMGUI_API float const * ImVector_float_back_const(const ImVector_float* self);
  CIMGUI_API ImWchar const * ImVector_ImWchar_back_const(const ImVector_ImWchar* self);
  CIMGUI_API ImDrawVert const * ImVector_ImDrawVert_back_const(const ImVector_ImDrawVert* self);
  CIMGUI_API ImFontGlyph const * ImVector_ImFontGlyph_back_const(const ImVector_ImFontGlyph* self);
  CIMGUI_API ImGuiTextRange const * ImVector_ImGuiTextRange_back_const(const ImVector_ImGuiTextRange* self);
  CIMGUI_API ImGuiStoragePair const * ImVector_ImGuiStoragePair_back_const(const ImVector_ImGuiStoragePair* self);
  CIMGUI_API ImDrawChannel const * ImVector_ImDrawChannel_back_const(const ImVector_ImDrawChannel* self);
  CIMGUI_API char const * ImVector_char_back_const(const ImVector_char* self);
  CIMGUI_API ImU32 const * ImVector_ImU32_back_const(const ImVector_ImU32* self);
  CIMGUI_API ImFontAtlasCustomRect const * ImVector_ImFontAtlasCustomRect_back_const(const ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API ImTextureID const * ImVector_ImTextureID_back_const(const ImVector_ImTextureID* self);
  CIMGUI_API ImFontConfig const * ImVector_ImFontConfig_back_const(const ImVector_ImFontConfig* self);
  CIMGUI_API ImFont* const * ImVector_ImFontPtr_back_const(const ImVector_ImFontPtr* self);
  CIMGUI_API ImDrawCmd const * ImVector_ImDrawCmd_back_const(const ImVector_ImDrawCmd* self);
  CIMGUI_API ImVec4 const * ImVector_ImVec4_back_const(const ImVector_ImVec4* self);
  CIMGUI_API ImDrawIdx const * ImVector_ImDrawIdx_back_const(const ImVector_ImDrawIdx* self);
  CIMGUI_API ImVec2 const * ImVector_ImVec2_back_const(const ImVector_ImVec2* self);
  CIMGUI_API void ImVector_float_swap(ImVector_float* self,ImVector_float rhs);
  CIMGUI_API void ImVector_ImWchar_swap(ImVector_ImWchar* self,ImVector_ImWchar rhs);
  CIMGUI_API void ImVector_ImDrawVert_swap(ImVector_ImDrawVert* self,ImVector_ImDrawVert rhs);
  CIMGUI_API void ImVector_ImFontGlyph_swap(ImVector_ImFontGlyph* self,ImVector_ImFontGlyph rhs);
  CIMGUI_API void ImVector_ImGuiTextRange_swap(ImVector_ImGuiTextRange* self,ImVector_ImGuiTextRange rhs);
  CIMGUI_API void ImVector_ImGuiStoragePair_swap(ImVector_ImGuiStoragePair* self,ImVector_ImGuiStoragePair rhs);
  CIMGUI_API void ImVector_ImDrawChannel_swap(ImVector_ImDrawChannel* self,ImVector_ImDrawChannel rhs);
  CIMGUI_API void ImVector_char_swap(ImVector_char* self,ImVector_char rhs);
  CIMGUI_API void ImVector_ImU32_swap(ImVector_ImU32* self,ImVector_ImU32 rhs);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_swap(ImVector_ImFontAtlasCustomRect* self,ImVector_ImFontAtlasCustomRect rhs);
  CIMGUI_API void ImVector_ImTextureID_swap(ImVector_ImTextureID* self,ImVector_ImTextureID rhs);
  CIMGUI_API void ImVector_ImFontConfig_swap(ImVector_ImFontConfig* self,ImVector_ImFontConfig rhs);
  CIMGUI_API void ImVector_ImFontPtr_swap(ImVector_ImFontPtr* self,ImVector_ImFontPtr rhs);
  CIMGUI_API void ImVector_ImDrawCmd_swap(ImVector_ImDrawCmd* self,ImVector_ImDrawCmd rhs);
  CIMGUI_API void ImVector_ImVec4_swap(ImVector_ImVec4* self,ImVector_ImVec4 rhs);
  CIMGUI_API void ImVector_ImDrawIdx_swap(ImVector_ImDrawIdx* self,ImVector_ImDrawIdx rhs);
  CIMGUI_API void ImVector_ImVec2_swap(ImVector_ImVec2* self,ImVector_ImVec2 rhs);
  CIMGUI_API int ImVector_float__grow_capacity(const ImVector_float* self,int sz);
  CIMGUI_API int ImVector_ImWchar__grow_capacity(const ImVector_ImWchar* self,int sz);
  CIMGUI_API int ImVector_ImDrawVert__grow_capacity(const ImVector_ImDrawVert* self,int sz);
  CIMGUI_API int ImVector_ImFontGlyph__grow_capacity(const ImVector_ImFontGlyph* self,int sz);
  CIMGUI_API int ImVector_ImGuiTextRange__grow_capacity(const ImVector_ImGuiTextRange* self,int sz);
  CIMGUI_API int ImVector_ImGuiStoragePair__grow_capacity(const ImVector_ImGuiStoragePair* self,int sz);
  CIMGUI_API int ImVector_ImDrawChannel__grow_capacity(const ImVector_ImDrawChannel* self,int sz);
  CIMGUI_API int ImVector_char__grow_capacity(const ImVector_char* self,int sz);
  CIMGUI_API int ImVector_ImU32__grow_capacity(const ImVector_ImU32* self,int sz);
  CIMGUI_API int ImVector_ImFontAtlasCustomRect__grow_capacity(const ImVector_ImFontAtlasCustomRect* self,int sz);
  CIMGUI_API int ImVector_ImTextureID__grow_capacity(const ImVector_ImTextureID* self,int sz);
  CIMGUI_API int ImVector_ImFontConfig__grow_capacity(const ImVector_ImFontConfig* self,int sz);
  CIMGUI_API int ImVector_ImFontPtr__grow_capacity(const ImVector_ImFontPtr* self,int sz);
  CIMGUI_API int ImVector_ImDrawCmd__grow_capacity(const ImVector_ImDrawCmd* self,int sz);
  CIMGUI_API int ImVector_ImVec4__grow_capacity(const ImVector_ImVec4* self,int sz);
  CIMGUI_API int ImVector_ImDrawIdx__grow_capacity(const ImVector_ImDrawIdx* self,int sz);
  CIMGUI_API int ImVector_ImVec2__grow_capacity(const ImVector_ImVec2* self,int sz);
  CIMGUI_API void ImVector_float_resize(ImVector_float* self,int new_size);
  CIMGUI_API void ImVector_ImWchar_resize(ImVector_ImWchar* self,int new_size);
  CIMGUI_API void ImVector_ImDrawVert_resize(ImVector_ImDrawVert* self,int new_size);
  CIMGUI_API void ImVector_ImFontGlyph_resize(ImVector_ImFontGlyph* self,int new_size);
  CIMGUI_API void ImVector_ImGuiTextRange_resize(ImVector_ImGuiTextRange* self,int new_size);
  CIMGUI_API void ImVector_ImGuiStoragePair_resize(ImVector_ImGuiStoragePair* self,int new_size);
  CIMGUI_API void ImVector_ImDrawChannel_resize(ImVector_ImDrawChannel* self,int new_size);
  CIMGUI_API void ImVector_char_resize(ImVector_char* self,int new_size);
  CIMGUI_API void ImVector_ImU32_resize(ImVector_ImU32* self,int new_size);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_resize(ImVector_ImFontAtlasCustomRect* self,int new_size);
  CIMGUI_API void ImVector_ImTextureID_resize(ImVector_ImTextureID* self,int new_size);
  CIMGUI_API void ImVector_ImFontConfig_resize(ImVector_ImFontConfig* self,int new_size);
  CIMGUI_API void ImVector_ImFontPtr_resize(ImVector_ImFontPtr* self,int new_size);
  CIMGUI_API void ImVector_ImDrawCmd_resize(ImVector_ImDrawCmd* self,int new_size);
  CIMGUI_API void ImVector_ImVec4_resize(ImVector_ImVec4* self,int new_size);
  CIMGUI_API void ImVector_ImDrawIdx_resize(ImVector_ImDrawIdx* self,int new_size);
  CIMGUI_API void ImVector_ImVec2_resize(ImVector_ImVec2* self,int new_size);
  CIMGUI_API void ImVector_float_resizeT(ImVector_float* self,int new_size,const float v);
  CIMGUI_API void ImVector_ImWchar_resizeT(ImVector_ImWchar* self,int new_size,const ImWchar v);
  CIMGUI_API void ImVector_ImDrawVert_resizeT(ImVector_ImDrawVert* self,int new_size,const ImDrawVert v);
  CIMGUI_API void ImVector_ImFontGlyph_resizeT(ImVector_ImFontGlyph* self,int new_size,const ImFontGlyph v);
  CIMGUI_API void ImVector_ImGuiTextRange_resizeT(ImVector_ImGuiTextRange* self,int new_size,const ImGuiTextRange v);
  CIMGUI_API void ImVector_ImGuiStoragePair_resizeT(ImVector_ImGuiStoragePair* self,int new_size,const ImGuiStoragePair v);
  CIMGUI_API void ImVector_ImDrawChannel_resizeT(ImVector_ImDrawChannel* self,int new_size,const ImDrawChannel v);
  CIMGUI_API void ImVector_char_resizeT(ImVector_char* self,int new_size,const char v);
  CIMGUI_API void ImVector_ImU32_resizeT(ImVector_ImU32* self,int new_size,const ImU32 v);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_resizeT(ImVector_ImFontAtlasCustomRect* self,int new_size,const ImFontAtlasCustomRect v);
  CIMGUI_API void ImVector_ImTextureID_resizeT(ImVector_ImTextureID* self,int new_size,const ImTextureID v);
  CIMGUI_API void ImVector_ImFontConfig_resizeT(ImVector_ImFontConfig* self,int new_size,const ImFontConfig v);
  CIMGUI_API void ImVector_ImFontPtr_resizeT(ImVector_ImFontPtr* self,int new_size,ImFont* const  v);
  CIMGUI_API void ImVector_ImDrawCmd_resizeT(ImVector_ImDrawCmd* self,int new_size,const ImDrawCmd v);
  CIMGUI_API void ImVector_ImVec4_resizeT(ImVector_ImVec4* self,int new_size,const ImVec4 v);
  CIMGUI_API void ImVector_ImDrawIdx_resizeT(ImVector_ImDrawIdx* self,int new_size,const ImDrawIdx v);
  CIMGUI_API void ImVector_ImVec2_resizeT(ImVector_ImVec2* self,int new_size,const ImVec2 v);
  CIMGUI_API void ImVector_float_reserve(ImVector_float* self,int new_capacity);
  CIMGUI_API void ImVector_ImWchar_reserve(ImVector_ImWchar* self,int new_capacity);
  CIMGUI_API void ImVector_ImDrawVert_reserve(ImVector_ImDrawVert* self,int new_capacity);
  CIMGUI_API void ImVector_ImFontGlyph_reserve(ImVector_ImFontGlyph* self,int new_capacity);
  CIMGUI_API void ImVector_ImGuiTextRange_reserve(ImVector_ImGuiTextRange* self,int new_capacity);
  CIMGUI_API void ImVector_ImGuiStoragePair_reserve(ImVector_ImGuiStoragePair* self,int new_capacity);
  CIMGUI_API void ImVector_ImDrawChannel_reserve(ImVector_ImDrawChannel* self,int new_capacity);
  CIMGUI_API void ImVector_char_reserve(ImVector_char* self,int new_capacity);
  CIMGUI_API void ImVector_ImU32_reserve(ImVector_ImU32* self,int new_capacity);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_reserve(ImVector_ImFontAtlasCustomRect* self,int new_capacity);
  CIMGUI_API void ImVector_ImTextureID_reserve(ImVector_ImTextureID* self,int new_capacity);
  CIMGUI_API void ImVector_ImFontConfig_reserve(ImVector_ImFontConfig* self,int new_capacity);
  CIMGUI_API void ImVector_ImFontPtr_reserve(ImVector_ImFontPtr* self,int new_capacity);
  CIMGUI_API void ImVector_ImDrawCmd_reserve(ImVector_ImDrawCmd* self,int new_capacity);
  CIMGUI_API void ImVector_ImVec4_reserve(ImVector_ImVec4* self,int new_capacity);
  CIMGUI_API void ImVector_ImDrawIdx_reserve(ImVector_ImDrawIdx* self,int new_capacity);
  CIMGUI_API void ImVector_ImVec2_reserve(ImVector_ImVec2* self,int new_capacity);
  CIMGUI_API void ImVector_float_push_back(ImVector_float* self,const float v);
  CIMGUI_API void ImVector_ImWchar_push_back(ImVector_ImWchar* self,const ImWchar v);
  CIMGUI_API void ImVector_ImDrawVert_push_back(ImVector_ImDrawVert* self,const ImDrawVert v);
  CIMGUI_API void ImVector_ImFontGlyph_push_back(ImVector_ImFontGlyph* self,const ImFontGlyph v);
  CIMGUI_API void ImVector_ImGuiTextRange_push_back(ImVector_ImGuiTextRange* self,const ImGuiTextRange v);
  CIMGUI_API void ImVector_ImGuiStoragePair_push_back(ImVector_ImGuiStoragePair* self,const ImGuiStoragePair v);
  CIMGUI_API void ImVector_ImDrawChannel_push_back(ImVector_ImDrawChannel* self,const ImDrawChannel v);
  CIMGUI_API void ImVector_char_push_back(ImVector_char* self,const char v);
  CIMGUI_API void ImVector_ImU32_push_back(ImVector_ImU32* self,const ImU32 v);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_push_back(ImVector_ImFontAtlasCustomRect* self,const ImFontAtlasCustomRect v);
  CIMGUI_API void ImVector_ImTextureID_push_back(ImVector_ImTextureID* self,const ImTextureID v);
  CIMGUI_API void ImVector_ImFontConfig_push_back(ImVector_ImFontConfig* self,const ImFontConfig v);
  CIMGUI_API void ImVector_ImFontPtr_push_back(ImVector_ImFontPtr* self,ImFont* const  v);
  CIMGUI_API void ImVector_ImDrawCmd_push_back(ImVector_ImDrawCmd* self,const ImDrawCmd v);
  CIMGUI_API void ImVector_ImVec4_push_back(ImVector_ImVec4* self,const ImVec4 v);
  CIMGUI_API void ImVector_ImDrawIdx_push_back(ImVector_ImDrawIdx* self,const ImDrawIdx v);
  CIMGUI_API void ImVector_ImVec2_push_back(ImVector_ImVec2* self,const ImVec2 v);
  CIMGUI_API void ImVector_float_pop_back(ImVector_float* self);
  CIMGUI_API void ImVector_ImWchar_pop_back(ImVector_ImWchar* self);
  CIMGUI_API void ImVector_ImDrawVert_pop_back(ImVector_ImDrawVert* self);
  CIMGUI_API void ImVector_ImFontGlyph_pop_back(ImVector_ImFontGlyph* self);
  CIMGUI_API void ImVector_ImGuiTextRange_pop_back(ImVector_ImGuiTextRange* self);
  CIMGUI_API void ImVector_ImGuiStoragePair_pop_back(ImVector_ImGuiStoragePair* self);
  CIMGUI_API void ImVector_ImDrawChannel_pop_back(ImVector_ImDrawChannel* self);
  CIMGUI_API void ImVector_char_pop_back(ImVector_char* self);
  CIMGUI_API void ImVector_ImU32_pop_back(ImVector_ImU32* self);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_pop_back(ImVector_ImFontAtlasCustomRect* self);
  CIMGUI_API void ImVector_ImTextureID_pop_back(ImVector_ImTextureID* self);
  CIMGUI_API void ImVector_ImFontConfig_pop_back(ImVector_ImFontConfig* self);
  CIMGUI_API void ImVector_ImFontPtr_pop_back(ImVector_ImFontPtr* self);
  CIMGUI_API void ImVector_ImDrawCmd_pop_back(ImVector_ImDrawCmd* self);
  CIMGUI_API void ImVector_ImVec4_pop_back(ImVector_ImVec4* self);
  CIMGUI_API void ImVector_ImDrawIdx_pop_back(ImVector_ImDrawIdx* self);
  CIMGUI_API void ImVector_ImVec2_pop_back(ImVector_ImVec2* self);
  CIMGUI_API void ImVector_float_push_front(ImVector_float* self,const float v);
  CIMGUI_API void ImVector_ImWchar_push_front(ImVector_ImWchar* self,const ImWchar v);
  CIMGUI_API void ImVector_ImDrawVert_push_front(ImVector_ImDrawVert* self,const ImDrawVert v);
  CIMGUI_API void ImVector_ImFontGlyph_push_front(ImVector_ImFontGlyph* self,const ImFontGlyph v);
  CIMGUI_API void ImVector_ImGuiTextRange_push_front(ImVector_ImGuiTextRange* self,const ImGuiTextRange v);
  CIMGUI_API void ImVector_ImGuiStoragePair_push_front(ImVector_ImGuiStoragePair* self,const ImGuiStoragePair v);
  CIMGUI_API void ImVector_ImDrawChannel_push_front(ImVector_ImDrawChannel* self,const ImDrawChannel v);
  CIMGUI_API void ImVector_char_push_front(ImVector_char* self,const char v);
  CIMGUI_API void ImVector_ImU32_push_front(ImVector_ImU32* self,const ImU32 v);
  CIMGUI_API void ImVector_ImFontAtlasCustomRect_push_front(ImVector_ImFontAtlasCustomRect* self,const ImFontAtlasCustomRect v);
  CIMGUI_API void ImVector_ImTextureID_push_front(ImVector_ImTextureID* self,const ImTextureID v);
  CIMGUI_API void ImVector_ImFontConfig_push_front(ImVector_ImFontConfig* self,const ImFontConfig v);
  CIMGUI_API void ImVector_ImFontPtr_push_front(ImVector_ImFontPtr* self,ImFont* const  v);
  CIMGUI_API void ImVector_ImDrawCmd_push_front(ImVector_ImDrawCmd* self,const ImDrawCmd v);
  CIMGUI_API void ImVector_ImVec4_push_front(ImVector_ImVec4* self,const ImVec4 v);
  CIMGUI_API void ImVector_ImDrawIdx_push_front(ImVector_ImDrawIdx* self,const ImDrawIdx v);
  CIMGUI_API void ImVector_ImVec2_push_front(ImVector_ImVec2* self,const ImVec2 v);
  CIMGUI_API float* ImVector_float_erase(ImVector_float* self,float const * it);
  CIMGUI_API ImWchar* ImVector_ImWchar_erase(ImVector_ImWchar* self,ImWchar const * it);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_erase(ImVector_ImDrawVert* self,ImDrawVert const * it);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_erase(ImVector_ImFontGlyph* self,ImFontGlyph const * it);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_erase(ImVector_ImGuiTextRange* self,ImGuiTextRange const * it);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_erase(ImVector_ImGuiStoragePair* self,ImGuiStoragePair const * it);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_erase(ImVector_ImDrawChannel* self,ImDrawChannel const * it);
  CIMGUI_API char* ImVector_char_erase(ImVector_char* self,char const * it);
  CIMGUI_API ImU32* ImVector_ImU32_erase(ImVector_ImU32* self,ImU32 const * it);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_erase(ImVector_ImFontAtlasCustomRect* self,ImFontAtlasCustomRect const * it);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_erase(ImVector_ImTextureID* self,ImTextureID const * it);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_erase(ImVector_ImFontConfig* self,ImFontConfig const * it);
  CIMGUI_API ImFont** ImVector_ImFontPtr_erase(ImVector_ImFontPtr* self,ImFont* const * it);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_erase(ImVector_ImDrawCmd* self,ImDrawCmd const * it);
  CIMGUI_API ImVec4* ImVector_ImVec4_erase(ImVector_ImVec4* self,ImVec4 const * it);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_erase(ImVector_ImDrawIdx* self,ImDrawIdx const * it);
  CIMGUI_API ImVec2* ImVector_ImVec2_erase(ImVector_ImVec2* self,ImVec2 const * it);
  CIMGUI_API float* ImVector_float_eraseTPtr(ImVector_float* self,float const * it,float const * it_last);
  CIMGUI_API ImWchar* ImVector_ImWchar_eraseTPtr(ImVector_ImWchar* self,ImWchar const * it,ImWchar const * it_last);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_eraseTPtr(ImVector_ImDrawVert* self,ImDrawVert const * it,ImDrawVert const * it_last);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_eraseTPtr(ImVector_ImFontGlyph* self,ImFontGlyph const * it,ImFontGlyph const * it_last);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_eraseTPtr(ImVector_ImGuiTextRange* self,ImGuiTextRange const * it,ImGuiTextRange const * it_last);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_eraseTPtr(ImVector_ImGuiStoragePair* self,ImGuiStoragePair const * it,ImGuiStoragePair const * it_last);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_eraseTPtr(ImVector_ImDrawChannel* self,ImDrawChannel const * it,ImDrawChannel const * it_last);
  CIMGUI_API char* ImVector_char_eraseTPtr(ImVector_char* self,char const * it,char const * it_last);
  CIMGUI_API ImU32* ImVector_ImU32_eraseTPtr(ImVector_ImU32* self,ImU32 const * it,ImU32 const * it_last);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_eraseTPtr(ImVector_ImFontAtlasCustomRect* self,ImFontAtlasCustomRect const * it,ImFontAtlasCustomRect const * it_last);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_eraseTPtr(ImVector_ImTextureID* self,ImTextureID const * it,ImTextureID const * it_last);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_eraseTPtr(ImVector_ImFontConfig* self,ImFontConfig const * it,ImFontConfig const * it_last);
  CIMGUI_API ImFont** ImVector_ImFontPtr_eraseTPtr(ImVector_ImFontPtr* self,ImFont* const * it,ImFont* const * it_last);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_eraseTPtr(ImVector_ImDrawCmd* self,ImDrawCmd const * it,ImDrawCmd const * it_last);
  CIMGUI_API ImVec4* ImVector_ImVec4_eraseTPtr(ImVector_ImVec4* self,ImVec4 const * it,ImVec4 const * it_last);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_eraseTPtr(ImVector_ImDrawIdx* self,ImDrawIdx const * it,ImDrawIdx const * it_last);
  CIMGUI_API ImVec2* ImVector_ImVec2_eraseTPtr(ImVector_ImVec2* self,ImVec2 const * it,ImVec2 const * it_last);
  CIMGUI_API float* ImVector_float_erase_unsorted(ImVector_float* self,float const * it);
  CIMGUI_API ImWchar* ImVector_ImWchar_erase_unsorted(ImVector_ImWchar* self,ImWchar const * it);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_erase_unsorted(ImVector_ImDrawVert* self,ImDrawVert const * it);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_erase_unsorted(ImVector_ImFontGlyph* self,ImFontGlyph const * it);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_erase_unsorted(ImVector_ImGuiTextRange* self,ImGuiTextRange const * it);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_erase_unsorted(ImVector_ImGuiStoragePair* self,ImGuiStoragePair const * it);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_erase_unsorted(ImVector_ImDrawChannel* self,ImDrawChannel const * it);
  CIMGUI_API char* ImVector_char_erase_unsorted(ImVector_char* self,char const * it);
  CIMGUI_API ImU32* ImVector_ImU32_erase_unsorted(ImVector_ImU32* self,ImU32 const * it);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_erase_unsorted(ImVector_ImFontAtlasCustomRect* self,ImFontAtlasCustomRect const * it);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_erase_unsorted(ImVector_ImTextureID* self,ImTextureID const * it);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_erase_unsorted(ImVector_ImFontConfig* self,ImFontConfig const * it);
  CIMGUI_API ImFont** ImVector_ImFontPtr_erase_unsorted(ImVector_ImFontPtr* self,ImFont* const * it);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_erase_unsorted(ImVector_ImDrawCmd* self,ImDrawCmd const * it);
  CIMGUI_API ImVec4* ImVector_ImVec4_erase_unsorted(ImVector_ImVec4* self,ImVec4 const * it);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_erase_unsorted(ImVector_ImDrawIdx* self,ImDrawIdx const * it);
  CIMGUI_API ImVec2* ImVector_ImVec2_erase_unsorted(ImVector_ImVec2* self,ImVec2 const * it);
  CIMGUI_API float* ImVector_float_insert(ImVector_float* self,float const * it,const float v);
  CIMGUI_API ImWchar* ImVector_ImWchar_insert(ImVector_ImWchar* self,ImWchar const * it,const ImWchar v);
  CIMGUI_API ImDrawVert* ImVector_ImDrawVert_insert(ImVector_ImDrawVert* self,ImDrawVert const * it,const ImDrawVert v);
  CIMGUI_API ImFontGlyph* ImVector_ImFontGlyph_insert(ImVector_ImFontGlyph* self,ImFontGlyph const * it,const ImFontGlyph v);
  CIMGUI_API ImGuiTextRange* ImVector_ImGuiTextRange_insert(ImVector_ImGuiTextRange* self,ImGuiTextRange const * it,const ImGuiTextRange v);
  CIMGUI_API ImGuiStoragePair* ImVector_ImGuiStoragePair_insert(ImVector_ImGuiStoragePair* self,ImGuiStoragePair const * it,const ImGuiStoragePair v);
  CIMGUI_API ImDrawChannel* ImVector_ImDrawChannel_insert(ImVector_ImDrawChannel* self,ImDrawChannel const * it,const ImDrawChannel v);
  CIMGUI_API char* ImVector_char_insert(ImVector_char* self,char const * it,const char v);
  CIMGUI_API ImU32* ImVector_ImU32_insert(ImVector_ImU32* self,ImU32 const * it,const ImU32 v);
  CIMGUI_API ImFontAtlasCustomRect* ImVector_ImFontAtlasCustomRect_insert(ImVector_ImFontAtlasCustomRect* self,ImFontAtlasCustomRect const * it,const ImFontAtlasCustomRect v);
  CIMGUI_API ImTextureID* ImVector_ImTextureID_insert(ImVector_ImTextureID* self,ImTextureID const * it,const ImTextureID v);
  CIMGUI_API ImFontConfig* ImVector_ImFontConfig_insert(ImVector_ImFontConfig* self,ImFontConfig const * it,const ImFontConfig v);
  CIMGUI_API ImFont** ImVector_ImFontPtr_insert(ImVector_ImFontPtr* self,ImFont* const * it,ImFont* const  v);
  CIMGUI_API ImDrawCmd* ImVector_ImDrawCmd_insert(ImVector_ImDrawCmd* self,ImDrawCmd const * it,const ImDrawCmd v);
  CIMGUI_API ImVec4* ImVector_ImVec4_insert(ImVector_ImVec4* self,ImVec4 const * it,const ImVec4 v);
  CIMGUI_API ImDrawIdx* ImVector_ImDrawIdx_insert(ImVector_ImDrawIdx* self,ImDrawIdx const * it,const ImDrawIdx v);
  CIMGUI_API ImVec2* ImVector_ImVec2_insert(ImVector_ImVec2* self,ImVec2 const * it,const ImVec2 v);
  CIMGUI_API bool ImVector_float_contains(const ImVector_float* self,const float v);
  CIMGUI_API bool ImVector_ImWchar_contains(const ImVector_ImWchar* self,const ImWchar v);
  CIMGUI_API bool ImVector_char_contains(const ImVector_char* self,const char v);
  CIMGUI_API int ImVector_float_index_from_ptr(const ImVector_float* self,float const * it);
  CIMGUI_API int ImVector_ImWchar_index_from_ptr(const ImVector_ImWchar* self,ImWchar const * it);
  CIMGUI_API int ImVector_ImDrawVert_index_from_ptr(const ImVector_ImDrawVert* self,ImDrawVert const * it);
  CIMGUI_API int ImVector_ImFontGlyph_index_from_ptr(const ImVector_ImFontGlyph* self,ImFontGlyph const * it);
  CIMGUI_API int ImVector_ImGuiTextRange_index_from_ptr(const ImVector_ImGuiTextRange* self,ImGuiTextRange const * it);
  CIMGUI_API int ImVector_ImGuiStoragePair_index_from_ptr(const ImVector_ImGuiStoragePair* self,ImGuiStoragePair const * it);
  CIMGUI_API int ImVector_ImDrawChannel_index_from_ptr(const ImVector_ImDrawChannel* self,ImDrawChannel const * it);
  CIMGUI_API int ImVector_char_index_from_ptr(const ImVector_char* self,char const * it);
  CIMGUI_API int ImVector_ImU32_index_from_ptr(const ImVector_ImU32* self,ImU32 const * it);
  CIMGUI_API int ImVector_ImFontAtlasCustomRect_index_from_ptr(const ImVector_ImFontAtlasCustomRect* self,ImFontAtlasCustomRect const * it);
  CIMGUI_API int ImVector_ImTextureID_index_from_ptr(const ImVector_ImTextureID* self,ImTextureID const * it);
  CIMGUI_API int ImVector_ImFontConfig_index_from_ptr(const ImVector_ImFontConfig* self,ImFontConfig const * it);
  CIMGUI_API int ImVector_ImFontPtr_index_from_ptr(const ImVector_ImFontPtr* self,ImFont* const * it);
  CIMGUI_API int ImVector_ImDrawCmd_index_from_ptr(const ImVector_ImDrawCmd* self,ImDrawCmd const * it);
  CIMGUI_API int ImVector_ImVec4_index_from_ptr(const ImVector_ImVec4* self,ImVec4 const * it);
  CIMGUI_API int ImVector_ImDrawIdx_index_from_ptr(const ImVector_ImDrawIdx* self,ImDrawIdx const * it);
  CIMGUI_API int ImVector_ImVec2_index_from_ptr(const ImVector_ImVec2* self,ImVec2 const * it);
  
  
  /////////////////////////hand written functions
  //no LogTextV
  CIMGUI_API void igLogText(CONST char *fmt, ...);
  //no appendfV
  CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
  //for getting FLT_MAX in bindings
  CIMGUI_API float igGET_FLT_MAX();
  //not const args from & to *
  CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v);
  CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b);
  
  CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create();
  CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
  CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);
  
  
  /////////////////////////extra Monado functions
  typedef struct SDL_Window SDL_Window;
  typedef union SDL_Event SDL_Event;
  
  CIMGUI_API bool igImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context);
  #if 0
  CIMGUI_API bool igImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
  CIMGUI_API bool igImGui_ImplSDL2_InitForD3D(SDL_Window* window);
  #endif
  CIMGUI_API void igImGui_ImplSDL2_Shutdown(void);
  CIMGUI_API void igImGui_ImplSDL2_NewFrame(SDL_Window* window);
  CIMGUI_API bool igImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
  
  CIMGUI_API bool igImGui_ImplOpenGL3_Init(const char* glsl_version);
  CIMGUI_API void igImGui_ImplOpenGL3_Shutdown(void);
  CIMGUI_API void igImGui_ImplOpenGL3_NewFrame(void);
  CIMGUI_API void igImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
  
  #endif //CIMGUI_INCLUDED
  
  
  
  
  