//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.78" from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api

#include "./imgui/imgui.h"
#include "./imgui/imgui_internal.h"
#include "cimgui.h"



CIMGUI_API ImVec2* ImVec2_ImVec2Nil(void)
{
    return IM_NEW(ImVec2)();
}
CIMGUI_API void ImVec2_destroy(ImVec2* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y)
{
    return IM_NEW(ImVec2)(_x,_y);
}
CIMGUI_API ImVec4* ImVec4_ImVec4Nil(void)
{
    return IM_NEW(ImVec4)();
}
CIMGUI_API void ImVec4_destroy(ImVec4* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w)
{
    return IM_NEW(ImVec4)(_x,_y,_z,_w);
}
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas)
{
    return ImGui::CreateContext(shared_font_atlas);
}
CIMGUI_API void igDestroyContext(ImGuiContext* ctx)
{
    return ImGui::DestroyContext(ctx);
}
CIMGUI_API ImGuiContext* igGetCurrentContext()
{
    return ImGui::GetCurrentContext();
}
CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx)
{
    return ImGui::SetCurrentContext(ctx);
}
CIMGUI_API ImGuiIO* igGetIO()
{
    return &ImGui::GetIO();
}
CIMGUI_API ImGuiStyle* igGetStyle()
{
    return &ImGui::GetStyle();
}
CIMGUI_API void igNewFrame()
{
    return ImGui::NewFrame();
}
CIMGUI_API void igEndFrame()
{
    return ImGui::EndFrame();
}
CIMGUI_API void igRender()
{
    return ImGui::Render();
}
CIMGUI_API ImDrawData* igGetDrawData()
{
    return ImGui::GetDrawData();
}
CIMGUI_API void igShowDemoWindow(bool* p_open)
{
    return ImGui::ShowDemoWindow(p_open);
}
CIMGUI_API void igShowAboutWindow(bool* p_open)
{
    return ImGui::ShowAboutWindow(p_open);
}
CIMGUI_API void igShowMetricsWindow(bool* p_open)
{
    return ImGui::ShowMetricsWindow(p_open);
}
CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref)
{
    return ImGui::ShowStyleEditor(ref);
}
CIMGUI_API bool igShowStyleSelector(const char* label)
{
    return ImGui::ShowStyleSelector(label);
}
CIMGUI_API void igShowFontSelector(const char* label)
{
    return ImGui::ShowFontSelector(label);
}
CIMGUI_API void igShowUserGuide()
{
    return ImGui::ShowUserGuide();
}
CIMGUI_API const char* igGetVersion()
{
    return ImGui::GetVersion();
}
CIMGUI_API void igStyleColorsDark(ImGuiStyle* dst)
{
    return ImGui::StyleColorsDark(dst);
}
CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst)
{
    return ImGui::StyleColorsClassic(dst);
}
CIMGUI_API void igStyleColorsLight(ImGuiStyle* dst)
{
    return ImGui::StyleColorsLight(dst);
}
CIMGUI_API bool igBegin(const char* name,bool* p_open,ImGuiWindowFlags flags)
{
    return ImGui::Begin(name,p_open,flags);
}
CIMGUI_API void igEnd()
{
    return ImGui::End();
}
CIMGUI_API bool igBeginChildStr(const char* str_id,const ImVec2 size,bool border,ImGuiWindowFlags flags)
{
    return ImGui::BeginChild(str_id,size,border,flags);
}
CIMGUI_API bool igBeginChildID(ImGuiID id,const ImVec2 size,bool border,ImGuiWindowFlags flags)
{
    return ImGui::BeginChild(id,size,border,flags);
}
CIMGUI_API void igEndChild()
{
    return ImGui::EndChild();
}
CIMGUI_API bool igIsWindowAppearing()
{
    return ImGui::IsWindowAppearing();
}
CIMGUI_API bool igIsWindowCollapsed()
{
    return ImGui::IsWindowCollapsed();
}
CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags)
{
    return ImGui::IsWindowFocused(flags);
}
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags flags)
{
    return ImGui::IsWindowHovered(flags);
}
CIMGUI_API ImDrawList* igGetWindowDrawList()
{
    return ImGui::GetWindowDrawList();
}
CIMGUI_API void igGetWindowPos(ImVec2 *pOut)
{
    *pOut = ImGui::GetWindowPos();
}
CIMGUI_API void igGetWindowSize(ImVec2 *pOut)
{
    *pOut = ImGui::GetWindowSize();
}
CIMGUI_API float igGetWindowWidth()
{
    return ImGui::GetWindowWidth();
}
CIMGUI_API float igGetWindowHeight()
{
    return ImGui::GetWindowHeight();
}
CIMGUI_API void igSetNextWindowPos(const ImVec2 pos,ImGuiCond cond,const ImVec2 pivot)
{
    return ImGui::SetNextWindowPos(pos,cond,pivot);
}
CIMGUI_API void igSetNextWindowSize(const ImVec2 size,ImGuiCond cond)
{
    return ImGui::SetNextWindowSize(size,cond);
}
CIMGUI_API void igSetNextWindowSizeConstraints(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,void* custom_callback_data)
{
    return ImGui::SetNextWindowSizeConstraints(size_min,size_max,custom_callback,custom_callback_data);
}
CIMGUI_API void igSetNextWindowContentSize(const ImVec2 size)
{
    return ImGui::SetNextWindowContentSize(size);
}
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed,ImGuiCond cond)
{
    return ImGui::SetNextWindowCollapsed(collapsed,cond);
}
CIMGUI_API void igSetNextWindowFocus()
{
    return ImGui::SetNextWindowFocus();
}
CIMGUI_API void igSetNextWindowBgAlpha(float alpha)
{
    return ImGui::SetNextWindowBgAlpha(alpha);
}
CIMGUI_API void igSetWindowPosVec2(const ImVec2 pos,ImGuiCond cond)
{
    return ImGui::SetWindowPos(pos,cond);
}
CIMGUI_API void igSetWindowSizeVec2(const ImVec2 size,ImGuiCond cond)
{
    return ImGui::SetWindowSize(size,cond);
}
CIMGUI_API void igSetWindowCollapsedBool(bool collapsed,ImGuiCond cond)
{
    return ImGui::SetWindowCollapsed(collapsed,cond);
}
CIMGUI_API void igSetWindowFocusNil()
{
    return ImGui::SetWindowFocus();
}
CIMGUI_API void igSetWindowFontScale(float scale)
{
    return ImGui::SetWindowFontScale(scale);
}
CIMGUI_API void igSetWindowPosStr(const char* name,const ImVec2 pos,ImGuiCond cond)
{
    return ImGui::SetWindowPos(name,pos,cond);
}
CIMGUI_API void igSetWindowSizeStr(const char* name,const ImVec2 size,ImGuiCond cond)
{
    return ImGui::SetWindowSize(name,size,cond);
}
CIMGUI_API void igSetWindowCollapsedStr(const char* name,bool collapsed,ImGuiCond cond)
{
    return ImGui::SetWindowCollapsed(name,collapsed,cond);
}
CIMGUI_API void igSetWindowFocusStr(const char* name)
{
    return ImGui::SetWindowFocus(name);
}
CIMGUI_API void igGetContentRegionMax(ImVec2 *pOut)
{
    *pOut = ImGui::GetContentRegionMax();
}
CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut)
{
    *pOut = ImGui::GetContentRegionAvail();
}
CIMGUI_API void igGetWindowContentRegionMin(ImVec2 *pOut)
{
    *pOut = ImGui::GetWindowContentRegionMin();
}
CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut)
{
    *pOut = ImGui::GetWindowContentRegionMax();
}
CIMGUI_API float igGetWindowContentRegionWidth()
{
    return ImGui::GetWindowContentRegionWidth();
}
CIMGUI_API float igGetScrollX()
{
    return ImGui::GetScrollX();
}
CIMGUI_API float igGetScrollY()
{
    return ImGui::GetScrollY();
}
CIMGUI_API float igGetScrollMaxX()
{
    return ImGui::GetScrollMaxX();
}
CIMGUI_API float igGetScrollMaxY()
{
    return ImGui::GetScrollMaxY();
}
CIMGUI_API void igSetScrollXFloat(float scroll_x)
{
    return ImGui::SetScrollX(scroll_x);
}
CIMGUI_API void igSetScrollYFloat(float scroll_y)
{
    return ImGui::SetScrollY(scroll_y);
}
CIMGUI_API void igSetScrollHereX(float center_x_ratio)
{
    return ImGui::SetScrollHereX(center_x_ratio);
}
CIMGUI_API void igSetScrollHereY(float center_y_ratio)
{
    return ImGui::SetScrollHereY(center_y_ratio);
}
CIMGUI_API void igSetScrollFromPosXFloat(float local_x,float center_x_ratio)
{
    return ImGui::SetScrollFromPosX(local_x,center_x_ratio);
}
CIMGUI_API void igSetScrollFromPosYFloat(float local_y,float center_y_ratio)
{
    return ImGui::SetScrollFromPosY(local_y,center_y_ratio);
}
CIMGUI_API void igPushFont(ImFont* font)
{
    return ImGui::PushFont(font);
}
CIMGUI_API void igPopFont()
{
    return ImGui::PopFont();
}
CIMGUI_API void igPushStyleColorU32(ImGuiCol idx,ImU32 col)
{
    return ImGui::PushStyleColor(idx,col);
}
CIMGUI_API void igPushStyleColorVec4(ImGuiCol idx,const ImVec4 col)
{
    return ImGui::PushStyleColor(idx,col);
}
CIMGUI_API void igPopStyleColor(int count)
{
    return ImGui::PopStyleColor(count);
}
CIMGUI_API void igPushStyleVarFloat(ImGuiStyleVar idx,float val)
{
    return ImGui::PushStyleVar(idx,val);
}
CIMGUI_API void igPushStyleVarVec2(ImGuiStyleVar idx,const ImVec2 val)
{
    return ImGui::PushStyleVar(idx,val);
}
CIMGUI_API void igPopStyleVar(int count)
{
    return ImGui::PopStyleVar(count);
}
CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx)
{
    return &ImGui::GetStyleColorVec4(idx);
}
CIMGUI_API ImFont* igGetFont()
{
    return ImGui::GetFont();
}
CIMGUI_API float igGetFontSize()
{
    return ImGui::GetFontSize();
}
CIMGUI_API void igGetFontTexUvWhitePixel(ImVec2 *pOut)
{
    *pOut = ImGui::GetFontTexUvWhitePixel();
}
CIMGUI_API ImU32 igGetColorU32Col(ImGuiCol idx,float alpha_mul)
{
    return ImGui::GetColorU32(idx,alpha_mul);
}
CIMGUI_API ImU32 igGetColorU32Vec4(const ImVec4 col)
{
    return ImGui::GetColorU32(col);
}
CIMGUI_API ImU32 igGetColorU32U32(ImU32 col)
{
    return ImGui::GetColorU32(col);
}
CIMGUI_API void igPushItemWidth(float item_width)
{
    return ImGui::PushItemWidth(item_width);
}
CIMGUI_API void igPopItemWidth()
{
    return ImGui::PopItemWidth();
}
CIMGUI_API void igSetNextItemWidth(float item_width)
{
    return ImGui::SetNextItemWidth(item_width);
}
CIMGUI_API float igCalcItemWidth()
{
    return ImGui::CalcItemWidth();
}
CIMGUI_API void igPushTextWrapPos(float wrap_local_pos_x)
{
    return ImGui::PushTextWrapPos(wrap_local_pos_x);
}
CIMGUI_API void igPopTextWrapPos()
{
    return ImGui::PopTextWrapPos();
}
CIMGUI_API void igPushAllowKeyboardFocus(bool allow_keyboard_focus)
{
    return ImGui::PushAllowKeyboardFocus(allow_keyboard_focus);
}
CIMGUI_API void igPopAllowKeyboardFocus()
{
    return ImGui::PopAllowKeyboardFocus();
}
CIMGUI_API void igPushButtonRepeat(bool repeat)
{
    return ImGui::PushButtonRepeat(repeat);
}
CIMGUI_API void igPopButtonRepeat()
{
    return ImGui::PopButtonRepeat();
}
CIMGUI_API void igSeparator()
{
    return ImGui::Separator();
}
CIMGUI_API void igSameLine(float offset_from_start_x,float spacing)
{
    return ImGui::SameLine(offset_from_start_x,spacing);
}
CIMGUI_API void igNewLine()
{
    return ImGui::NewLine();
}
CIMGUI_API void igSpacing()
{
    return ImGui::Spacing();
}
CIMGUI_API void igDummy(const ImVec2 size)
{
    return ImGui::Dummy(size);
}
CIMGUI_API void igIndent(float indent_w)
{
    return ImGui::Indent(indent_w);
}
CIMGUI_API void igUnindent(float indent_w)
{
    return ImGui::Unindent(indent_w);
}
CIMGUI_API void igBeginGroup()
{
    return ImGui::BeginGroup();
}
CIMGUI_API void igEndGroup()
{
    return ImGui::EndGroup();
}
CIMGUI_API void igGetCursorPos(ImVec2 *pOut)
{
    *pOut = ImGui::GetCursorPos();
}
CIMGUI_API float igGetCursorPosX()
{
    return ImGui::GetCursorPosX();
}
CIMGUI_API float igGetCursorPosY()
{
    return ImGui::GetCursorPosY();
}
CIMGUI_API void igSetCursorPos(const ImVec2 local_pos)
{
    return ImGui::SetCursorPos(local_pos);
}
CIMGUI_API void igSetCursorPosX(float local_x)
{
    return ImGui::SetCursorPosX(local_x);
}
CIMGUI_API void igSetCursorPosY(float local_y)
{
    return ImGui::SetCursorPosY(local_y);
}
CIMGUI_API void igGetCursorStartPos(ImVec2 *pOut)
{
    *pOut = ImGui::GetCursorStartPos();
}
CIMGUI_API void igGetCursorScreenPos(ImVec2 *pOut)
{
    *pOut = ImGui::GetCursorScreenPos();
}
CIMGUI_API void igSetCursorScreenPos(const ImVec2 pos)
{
    return ImGui::SetCursorScreenPos(pos);
}
CIMGUI_API void igAlignTextToFramePadding()
{
    return ImGui::AlignTextToFramePadding();
}
CIMGUI_API float igGetTextLineHeight()
{
    return ImGui::GetTextLineHeight();
}
CIMGUI_API float igGetTextLineHeightWithSpacing()
{
    return ImGui::GetTextLineHeightWithSpacing();
}
CIMGUI_API float igGetFrameHeight()
{
    return ImGui::GetFrameHeight();
}
CIMGUI_API float igGetFrameHeightWithSpacing()
{
    return ImGui::GetFrameHeightWithSpacing();
}
CIMGUI_API void igPushIDStr(const char* str_id)
{
    return ImGui::PushID(str_id);
}
CIMGUI_API void igPushIDStrStr(const char* str_id_begin,const char* str_id_end)
{
    return ImGui::PushID(str_id_begin,str_id_end);
}
CIMGUI_API void igPushIDPtr(const void* ptr_id)
{
    return ImGui::PushID(ptr_id);
}
CIMGUI_API void igPushIDInt(int int_id)
{
    return ImGui::PushID(int_id);
}
CIMGUI_API void igPopID()
{
    return ImGui::PopID();
}
CIMGUI_API ImGuiID igGetIDStr(const char* str_id)
{
    return ImGui::GetID(str_id);
}
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end)
{
    return ImGui::GetID(str_id_begin,str_id_end);
}
CIMGUI_API ImGuiID igGetIDPtr(const void* ptr_id)
{
    return ImGui::GetID(ptr_id);
}
CIMGUI_API void igTextUnformatted(const char* text,const char* text_end)
{
    return ImGui::TextUnformatted(text,text_end);
}
CIMGUI_API void igText(const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::TextV(fmt,args);
    va_end(args);
}
CIMGUI_API void igTextV(const char* fmt,va_list args)
{
    return ImGui::TextV(fmt,args);
}
CIMGUI_API void igTextColored(const ImVec4 col,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::TextColoredV(col,fmt,args);
    va_end(args);
}
CIMGUI_API void igTextColoredV(const ImVec4 col,const char* fmt,va_list args)
{
    return ImGui::TextColoredV(col,fmt,args);
}
CIMGUI_API void igTextDisabled(const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::TextDisabledV(fmt,args);
    va_end(args);
}
CIMGUI_API void igTextDisabledV(const char* fmt,va_list args)
{
    return ImGui::TextDisabledV(fmt,args);
}
CIMGUI_API void igTextWrapped(const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::TextWrappedV(fmt,args);
    va_end(args);
}
CIMGUI_API void igTextWrappedV(const char* fmt,va_list args)
{
    return ImGui::TextWrappedV(fmt,args);
}
CIMGUI_API void igLabelText(const char* label,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::LabelTextV(label,fmt,args);
    va_end(args);
}
CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args)
{
    return ImGui::LabelTextV(label,fmt,args);
}
CIMGUI_API void igBulletText(const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::BulletTextV(fmt,args);
    va_end(args);
}
CIMGUI_API void igBulletTextV(const char* fmt,va_list args)
{
    return ImGui::BulletTextV(fmt,args);
}
CIMGUI_API bool igButton(const char* label,const ImVec2 size)
{
    return ImGui::Button(label,size);
}
CIMGUI_API bool igSmallButton(const char* label)
{
    return ImGui::SmallButton(label);
}
CIMGUI_API bool igInvisibleButton(const char* str_id,const ImVec2 size,ImGuiButtonFlags flags)
{
    return ImGui::InvisibleButton(str_id,size,flags);
}
CIMGUI_API bool igArrowButton(const char* str_id,ImGuiDir dir)
{
    return ImGui::ArrowButton(str_id,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)
{
    return ImGui::Image(user_texture_id,size,uv0,uv1,tint_col,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)
{
    return ImGui::ImageButton(user_texture_id,size,uv0,uv1,frame_padding,bg_col,tint_col);
}
CIMGUI_API bool igCheckbox(const char* label,bool* v)
{
    return ImGui::Checkbox(label,v);
}
CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned int flags_value)
{
    return ImGui::CheckboxFlags(label,flags,flags_value);
}
CIMGUI_API bool igRadioButtonBool(const char* label,bool active)
{
    return ImGui::RadioButton(label,active);
}
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button)
{
    return ImGui::RadioButton(label,v,v_button);
}
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay)
{
    return ImGui::ProgressBar(fraction,size_arg,overlay);
}
CIMGUI_API void igBullet()
{
    return ImGui::Bullet();
}
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags)
{
    return ImGui::BeginCombo(label,preview_value,flags);
}
CIMGUI_API void igEndCombo()
{
    return ImGui::EndCombo();
}
CIMGUI_API bool igComboStr_arr(const char* label,int* current_item,const char* const items[],int items_count,int popup_max_height_in_items)
{
    return ImGui::Combo(label,current_item,items,items_count,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)
{
    return ImGui::Combo(label,current_item,items_separated_by_zeros,popup_max_height_in_items);
}
CIMGUI_API bool igComboFnBoolPtr(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)
{
    return ImGui::Combo(label,current_item,items_getter,data,items_count,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,ImGuiSliderFlags flags)
{
    return ImGui::DragFloat(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragFloat2(const char* label,float v[2],float v_speed,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragFloat2(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragFloat3(const char* label,float v[3],float v_speed,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragFloat3(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragFloat4(const char* label,float v[4],float v_speed,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragFloat4(label,v,v_speed,v_min,v_max,format,flags);
}
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,ImGuiSliderFlags flags)
{
    return ImGui::DragFloatRange2(label,v_current_min,v_current_max,v_speed,v_min,v_max,format,format_max,flags);
}
CIMGUI_API bool igDragInt(const char* label,int* v,float v_speed,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragInt(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragInt2(const char* label,int v[2],float v_speed,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragInt2(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragInt3(const char* label,int v[3],float v_speed,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragInt3(label,v,v_speed,v_min,v_max,format,flags);
}
CIMGUI_API bool igDragInt4(const char* label,int v[4],float v_speed,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragInt4(label,v,v_speed,v_min,v_max,format,flags);
}
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,ImGuiSliderFlags flags)
{
    return ImGui::DragIntRange2(label,v_current_min,v_current_max,v_speed,v_min,v_max,format,format_max,flags);
}
CIMGUI_API bool igDragScalar(const char* label,ImGuiDataType data_type,void* p_data,float v_speed,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragScalar(label,data_type,p_data,v_speed,p_min,p_max,format,flags);
}
CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* p_data,int components,float v_speed,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragScalarN(label,data_type,p_data,components,v_speed,p_min,p_max,format,flags);
}
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderFloat(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderFloat2(const char* label,float v[2],float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderFloat2(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderFloat3(const char* label,float v[3],float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderFloat3(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderFloat4(const char* label,float v[4],float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderFloat4(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderAngle(const char* label,float* v_rad,float v_degrees_min,float v_degrees_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderAngle(label,v_rad,v_degrees_min,v_degrees_max,format,flags);
}
CIMGUI_API bool igSliderInt(const char* label,int* v,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderInt(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderInt2(const char* label,int v[2],int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderInt2(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderInt3(const char* label,int v[3],int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderInt3(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderInt4(const char* label,int v[4],int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderInt4(label,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igSliderScalar(const char* label,ImGuiDataType data_type,void* p_data,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderScalar(label,data_type,p_data,p_min,p_max,format,flags);
}
CIMGUI_API bool igSliderScalarN(const char* label,ImGuiDataType data_type,void* p_data,int components,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::SliderScalarN(label,data_type,p_data,components,p_min,p_max,format,flags);
}
CIMGUI_API bool igVSliderFloat(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::VSliderFloat(label,size,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igVSliderInt(const char* label,const ImVec2 size,int* v,int v_min,int v_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::VSliderInt(label,size,v,v_min,v_max,format,flags);
}
CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataType data_type,void* p_data,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::VSliderScalar(label,size,data_type,p_data,p_min,p_max,format,flags);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
    return ImGui::InputText(label,buf,buf_size,flags,callback,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)
{
    return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,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)
{
    return ImGui::InputTextWithHint(label,hint,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputFloat(label,v,step,step_fast,format,flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputFloat2(label,v,format,flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputFloat3(label,v,format,flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputFloat4(label,v,format,flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags flags)
{
    return ImGui::InputInt(label,v,step,step_fast,flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags flags)
{
    return ImGui::InputInt2(label,v,flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags flags)
{
    return ImGui::InputInt3(label,v,flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags flags)
{
    return ImGui::InputInt4(label,v,flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputDouble(label,v,step,step_fast,format,flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* p_data,const void* p_step,const void* p_step_fast,const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputScalar(label,data_type,p_data,p_step,p_step_fast,format,flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* p_data,int components,const void* p_step,const void* p_step_fast,const char* format,ImGuiInputTextFlags flags)
{
    return ImGui::InputScalarN(label,data_type,p_data,components,p_step,p_step_fast,format,flags);
}
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags)
{
    return ImGui::ColorEdit3(label,col,flags);
}
CIMGUI_API bool igColorEdit4(const char* label,float col[4],ImGuiColorEditFlags flags)
{
    return ImGui::ColorEdit4(label,col,flags);
}
CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags)
{
    return ImGui::ColorPicker3(label,col,flags);
}
CIMGUI_API bool igColorPicker4(const char* label,float col[4],ImGuiColorEditFlags flags,const float* ref_col)
{
    return ImGui::ColorPicker4(label,col,flags,ref_col);
}
CIMGUI_API bool igColorButton(const char* desc_id,const ImVec4 col,ImGuiColorEditFlags flags,ImVec2 size)
{
    return ImGui::ColorButton(desc_id,col,flags,size);
}
CIMGUI_API void igSetColorEditOptions(ImGuiColorEditFlags flags)
{
    return ImGui::SetColorEditOptions(flags);
}
CIMGUI_API bool igTreeNodeStr(const char* label)
{
    return ImGui::TreeNode(label);
}
CIMGUI_API bool igTreeNodeStrStr(const char* str_id,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    bool ret = ImGui::TreeNodeV(str_id,fmt,args);
    va_end(args);
    return ret;
}
CIMGUI_API bool igTreeNodePtr(const void* ptr_id,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    bool ret = ImGui::TreeNodeV(ptr_id,fmt,args);
    va_end(args);
    return ret;
}
CIMGUI_API bool igTreeNodeVStr(const char* str_id,const char* fmt,va_list args)
{
    return ImGui::TreeNodeV(str_id,fmt,args);
}
CIMGUI_API bool igTreeNodeVPtr(const void* ptr_id,const char* fmt,va_list args)
{
    return ImGui::TreeNodeV(ptr_id,fmt,args);
}
CIMGUI_API bool igTreeNodeExStr(const char* label,ImGuiTreeNodeFlags flags)
{
    return ImGui::TreeNodeEx(label,flags);
}
CIMGUI_API bool igTreeNodeExStrStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    bool ret = ImGui::TreeNodeExV(str_id,flags,fmt,args);
    va_end(args);
    return ret;
}
CIMGUI_API bool igTreeNodeExPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    bool ret = ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
    va_end(args);
    return ret;
}
CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args)
{
    return ImGui::TreeNodeExV(str_id,flags,fmt,args);
}
CIMGUI_API bool igTreeNodeExVPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args)
{
    return ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
}
CIMGUI_API void igTreePushStr(const char* str_id)
{
    return ImGui::TreePush(str_id);
}
CIMGUI_API void igTreePushPtr(const void* ptr_id)
{
    return ImGui::TreePush(ptr_id);
}
CIMGUI_API void igTreePop()
{
    return ImGui::TreePop();
}
CIMGUI_API float igGetTreeNodeToLabelSpacing()
{
    return ImGui::GetTreeNodeToLabelSpacing();
}
CIMGUI_API bool igCollapsingHeaderTreeNodeFlags(const char* label,ImGuiTreeNodeFlags flags)
{
    return ImGui::CollapsingHeader(label,flags);
}
CIMGUI_API bool igCollapsingHeaderBoolPtr(const char* label,bool* p_open,ImGuiTreeNodeFlags flags)
{
    return ImGui::CollapsingHeader(label,p_open,flags);
}
CIMGUI_API void igSetNextItemOpen(bool is_open,ImGuiCond cond)
{
    return ImGui::SetNextItemOpen(is_open,cond);
}
CIMGUI_API bool igSelectableBool(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size)
{
    return ImGui::Selectable(label,selected,flags,size);
}
CIMGUI_API bool igSelectableBoolPtr(const char* label,bool* p_selected,ImGuiSelectableFlags flags,const ImVec2 size)
{
    return ImGui::Selectable(label,p_selected,flags,size);
}
CIMGUI_API bool igListBoxStr_arr(const char* label,int* current_item,const char* const items[],int items_count,int height_in_items)
{
    return ImGui::ListBox(label,current_item,items,items_count,height_in_items);
}
CIMGUI_API bool igListBoxFnBoolPtr(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)
{
    return ImGui::ListBox(label,current_item,items_getter,data,items_count,height_in_items);
}
CIMGUI_API bool igListBoxHeaderVec2(const char* label,const ImVec2 size)
{
    return ImGui::ListBoxHeader(label,size);
}
CIMGUI_API bool igListBoxHeaderInt(const char* label,int items_count,int height_in_items)
{
    return ImGui::ListBoxHeader(label,items_count,height_in_items);
}
CIMGUI_API void igListBoxFooter()
{
    return ImGui::ListBoxFooter();
}
CIMGUI_API void igPlotLinesFloatPtr(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)
{
    return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotLinesFnFloatPtr(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)
{
    return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
    return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnFloatPtr(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)
{
    return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igValueBool(const char* prefix,bool b)
{
    return ImGui::Value(prefix,b);
}
CIMGUI_API void igValueInt(const char* prefix,int v)
{
    return ImGui::Value(prefix,v);
}
CIMGUI_API void igValueUint(const char* prefix,unsigned int v)
{
    return ImGui::Value(prefix,v);
}
CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format)
{
    return ImGui::Value(prefix,v,float_format);
}
CIMGUI_API bool igBeginMenuBar()
{
    return ImGui::BeginMenuBar();
}
CIMGUI_API void igEndMenuBar()
{
    return ImGui::EndMenuBar();
}
CIMGUI_API bool igBeginMainMenuBar()
{
    return ImGui::BeginMainMenuBar();
}
CIMGUI_API void igEndMainMenuBar()
{
    return ImGui::EndMainMenuBar();
}
CIMGUI_API bool igBeginMenu(const char* label,bool enabled)
{
    return ImGui::BeginMenu(label,enabled);
}
CIMGUI_API void igEndMenu()
{
    return ImGui::EndMenu();
}
CIMGUI_API bool igMenuItemBool(const char* label,const char* shortcut,bool selected,bool enabled)
{
    return ImGui::MenuItem(label,shortcut,selected,enabled);
}
CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p_selected,bool enabled)
{
    return ImGui::MenuItem(label,shortcut,p_selected,enabled);
}
CIMGUI_API void igBeginTooltip()
{
    return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
    return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    ImGui::SetTooltipV(fmt,args);
    va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
    return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags)
{
    return ImGui::BeginPopup(str_id,flags);
}
CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags)
{
    return ImGui::BeginPopupModal(name,p_open,flags);
}
CIMGUI_API void igEndPopup()
{
    return ImGui::EndPopup();
}
CIMGUI_API void igOpenPopup(const char* str_id,ImGuiPopupFlags popup_flags)
{
    return ImGui::OpenPopup(str_id,popup_flags);
}
CIMGUI_API bool igOpenPopupContextItem(const char* str_id,ImGuiPopupFlags popup_flags)
{
    return ImGui::OpenPopupContextItem(str_id,popup_flags);
}
CIMGUI_API void igCloseCurrentPopup()
{
    return ImGui::CloseCurrentPopup();
}
CIMGUI_API bool igBeginPopupContextItem(const char* str_id,ImGuiPopupFlags popup_flags)
{
    return ImGui::BeginPopupContextItem(str_id,popup_flags);
}
CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,ImGuiPopupFlags popup_flags)
{
    return ImGui::BeginPopupContextWindow(str_id,popup_flags);
}
CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,ImGuiPopupFlags popup_flags)
{
    return ImGui::BeginPopupContextVoid(str_id,popup_flags);
}
CIMGUI_API bool igIsPopupOpenStr(const char* str_id,ImGuiPopupFlags flags)
{
    return ImGui::IsPopupOpen(str_id,flags);
}
CIMGUI_API void igColumns(int count,const char* id,bool border)
{
    return ImGui::Columns(count,id,border);
}
CIMGUI_API void igNextColumn()
{
    return ImGui::NextColumn();
}
CIMGUI_API int igGetColumnIndex()
{
    return ImGui::GetColumnIndex();
}
CIMGUI_API float igGetColumnWidth(int column_index)
{
    return ImGui::GetColumnWidth(column_index);
}
CIMGUI_API void igSetColumnWidth(int column_index,float width)
{
    return ImGui::SetColumnWidth(column_index,width);
}
CIMGUI_API float igGetColumnOffset(int column_index)
{
    return ImGui::GetColumnOffset(column_index);
}
CIMGUI_API void igSetColumnOffset(int column_index,float offset_x)
{
    return ImGui::SetColumnOffset(column_index,offset_x);
}
CIMGUI_API int igGetColumnsCount()
{
    return ImGui::GetColumnsCount();
}
CIMGUI_API bool igBeginTabBar(const char* str_id,ImGuiTabBarFlags flags)
{
    return ImGui::BeginTabBar(str_id,flags);
}
CIMGUI_API void igEndTabBar()
{
    return ImGui::EndTabBar();
}
CIMGUI_API bool igBeginTabItem(const char* label,bool* p_open,ImGuiTabItemFlags flags)
{
    return ImGui::BeginTabItem(label,p_open,flags);
}
CIMGUI_API void igEndTabItem()
{
    return ImGui::EndTabItem();
}
CIMGUI_API void igSetTabItemClosed(const char* tab_or_docked_window_label)
{
    return ImGui::SetTabItemClosed(tab_or_docked_window_label);
}
CIMGUI_API void igLogToTTY(int auto_open_depth)
{
    return ImGui::LogToTTY(auto_open_depth);
}
CIMGUI_API void igLogToFile(int auto_open_depth,const char* filename)
{
    return ImGui::LogToFile(auto_open_depth,filename);
}
CIMGUI_API void igLogToClipboard(int auto_open_depth)
{
    return ImGui::LogToClipboard(auto_open_depth);
}
CIMGUI_API void igLogFinish()
{
    return ImGui::LogFinish();
}
CIMGUI_API void igLogButtons()
{
    return ImGui::LogButtons();
}
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags)
{
    return ImGui::BeginDragDropSource(flags);
}
CIMGUI_API bool igSetDragDropPayload(const char* type,const void* data,size_t sz,ImGuiCond cond)
{
    return ImGui::SetDragDropPayload(type,data,sz,cond);
}
CIMGUI_API void igEndDragDropSource()
{
    return ImGui::EndDragDropSource();
}
CIMGUI_API bool igBeginDragDropTarget()
{
    return ImGui::BeginDragDropTarget();
}
CIMGUI_API const ImGuiPayload* igAcceptDragDropPayload(const char* type,ImGuiDragDropFlags flags)
{
    return ImGui::AcceptDragDropPayload(type,flags);
}
CIMGUI_API void igEndDragDropTarget()
{
    return ImGui::EndDragDropTarget();
}
CIMGUI_API const ImGuiPayload* igGetDragDropPayload()
{
    return ImGui::GetDragDropPayload();
}
CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect_max,bool intersect_with_current_clip_rect)
{
    return ImGui::PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect);
}
CIMGUI_API void igPopClipRect()
{
    return ImGui::PopClipRect();
}
CIMGUI_API void igSetItemDefaultFocus()
{
    return ImGui::SetItemDefaultFocus();
}
CIMGUI_API void igSetKeyboardFocusHere(int offset)
{
    return ImGui::SetKeyboardFocusHere(offset);
}
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags)
{
    return ImGui::IsItemHovered(flags);
}
CIMGUI_API bool igIsItemActive()
{
    return ImGui::IsItemActive();
}
CIMGUI_API bool igIsItemFocused()
{
    return ImGui::IsItemFocused();
}
CIMGUI_API bool igIsItemClicked(ImGuiMouseButton mouse_button)
{
    return ImGui::IsItemClicked(mouse_button);
}
CIMGUI_API bool igIsItemVisible()
{
    return ImGui::IsItemVisible();
}
CIMGUI_API bool igIsItemEdited()
{
    return ImGui::IsItemEdited();
}
CIMGUI_API bool igIsItemActivated()
{
    return ImGui::IsItemActivated();
}
CIMGUI_API bool igIsItemDeactivated()
{
    return ImGui::IsItemDeactivated();
}
CIMGUI_API bool igIsItemDeactivatedAfterEdit()
{
    return ImGui::IsItemDeactivatedAfterEdit();
}
CIMGUI_API bool igIsItemToggledOpen()
{
    return ImGui::IsItemToggledOpen();
}
CIMGUI_API bool igIsAnyItemHovered()
{
    return ImGui::IsAnyItemHovered();
}
CIMGUI_API bool igIsAnyItemActive()
{
    return ImGui::IsAnyItemActive();
}
CIMGUI_API bool igIsAnyItemFocused()
{
    return ImGui::IsAnyItemFocused();
}
CIMGUI_API void igGetItemRectMin(ImVec2 *pOut)
{
    *pOut = ImGui::GetItemRectMin();
}
CIMGUI_API void igGetItemRectMax(ImVec2 *pOut)
{
    *pOut = ImGui::GetItemRectMax();
}
CIMGUI_API void igGetItemRectSize(ImVec2 *pOut)
{
    *pOut = ImGui::GetItemRectSize();
}
CIMGUI_API void igSetItemAllowOverlap()
{
    return ImGui::SetItemAllowOverlap();
}
CIMGUI_API bool igIsRectVisibleNil(const ImVec2 size)
{
    return ImGui::IsRectVisible(size);
}
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max)
{
    return ImGui::IsRectVisible(rect_min,rect_max);
}
CIMGUI_API double igGetTime()
{
    return ImGui::GetTime();
}
CIMGUI_API int igGetFrameCount()
{
    return ImGui::GetFrameCount();
}
CIMGUI_API ImDrawList* igGetBackgroundDrawList()
{
    return ImGui::GetBackgroundDrawList();
}
CIMGUI_API ImDrawList* igGetForegroundDrawListNil()
{
    return ImGui::GetForegroundDrawList();
}
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData()
{
    return ImGui::GetDrawListSharedData();
}
CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx)
{
    return ImGui::GetStyleColorName(idx);
}
CIMGUI_API void igSetStateStorage(ImGuiStorage* storage)
{
    return ImGui::SetStateStorage(storage);
}
CIMGUI_API ImGuiStorage* igGetStateStorage()
{
    return ImGui::GetStateStorage();
}
CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)
{
    return ImGui::CalcListClipping(items_count,items_height,out_items_display_start,out_items_display_end);
}
CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags)
{
    return ImGui::BeginChildFrame(id,size,flags);
}
CIMGUI_API void igEndChildFrame()
{
    return ImGui::EndChildFrame();
}
CIMGUI_API void igCalcTextSize(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)
{
    *pOut = ImGui::CalcTextSize(text,text_end,hide_text_after_double_hash,wrap_width);
}
CIMGUI_API void igColorConvertU32ToFloat4(ImVec4 *pOut,ImU32 in)
{
    *pOut = ImGui::ColorConvertU32ToFloat4(in);
}
CIMGUI_API ImU32 igColorConvertFloat4ToU32(const ImVec4 in)
{
    return ImGui::ColorConvertFloat4ToU32(in);
}
CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float* out_h,float* out_s,float* out_v)
{
    return ImGui::ColorConvertRGBtoHSV(r,g,b,*out_h,*out_s,*out_v);
}
CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float* out_r,float* out_g,float* out_b)
{
    return ImGui::ColorConvertHSVtoRGB(h,s,v,*out_r,*out_g,*out_b);
}
CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key)
{
    return ImGui::GetKeyIndex(imgui_key);
}
CIMGUI_API bool igIsKeyDown(int user_key_index)
{
    return ImGui::IsKeyDown(user_key_index);
}
CIMGUI_API bool igIsKeyPressed(int user_key_index,bool repeat)
{
    return ImGui::IsKeyPressed(user_key_index,repeat);
}
CIMGUI_API bool igIsKeyReleased(int user_key_index)
{
    return ImGui::IsKeyReleased(user_key_index);
}
CIMGUI_API int igGetKeyPressedAmount(int key_index,float repeat_delay,float rate)
{
    return ImGui::GetKeyPressedAmount(key_index,repeat_delay,rate);
}
CIMGUI_API void igCaptureKeyboardFromApp(bool want_capture_keyboard_value)
{
    return ImGui::CaptureKeyboardFromApp(want_capture_keyboard_value);
}
CIMGUI_API bool igIsMouseDown(ImGuiMouseButton button)
{
    return ImGui::IsMouseDown(button);
}
CIMGUI_API bool igIsMouseClicked(ImGuiMouseButton button,bool repeat)
{
    return ImGui::IsMouseClicked(button,repeat);
}
CIMGUI_API bool igIsMouseReleased(ImGuiMouseButton button)
{
    return ImGui::IsMouseReleased(button);
}
CIMGUI_API bool igIsMouseDoubleClicked(ImGuiMouseButton button)
{
    return ImGui::IsMouseDoubleClicked(button);
}
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip)
{
    return ImGui::IsMouseHoveringRect(r_min,r_max,clip);
}
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos)
{
    return ImGui::IsMousePosValid(mouse_pos);
}
CIMGUI_API bool igIsAnyMouseDown()
{
    return ImGui::IsAnyMouseDown();
}
CIMGUI_API void igGetMousePos(ImVec2 *pOut)
{
    *pOut = ImGui::GetMousePos();
}
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(ImVec2 *pOut)
{
    *pOut = ImGui::GetMousePosOnOpeningCurrentPopup();
}
CIMGUI_API bool igIsMouseDragging(ImGuiMouseButton button,float lock_threshold)
{
    return ImGui::IsMouseDragging(button,lock_threshold);
}
CIMGUI_API void igGetMouseDragDelta(ImVec2 *pOut,ImGuiMouseButton button,float lock_threshold)
{
    *pOut = ImGui::GetMouseDragDelta(button,lock_threshold);
}
CIMGUI_API void igResetMouseDragDelta(ImGuiMouseButton button)
{
    return ImGui::ResetMouseDragDelta(button);
}
CIMGUI_API ImGuiMouseCursor igGetMouseCursor()
{
    return ImGui::GetMouseCursor();
}
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor cursor_type)
{
    return ImGui::SetMouseCursor(cursor_type);
}
CIMGUI_API void igCaptureMouseFromApp(bool want_capture_mouse_value)
{
    return ImGui::CaptureMouseFromApp(want_capture_mouse_value);
}
CIMGUI_API const char* igGetClipboardText()
{
    return ImGui::GetClipboardText();
}
CIMGUI_API void igSetClipboardText(const char* text)
{
    return ImGui::SetClipboardText(text);
}
CIMGUI_API void igLoadIniSettingsFromDisk(const char* ini_filename)
{
    return ImGui::LoadIniSettingsFromDisk(ini_filename);
}
CIMGUI_API void igLoadIniSettingsFromMemory(const char* ini_data,size_t ini_size)
{
    return ImGui::LoadIniSettingsFromMemory(ini_data,ini_size);
}
CIMGUI_API void igSaveIniSettingsToDisk(const char* ini_filename)
{
    return ImGui::SaveIniSettingsToDisk(ini_filename);
}
CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size)
{
    return ImGui::SaveIniSettingsToMemory(out_ini_size);
}
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)
{
    return ImGui::DebugCheckVersionAndDataLayout(version_str,sz_io,sz_style,sz_vec2,sz_vec4,sz_drawvert,sz_drawidx);
}
CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data)
{
    return ImGui::SetAllocatorFunctions(alloc_func,free_func,user_data);
}
CIMGUI_API void* igMemAlloc(size_t size)
{
    return ImGui::MemAlloc(size);
}
CIMGUI_API void igMemFree(void* ptr)
{
    return ImGui::MemFree(ptr);
}
CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void)
{
    return IM_NEW(ImGuiStyle)();
}
CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor)
{
    return self->ScaleAllSizes(scale_factor);
}
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,unsigned int c)
{
    return self->AddInputCharacter(c);
}
CIMGUI_API void ImGuiIO_AddInputCharacterUTF16(ImGuiIO* self,ImWchar16 c)
{
    return self->AddInputCharacterUTF16(c);
}
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* str)
{
    return self->AddInputCharactersUTF8(str);
}
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
    return self->ClearInputCharacters();
}
CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void)
{
    return IM_NEW(ImGuiIO)();
}
CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void)
{
    return IM_NEW(ImGuiInputTextCallbackData)();
}
CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
    return self->DeleteChars(pos,bytes_count);
}
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end)
{
    return self->InsertChars(pos,text,text_end);
}
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self)
{
    return self->HasSelection();
}
CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void)
{
    return IM_NEW(ImGuiPayload)();
}
CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self)
{
    return self->Clear();
}
CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type)
{
    return self->IsDataType(type);
}
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self)
{
    return self->IsPreview();
}
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
    return self->IsDelivery();
}
CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void)
{
    return IM_NEW(ImGuiOnceUponAFrame)();
}
CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter)
{
    return IM_NEW(ImGuiTextFilter)(default_filter);
}
CIMGUI_API void ImGuiTextFilter_destroy(ImGuiTextFilter* self)
{
    IM_DELETE(self);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
    return self->Draw(label,width);
}
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end)
{
    return self->PassFilter(text,text_end);
}
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self)
{
    return self->Build();
}
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self)
{
    return self->Clear();
}
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
    return self->IsActive();
}
CIMGUI_API ImGuiTextRange* ImGuiTextRange_ImGuiTextRangeNil(void)
{
    return IM_NEW(ImGuiTextRange)();
}
CIMGUI_API void ImGuiTextRange_destroy(ImGuiTextRange* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiTextRange* ImGuiTextRange_ImGuiTextRangeStr(const char* _b,const char* _e)
{
    return IM_NEW(ImGuiTextRange)(_b,_e);
}
CIMGUI_API bool ImGuiTextRange_empty(ImGuiTextRange* self)
{
    return self->empty();
}
CIMGUI_API void ImGuiTextRange_split(ImGuiTextRange* self,char separator,ImVector_ImGuiTextRange* out)
{
    return self->split(separator,out);
}
CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void)
{
    return IM_NEW(ImGuiTextBuffer)();
}
CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self)
{
    IM_DELETE(self);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
    return self->begin();
}
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self)
{
    return self->end();
}
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self)
{
    return self->size();
}
CIMGUI_API bool ImGuiTextBuffer_empty(ImGuiTextBuffer* self)
{
    return self->empty();
}
CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self)
{
    return self->clear();
}
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity)
{
    return self->reserve(capacity);
}
CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self)
{
    return self->c_str();
}
CIMGUI_API void ImGuiTextBuffer_append(ImGuiTextBuffer* self,const char* str,const char* str_end)
{
    return self->append(str,str_end);
}
CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args)
{
    return self->appendfv(fmt,args);
}
CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairInt(ImGuiID _key,int _val_i)
{
    return IM_NEW(ImGuiStoragePair)(_key,_val_i);
}
CIMGUI_API void ImGuiStoragePair_destroy(ImGuiStoragePair* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairFloat(ImGuiID _key,float _val_f)
{
    return IM_NEW(ImGuiStoragePair)(_key,_val_f);
}
CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairPtr(ImGuiID _key,void* _val_p)
{
    return IM_NEW(ImGuiStoragePair)(_key,_val_p);
}
CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self)
{
    return self->Clear();
}
CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val)
{
    return self->GetInt(key,default_val);
}
CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val)
{
    return self->SetInt(key,val);
}
CIMGUI_API bool ImGuiStorage_GetBool(ImGuiStorage* self,ImGuiID key,bool default_val)
{
    return self->GetBool(key,default_val);
}
CIMGUI_API void ImGuiStorage_SetBool(ImGuiStorage* self,ImGuiID key,bool val)
{
    return self->SetBool(key,val);
}
CIMGUI_API float ImGuiStorage_GetFloat(ImGuiStorage* self,ImGuiID key,float default_val)
{
    return self->GetFloat(key,default_val);
}
CIMGUI_API void ImGuiStorage_SetFloat(ImGuiStorage* self,ImGuiID key,float val)
{
    return self->SetFloat(key,val);
}
CIMGUI_API void* ImGuiStorage_GetVoidPtr(ImGuiStorage* self,ImGuiID key)
{
    return self->GetVoidPtr(key);
}
CIMGUI_API void ImGuiStorage_SetVoidPtr(ImGuiStorage* self,ImGuiID key,void* val)
{
    return self->SetVoidPtr(key,val);
}
CIMGUI_API int* ImGuiStorage_GetIntRef(ImGuiStorage* self,ImGuiID key,int default_val)
{
    return self->GetIntRef(key,default_val);
}
CIMGUI_API bool* ImGuiStorage_GetBoolRef(ImGuiStorage* self,ImGuiID key,bool default_val)
{
    return self->GetBoolRef(key,default_val);
}
CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float default_val)
{
    return self->GetFloatRef(key,default_val);
}
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val)
{
    return self->GetVoidPtrRef(key,default_val);
}
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val)
{
    return self->SetAllInt(val);
}
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
    return self->BuildSortByKey();
}
CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height)
{
    return IM_NEW(ImGuiListClipper)(items_count,items_height);
}
CIMGUI_API void ImGuiListClipper_destroy(ImGuiListClipper* self)
{
    IM_DELETE(self);
}
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self)
{
    return self->Step();
}
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height)
{
    return self->Begin(items_count,items_height);
}
CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self)
{
    return self->End();
}
CIMGUI_API ImColor* ImColor_ImColorNil(void)
{
    return IM_NEW(ImColor)();
}
CIMGUI_API void ImColor_destroy(ImColor* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a)
{
    return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba)
{
    return IM_NEW(ImColor)(rgba);
}
CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a)
{
    return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col)
{
    return IM_NEW(ImColor)(col);
}
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
    return self->SetHSV(h,s,v,a);
}
CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a)
{
    *pOut = ImColor::HSV(h,s,v,a);
}
CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void)
{
    return IM_NEW(ImDrawCmd)();
}
CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImDrawListSplitter* ImDrawListSplitter_ImDrawListSplitter(void)
{
    return IM_NEW(ImDrawListSplitter)();
}
CIMGUI_API void ImDrawListSplitter_destroy(ImDrawListSplitter* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImDrawListSplitter_Clear(ImDrawListSplitter* self)
{
    return self->Clear();
}
CIMGUI_API void ImDrawListSplitter_ClearFreeMemory(ImDrawListSplitter* self)
{
    return self->ClearFreeMemory();
}
CIMGUI_API void ImDrawListSplitter_Split(ImDrawListSplitter* self,ImDrawList* draw_list,int count)
{
    return self->Split(draw_list,count);
}
CIMGUI_API void ImDrawListSplitter_Merge(ImDrawListSplitter* self,ImDrawList* draw_list)
{
    return self->Merge(draw_list);
}
CIMGUI_API void ImDrawListSplitter_SetCurrentChannel(ImDrawListSplitter* self,ImDrawList* draw_list,int channel_idx)
{
    return self->SetCurrentChannel(draw_list,channel_idx);
}
CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data)
{
    return IM_NEW(ImDrawList)(shared_data);
}
CIMGUI_API void ImDrawList_destroy(ImDrawList* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect)
{
    return self->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect);
}
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self)
{
    return self->PushClipRectFullScreen();
}
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self)
{
    return self->PopClipRect();
}
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* self,ImTextureID texture_id)
{
    return self->PushTextureID(texture_id);
}
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self)
{
    return self->PopTextureID();
}
CIMGUI_API void ImDrawList_GetClipRectMin(ImVec2 *pOut,ImDrawList* self)
{
    *pOut = self->GetClipRectMin();
}
CIMGUI_API void ImDrawList_GetClipRectMax(ImVec2 *pOut,ImDrawList* self)
{
    *pOut = self->GetClipRectMax();
}
CIMGUI_API void ImDrawList_AddLine(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,ImU32 col,float thickness)
{
    return self->AddLine(p1,p2,col,thickness);
}
CIMGUI_API void ImDrawList_AddRect(ImDrawList* self,const ImVec2 p_min,const ImVec2 p_max,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners,float thickness)
{
    return self->AddRect(p_min,p_max,col,rounding,rounding_corners,thickness);
}
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* self,const ImVec2 p_min,const ImVec2 p_max,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners)
{
    return self->AddRectFilled(p_min,p_max,col,rounding,rounding_corners);
}
CIMGUI_API void ImDrawList_AddRectFilledMultiColor(ImDrawList* self,const ImVec2 p_min,const ImVec2 p_max,ImU32 col_upr_left,ImU32 col_upr_right,ImU32 col_bot_right,ImU32 col_bot_left)
{
    return self->AddRectFilledMultiColor(p_min,p_max,col_upr_left,col_upr_right,col_bot_right,col_bot_left);
}
CIMGUI_API void ImDrawList_AddQuad(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness)
{
    return self->AddQuad(p1,p2,p3,p4,col,thickness);
}
CIMGUI_API void ImDrawList_AddQuadFilled(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col)
{
    return self->AddQuadFilled(p1,p2,p3,p4,col);
}
CIMGUI_API void ImDrawList_AddTriangle(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness)
{
    return self->AddTriangle(p1,p2,p3,col,thickness);
}
CIMGUI_API void ImDrawList_AddTriangleFilled(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col)
{
    return self->AddTriangleFilled(p1,p2,p3,col);
}
CIMGUI_API void ImDrawList_AddCircle(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments,float thickness)
{
    return self->AddCircle(center,radius,col,num_segments,thickness);
}
CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments)
{
    return self->AddCircleFilled(center,radius,col,num_segments);
}
CIMGUI_API void ImDrawList_AddNgon(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments,float thickness)
{
    return self->AddNgon(center,radius,col,num_segments,thickness);
}
CIMGUI_API void ImDrawList_AddNgonFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments)
{
    return self->AddNgonFilled(center,radius,col,num_segments);
}
CIMGUI_API void ImDrawList_AddTextVec2(ImDrawList* self,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end)
{
    return self->AddText(pos,col,text_begin,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)
{
    return self->AddText(font,font_size,pos,col,text_begin,text_end,wrap_width,cpu_fine_clip_rect);
}
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,bool closed,float thickness)
{
    return self->AddPolyline(points,num_points,col,closed,thickness);
}
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)
{
    return self->AddConvexPolyFilled(points,num_points,col);
}
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments)
{
    return self->AddBezierCurve(p1,p2,p3,p4,col,thickness,num_segments);
}
CIMGUI_API void ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col)
{
    return self->AddImage(user_texture_id,p_min,p_max,uv_min,uv_max,col);
}
CIMGUI_API void ImDrawList_AddImageQuad(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 uv1,const ImVec2 uv2,const ImVec2 uv3,const ImVec2 uv4,ImU32 col)
{
    return self->AddImageQuad(user_texture_id,p1,p2,p3,p4,uv1,uv2,uv3,uv4,col);
}
CIMGUI_API void ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col,float rounding,ImDrawCornerFlags rounding_corners)
{
    return self->AddImageRounded(user_texture_id,p_min,p_max,uv_min,uv_max,col,rounding,rounding_corners);
}
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self)
{
    return self->PathClear();
}
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
{
    return self->PathLineTo(pos);
}
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
{
    return self->PathLineToMergeDuplicate(pos);
}
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
{
    return self->PathFillConvex(col);
}
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
{
    return self->PathStroke(col,closed,thickness);
}
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max,int num_segments)
{
    return self->PathArcTo(center,radius,a_min,a_max,num_segments);
}
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 center,float radius,int a_min_of_12,int a_max_of_12)
{
    return self->PathArcToFast(center,radius,a_min_of_12,a_max_of_12);
}
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,int num_segments)
{
    return self->PathBezierCurveTo(p2,p3,p4,num_segments);
}
CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max,float rounding,ImDrawCornerFlags rounding_corners)
{
    return self->PathRect(rect_min,rect_max,rounding,rounding_corners);
}
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* callback_data)
{
    return self->AddCallback(callback,callback_data);
}
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* self)
{
    return self->AddDrawCmd();
}
CIMGUI_API ImDrawList* ImDrawList_CloneOutput(ImDrawList* self)
{
    return self->CloneOutput();
}
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* self,int count)
{
    return self->ChannelsSplit(count);
}
CIMGUI_API void ImDrawList_ChannelsMerge(ImDrawList* self)
{
    return self->ChannelsMerge();
}
CIMGUI_API void ImDrawList_ChannelsSetCurrent(ImDrawList* self,int n)
{
    return self->ChannelsSetCurrent(n);
}
CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* self,int idx_count,int vtx_count)
{
    return self->PrimReserve(idx_count,vtx_count);
}
CIMGUI_API void ImDrawList_PrimUnreserve(ImDrawList* self,int idx_count,int vtx_count)
{
    return self->PrimUnreserve(idx_count,vtx_count);
}
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col)
{
    return self->PrimRect(a,b,col);
}
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col)
{
    return self->PrimRectUV(a,b,uv_a,uv_b,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)
{
    return self->PrimQuadUV(a,b,c,d,uv_a,uv_b,uv_c,uv_d,col);
}
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
    return self->PrimWriteVtx(pos,uv,col);
}
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
{
    return self->PrimWriteIdx(idx);
}
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
    return self->PrimVtx(pos,uv,col);
}
CIMGUI_API void ImDrawList__ResetForNewFrame(ImDrawList* self)
{
    return self->_ResetForNewFrame();
}
CIMGUI_API void ImDrawList__ClearFreeMemory(ImDrawList* self)
{
    return self->_ClearFreeMemory();
}
CIMGUI_API void ImDrawList__PopUnusedDrawCmd(ImDrawList* self)
{
    return self->_PopUnusedDrawCmd();
}
CIMGUI_API void ImDrawList__OnChangedClipRect(ImDrawList* self)
{
    return self->_OnChangedClipRect();
}
CIMGUI_API void ImDrawList__OnChangedTextureID(ImDrawList* self)
{
    return self->_OnChangedTextureID();
}
CIMGUI_API void ImDrawList__OnChangedVtxOffset(ImDrawList* self)
{
    return self->_OnChangedVtxOffset();
}
CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void)
{
    return IM_NEW(ImDrawData)();
}
CIMGUI_API void ImDrawData_destroy(ImDrawData* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImDrawData_Clear(ImDrawData* self)
{
    return self->Clear();
}
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self)
{
    return self->DeIndexAllBuffers();
}
CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 fb_scale)
{
    return self->ScaleClipRects(fb_scale);
}
CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void)
{
    return IM_NEW(ImFontConfig)();
}
CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImFontGlyphRangesBuilder* ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder(void)
{
    return IM_NEW(ImFontGlyphRangesBuilder)();
}
CIMGUI_API void ImFontGlyphRangesBuilder_destroy(ImFontGlyphRangesBuilder* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImFontGlyphRangesBuilder_Clear(ImFontGlyphRangesBuilder* self)
{
    return self->Clear();
}
CIMGUI_API bool ImFontGlyphRangesBuilder_GetBit(ImFontGlyphRangesBuilder* self,size_t n)
{
    return self->GetBit(n);
}
CIMGUI_API void ImFontGlyphRangesBuilder_SetBit(ImFontGlyphRangesBuilder* self,size_t n)
{
    return self->SetBit(n);
}
CIMGUI_API void ImFontGlyphRangesBuilder_AddChar(ImFontGlyphRangesBuilder* self,ImWchar c)
{
    return self->AddChar(c);
}
CIMGUI_API void ImFontGlyphRangesBuilder_AddText(ImFontGlyphRangesBuilder* self,const char* text,const char* text_end)
{
    return self->AddText(text,text_end);
}
CIMGUI_API void ImFontGlyphRangesBuilder_AddRanges(ImFontGlyphRangesBuilder* self,const ImWchar* ranges)
{
    return self->AddRanges(ranges);
}
CIMGUI_API void ImFontGlyphRangesBuilder_BuildRanges(ImFontGlyphRangesBuilder* self,ImVector_ImWchar* out_ranges)
{
    return self->BuildRanges(out_ranges);
}
CIMGUI_API ImFontAtlasCustomRect* ImFontAtlasCustomRect_ImFontAtlasCustomRect(void)
{
    return IM_NEW(ImFontAtlasCustomRect)();
}
CIMGUI_API void ImFontAtlasCustomRect_destroy(ImFontAtlasCustomRect* self)
{
    IM_DELETE(self);
}
CIMGUI_API bool ImFontAtlasCustomRect_IsPacked(ImFontAtlasCustomRect* self)
{
    return self->IsPacked();
}
CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void)
{
    return IM_NEW(ImFontAtlas)();
}
CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg)
{
    return self->AddFont(font_cfg);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg)
{
    return self->AddFontDefault(font_cfg);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges)
{
    return self->AddFontFromFileTTF(filename,size_pixels,font_cfg,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)
{
    return self->AddFontFromMemoryTTF(font_data,font_size,size_pixels,font_cfg,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)
{
    return self->AddFontFromMemoryCompressedTTF(compressed_font_data,compressed_font_size,size_pixels,font_cfg,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)
{
    return self->AddFontFromMemoryCompressedBase85TTF(compressed_font_data_base85,size_pixels,font_cfg,glyph_ranges);
}
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self)
{
    return self->ClearInputData();
}
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self)
{
    return self->ClearTexData();
}
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
{
    return self->ClearFonts();
}
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
{
    return self->Clear();
}
CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self)
{
    return self->Build();
}
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel)
{
    return self->GetTexDataAsAlpha8(out_pixels,out_width,out_height,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)
{
    return self->GetTexDataAsRGBA32(out_pixels,out_width,out_height,out_bytes_per_pixel);
}
CIMGUI_API bool ImFontAtlas_IsBuilt(ImFontAtlas* self)
{
    return self->IsBuilt();
}
CIMGUI_API void ImFontAtlas_SetTexID(ImFontAtlas* self,ImTextureID id)
{
    return self->SetTexID(id);
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesDefault(ImFontAtlas* self)
{
    return self->GetGlyphRangesDefault();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesKorean(ImFontAtlas* self)
{
    return self->GetGlyphRangesKorean();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesJapanese(ImFontAtlas* self)
{
    return self->GetGlyphRangesJapanese();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* self)
{
    return self->GetGlyphRangesChineseFull();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self)
{
    return self->GetGlyphRangesChineseSimplifiedCommon();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self)
{
    return self->GetGlyphRangesCyrillic();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self)
{
    return self->GetGlyphRangesThai();
}
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesVietnamese(ImFontAtlas* self)
{
    return self->GetGlyphRangesVietnamese();
}
CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,int width,int height)
{
    return self->AddCustomRectRegular(width,height);
}
CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset)
{
    return self->AddCustomRectFontGlyph(font,id,width,height,advance_x,offset);
}
CIMGUI_API ImFontAtlasCustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index)
{
    return self->GetCustomRectByIndex(index);
}
CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const ImFontAtlasCustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max)
{
    return self->CalcCustomRectUV(rect,out_uv_min,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])
{
    return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill);
}
CIMGUI_API ImFont* ImFont_ImFont(void)
{
    return IM_NEW(ImFont)();
}
CIMGUI_API void ImFont_destroy(ImFont* self)
{
    IM_DELETE(self);
}
CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c)
{
    return self->FindGlyph(c);
}
CIMGUI_API const ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c)
{
    return self->FindGlyphNoFallback(c);
}
CIMGUI_API float ImFont_GetCharAdvance(ImFont* self,ImWchar c)
{
    return self->GetCharAdvance(c);
}
CIMGUI_API bool ImFont_IsLoaded(ImFont* self)
{
    return self->IsLoaded();
}
CIMGUI_API const char* ImFont_GetDebugName(ImFont* self)
{
    return self->GetDebugName();
}
CIMGUI_API void ImFont_CalcTextSizeA(ImVec2 *pOut,ImFont* self,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining)
{
    *pOut = self->CalcTextSizeA(size,max_width,wrap_width,text_begin,text_end,remaining);
}
CIMGUI_API const char* ImFont_CalcWordWrapPositionA(ImFont* self,float scale,const char* text,const char* text_end,float wrap_width)
{
    return self->CalcWordWrapPositionA(scale,text,text_end,wrap_width);
}
CIMGUI_API void ImFont_RenderChar(ImFont* self,ImDrawList* draw_list,float size,ImVec2 pos,ImU32 col,ImWchar c)
{
    return self->RenderChar(draw_list,size,pos,col,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)
{
    return self->RenderText(draw_list,size,pos,col,clip_rect,text_begin,text_end,wrap_width,cpu_fine_clip);
}
CIMGUI_API void ImFont_BuildLookupTable(ImFont* self)
{
    return self->BuildLookupTable();
}
CIMGUI_API void ImFont_ClearOutputData(ImFont* self)
{
    return self->ClearOutputData();
}
CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size)
{
    return self->GrowIndex(new_size);
}
CIMGUI_API void ImFont_AddGlyph(ImFont* self,ImFontConfig* src_cfg,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x)
{
    return self->AddGlyph(src_cfg,c,x0,y0,x1,y1,u0,v0,u1,v1,advance_x);
}
CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst)
{
    return self->AddRemapChar(dst,src,overwrite_dst);
}
CIMGUI_API void ImFont_SetGlyphVisible(ImFont* self,ImWchar c,bool visible)
{
    return self->SetGlyphVisible(c,visible);
}
CIMGUI_API void ImFont_SetFallbackChar(ImFont* self,ImWchar c)
{
    return self->SetFallbackChar(c);
}
CIMGUI_API bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last)
{
    return self->IsGlyphRangeUnused(c_begin,c_last);
}
CIMGUI_API ImU32 igImHashData(const void* data,size_t data_size,ImU32 seed)
{
    return ImHashData(data,data_size,seed);
}
CIMGUI_API ImU32 igImHashStr(const char* data,size_t data_size,ImU32 seed)
{
    return ImHashStr(data,data_size,seed);
}
CIMGUI_API ImU32 igImAlphaBlendColors(ImU32 col_a,ImU32 col_b)
{
    return ImAlphaBlendColors(col_a,col_b);
}
CIMGUI_API bool igImIsPowerOfTwo(int v)
{
    return ImIsPowerOfTwo(v);
}
CIMGUI_API int igImUpperPowerOfTwo(int v)
{
    return ImUpperPowerOfTwo(v);
}
CIMGUI_API int igImStricmp(const char* str1,const char* str2)
{
    return ImStricmp(str1,str2);
}
CIMGUI_API int igImStrnicmp(const char* str1,const char* str2,size_t count)
{
    return ImStrnicmp(str1,str2,count);
}
CIMGUI_API void igImStrncpy(char* dst,const char* src,size_t count)
{
    return ImStrncpy(dst,src,count);
}
CIMGUI_API char* igImStrdup(const char* str)
{
    return ImStrdup(str);
}
CIMGUI_API char* igImStrdupcpy(char* dst,size_t* p_dst_size,const char* str)
{
    return ImStrdupcpy(dst,p_dst_size,str);
}
CIMGUI_API const char* igImStrchrRange(const char* str_begin,const char* str_end,char c)
{
    return ImStrchrRange(str_begin,str_end,c);
}
CIMGUI_API int igImStrlenW(const ImWchar* str)
{
    return ImStrlenW(str);
}
CIMGUI_API const char* igImStreolRange(const char* str,const char* str_end)
{
    return ImStreolRange(str,str_end);
}
CIMGUI_API const ImWchar* igImStrbolW(const ImWchar* buf_mid_line,const ImWchar* buf_begin)
{
    return ImStrbolW(buf_mid_line,buf_begin);
}
CIMGUI_API const char* igImStristr(const char* haystack,const char* haystack_end,const char* needle,const char* needle_end)
{
    return ImStristr(haystack,haystack_end,needle,needle_end);
}
CIMGUI_API void igImStrTrimBlanks(char* str)
{
    return ImStrTrimBlanks(str);
}
CIMGUI_API const char* igImStrSkipBlank(const char* str)
{
    return ImStrSkipBlank(str);
}
CIMGUI_API int igImFormatString(char* buf,size_t buf_size,const char* fmt,...)
{
    va_list args;
    va_start(args, fmt);
    int ret = ImFormatStringV(buf,buf_size,fmt,args);
    va_end(args);
    return ret;
}
CIMGUI_API int igImFormatStringV(char* buf,size_t buf_size,const char* fmt,va_list args)
{
    return ImFormatStringV(buf,buf_size,fmt,args);
}
CIMGUI_API const char* igImParseFormatFindStart(const char* format)
{
    return ImParseFormatFindStart(format);
}
CIMGUI_API const char* igImParseFormatFindEnd(const char* format)
{
    return ImParseFormatFindEnd(format);
}
CIMGUI_API const char* igImParseFormatTrimDecorations(const char* format,char* buf,size_t buf_size)
{
    return ImParseFormatTrimDecorations(format,buf,buf_size);
}
CIMGUI_API int igImParseFormatPrecision(const char* format,int default_value)
{
    return ImParseFormatPrecision(format,default_value);
}
CIMGUI_API bool igImCharIsBlankA(char c)
{
    return ImCharIsBlankA(c);
}
CIMGUI_API bool igImCharIsBlankW(unsigned int c)
{
    return ImCharIsBlankW(c);
}
CIMGUI_API int igImTextStrToUtf8(char* buf,int buf_size,const ImWchar* in_text,const ImWchar* in_text_end)
{
    return ImTextStrToUtf8(buf,buf_size,in_text,in_text_end);
}
CIMGUI_API int igImTextCharFromUtf8(unsigned int* out_char,const char* in_text,const char* in_text_end)
{
    return ImTextCharFromUtf8(out_char,in_text,in_text_end);
}
CIMGUI_API int igImTextStrFromUtf8(ImWchar* buf,int buf_size,const char* in_text,const char* in_text_end,const char** in_remaining)
{
    return ImTextStrFromUtf8(buf,buf_size,in_text,in_text_end,in_remaining);
}
CIMGUI_API int igImTextCountCharsFromUtf8(const char* in_text,const char* in_text_end)
{
    return ImTextCountCharsFromUtf8(in_text,in_text_end);
}
CIMGUI_API int igImTextCountUtf8BytesFromChar(const char* in_text,const char* in_text_end)
{
    return ImTextCountUtf8BytesFromChar(in_text,in_text_end);
}
CIMGUI_API int igImTextCountUtf8BytesFromStr(const ImWchar* in_text,const ImWchar* in_text_end)
{
    return ImTextCountUtf8BytesFromStr(in_text,in_text_end);
}
CIMGUI_API ImFileHandle igImFileOpen(const char* filename,const char* mode)
{
    return ImFileOpen(filename,mode);
}
CIMGUI_API bool igImFileClose(ImFileHandle file)
{
    return ImFileClose(file);
}
CIMGUI_API ImU64 igImFileGetSize(ImFileHandle file)
{
    return ImFileGetSize(file);
}
CIMGUI_API ImU64 igImFileRead(void* data,ImU64 size,ImU64 count,ImFileHandle file)
{
    return ImFileRead(data,size,count,file);
}
CIMGUI_API ImU64 igImFileWrite(const void* data,ImU64 size,ImU64 count,ImFileHandle file)
{
    return ImFileWrite(data,size,count,file);
}
CIMGUI_API void* igImFileLoadToMemory(const char* filename,const char* mode,size_t* out_file_size,int padding_bytes)
{
    return ImFileLoadToMemory(filename,mode,out_file_size,padding_bytes);
}
CIMGUI_API float igImPowFloat(float x,float y)
{
    return ImPow(x,y);
}
CIMGUI_API double igImPowdouble(double x,double y)
{
    return ImPow(x,y);
}
CIMGUI_API float igImLogFloat(float x)
{
    return ImLog(x);
}
CIMGUI_API double igImLogdouble(double x)
{
    return ImLog(x);
}
CIMGUI_API float igImAbsFloat(float x)
{
    return ImAbs(x);
}
CIMGUI_API double igImAbsdouble(double x)
{
    return ImAbs(x);
}
CIMGUI_API float igImSignFloat(float x)
{
    return ImSign(x);
}
CIMGUI_API double igImSigndouble(double x)
{
    return ImSign(x);
}
CIMGUI_API void igImMin(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs)
{
    *pOut = ImMin(lhs,rhs);
}
CIMGUI_API void igImMax(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs)
{
    *pOut = ImMax(lhs,rhs);
}
CIMGUI_API void igImClamp(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,ImVec2 mx)
{
    *pOut = ImClamp(v,mn,mx);
}
CIMGUI_API void igImLerpVec2Float(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,float t)
{
    *pOut = ImLerp(a,b,t);
}
CIMGUI_API void igImLerpVec2Vec2(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,const ImVec2 t)
{
    *pOut = ImLerp(a,b,t);
}
CIMGUI_API void igImLerpVec4(ImVec4 *pOut,const ImVec4 a,const ImVec4 b,float t)
{
    *pOut = ImLerp(a,b,t);
}
CIMGUI_API float igImSaturate(float f)
{
    return ImSaturate(f);
}
CIMGUI_API float igImLengthSqrVec2(const ImVec2 lhs)
{
    return ImLengthSqr(lhs);
}
CIMGUI_API float igImLengthSqrVec4(const ImVec4 lhs)
{
    return ImLengthSqr(lhs);
}
CIMGUI_API float igImInvLength(const ImVec2 lhs,float fail_value)
{
    return ImInvLength(lhs,fail_value);
}
CIMGUI_API float igImFloorFloat(float f)
{
    return ImFloor(f);
}
CIMGUI_API void igImFloorVec2(ImVec2 *pOut,const ImVec2 v)
{
    *pOut = ImFloor(v);
}
CIMGUI_API int igImModPositive(int a,int b)
{
    return ImModPositive(a,b);
}
CIMGUI_API float igImDot(const ImVec2 a,const ImVec2 b)
{
    return ImDot(a,b);
}
CIMGUI_API void igImRotate(ImVec2 *pOut,const ImVec2 v,float cos_a,float sin_a)
{
    *pOut = ImRotate(v,cos_a,sin_a);
}
CIMGUI_API float igImLinearSweep(float current,float target,float speed)
{
    return ImLinearSweep(current,target,speed);
}
CIMGUI_API void igImMul(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs)
{
    *pOut = ImMul(lhs,rhs);
}
CIMGUI_API void igImBezierCalc(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,float t)
{
    *pOut = ImBezierCalc(p1,p2,p3,p4,t);
}
CIMGUI_API void igImBezierClosestPoint(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 p,int num_segments)
{
    *pOut = ImBezierClosestPoint(p1,p2,p3,p4,p,num_segments);
}
CIMGUI_API void igImBezierClosestPointCasteljau(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 p,float tess_tol)
{
    *pOut = ImBezierClosestPointCasteljau(p1,p2,p3,p4,p,tess_tol);
}
CIMGUI_API void igImLineClosestPoint(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,const ImVec2 p)
{
    *pOut = ImLineClosestPoint(a,b,p);
}
CIMGUI_API bool igImTriangleContainsPoint(const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 p)
{
    return ImTriangleContainsPoint(a,b,c,p);
}
CIMGUI_API void igImTriangleClosestPoint(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 p)
{
    *pOut = ImTriangleClosestPoint(a,b,c,p);
}
CIMGUI_API void igImTriangleBarycentricCoords(const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 p,float* out_u,float* out_v,float* out_w)
{
    return ImTriangleBarycentricCoords(a,b,c,p,*out_u,*out_v,*out_w);
}
CIMGUI_API float igImTriangleArea(const ImVec2 a,const ImVec2 b,const ImVec2 c)
{
    return ImTriangleArea(a,b,c);
}
CIMGUI_API ImGuiDir igImGetDirQuadrantFromDelta(float dx,float dy)
{
    return ImGetDirQuadrantFromDelta(dx,dy);
}
CIMGUI_API ImVec1* ImVec1_ImVec1Nil(void)
{
    return IM_NEW(ImVec1)();
}
CIMGUI_API void ImVec1_destroy(ImVec1* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImVec1* ImVec1_ImVec1Float(float _x)
{
    return IM_NEW(ImVec1)(_x);
}
CIMGUI_API ImVec2ih* ImVec2ih_ImVec2ihNil(void)
{
    return IM_NEW(ImVec2ih)();
}
CIMGUI_API void ImVec2ih_destroy(ImVec2ih* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImVec2ih* ImVec2ih_ImVec2ihshort(short _x,short _y)
{
    return IM_NEW(ImVec2ih)(_x,_y);
}
CIMGUI_API ImVec2ih* ImVec2ih_ImVec2ihVec2(const ImVec2 rhs)
{
    return IM_NEW(ImVec2ih)(rhs);
}
CIMGUI_API ImRect* ImRect_ImRectNil(void)
{
    return IM_NEW(ImRect)();
}
CIMGUI_API void ImRect_destroy(ImRect* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImRect* ImRect_ImRectVec2(const ImVec2 min,const ImVec2 max)
{
    return IM_NEW(ImRect)(min,max);
}
CIMGUI_API ImRect* ImRect_ImRectVec4(const ImVec4 v)
{
    return IM_NEW(ImRect)(v);
}
CIMGUI_API ImRect* ImRect_ImRectFloat(float x1,float y1,float x2,float y2)
{
    return IM_NEW(ImRect)(x1,y1,x2,y2);
}
CIMGUI_API void ImRect_GetCenter(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetCenter();
}
CIMGUI_API void ImRect_GetSize(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetSize();
}
CIMGUI_API float ImRect_GetWidth(ImRect* self)
{
    return self->GetWidth();
}
CIMGUI_API float ImRect_GetHeight(ImRect* self)
{
    return self->GetHeight();
}
CIMGUI_API void ImRect_GetTL(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetTL();
}
CIMGUI_API void ImRect_GetTR(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetTR();
}
CIMGUI_API void ImRect_GetBL(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetBL();
}
CIMGUI_API void ImRect_GetBR(ImVec2 *pOut,ImRect* self)
{
    *pOut = self->GetBR();
}
CIMGUI_API bool ImRect_ContainsVec2(ImRect* self,const ImVec2 p)
{
    return self->Contains(p);
}
CIMGUI_API bool ImRect_ContainsRect(ImRect* self,const ImRect r)
{
    return self->Contains(r);
}
CIMGUI_API bool ImRect_Overlaps(ImRect* self,const ImRect r)
{
    return self->Overlaps(r);
}
CIMGUI_API void ImRect_AddVec2(ImRect* self,const ImVec2 p)
{
    return self->Add(p);
}
CIMGUI_API void ImRect_AddRect(ImRect* self,const ImRect r)
{
    return self->Add(r);
}
CIMGUI_API void ImRect_ExpandFloat(ImRect* self,const float amount)
{
    return self->Expand(amount);
}
CIMGUI_API void ImRect_ExpandVec2(ImRect* self,const ImVec2 amount)
{
    return self->Expand(amount);
}
CIMGUI_API void ImRect_Translate(ImRect* self,const ImVec2 d)
{
    return self->Translate(d);
}
CIMGUI_API void ImRect_TranslateX(ImRect* self,float dx)
{
    return self->TranslateX(dx);
}
CIMGUI_API void ImRect_TranslateY(ImRect* self,float dy)
{
    return self->TranslateY(dy);
}
CIMGUI_API void ImRect_ClipWith(ImRect* self,const ImRect r)
{
    return self->ClipWith(r);
}
CIMGUI_API void ImRect_ClipWithFull(ImRect* self,const ImRect r)
{
    return self->ClipWithFull(r);
}
CIMGUI_API void ImRect_Floor(ImRect* self)
{
    return self->Floor();
}
CIMGUI_API bool ImRect_IsInverted(ImRect* self)
{
    return self->IsInverted();
}
CIMGUI_API void ImRect_ToVec4(ImVec4 *pOut,ImRect* self)
{
    *pOut = self->ToVec4();
}
CIMGUI_API bool igImBitArrayTestBit(const ImU32* arr,int n)
{
    return ImBitArrayTestBit(arr,n);
}
CIMGUI_API void igImBitArrayClearBit(ImU32* arr,int n)
{
    return ImBitArrayClearBit(arr,n);
}
CIMGUI_API void igImBitArraySetBit(ImU32* arr,int n)
{
    return ImBitArraySetBit(arr,n);
}
CIMGUI_API void igImBitArraySetBitRange(ImU32* arr,int n,int n2)
{
    return ImBitArraySetBitRange(arr,n,n2);
}
CIMGUI_API void ImBitVector_Create(ImBitVector* self,int sz)
{
    return self->Create(sz);
}
CIMGUI_API void ImBitVector_Clear(ImBitVector* self)
{
    return self->Clear();
}
CIMGUI_API bool ImBitVector_TestBit(ImBitVector* self,int n)
{
    return self->TestBit(n);
}
CIMGUI_API void ImBitVector_SetBit(ImBitVector* self,int n)
{
    return self->SetBit(n);
}
CIMGUI_API void ImBitVector_ClearBit(ImBitVector* self,int n)
{
    return self->ClearBit(n);
}
CIMGUI_API ImDrawListSharedData* ImDrawListSharedData_ImDrawListSharedData(void)
{
    return IM_NEW(ImDrawListSharedData)();
}
CIMGUI_API void ImDrawListSharedData_destroy(ImDrawListSharedData* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImDrawListSharedData_SetCircleSegmentMaxError(ImDrawListSharedData* self,float max_error)
{
    return self->SetCircleSegmentMaxError(max_error);
}
CIMGUI_API void ImDrawDataBuilder_Clear(ImDrawDataBuilder* self)
{
    return self->Clear();
}
CIMGUI_API void ImDrawDataBuilder_ClearFreeMemory(ImDrawDataBuilder* self)
{
    return self->ClearFreeMemory();
}
CIMGUI_API void ImDrawDataBuilder_FlattenIntoSingleLayer(ImDrawDataBuilder* self)
{
    return self->FlattenIntoSingleLayer();
}
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleModInt(ImGuiStyleVar idx,int v)
{
    return IM_NEW(ImGuiStyleMod)(idx,v);
}
CIMGUI_API void ImGuiStyleMod_destroy(ImGuiStyleMod* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleModFloat(ImGuiStyleVar idx,float v)
{
    return IM_NEW(ImGuiStyleMod)(idx,v);
}
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleModVec2(ImGuiStyleVar idx,ImVec2 v)
{
    return IM_NEW(ImGuiStyleMod)(idx,v);
}
CIMGUI_API ImGuiMenuColumns* ImGuiMenuColumns_ImGuiMenuColumns(void)
{
    return IM_NEW(ImGuiMenuColumns)();
}
CIMGUI_API void ImGuiMenuColumns_destroy(ImGuiMenuColumns* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiMenuColumns_Update(ImGuiMenuColumns* self,int count,float spacing,bool clear)
{
    return self->Update(count,spacing,clear);
}
CIMGUI_API float ImGuiMenuColumns_DeclColumns(ImGuiMenuColumns* self,float w0,float w1,float w2)
{
    return self->DeclColumns(w0,w1,w2);
}
CIMGUI_API float ImGuiMenuColumns_CalcExtraSpace(ImGuiMenuColumns* self,float avail_w)
{
    return self->CalcExtraSpace(avail_w);
}
CIMGUI_API ImGuiInputTextState* ImGuiInputTextState_ImGuiInputTextState(void)
{
    return IM_NEW(ImGuiInputTextState)();
}
CIMGUI_API void ImGuiInputTextState_destroy(ImGuiInputTextState* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiInputTextState_ClearText(ImGuiInputTextState* self)
{
    return self->ClearText();
}
CIMGUI_API void ImGuiInputTextState_ClearFreeMemory(ImGuiInputTextState* self)
{
    return self->ClearFreeMemory();
}
CIMGUI_API int ImGuiInputTextState_GetUndoAvailCount(ImGuiInputTextState* self)
{
    return self->GetUndoAvailCount();
}
CIMGUI_API int ImGuiInputTextState_GetRedoAvailCount(ImGuiInputTextState* self)
{
    return self->GetRedoAvailCount();
}
CIMGUI_API void ImGuiInputTextState_OnKeyPressed(ImGuiInputTextState* self,int key)
{
    return self->OnKeyPressed(key);
}
CIMGUI_API void ImGuiInputTextState_CursorAnimReset(ImGuiInputTextState* self)
{
    return self->CursorAnimReset();
}
CIMGUI_API void ImGuiInputTextState_CursorClamp(ImGuiInputTextState* self)
{
    return self->CursorClamp();
}
CIMGUI_API bool ImGuiInputTextState_HasSelection(ImGuiInputTextState* self)
{
    return self->HasSelection();
}
CIMGUI_API void ImGuiInputTextState_ClearSelection(ImGuiInputTextState* self)
{
    return self->ClearSelection();
}
CIMGUI_API void ImGuiInputTextState_SelectAll(ImGuiInputTextState* self)
{
    return self->SelectAll();
}
CIMGUI_API ImGuiPopupData* ImGuiPopupData_ImGuiPopupData(void)
{
    return IM_NEW(ImGuiPopupData)();
}
CIMGUI_API void ImGuiPopupData_destroy(ImGuiPopupData* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiNavMoveResult* ImGuiNavMoveResult_ImGuiNavMoveResult(void)
{
    return IM_NEW(ImGuiNavMoveResult)();
}
CIMGUI_API void ImGuiNavMoveResult_destroy(ImGuiNavMoveResult* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiNavMoveResult_Clear(ImGuiNavMoveResult* self)
{
    return self->Clear();
}
CIMGUI_API ImGuiNextWindowData* ImGuiNextWindowData_ImGuiNextWindowData(void)
{
    return IM_NEW(ImGuiNextWindowData)();
}
CIMGUI_API void ImGuiNextWindowData_destroy(ImGuiNextWindowData* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiNextWindowData_ClearFlags(ImGuiNextWindowData* self)
{
    return self->ClearFlags();
}
CIMGUI_API ImGuiNextItemData* ImGuiNextItemData_ImGuiNextItemData(void)
{
    return IM_NEW(ImGuiNextItemData)();
}
CIMGUI_API void ImGuiNextItemData_destroy(ImGuiNextItemData* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiNextItemData_ClearFlags(ImGuiNextItemData* self)
{
    return self->ClearFlags();
}
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr(void* ptr)
{
    return IM_NEW(ImGuiPtrOrIndex)(ptr);
}
CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexInt(int index)
{
    return IM_NEW(ImGuiPtrOrIndex)(index);
}
CIMGUI_API ImGuiColumnData* ImGuiColumnData_ImGuiColumnData(void)
{
    return IM_NEW(ImGuiColumnData)();
}
CIMGUI_API void ImGuiColumnData_destroy(ImGuiColumnData* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiColumns* ImGuiColumns_ImGuiColumns(void)
{
    return IM_NEW(ImGuiColumns)();
}
CIMGUI_API void ImGuiColumns_destroy(ImGuiColumns* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiColumns_Clear(ImGuiColumns* self)
{
    return self->Clear();
}
CIMGUI_API ImGuiWindowSettings* ImGuiWindowSettings_ImGuiWindowSettings(void)
{
    return IM_NEW(ImGuiWindowSettings)();
}
CIMGUI_API void ImGuiWindowSettings_destroy(ImGuiWindowSettings* self)
{
    IM_DELETE(self);
}
CIMGUI_API char* ImGuiWindowSettings_GetName(ImGuiWindowSettings* self)
{
    return self->GetName();
}
CIMGUI_API ImGuiSettingsHandler* ImGuiSettingsHandler_ImGuiSettingsHandler(void)
{
    return IM_NEW(ImGuiSettingsHandler)();
}
CIMGUI_API void ImGuiSettingsHandler_destroy(ImGuiSettingsHandler* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiContext* ImGuiContext_ImGuiContext(ImFontAtlas* shared_font_atlas)
{
    return IM_NEW(ImGuiContext)(shared_font_atlas);
}
CIMGUI_API void ImGuiContext_destroy(ImGuiContext* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiWindowTempData* ImGuiWindowTempData_ImGuiWindowTempData(void)
{
    return IM_NEW(ImGuiWindowTempData)();
}
CIMGUI_API void ImGuiWindowTempData_destroy(ImGuiWindowTempData* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiWindow* ImGuiWindow_ImGuiWindow(ImGuiContext* context,const char* name)
{
    return IM_NEW(ImGuiWindow)(context,name);
}
CIMGUI_API void ImGuiWindow_destroy(ImGuiWindow* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDStr(ImGuiWindow* self,const char* str,const char* str_end)
{
    return self->GetID(str,str_end);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDPtr(ImGuiWindow* self,const void* ptr)
{
    return self->GetID(ptr);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDInt(ImGuiWindow* self,int n)
{
    return self->GetID(n);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDNoKeepAliveStr(ImGuiWindow* self,const char* str,const char* str_end)
{
    return self->GetIDNoKeepAlive(str,str_end);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDNoKeepAlivePtr(ImGuiWindow* self,const void* ptr)
{
    return self->GetIDNoKeepAlive(ptr);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDNoKeepAliveInt(ImGuiWindow* self,int n)
{
    return self->GetIDNoKeepAlive(n);
}
CIMGUI_API ImGuiID ImGuiWindow_GetIDFromRectangle(ImGuiWindow* self,const ImRect r_abs)
{
    return self->GetIDFromRectangle(r_abs);
}
CIMGUI_API void ImGuiWindow_Rect(ImRect *pOut,ImGuiWindow* self)
{
    *pOut = self->Rect();
}
CIMGUI_API float ImGuiWindow_CalcFontSize(ImGuiWindow* self)
{
    return self->CalcFontSize();
}
CIMGUI_API float ImGuiWindow_TitleBarHeight(ImGuiWindow* self)
{
    return self->TitleBarHeight();
}
CIMGUI_API void ImGuiWindow_TitleBarRect(ImRect *pOut,ImGuiWindow* self)
{
    *pOut = self->TitleBarRect();
}
CIMGUI_API float ImGuiWindow_MenuBarHeight(ImGuiWindow* self)
{
    return self->MenuBarHeight();
}
CIMGUI_API void ImGuiWindow_MenuBarRect(ImRect *pOut,ImGuiWindow* self)
{
    *pOut = self->MenuBarRect();
}
CIMGUI_API ImGuiLastItemDataBackup* ImGuiLastItemDataBackup_ImGuiLastItemDataBackup(void)
{
    return IM_NEW(ImGuiLastItemDataBackup)();
}
CIMGUI_API void ImGuiLastItemDataBackup_destroy(ImGuiLastItemDataBackup* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImGuiLastItemDataBackup_Backup(ImGuiLastItemDataBackup* self)
{
    return self->Backup();
}
CIMGUI_API void ImGuiLastItemDataBackup_Restore(ImGuiLastItemDataBackup* self)
{
    return self->Restore();
}
CIMGUI_API ImGuiTabItem* ImGuiTabItem_ImGuiTabItem(void)
{
    return IM_NEW(ImGuiTabItem)();
}
CIMGUI_API void ImGuiTabItem_destroy(ImGuiTabItem* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImGuiTabBar* ImGuiTabBar_ImGuiTabBar(void)
{
    return IM_NEW(ImGuiTabBar)();
}
CIMGUI_API void ImGuiTabBar_destroy(ImGuiTabBar* self)
{
    IM_DELETE(self);
}
CIMGUI_API int ImGuiTabBar_GetTabOrder(ImGuiTabBar* self,const ImGuiTabItem* tab)
{
    return self->GetTabOrder(tab);
}
CIMGUI_API const char* ImGuiTabBar_GetTabName(ImGuiTabBar* self,const ImGuiTabItem* tab)
{
    return self->GetTabName(tab);
}
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead()
{
    return ImGui::GetCurrentWindowRead();
}
CIMGUI_API ImGuiWindow* igGetCurrentWindow()
{
    return ImGui::GetCurrentWindow();
}
CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id)
{
    return ImGui::FindWindowByID(id);
}
CIMGUI_API ImGuiWindow* igFindWindowByName(const char* name)
{
    return ImGui::FindWindowByName(name);
}
CIMGUI_API void igUpdateWindowParentAndRootLinks(ImGuiWindow* window,ImGuiWindowFlags flags,ImGuiWindow* parent_window)
{
    return ImGui::UpdateWindowParentAndRootLinks(window,flags,parent_window);
}
CIMGUI_API void igCalcWindowExpectedSize(ImVec2 *pOut,ImGuiWindow* window)
{
    *pOut = ImGui::CalcWindowExpectedSize(window);
}
CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent)
{
    return ImGui::IsWindowChildOf(window,potential_parent);
}
CIMGUI_API bool igIsWindowNavFocusable(ImGuiWindow* window)
{
    return ImGui::IsWindowNavFocusable(window);
}
CIMGUI_API void igGetWindowAllowedExtentRect(ImRect *pOut,ImGuiWindow* window)
{
    *pOut = ImGui::GetWindowAllowedExtentRect(window);
}
CIMGUI_API void igSetWindowPosWindowPtr(ImGuiWindow* window,const ImVec2 pos,ImGuiCond cond)
{
    return ImGui::SetWindowPos(window,pos,cond);
}
CIMGUI_API void igSetWindowSizeWindowPtr(ImGuiWindow* window,const ImVec2 size,ImGuiCond cond)
{
    return ImGui::SetWindowSize(window,size,cond);
}
CIMGUI_API void igSetWindowCollapsedWindowPtr(ImGuiWindow* window,bool collapsed,ImGuiCond cond)
{
    return ImGui::SetWindowCollapsed(window,collapsed,cond);
}
CIMGUI_API void igSetWindowHitTestHole(ImGuiWindow* window,const ImVec2 pos,const ImVec2 size)
{
    return ImGui::SetWindowHitTestHole(window,pos,size);
}
CIMGUI_API void igFocusWindow(ImGuiWindow* window)
{
    return ImGui::FocusWindow(window);
}
CIMGUI_API void igFocusTopMostWindowUnderOne(ImGuiWindow* under_this_window,ImGuiWindow* ignore_window)
{
    return ImGui::FocusTopMostWindowUnderOne(under_this_window,ignore_window);
}
CIMGUI_API void igBringWindowToFocusFront(ImGuiWindow* window)
{
    return ImGui::BringWindowToFocusFront(window);
}
CIMGUI_API void igBringWindowToDisplayFront(ImGuiWindow* window)
{
    return ImGui::BringWindowToDisplayFront(window);
}
CIMGUI_API void igBringWindowToDisplayBack(ImGuiWindow* window)
{
    return ImGui::BringWindowToDisplayBack(window);
}
CIMGUI_API void igSetCurrentFont(ImFont* font)
{
    return ImGui::SetCurrentFont(font);
}
CIMGUI_API ImFont* igGetDefaultFont()
{
    return ImGui::GetDefaultFont();
}
CIMGUI_API ImDrawList* igGetForegroundDrawListWindowPtr(ImGuiWindow* window)
{
    return ImGui::GetForegroundDrawList(window);
}
CIMGUI_API void igInitialize(ImGuiContext* context)
{
    return ImGui::Initialize(context);
}
CIMGUI_API void igShutdown(ImGuiContext* context)
{
    return ImGui::Shutdown(context);
}
CIMGUI_API void igUpdateHoveredWindowAndCaptureFlags()
{
    return ImGui::UpdateHoveredWindowAndCaptureFlags();
}
CIMGUI_API void igStartMouseMovingWindow(ImGuiWindow* window)
{
    return ImGui::StartMouseMovingWindow(window);
}
CIMGUI_API void igUpdateMouseMovingWindowNewFrame()
{
    return ImGui::UpdateMouseMovingWindowNewFrame();
}
CIMGUI_API void igUpdateMouseMovingWindowEndFrame()
{
    return ImGui::UpdateMouseMovingWindowEndFrame();
}
CIMGUI_API void igMarkIniSettingsDirtyNil()
{
    return ImGui::MarkIniSettingsDirty();
}
CIMGUI_API void igMarkIniSettingsDirtyWindowPtr(ImGuiWindow* window)
{
    return ImGui::MarkIniSettingsDirty(window);
}
CIMGUI_API void igClearIniSettings()
{
    return ImGui::ClearIniSettings();
}
CIMGUI_API ImGuiWindowSettings* igCreateNewWindowSettings(const char* name)
{
    return ImGui::CreateNewWindowSettings(name);
}
CIMGUI_API ImGuiWindowSettings* igFindWindowSettings(ImGuiID id)
{
    return ImGui::FindWindowSettings(id);
}
CIMGUI_API ImGuiWindowSettings* igFindOrCreateWindowSettings(const char* name)
{
    return ImGui::FindOrCreateWindowSettings(name);
}
CIMGUI_API ImGuiSettingsHandler* igFindSettingsHandler(const char* type_name)
{
    return ImGui::FindSettingsHandler(type_name);
}
CIMGUI_API void igSetNextWindowScroll(const ImVec2 scroll)
{
    return ImGui::SetNextWindowScroll(scroll);
}
CIMGUI_API void igSetScrollXWindowPtr(ImGuiWindow* window,float new_scroll_x)
{
    return ImGui::SetScrollX(window,new_scroll_x);
}
CIMGUI_API void igSetScrollYWindowPtr(ImGuiWindow* window,float new_scroll_y)
{
    return ImGui::SetScrollY(window,new_scroll_y);
}
CIMGUI_API void igSetScrollFromPosXWindowPtr(ImGuiWindow* window,float local_x,float center_x_ratio)
{
    return ImGui::SetScrollFromPosX(window,local_x,center_x_ratio);
}
CIMGUI_API void igSetScrollFromPosYWindowPtr(ImGuiWindow* window,float local_y,float center_y_ratio)
{
    return ImGui::SetScrollFromPosY(window,local_y,center_y_ratio);
}
CIMGUI_API void igScrollToBringRectIntoView(ImVec2 *pOut,ImGuiWindow* window,const ImRect item_rect)
{
    *pOut = ImGui::ScrollToBringRectIntoView(window,item_rect);
}
CIMGUI_API ImGuiID igGetItemID()
{
    return ImGui::GetItemID();
}
CIMGUI_API ImGuiItemStatusFlags igGetItemStatusFlags()
{
    return ImGui::GetItemStatusFlags();
}
CIMGUI_API ImGuiID igGetActiveID()
{
    return ImGui::GetActiveID();
}
CIMGUI_API ImGuiID igGetFocusID()
{
    return ImGui::GetFocusID();
}
CIMGUI_API void igSetActiveID(ImGuiID id,ImGuiWindow* window)
{
    return ImGui::SetActiveID(id,window);
}
CIMGUI_API void igSetFocusID(ImGuiID id,ImGuiWindow* window)
{
    return ImGui::SetFocusID(id,window);
}
CIMGUI_API void igClearActiveID()
{
    return ImGui::ClearActiveID();
}
CIMGUI_API ImGuiID igGetHoveredID()
{
    return ImGui::GetHoveredID();
}
CIMGUI_API void igSetHoveredID(ImGuiID id)
{
    return ImGui::SetHoveredID(id);
}
CIMGUI_API void igKeepAliveID(ImGuiID id)
{
    return ImGui::KeepAliveID(id);
}
CIMGUI_API void igMarkItemEdited(ImGuiID id)
{
    return ImGui::MarkItemEdited(id);
}
CIMGUI_API void igPushOverrideID(ImGuiID id)
{
    return ImGui::PushOverrideID(id);
}
CIMGUI_API void igItemSizeVec2(const ImVec2 size,float text_baseline_y)
{
    return ImGui::ItemSize(size,text_baseline_y);
}
CIMGUI_API void igItemSizeRect(const ImRect bb,float text_baseline_y)
{
    return ImGui::ItemSize(bb,text_baseline_y);
}
CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb)
{
    return ImGui::ItemAdd(bb,id,nav_bb);
}
CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id)
{
    return ImGui::ItemHoverable(bb,id);
}
CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id,bool clip_even_when_logged)
{
    return ImGui::IsClippedEx(bb,id,clip_even_when_logged);
}
CIMGUI_API void igSetLastItemData(ImGuiWindow* window,ImGuiID item_id,ImGuiItemStatusFlags status_flags,const ImRect item_rect)
{
    return ImGui::SetLastItemData(window,item_id,status_flags,item_rect);
}
CIMGUI_API bool igFocusableItemRegister(ImGuiWindow* window,ImGuiID id)
{
    return ImGui::FocusableItemRegister(window,id);
}
CIMGUI_API void igFocusableItemUnregister(ImGuiWindow* window)
{
    return ImGui::FocusableItemUnregister(window);
}
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h)
{
    *pOut = ImGui::CalcItemSize(size,default_w,default_h);
}
CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x)
{
    return ImGui::CalcWrapWidthForPos(pos,wrap_pos_x);
}
CIMGUI_API void igPushMultiItemsWidths(int components,float width_full)
{
    return ImGui::PushMultiItemsWidths(components,width_full);
}
CIMGUI_API void igPushItemFlag(ImGuiItemFlags option,bool enabled)
{
    return ImGui::PushItemFlag(option,enabled);
}
CIMGUI_API void igPopItemFlag()
{
    return ImGui::PopItemFlag();
}
CIMGUI_API bool igIsItemToggledSelection()
{
    return ImGui::IsItemToggledSelection();
}
CIMGUI_API void igGetContentRegionMaxAbs(ImVec2 *pOut)
{
    *pOut = ImGui::GetContentRegionMaxAbs();
}
CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width_excess)
{
    return ImGui::ShrinkWidths(items,count,width_excess);
}
CIMGUI_API void igLogBegin(ImGuiLogType type,int auto_open_depth)
{
    return ImGui::LogBegin(type,auto_open_depth);
}
CIMGUI_API void igLogToBuffer(int auto_open_depth)
{
    return ImGui::LogToBuffer(auto_open_depth);
}
CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg,bool border,ImGuiWindowFlags flags)
{
    return ImGui::BeginChildEx(name,id,size_arg,border,flags);
}
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags)
{
    return ImGui::OpenPopupEx(id,popup_flags);
}
CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup)
{
    return ImGui::ClosePopupToLevel(remaining,restore_focus_to_window_under_popup);
}
CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup)
{
    return ImGui::ClosePopupsOverWindow(ref_window,restore_focus_to_window_under_popup);
}
CIMGUI_API bool igIsPopupOpenID(ImGuiID id,ImGuiPopupFlags popup_flags)
{
    return ImGui::IsPopupOpen(id,popup_flags);
}
CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_flags)
{
    return ImGui::BeginPopupEx(id,extra_flags);
}
CIMGUI_API void igBeginTooltipEx(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags)
{
    return ImGui::BeginTooltipEx(extra_flags,tooltip_flags);
}
CIMGUI_API ImGuiWindow* igGetTopMostPopupModal()
{
    return ImGui::GetTopMostPopupModal();
}
CIMGUI_API void igFindBestWindowPosForPopup(ImVec2 *pOut,ImGuiWindow* window)
{
    *pOut = ImGui::FindBestWindowPosForPopup(window);
}
CIMGUI_API void igFindBestWindowPosForPopupEx(ImVec2 *pOut,const ImVec2 ref_pos,const ImVec2 size,ImGuiDir* last_dir,const ImRect r_outer,const ImRect r_avoid,ImGuiPopupPositionPolicy policy)
{
    *pOut = ImGui::FindBestWindowPosForPopupEx(ref_pos,size,last_dir,r_outer,r_avoid,policy);
}
CIMGUI_API void igNavInitWindow(ImGuiWindow* window,bool force_reinit)
{
    return ImGui::NavInitWindow(window,force_reinit);
}
CIMGUI_API bool igNavMoveRequestButNoResultYet()
{
    return ImGui::NavMoveRequestButNoResultYet();
}
CIMGUI_API void igNavMoveRequestCancel()
{
    return ImGui::NavMoveRequestCancel();
}
CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,const ImRect bb_rel,ImGuiNavMoveFlags move_flags)
{
    return ImGui::NavMoveRequestForward(move_dir,clip_dir,bb_rel,move_flags);
}
CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags)
{
    return ImGui::NavMoveRequestTryWrapping(window,move_flags);
}
CIMGUI_API float igGetNavInputAmount(ImGuiNavInput n,ImGuiInputReadMode mode)
{
    return ImGui::GetNavInputAmount(n,mode);
}
CIMGUI_API void igGetNavInputAmount2d(ImVec2 *pOut,ImGuiNavDirSourceFlags dir_sources,ImGuiInputReadMode mode,float slow_factor,float fast_factor)
{
    *pOut = ImGui::GetNavInputAmount2d(dir_sources,mode,slow_factor,fast_factor);
}
CIMGUI_API int igCalcTypematicRepeatAmount(float t0,float t1,float repeat_delay,float repeat_rate)
{
    return ImGui::CalcTypematicRepeatAmount(t0,t1,repeat_delay,repeat_rate);
}
CIMGUI_API void igActivateItem(ImGuiID id)
{
    return ImGui::ActivateItem(id);
}
CIMGUI_API void igSetNavID(ImGuiID id,int nav_layer,ImGuiID focus_scope_id)
{
    return ImGui::SetNavID(id,nav_layer,focus_scope_id);
}
CIMGUI_API void igSetNavIDWithRectRel(ImGuiID id,int nav_layer,ImGuiID focus_scope_id,const ImRect rect_rel)
{
    return ImGui::SetNavIDWithRectRel(id,nav_layer,focus_scope_id,rect_rel);
}
CIMGUI_API void igPushFocusScope(ImGuiID id)
{
    return ImGui::PushFocusScope(id);
}
CIMGUI_API void igPopFocusScope()
{
    return ImGui::PopFocusScope();
}
CIMGUI_API ImGuiID igGetFocusScopeID()
{
    return ImGui::GetFocusScopeID();
}
CIMGUI_API bool igIsActiveIdUsingNavDir(ImGuiDir dir)
{
    return ImGui::IsActiveIdUsingNavDir(dir);
}
CIMGUI_API bool igIsActiveIdUsingNavInput(ImGuiNavInput input)
{
    return ImGui::IsActiveIdUsingNavInput(input);
}
CIMGUI_API bool igIsActiveIdUsingKey(ImGuiKey key)
{
    return ImGui::IsActiveIdUsingKey(key);
}
CIMGUI_API bool igIsMouseDragPastThreshold(ImGuiMouseButton button,float lock_threshold)
{
    return ImGui::IsMouseDragPastThreshold(button,lock_threshold);
}
CIMGUI_API bool igIsKeyPressedMap(ImGuiKey key,bool repeat)
{
    return ImGui::IsKeyPressedMap(key,repeat);
}
CIMGUI_API bool igIsNavInputDown(ImGuiNavInput n)
{
    return ImGui::IsNavInputDown(n);
}
CIMGUI_API bool igIsNavInputTest(ImGuiNavInput n,ImGuiInputReadMode rm)
{
    return ImGui::IsNavInputTest(n,rm);
}
CIMGUI_API ImGuiKeyModFlags igGetMergedKeyModFlags()
{
    return ImGui::GetMergedKeyModFlags();
}
CIMGUI_API bool igBeginDragDropTargetCustom(const ImRect bb,ImGuiID id)
{
    return ImGui::BeginDragDropTargetCustom(bb,id);
}
CIMGUI_API void igClearDragDrop()
{
    return ImGui::ClearDragDrop();
}
CIMGUI_API bool igIsDragDropPayloadBeingAccepted()
{
    return ImGui::IsDragDropPayloadBeingAccepted();
}
CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect clip_rect)
{
    return ImGui::SetWindowClipRectBeforeSetChannel(window,clip_rect);
}
CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiColumnsFlags flags)
{
    return ImGui::BeginColumns(str_id,count,flags);
}
CIMGUI_API void igEndColumns()
{
    return ImGui::EndColumns();
}
CIMGUI_API void igPushColumnClipRect(int column_index)
{
    return ImGui::PushColumnClipRect(column_index);
}
CIMGUI_API void igPushColumnsBackground()
{
    return ImGui::PushColumnsBackground();
}
CIMGUI_API void igPopColumnsBackground()
{
    return ImGui::PopColumnsBackground();
}
CIMGUI_API ImGuiID igGetColumnsID(const char* str_id,int count)
{
    return ImGui::GetColumnsID(str_id,count);
}
CIMGUI_API ImGuiColumns* igFindOrCreateColumns(ImGuiWindow* window,ImGuiID id)
{
    return ImGui::FindOrCreateColumns(window,id);
}
CIMGUI_API float igGetColumnOffsetFromNorm(const ImGuiColumns* columns,float offset_norm)
{
    return ImGui::GetColumnOffsetFromNorm(columns,offset_norm);
}
CIMGUI_API float igGetColumnNormFromOffset(const ImGuiColumns* columns,float offset)
{
    return ImGui::GetColumnNormFromOffset(columns,offset);
}
CIMGUI_API bool igBeginTabBarEx(ImGuiTabBar* tab_bar,const ImRect bb,ImGuiTabBarFlags flags)
{
    return ImGui::BeginTabBarEx(tab_bar,bb,flags);
}
CIMGUI_API ImGuiTabItem* igTabBarFindTabByID(ImGuiTabBar* tab_bar,ImGuiID tab_id)
{
    return ImGui::TabBarFindTabByID(tab_bar,tab_id);
}
CIMGUI_API void igTabBarRemoveTab(ImGuiTabBar* tab_bar,ImGuiID tab_id)
{
    return ImGui::TabBarRemoveTab(tab_bar,tab_id);
}
CIMGUI_API void igTabBarCloseTab(ImGuiTabBar* tab_bar,ImGuiTabItem* tab)
{
    return ImGui::TabBarCloseTab(tab_bar,tab);
}
CIMGUI_API void igTabBarQueueChangeTabOrder(ImGuiTabBar* tab_bar,const ImGuiTabItem* tab,int dir)
{
    return ImGui::TabBarQueueChangeTabOrder(tab_bar,tab,dir);
}
CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,ImGuiTabItemFlags flags)
{
    return ImGui::TabItemEx(tab_bar,label,p_open,flags);
}
CIMGUI_API void igTabItemCalcSize(ImVec2 *pOut,const char* label,bool has_close_button)
{
    *pOut = ImGui::TabItemCalcSize(label,has_close_button);
}
CIMGUI_API void igTabItemBackground(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImU32 col)
{
    return ImGui::TabItemBackground(draw_list,bb,flags,col);
}
CIMGUI_API bool igTabItemLabelAndCloseButton(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImVec2 frame_padding,const char* label,ImGuiID tab_id,ImGuiID close_button_id,bool is_contents_visible)
{
    return ImGui::TabItemLabelAndCloseButton(draw_list,bb,flags,frame_padding,label,tab_id,close_button_id,is_contents_visible);
}
CIMGUI_API void igRenderText(ImVec2 pos,const char* text,const char* text_end,bool hide_text_after_hash)
{
    return ImGui::RenderText(pos,text,text_end,hide_text_after_hash);
}
CIMGUI_API void igRenderTextWrapped(ImVec2 pos,const char* text,const char* text_end,float wrap_width)
{
    return ImGui::RenderTextWrapped(pos,text,text_end,wrap_width);
}
CIMGUI_API void igRenderTextClipped(const ImVec2 pos_min,const ImVec2 pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2 align,const ImRect* clip_rect)
{
    return ImGui::RenderTextClipped(pos_min,pos_max,text,text_end,text_size_if_known,align,clip_rect);
}
CIMGUI_API void igRenderTextClippedEx(ImDrawList* draw_list,const ImVec2 pos_min,const ImVec2 pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2 align,const ImRect* clip_rect)
{
    return ImGui::RenderTextClippedEx(draw_list,pos_min,pos_max,text,text_end,text_size_if_known,align,clip_rect);
}
CIMGUI_API void igRenderTextEllipsis(ImDrawList* draw_list,const ImVec2 pos_min,const ImVec2 pos_max,float clip_max_x,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known)
{
    return ImGui::RenderTextEllipsis(draw_list,pos_min,pos_max,clip_max_x,ellipsis_max_x,text,text_end,text_size_if_known);
}
CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool border,float rounding)
{
    return ImGui::RenderFrame(p_min,p_max,fill_col,border,rounding);
}
CIMGUI_API void igRenderFrameBorder(ImVec2 p_min,ImVec2 p_max,float rounding)
{
    return ImGui::RenderFrameBorder(p_min,p_max,rounding);
}
CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,float grid_step,ImVec2 grid_off,float rounding,int rounding_corners_flags)
{
    return ImGui::RenderColorRectWithAlphaCheckerboard(draw_list,p_min,p_max,fill_col,grid_step,grid_off,rounding,rounding_corners_flags);
}
CIMGUI_API void igRenderNavHighlight(const ImRect bb,ImGuiID id,ImGuiNavHighlightFlags flags)
{
    return ImGui::RenderNavHighlight(bb,id,flags);
}
CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end)
{
    return ImGui::FindRenderedTextEnd(text,text_end);
}
CIMGUI_API void igLogRenderedText(const ImVec2* ref_pos,const char* text,const char* text_end)
{
    return ImGui::LogRenderedText(ref_pos,text,text_end);
}
CIMGUI_API void igRenderArrow(ImDrawList* draw_list,ImVec2 pos,ImU32 col,ImGuiDir dir,float scale)
{
    return ImGui::RenderArrow(draw_list,pos,col,dir,scale);
}
CIMGUI_API void igRenderBullet(ImDrawList* draw_list,ImVec2 pos,ImU32 col)
{
    return ImGui::RenderBullet(draw_list,pos,col);
}
CIMGUI_API void igRenderCheckMark(ImDrawList* draw_list,ImVec2 pos,ImU32 col,float sz)
{
    return ImGui::RenderCheckMark(draw_list,pos,col,sz);
}
CIMGUI_API void igRenderMouseCursor(ImDrawList* draw_list,ImVec2 pos,float scale,ImGuiMouseCursor mouse_cursor,ImU32 col_fill,ImU32 col_border,ImU32 col_shadow)
{
    return ImGui::RenderMouseCursor(draw_list,pos,scale,mouse_cursor,col_fill,col_border,col_shadow);
}
CIMGUI_API void igRenderArrowPointingAt(ImDrawList* draw_list,ImVec2 pos,ImVec2 half_sz,ImGuiDir direction,ImU32 col)
{
    return ImGui::RenderArrowPointingAt(draw_list,pos,half_sz,direction,col);
}
CIMGUI_API void igRenderRectFilledRangeH(ImDrawList* draw_list,const ImRect rect,ImU32 col,float x_start_norm,float x_end_norm,float rounding)
{
    return ImGui::RenderRectFilledRangeH(draw_list,rect,col,x_start_norm,x_end_norm,rounding);
}
CIMGUI_API void igRenderRectFilledWithHole(ImDrawList* draw_list,ImRect outer,ImRect inner,ImU32 col,float rounding)
{
    return ImGui::RenderRectFilledWithHole(draw_list,outer,inner,col,rounding);
}
CIMGUI_API void igTextEx(const char* text,const char* text_end,ImGuiTextFlags flags)
{
    return ImGui::TextEx(text,text_end,flags);
}
CIMGUI_API bool igButtonEx(const char* label,const ImVec2 size_arg,ImGuiButtonFlags flags)
{
    return ImGui::ButtonEx(label,size_arg,flags);
}
CIMGUI_API bool igCloseButton(ImGuiID id,const ImVec2 pos)
{
    return ImGui::CloseButton(id,pos);
}
CIMGUI_API bool igCollapseButton(ImGuiID id,const ImVec2 pos)
{
    return ImGui::CollapseButton(id,pos);
}
CIMGUI_API bool igArrowButtonEx(const char* str_id,ImGuiDir dir,ImVec2 size_arg,ImGuiButtonFlags flags)
{
    return ImGui::ArrowButtonEx(str_id,dir,size_arg,flags);
}
CIMGUI_API void igScrollbar(ImGuiAxis axis)
{
    return ImGui::Scrollbar(axis);
}
CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawCornerFlags rounding_corners)
{
    return ImGui::ScrollbarEx(bb,id,axis,p_scroll_v,avail_v,contents_v,rounding_corners);
}
CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,const ImVec2 padding,const ImVec4 bg_col,const ImVec4 tint_col)
{
    return ImGui::ImageButtonEx(id,texture_id,size,uv0,uv1,padding,bg_col,tint_col);
}
CIMGUI_API void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis)
{
    *pOut = ImGui::GetWindowScrollbarRect(window,axis);
}
CIMGUI_API ImGuiID igGetWindowScrollbarID(ImGuiWindow* window,ImGuiAxis axis)
{
    return ImGui::GetWindowScrollbarID(window,axis);
}
CIMGUI_API ImGuiID igGetWindowResizeID(ImGuiWindow* window,int n)
{
    return ImGui::GetWindowResizeID(window,n);
}
CIMGUI_API void igSeparatorEx(ImGuiSeparatorFlags flags)
{
    return ImGui::SeparatorEx(flags);
}
CIMGUI_API bool igButtonBehavior(const ImRect bb,ImGuiID id,bool* out_hovered,bool* out_held,ImGuiButtonFlags flags)
{
    return ImGui::ButtonBehavior(bb,id,out_hovered,out_held,flags);
}
CIMGUI_API bool igDragBehavior(ImGuiID id,ImGuiDataType data_type,void* p_v,float v_speed,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags)
{
    return ImGui::DragBehavior(id,data_type,p_v,v_speed,p_min,p_max,format,flags);
}
CIMGUI_API bool igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_type,void* p_v,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags,ImRect* out_grab_bb)
{
    return ImGui::SliderBehavior(bb,id,data_type,p_v,p_min,p_max,format,flags,out_grab_bb);
}
CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay)
{
    return ImGui::SplitterBehavior(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay);
}
CIMGUI_API bool igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label,const char* label_end)
{
    return ImGui::TreeNodeBehavior(id,flags,label,label_end);
}
CIMGUI_API bool igTreeNodeBehaviorIsOpen(ImGuiID id,ImGuiTreeNodeFlags flags)
{
    return ImGui::TreeNodeBehaviorIsOpen(id,flags);
}
CIMGUI_API void igTreePushOverrideID(ImGuiID id)
{
    return ImGui::TreePushOverrideID(id);
}
CIMGUI_API const ImGuiDataTypeInfo* igDataTypeGetInfo(ImGuiDataType data_type)
{
    return ImGui::DataTypeGetInfo(data_type);
}
CIMGUI_API int igDataTypeFormatString(char* buf,int buf_size,ImGuiDataType data_type,const void* p_data,const char* format)
{
    return ImGui::DataTypeFormatString(buf,buf_size,data_type,p_data,format);
}
CIMGUI_API void igDataTypeApplyOp(ImGuiDataType data_type,int op,void* output,void* arg_1,const void* arg_2)
{
    return ImGui::DataTypeApplyOp(data_type,op,output,arg_1,arg_2);
}
CIMGUI_API bool igDataTypeApplyOpFromText(const char* buf,const char* initial_value_buf,ImGuiDataType data_type,void* p_data,const char* format)
{
    return ImGui::DataTypeApplyOpFromText(buf,initial_value_buf,data_type,p_data,format);
}
CIMGUI_API bool igDataTypeClamp(ImGuiDataType data_type,void* p_data,const void* p_min,const void* p_max)
{
    return ImGui::DataTypeClamp(data_type,p_data,p_min,p_max);
}
CIMGUI_API bool igInputTextEx(const char* label,const char* hint,char* buf,int buf_size,const ImVec2 size_arg,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
    return ImGui::InputTextEx(label,hint,buf,buf_size,size_arg,flags,callback,user_data);
}
CIMGUI_API bool igTempInputText(const ImRect bb,ImGuiID id,const char* label,char* buf,int buf_size,ImGuiInputTextFlags flags)
{
    return ImGui::TempInputText(bb,id,label,buf,buf_size,flags);
}
CIMGUI_API bool igTempInputScalar(const ImRect bb,ImGuiID id,const char* label,ImGuiDataType data_type,void* p_data,const char* format,const void* p_clamp_min,const void* p_clamp_max)
{
    return ImGui::TempInputScalar(bb,id,label,data_type,p_data,format,p_clamp_min,p_clamp_max);
}
CIMGUI_API bool igTempInputIsActive(ImGuiID id)
{
    return ImGui::TempInputIsActive(id);
}
CIMGUI_API ImGuiInputTextState* igGetInputTextState(ImGuiID id)
{
    return ImGui::GetInputTextState(id);
}
CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags)
{
    return ImGui::ColorTooltip(text,col,flags);
}
CIMGUI_API void igColorEditOptionsPopup(const float* col,ImGuiColorEditFlags flags)
{
    return ImGui::ColorEditOptionsPopup(col,flags);
}
CIMGUI_API void igColorPickerOptionsPopup(const float* ref_col,ImGuiColorEditFlags flags)
{
    return ImGui::ColorPickerOptionsPopup(ref_col,flags);
}
CIMGUI_API int igPlotEx(ImGuiPlotType plot_type,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 frame_size)
{
    return ImGui::PlotEx(plot_type,label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,frame_size);
}
CIMGUI_API void igShadeVertsLinearColorGradientKeepAlpha(ImDrawList* draw_list,int vert_start_idx,int vert_end_idx,ImVec2 gradient_p0,ImVec2 gradient_p1,ImU32 col0,ImU32 col1)
{
    return ImGui::ShadeVertsLinearColorGradientKeepAlpha(draw_list,vert_start_idx,vert_end_idx,gradient_p0,gradient_p1,col0,col1);
}
CIMGUI_API void igShadeVertsLinearUV(ImDrawList* draw_list,int vert_start_idx,int vert_end_idx,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,bool clamp)
{
    return ImGui::ShadeVertsLinearUV(draw_list,vert_start_idx,vert_end_idx,a,b,uv_a,uv_b,clamp);
}
CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window)
{
    return ImGui::GcCompactTransientWindowBuffers(window);
}
CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window)
{
    return ImGui::GcAwakeTransientWindowBuffers(window);
}
CIMGUI_API void igDebugDrawItemRect(ImU32 col)
{
    return ImGui::DebugDrawItemRect(col);
}
CIMGUI_API void igDebugStartItemPicker()
{
    return ImGui::DebugStartItemPicker();
}
CIMGUI_API bool igImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas)
{
    return ImFontAtlasBuildWithStbTruetype(atlas);
}
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas)
{
    return ImFontAtlasBuildInit(atlas);
}
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* font_config,float ascent,float descent)
{
    return ImFontAtlasBuildSetupFont(atlas,font,font_config,ascent,descent);
}
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque)
{
    return ImFontAtlasBuildPackCustomRects(atlas,stbrp_context_opaque);
}
CIMGUI_API void igImFontAtlasBuildFinish(ImFontAtlas* atlas)
{
    return ImFontAtlasBuildFinish(atlas);
}
CIMGUI_API void igImFontAtlasBuildRender1bppRectFromString(ImFontAtlas* atlas,int atlas_x,int atlas_y,int w,int h,const char* in_str,char in_marker_char,unsigned char in_marker_pixel_value)
{
    return ImFontAtlasBuildRender1bppRectFromString(atlas,atlas_x,atlas_y,w,h,in_str,in_marker_char,in_marker_pixel_value);
}
CIMGUI_API void igImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256],float in_multiply_factor)
{
    return ImFontAtlasBuildMultiplyCalcLookupTable(out_table,in_multiply_factor);
}
CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride)
{
    return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
}



