//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //based on imgui.h file version "1.89.2" 18920 from Dear ImGui https://github.com/ocornut/imgui #ifdef IMGUI_ENABLE_FREETYPE #ifndef CIMGUI_FREETYPE #error "IMGUI_FREETYPE should be defined for Freetype linking" #endif #else #ifdef CIMGUI_FREETYPE #error "IMGUI_FREETYPE should not be defined without freetype generated cimgui" #endif #endif #include "./imgui/imgui.h" #ifdef IMGUI_ENABLE_FREETYPE #include "./imgui/misc/freetype/imgui_freetype.h" #endif #include "./imgui/imgui_internal.h" #include "cimgui.h" CIMGUI_API ImVec2* ImVec2_ImVec2_Nil(void) { return IM_NEW(ImVec2)(); } CIMGUI_API void ImVec2_destroy(ImVec2* self) { IM_DELETE(self); } CIMGUI_API ImVec2* ImVec2_ImVec2_Float(float _x,float _y) { return IM_NEW(ImVec2)(_x,_y); } CIMGUI_API ImVec4* ImVec4_ImVec4_Nil(void) { return IM_NEW(ImVec4)(); } CIMGUI_API void ImVec4_destroy(ImVec4* self) { IM_DELETE(self); } CIMGUI_API ImVec4* ImVec4_ImVec4_Float(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 igShowMetricsWindow(bool* p_open) { return ImGui::ShowMetricsWindow(p_open); } CIMGUI_API void igShowDebugLogWindow(bool* p_open) { return ImGui::ShowDebugLogWindow(p_open); } CIMGUI_API void igShowStackToolWindow(bool* p_open) { return ImGui::ShowStackToolWindow(p_open); } CIMGUI_API void igShowAboutWindow(bool* p_open) { return ImGui::ShowAboutWindow(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 igStyleColorsLight(ImGuiStyle* dst) { return ImGui::StyleColorsLight(dst); } CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst) { return ImGui::StyleColorsClassic(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 igBeginChild_Str(const char* str_id,const ImVec2 size,bool border,ImGuiWindowFlags flags) { return ImGui::BeginChild(str_id,size,border,flags); } CIMGUI_API bool igBeginChild_ID(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 igSetNextWindowScroll(const ImVec2 scroll) { return ImGui::SetNextWindowScroll(scroll); } CIMGUI_API void igSetNextWindowBgAlpha(float alpha) { return ImGui::SetNextWindowBgAlpha(alpha); } CIMGUI_API void igSetWindowPos_Vec2(const ImVec2 pos,ImGuiCond cond) { return ImGui::SetWindowPos(pos,cond); } CIMGUI_API void igSetWindowSize_Vec2(const ImVec2 size,ImGuiCond cond) { return ImGui::SetWindowSize(size,cond); } CIMGUI_API void igSetWindowCollapsed_Bool(bool collapsed,ImGuiCond cond) { return ImGui::SetWindowCollapsed(collapsed,cond); } CIMGUI_API void igSetWindowFocus_Nil() { return ImGui::SetWindowFocus(); } CIMGUI_API void igSetWindowFontScale(float scale) { return ImGui::SetWindowFontScale(scale); } CIMGUI_API void igSetWindowPos_Str(const char* name,const ImVec2 pos,ImGuiCond cond) { return ImGui::SetWindowPos(name,pos,cond); } CIMGUI_API void igSetWindowSize_Str(const char* name,const ImVec2 size,ImGuiCond cond) { return ImGui::SetWindowSize(name,size,cond); } CIMGUI_API void igSetWindowCollapsed_Str(const char* name,bool collapsed,ImGuiCond cond) { return ImGui::SetWindowCollapsed(name,collapsed,cond); } CIMGUI_API void igSetWindowFocus_Str(const char* name) { return ImGui::SetWindowFocus(name); } CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut) { *pOut = ImGui::GetContentRegionAvail(); } CIMGUI_API void igGetContentRegionMax(ImVec2 *pOut) { *pOut = ImGui::GetContentRegionMax(); } CIMGUI_API void igGetWindowContentRegionMin(ImVec2 *pOut) { *pOut = ImGui::GetWindowContentRegionMin(); } CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut) { *pOut = ImGui::GetWindowContentRegionMax(); } CIMGUI_API float igGetScrollX() { return ImGui::GetScrollX(); } CIMGUI_API float igGetScrollY() { return ImGui::GetScrollY(); } CIMGUI_API void igSetScrollX(float scroll_x) { return ImGui::SetScrollX(scroll_x); } CIMGUI_API void igSetScrollY(float scroll_y) { return ImGui::SetScrollY(scroll_y); } CIMGUI_API float igGetScrollMaxX() { return ImGui::GetScrollMaxX(); } CIMGUI_API float igGetScrollMaxY() { return ImGui::GetScrollMaxY(); } 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 igSetScrollFromPosX(float local_x,float center_x_ratio) { return ImGui::SetScrollFromPosX(local_x,center_x_ratio); } CIMGUI_API void igSetScrollFromPosY(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 igPushStyleColor_U32(ImGuiCol idx,ImU32 col) { return ImGui::PushStyleColor(idx,col); } CIMGUI_API void igPushStyleColor_Vec4(ImGuiCol idx,const ImVec4 col) { return ImGui::PushStyleColor(idx,col); } CIMGUI_API void igPopStyleColor(int count) { return ImGui::PopStyleColor(count); } CIMGUI_API void igPushStyleVar_Float(ImGuiStyleVar idx,float val) { return ImGui::PushStyleVar(idx,val); } CIMGUI_API void igPushStyleVar_Vec2(ImGuiStyleVar idx,const ImVec2 val) { return ImGui::PushStyleVar(idx,val); } CIMGUI_API void igPopStyleVar(int count) { return ImGui::PopStyleVar(count); } 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 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 ImFont* igGetFont() { return ImGui::GetFont(); } CIMGUI_API float igGetFontSize() { return ImGui::GetFontSize(); } CIMGUI_API void igGetFontTexUvWhitePixel(ImVec2 *pOut) { *pOut = ImGui::GetFontTexUvWhitePixel(); } CIMGUI_API ImU32 igGetColorU32_Col(ImGuiCol idx,float alpha_mul) { return ImGui::GetColorU32(idx,alpha_mul); } CIMGUI_API ImU32 igGetColorU32_Vec4(const ImVec4 col) { return ImGui::GetColorU32(col); } CIMGUI_API ImU32 igGetColorU32_U32(ImU32 col) { return ImGui::GetColorU32(col); } CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx) { return &ImGui::GetStyleColorVec4(idx); } 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 igPushID_Str(const char* str_id) { return ImGui::PushID(str_id); } CIMGUI_API void igPushID_StrStr(const char* str_id_begin,const char* str_id_end) { return ImGui::PushID(str_id_begin,str_id_end); } CIMGUI_API void igPushID_Ptr(const void* ptr_id) { return ImGui::PushID(ptr_id); } CIMGUI_API void igPushID_Int(int int_id) { return ImGui::PushID(int_id); } CIMGUI_API void igPopID() { return ImGui::PopID(); } CIMGUI_API ImGuiID igGetID_Str(const char* str_id) { return ImGui::GetID(str_id); } CIMGUI_API ImGuiID igGetID_StrStr(const char* str_id_begin,const char* str_id_end) { return ImGui::GetID(str_id_begin,str_id_end); } CIMGUI_API ImGuiID igGetID_Ptr(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 bool igCheckbox(const char* label,bool* v) { return ImGui::Checkbox(label,v); } CIMGUI_API bool igCheckboxFlags_IntPtr(const char* label,int* flags,int flags_value) { return ImGui::CheckboxFlags(label,flags,flags_value); } CIMGUI_API bool igCheckboxFlags_UintPtr(const char* label,unsigned int* flags,unsigned int flags_value) { return ImGui::CheckboxFlags(label,flags,flags_value); } CIMGUI_API bool igRadioButton_Bool(const char* label,bool active) { return ImGui::RadioButton(label,active); } CIMGUI_API bool igRadioButton_IntPtr(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 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(const char* str_id,ImTextureID user_texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col) { return ImGui::ImageButton(str_id,user_texture_id,size,uv0,uv1,bg_col,tint_col); } 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 igCombo_Str_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 igCombo_Str(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 igCombo_FnBoolPtr(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,const ImVec2 size) { return ImGui::ColorButton(desc_id,col,flags,size); } CIMGUI_API void igSetColorEditOptions(ImGuiColorEditFlags flags) { return ImGui::SetColorEditOptions(flags); } CIMGUI_API bool igTreeNode_Str(const char* label) { return ImGui::TreeNode(label); } CIMGUI_API bool igTreeNode_StrStr(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 igTreeNode_Ptr(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 igTreeNodeV_Str(const char* str_id,const char* fmt,va_list args) { return ImGui::TreeNodeV(str_id,fmt,args); } CIMGUI_API bool igTreeNodeV_Ptr(const void* ptr_id,const char* fmt,va_list args) { return ImGui::TreeNodeV(ptr_id,fmt,args); } CIMGUI_API bool igTreeNodeEx_Str(const char* label,ImGuiTreeNodeFlags flags) { return ImGui::TreeNodeEx(label,flags); } CIMGUI_API bool igTreeNodeEx_StrStr(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 igTreeNodeEx_Ptr(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 igTreeNodeExV_Str(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args) { return ImGui::TreeNodeExV(str_id,flags,fmt,args); } CIMGUI_API bool igTreeNodeExV_Ptr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args) { return ImGui::TreeNodeExV(ptr_id,flags,fmt,args); } CIMGUI_API void igTreePush_Str(const char* str_id) { return ImGui::TreePush(str_id); } CIMGUI_API void igTreePush_Ptr(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 igCollapsingHeader_TreeNodeFlags(const char* label,ImGuiTreeNodeFlags flags) { return ImGui::CollapsingHeader(label,flags); } CIMGUI_API bool igCollapsingHeader_BoolPtr(const char* label,bool* p_visible,ImGuiTreeNodeFlags flags) { return ImGui::CollapsingHeader(label,p_visible,flags); } CIMGUI_API void igSetNextItemOpen(bool is_open,ImGuiCond cond) { return ImGui::SetNextItemOpen(is_open,cond); } CIMGUI_API bool igSelectable_Bool(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size) { return ImGui::Selectable(label,selected,flags,size); } CIMGUI_API bool igSelectable_BoolPtr(const char* label,bool* p_selected,ImGuiSelectableFlags flags,const ImVec2 size) { return ImGui::Selectable(label,p_selected,flags,size); } CIMGUI_API bool igBeginListBox(const char* label,const ImVec2 size) { return ImGui::BeginListBox(label,size); } CIMGUI_API void igEndListBox() { return ImGui::EndListBox(); } CIMGUI_API bool igListBox_Str_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 igListBox_FnBoolPtr(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 void igPlotLines_FloatPtr(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 igPlotLines_FnFloatPtr(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 igPlotHistogram_FloatPtr(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 igPlotHistogram_FnFloatPtr(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 igValue_Bool(const char* prefix,bool b) { return ImGui::Value(prefix,b); } CIMGUI_API void igValue_Int(const char* prefix,int v) { return ImGui::Value(prefix,v); } CIMGUI_API void igValue_Uint(const char* prefix,unsigned int v) { return ImGui::Value(prefix,v); } CIMGUI_API void igValue_Float(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 igMenuItem_Bool(const char* label,const char* shortcut,bool selected,bool enabled) { return ImGui::MenuItem(label,shortcut,selected,enabled); } CIMGUI_API bool igMenuItem_BoolPtr(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_Str(const char* str_id,ImGuiPopupFlags popup_flags) { return ImGui::OpenPopup(str_id,popup_flags); } CIMGUI_API void igOpenPopup_ID(ImGuiID id,ImGuiPopupFlags popup_flags) { return ImGui::OpenPopup(id,popup_flags); } CIMGUI_API void igOpenPopupOnItemClick(const char* str_id,ImGuiPopupFlags popup_flags) { return ImGui::OpenPopupOnItemClick(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 igIsPopupOpen(const char* str_id,ImGuiPopupFlags flags) { return ImGui::IsPopupOpen(str_id,flags); } CIMGUI_API bool igBeginTable(const char* str_id,int column,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width) { return ImGui::BeginTable(str_id,column,flags,outer_size,inner_width); } CIMGUI_API void igEndTable() { return ImGui::EndTable(); } CIMGUI_API void igTableNextRow(ImGuiTableRowFlags row_flags,float min_row_height) { return ImGui::TableNextRow(row_flags,min_row_height); } CIMGUI_API bool igTableNextColumn() { return ImGui::TableNextColumn(); } CIMGUI_API bool igTableSetColumnIndex(int column_n) { return ImGui::TableSetColumnIndex(column_n); } CIMGUI_API void igTableSetupColumn(const char* label,ImGuiTableColumnFlags flags,float init_width_or_weight,ImGuiID user_id) { return ImGui::TableSetupColumn(label,flags,init_width_or_weight,user_id); } CIMGUI_API void igTableSetupScrollFreeze(int cols,int rows) { return ImGui::TableSetupScrollFreeze(cols,rows); } CIMGUI_API void igTableHeadersRow() { return ImGui::TableHeadersRow(); } CIMGUI_API void igTableHeader(const char* label) { return ImGui::TableHeader(label); } CIMGUI_API ImGuiTableSortSpecs* igTableGetSortSpecs() { return ImGui::TableGetSortSpecs(); } CIMGUI_API int igTableGetColumnCount() { return ImGui::TableGetColumnCount(); } CIMGUI_API int igTableGetColumnIndex() { return ImGui::TableGetColumnIndex(); } CIMGUI_API int igTableGetRowIndex() { return ImGui::TableGetRowIndex(); } CIMGUI_API const char* igTableGetColumnName(int column_n) { return ImGui::TableGetColumnName(column_n); } CIMGUI_API ImGuiTableColumnFlags igTableGetColumnFlags(int column_n) { return ImGui::TableGetColumnFlags(column_n); } CIMGUI_API void igTableSetColumnEnabled(int column_n,bool v) { return ImGui::TableSetColumnEnabled(column_n,v); } CIMGUI_API void igTableSetBgColor(ImGuiTableBgTarget target,ImU32 color,int column_n) { return ImGui::TableSetBgColor(target,color,column_n); } 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 bool igTabItemButton(const char* label,ImGuiTabItemFlags flags) { return ImGui::TabItemButton(label,flags); } 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 void igLogTextV(const char* fmt,va_list args) { return ImGui::LogTextV(fmt,args); } 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 igBeginDisabled(bool disabled) { return ImGui::BeginDisabled(disabled); } CIMGUI_API void igEndDisabled() { return ImGui::EndDisabled(); } 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 ImGuiID igGetItemID() { return ImGui::GetItemID(); } 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 ImGuiViewport* igGetMainViewport() { return ImGui::GetMainViewport(); } CIMGUI_API ImDrawList* igGetBackgroundDrawList() { return ImGui::GetBackgroundDrawList(); } CIMGUI_API ImDrawList* igGetForegroundDrawList() { return ImGui::GetForegroundDrawList(); } CIMGUI_API bool igIsRectVisible_Nil(const ImVec2 size) { return ImGui::IsRectVisible(size); } CIMGUI_API bool igIsRectVisible_Vec2(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 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 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 bool igIsKeyDown(ImGuiKey key) { return ImGui::IsKeyDown(key); } CIMGUI_API bool igIsKeyPressed(ImGuiKey key,bool repeat) { return ImGui::IsKeyPressed(key,repeat); } CIMGUI_API bool igIsKeyReleased(ImGuiKey key) { return ImGui::IsKeyReleased(key); } CIMGUI_API int igGetKeyPressedAmount(ImGuiKey key,float repeat_delay,float rate) { return ImGui::GetKeyPressedAmount(key,repeat_delay,rate); } CIMGUI_API const char* igGetKeyName(ImGuiKey key) { return ImGui::GetKeyName(key); } CIMGUI_API void igSetNextFrameWantCaptureKeyboard(bool want_capture_keyboard) { return ImGui::SetNextFrameWantCaptureKeyboard(want_capture_keyboard); } 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 int igGetMouseClickedCount(ImGuiMouseButton button) { return ImGui::GetMouseClickedCount(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 igSetNextFrameWantCaptureMouse(bool want_capture_mouse) { return ImGui::SetNextFrameWantCaptureMouse(want_capture_mouse); } 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 void igDebugTextEncoding(const char* text) { return ImGui::DebugTextEncoding(text); } 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(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func,void* user_data) { return ImGui::SetAllocatorFunctions(alloc_func,free_func,user_data); } CIMGUI_API void igGetAllocatorFunctions(ImGuiMemAllocFunc* p_alloc_func,ImGuiMemFreeFunc* p_free_func,void** p_user_data) { return ImGui::GetAllocatorFunctions(p_alloc_func,p_free_func,p_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_AddKeyEvent(ImGuiIO* self,ImGuiKey key,bool down) { return self->AddKeyEvent(key,down); } CIMGUI_API void ImGuiIO_AddKeyAnalogEvent(ImGuiIO* self,ImGuiKey key,bool down,float v) { return self->AddKeyAnalogEvent(key,down,v); } CIMGUI_API void ImGuiIO_AddMousePosEvent(ImGuiIO* self,float x,float y) { return self->AddMousePosEvent(x,y); } CIMGUI_API void ImGuiIO_AddMouseButtonEvent(ImGuiIO* self,int button,bool down) { return self->AddMouseButtonEvent(button,down); } CIMGUI_API void ImGuiIO_AddMouseWheelEvent(ImGuiIO* self,float wh_x,float wh_y) { return self->AddMouseWheelEvent(wh_x,wh_y); } CIMGUI_API void ImGuiIO_AddFocusEvent(ImGuiIO* self,bool focused) { return self->AddFocusEvent(focused); } 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_SetKeyEventNativeData(ImGuiIO* self,ImGuiKey key,int native_keycode,int native_scancode,int native_legacy_index) { return self->SetKeyEventNativeData(key,native_keycode,native_scancode,native_legacy_index); } CIMGUI_API void ImGuiIO_SetAppAcceptingEvents(ImGuiIO* self,bool accepting_events) { return self->SetAppAcceptingEvents(accepting_events); } CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self) { return self->ClearInputCharacters(); } CIMGUI_API void ImGuiIO_ClearInputKeys(ImGuiIO* self) { return self->ClearInputKeys(); } 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 void ImGuiInputTextCallbackData_SelectAll(ImGuiInputTextCallbackData* self) { return self->SelectAll(); } CIMGUI_API void ImGuiInputTextCallbackData_ClearSelection(ImGuiInputTextCallbackData* self) { return self->ClearSelection(); } 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 ImGuiTableColumnSortSpecs* ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs(void) { return IM_NEW(ImGuiTableColumnSortSpecs)(); } CIMGUI_API void ImGuiTableColumnSortSpecs_destroy(ImGuiTableColumnSortSpecs* self) { IM_DELETE(self); } CIMGUI_API ImGuiTableSortSpecs* ImGuiTableSortSpecs_ImGuiTableSortSpecs(void) { return IM_NEW(ImGuiTableSortSpecs)(); } CIMGUI_API void ImGuiTableSortSpecs_destroy(ImGuiTableSortSpecs* self) { IM_DELETE(self); } 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_ImGuiTextRange_Nil(void) { return IM_NEW(ImGuiTextRange)(); } CIMGUI_API void ImGuiTextRange_destroy(ImGuiTextRange* self) { IM_DELETE(self); } CIMGUI_API ImGuiTextRange* ImGuiTextRange_ImGuiTextRange_Str(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_ImGuiStoragePair_Int(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_ImGuiStoragePair_Float(ImGuiID _key,float _val_f) { return IM_NEW(ImGuiStoragePair)(_key,_val_f); } CIMGUI_API ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePair_Ptr(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(void) { return IM_NEW(ImGuiListClipper)(); } CIMGUI_API void ImGuiListClipper_destroy(ImGuiListClipper* self) { IM_DELETE(self); } 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 bool ImGuiListClipper_Step(ImGuiListClipper* self) { return self->Step(); } CIMGUI_API void ImGuiListClipper_ForceDisplayRangeByIndices(ImGuiListClipper* self,int item_min,int item_max) { return self->ForceDisplayRangeByIndices(item_min,item_max); } CIMGUI_API ImColor* ImColor_ImColor_Nil(void) { return IM_NEW(ImColor)(); } CIMGUI_API void ImColor_destroy(ImColor* self) { IM_DELETE(self); } CIMGUI_API ImColor* ImColor_ImColor_Float(float r,float g,float b,float a) { return IM_NEW(ImColor)(r,g,b,a); } CIMGUI_API ImColor* ImColor_ImColor_Vec4(const ImVec4 col) { return IM_NEW(ImColor)(col); } CIMGUI_API ImColor* ImColor_ImColor_Int(int r,int g,int b,int a) { return IM_NEW(ImColor)(r,g,b,a); } CIMGUI_API ImColor* ImColor_ImColor_U32(ImU32 rgba) { return IM_NEW(ImColor)(rgba); } 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 ImTextureID ImDrawCmd_GetTexID(ImDrawCmd* self) { return self->GetTexID(); } 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(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,const ImVec2 clip_rect_min,const 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,ImDrawFlags flags,float thickness) { return self->AddRect(p_min,p_max,col,rounding,flags,thickness); } CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* self,const ImVec2 p_min,const ImVec2 p_max,ImU32 col,float rounding,ImDrawFlags flags) { return self->AddRectFilled(p_min,p_max,col,rounding,flags); } 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_AddText_Vec2(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_AddText_FontPtr(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,ImDrawFlags flags,float thickness) { return self->AddPolyline(points,num_points,col,flags,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_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments) { return self->AddBezierCubic(p1,p2,p3,p4,col,thickness,num_segments); } CIMGUI_API void ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness,int num_segments) { return self->AddBezierQuadratic(p1,p2,p3,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,ImDrawFlags flags) { return self->AddImageRounded(user_texture_id,p_min,p_max,uv_min,uv_max,col,rounding,flags); } 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,ImDrawFlags flags,float thickness) { return self->PathStroke(col,flags,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_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,int num_segments) { return self->PathBezierCubicCurveTo(p2,p3,p4,num_segments); } CIMGUI_API void ImDrawList_PathBezierQuadraticCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,int num_segments) { return self->PathBezierQuadraticCurveTo(p2,p3,num_segments); } CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max,float rounding,ImDrawFlags flags) { return self->PathRect(rect_min,rect_max,rounding,flags); } 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__TryMergeDrawCmds(ImDrawList* self) { return self->_TryMergeDrawCmds(); } 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 int ImDrawList__CalcCircleAutoSegmentCount(ImDrawList* self,float radius) { return self->_CalcCircleAutoSegmentCount(radius); } CIMGUI_API void ImDrawList__PathArcToFastEx(ImDrawList* self,const ImVec2 center,float radius,int a_min_sample,int a_max_sample,int a_step) { return self->_PathArcToFastEx(center,radius,a_min_sample,a_max_sample,a_step); } CIMGUI_API void ImDrawList__PathArcToN(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max,int num_segments) { return self->_PathArcToN(center,radius,a_min,a_max,num_segments); } 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_GetGlyphRangesGreek(ImFontAtlas* self) { return self->GetGlyphRangesGreek(); } 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,const 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,const 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,const 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 bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last) { return self->IsGlyphRangeUnused(c_begin,c_last); } CIMGUI_API ImGuiViewport* ImGuiViewport_ImGuiViewport(void) { return IM_NEW(ImGuiViewport)(); } CIMGUI_API void ImGuiViewport_destroy(ImGuiViewport* self) { IM_DELETE(self); } CIMGUI_API void ImGuiViewport_GetCenter(ImVec2 *pOut,ImGuiViewport* self) { *pOut = self->GetCenter(); } CIMGUI_API void ImGuiViewport_GetWorkCenter(ImVec2 *pOut,ImGuiViewport* self) { *pOut = self->GetWorkCenter(); } CIMGUI_API ImGuiPlatformImeData* ImGuiPlatformImeData_ImGuiPlatformImeData(void) { return IM_NEW(ImGuiPlatformImeData)(); } CIMGUI_API void ImGuiPlatformImeData_destroy(ImGuiPlatformImeData* self) { IM_DELETE(self); } CIMGUI_API ImGuiKey igGetKeyIndex(ImGuiKey key) { return ImGui::GetKeyIndex(key); } /////////////////////////////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 float igGET_FLT_MIN() { return FLT_MIN; } CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() { return IM_NEW(ImVector) (); } 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(); } CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) { p->~ImVector(); } #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