/////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...)
{
    char buffer[256];
    va_list args;
    va_start(args, fmt);
    vsnprintf(buffer, 256, fmt, args);
    va_end(args);

    ImGui::LogText("%s", buffer);
}
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
{
    va_list args;
    va_start(args, fmt);
    buffer->appendfv(fmt, args);
    va_end(args);
}

CIMGUI_API float igGET_FLT_MAX()
{
    return FLT_MAX;
}


CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create()
{
	return IM_NEW(ImVector<ImWchar>) ();
}

CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self)
{
    IM_DELETE(self);
}

CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p)
{
	IM_PLACEMENT_NEW(p) ImVector<ImWchar>();
}
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p)
{
	p->~ImVector<ImWchar>();
}


#ifdef IMGUI_HAS_DOCK

// NOTE: Some function pointers in the ImGuiPlatformIO structure are not C-compatible because of their
// use of a complex return type. To work around this, we store a custom CimguiStorage object inside
// ImGuiIO::BackendLanguageUserData, which contains C-compatible function pointer variants for these
// functions. When a user function pointer is provided, we hook up the underlying ImGuiPlatformIO
// function pointer to a thunk which accesses the user function pointer through CimguiStorage.

struct CimguiStorage
{
    void(*Platform_GetWindowPos)(ImGuiViewport* vp, ImVec2* out_pos);
    void(*Platform_GetWindowSize)(ImGuiViewport* vp, ImVec2* out_pos);
};

// Gets a reference to the CimguiStorage object stored in the current ImGui context's BackendLanguageUserData.
CimguiStorage& GetCimguiStorage()
{
    ImGuiIO& io = ImGui::GetIO();
    if (io.BackendLanguageUserData == NULL)
    {
        io.BackendLanguageUserData = new CimguiStorage();
    }

    return *(CimguiStorage*)io.BackendLanguageUserData;
}

// Thunk satisfying the signature of ImGuiPlatformIO::Platform_GetWindowPos.
ImVec2 Platform_GetWindowPos_hook(ImGuiViewport* vp)
{
    ImVec2 pos;
    GetCimguiStorage().Platform_GetWindowPos(vp, &pos);
    return pos;
};

// Fully C-compatible function pointer setter for ImGuiPlatformIO::Platform_GetWindowPos.
CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowPos(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_pos))
{
    CimguiStorage& storage = GetCimguiStorage();
    storage.Platform_GetWindowPos = user_callback;
    platform_io->Platform_GetWindowPos = &Platform_GetWindowPos_hook;
}

// Thunk satisfying the signature of ImGuiPlatformIO::Platform_GetWindowSize.
ImVec2 Platform_GetWindowSize_hook(ImGuiViewport* vp)
{
    ImVec2 size;
    GetCimguiStorage().Platform_GetWindowSize(vp, &size);
    return size;
};

// Fully C-compatible function pointer setter for ImGuiPlatformIO::Platform_GetWindowSize.
CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowSize(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_size))
{
    CimguiStorage& storage = GetCimguiStorage();
    storage.Platform_GetWindowSize = user_callback;
    platform_io->Platform_GetWindowSize = &Platform_GetWindowSize_hook;
}

#endif


/////////////////////////extra Monado functions
#include "imgui_impl_opengl3.h"
CIMGUI_API bool igImGui_ImplOpenGL3_Init(const char* glsl_version)
{
    return ImGui_ImplOpenGL3_Init(glsl_version);
}
CIMGUI_API void igImGui_ImplOpenGL3_Shutdown()
{
    ImGui_ImplOpenGL3_Shutdown();
}
CIMGUI_API void igImGui_ImplOpenGL3_NewFrame()
{
    ImGui_ImplOpenGL3_NewFrame();
}
CIMGUI_API void igImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data)
{
    ImGui_ImplOpenGL3_RenderDrawData(draw_data);
}
