Compare commits

...

22 Commits

Author SHA1 Message Date
sonoro1234
bb4d4848b7 Merge branch 'docking_inter' 1.92.9dock 2026-08-10 12:34:00 +02:00
sonoro1234
2d96a3ed57 cpp2ffi: add forced_nonPOD, skip_template, skip_convert_gen (cimnodes_editor work) 2026-08-09 18:05:55 +02:00
sonoro1234
e48d428b16 cpp2ffi: opaque returns assign to static obj 2026-08-08 10:47:26 +02:00
sonoro1234
eee47a982e cpp2ffi: add VARGS0 to variadic struct functions, dont return on void return 2026-08-04 20:48:40 +02:00
sonoro1234
22bc54470a correct manual code error 2026-08-04 09:01:22 +02:00
sonoro1234
fedb6d334a cpp2ffi: test all overloads for varargs 2026-08-03 22:06:54 +02:00
sonoro1234
9f545f9520 cpp2ffi: add VARGS0 to definitions 2026-08-03 20:57:30 +02:00
sonoro1234
d658cc8699 cpp2ffi: ConvertTo and From take field size 2026-08-03 20:08:01 +02:00
sonoro1234
af684b6cb1 cpp2ffi: manuals not in module go to definitions 2026-08-03 19:29:35 +02:00
sonoro1234
bf9b984ef7 pull imgui 1.92.9bdock 2026-08-01 11:17:00 +02:00
sonoro1234
944385687d add STB_TexteditState 2026-07-30 10:46:20 +02:00
sonoro1234
b705b2465a cpp2ffi: modify argsT skips _c, added size 2026-07-29 10:46:06 +02:00
sonoro1234
1531eea44a AddnonUDT: modify definitions argsT 2026-07-29 10:33:17 +02:00
sonoro1234
4e8fcc1367 Merge branch 'docking_inter' 1.92.9dock 2026-07-28 10:46:05 +02:00
sonoro1234
cd61f1ae57 pull imgui docking 1.92.9 and generate 2026-07-28 10:31:23 +02:00
sonoro1234
053280dfff cpp2ffi: std:string return with static and assign 2026-06-16 20:01:06 +02:00
sonoro1234
8aaa4b624e cpp2ffi: test header if gcc, changes for opaque_structs, std:function with & 2026-06-15 11:51:08 +02:00
sonoro1234
9bffa7632f cpp2ffi: post skipped functions 2026-06-11 12:42:33 +02:00
sonoro1234
e2c1d90128 cpp2ffi: better printing and add const return when :: appears 2026-06-11 12:24:01 +02:00
sonoro1234
64fcbf194b cpp2ffi: explicit str_subst 2026-06-10 19:21:37 +02:00
sonoro1234
fced8c3451 README.md: more update bindings list 2026-06-10 11:52:57 +02:00
sonoro1234
7388e030e8 README.md: update bindings list 2026-06-10 11:23:33 +02:00
20 changed files with 7464 additions and 4430 deletions

View File

@@ -11,7 +11,7 @@ History:
Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit) Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit)
Notes: Notes:
* currently this wrapper is based on version [1.92.8 of Dear ImGui with internal api] * currently this wrapper is based on version [1.92.9b of Dear ImGui with internal api]
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped. * only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
* if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project. * if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project.
* All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty. * All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty.
@@ -106,10 +106,15 @@ Notes:
# example bindings based on cimgui # example bindings based on cimgui
* [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) * [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui)
* [cimgui-go](https://github.com/AllenDang/cimgui-go)
* [Hexa.NET.ImGui](https://github.com/HexaEngine/Hexa.NET.ImGui)
* [EvergineTeam/ImGui](https://github.com/EvergineTeam/ImGui.Net)
* [dear-imgui-rs](https://github.com/Latias94/dear-imgui-rs)
* [CImGui.jl](https://github.com/Gnimuc/CImGui.jl)
* [ImGui.NET](https://github.com/mellinoe/ImGui.NET) * [ImGui.NET](https://github.com/mellinoe/ImGui.NET)
* [Zig-ImGui](https://github.com/SpexGuy/Zig-ImGui)
* [nimgl/imgui](https://github.com/nimgl/imgui) * [nimgl/imgui](https://github.com/nimgl/imgui)
* [kotlin-imgui](https://github.com/Dominaezzz/kotlin-imgui) * [kotlin-imgui](https://github.com/Dominaezzz/kotlin-imgui)
* [CImGui.jl](https://github.com/Gnimuc/CImGui.jl)
* [odin-imgui](https://github.com/ThisDrunkDane/odin-imgui) * [odin-imgui](https://github.com/ThisDrunkDane/odin-imgui)
* [DerelictImgui](https://github.com/Extrawurst/DerelictImgui) * [DerelictImgui](https://github.com/Extrawurst/DerelictImgui)
* [BindBC-CimGui](https://github.com/MrcSnm/bindbc-cimgui) * [BindBC-CimGui](https://github.com/MrcSnm/bindbc-cimgui)

View File

@@ -1,5 +1,5 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.92.8" 19280 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.92.9b" 19291 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api //with imgui_freetype.h api
@@ -650,7 +650,7 @@ CIMGUI_API void igText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igText0(const char* fmt) CIMGUI_API void igText0(const char* fmt)
{ {
return igText(fmt); igText(fmt);
} }
#endif #endif
CIMGUI_API void igTextV(const char* fmt,va_list args) CIMGUI_API void igTextV(const char* fmt,va_list args)
@@ -667,7 +667,7 @@ CIMGUI_API void igTextColored(const ImVec4_c col,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextColored0(const ImVec4_c col,const char* fmt) CIMGUI_API void igTextColored0(const ImVec4_c col,const char* fmt)
{ {
return igTextColored(col,fmt); igTextColored(col,fmt);
} }
#endif #endif
CIMGUI_API void igTextColoredV(const ImVec4_c col,const char* fmt,va_list args) CIMGUI_API void igTextColoredV(const ImVec4_c col,const char* fmt,va_list args)
@@ -684,7 +684,7 @@ CIMGUI_API void igTextDisabled(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextDisabled0(const char* fmt) CIMGUI_API void igTextDisabled0(const char* fmt)
{ {
return igTextDisabled(fmt); igTextDisabled(fmt);
} }
#endif #endif
CIMGUI_API void igTextDisabledV(const char* fmt,va_list args) CIMGUI_API void igTextDisabledV(const char* fmt,va_list args)
@@ -701,7 +701,7 @@ CIMGUI_API void igTextWrapped(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextWrapped0(const char* fmt) CIMGUI_API void igTextWrapped0(const char* fmt)
{ {
return igTextWrapped(fmt); igTextWrapped(fmt);
} }
#endif #endif
CIMGUI_API void igTextWrappedV(const char* fmt,va_list args) CIMGUI_API void igTextWrappedV(const char* fmt,va_list args)
@@ -718,7 +718,7 @@ CIMGUI_API void igLabelText(const char* label,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igLabelText0(const char* label,const char* fmt) CIMGUI_API void igLabelText0(const char* label,const char* fmt)
{ {
return igLabelText(label,fmt); igLabelText(label,fmt);
} }
#endif #endif
CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args) CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args)
@@ -735,7 +735,7 @@ CIMGUI_API void igBulletText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igBulletText0(const char* fmt) CIMGUI_API void igBulletText0(const char* fmt)
{ {
return igBulletText(fmt); igBulletText(fmt);
} }
#endif #endif
CIMGUI_API void igBulletTextV(const char* fmt,va_list args) CIMGUI_API void igBulletTextV(const char* fmt,va_list args)
@@ -1010,10 +1010,6 @@ CIMGUI_API bool igColorButton(const char* desc_id,const ImVec4_c col,ImGuiColorE
{ {
return ImGui::ColorButton(desc_id,ConvertToCPP_ImVec4(col),flags,ConvertToCPP_ImVec2(size)); return ImGui::ColorButton(desc_id,ConvertToCPP_ImVec4(col),flags,ConvertToCPP_ImVec2(size));
} }
CIMGUI_API void igSetColorEditOptions(ImGuiColorEditFlags flags)
{
return ImGui::SetColorEditOptions(flags);
}
CIMGUI_API bool igTreeNode_Str(const char* label) CIMGUI_API bool igTreeNode_Str(const char* label)
{ {
return ImGui::TreeNode(label); return ImGui::TreeNode(label);
@@ -1252,7 +1248,7 @@ CIMGUI_API void igSetTooltip(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igSetTooltip0(const char* fmt) CIMGUI_API void igSetTooltip0(const char* fmt)
{ {
return igSetTooltip(fmt); igSetTooltip(fmt);
} }
#endif #endif
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args) CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
@@ -1273,7 +1269,7 @@ CIMGUI_API void igSetItemTooltip(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igSetItemTooltip0(const char* fmt) CIMGUI_API void igSetItemTooltip0(const char* fmt)
{ {
return igSetItemTooltip(fmt); igSetItemTooltip(fmt);
} }
#endif #endif
CIMGUI_API void igSetItemTooltipV(const char* fmt,va_list args) CIMGUI_API void igSetItemTooltipV(const char* fmt,va_list args)
@@ -1292,15 +1288,15 @@ CIMGUI_API void igEndPopup()
{ {
return ImGui::EndPopup(); return ImGui::EndPopup();
} }
CIMGUI_API void igOpenPopup_Str(const char* str_id,ImGuiPopupFlags popup_flags) CIMGUI_API bool igOpenPopup_Str(const char* str_id,ImGuiPopupFlags popup_flags)
{ {
return ImGui::OpenPopup(str_id,popup_flags); return ImGui::OpenPopup(str_id,popup_flags);
} }
CIMGUI_API void igOpenPopup_ID(ImGuiID id,ImGuiPopupFlags popup_flags) CIMGUI_API bool igOpenPopup_ID(ImGuiID id,ImGuiPopupFlags popup_flags)
{ {
return ImGui::OpenPopup(id,popup_flags); return ImGui::OpenPopup(id,popup_flags);
} }
CIMGUI_API void igOpenPopupOnItemClick(const char* str_id,ImGuiPopupFlags popup_flags) CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,ImGuiPopupFlags popup_flags)
{ {
return ImGui::OpenPopupOnItemClick(str_id,popup_flags); return ImGui::OpenPopupOnItemClick(str_id,popup_flags);
} }
@@ -1344,9 +1340,9 @@ CIMGUI_API bool igTableSetColumnIndex(int column_n)
{ {
return ImGui::TableSetColumnIndex(column_n); return ImGui::TableSetColumnIndex(column_n);
} }
CIMGUI_API void igTableSetupColumn(const char* label,ImGuiTableColumnFlags flags,float init_width_or_weight,ImGuiID user_id) CIMGUI_API void igTableSetupColumn(const char* label,ImGuiTableColumnFlags flags,float init_width_or_weight,ImGuiID user_data)
{ {
return ImGui::TableSetupColumn(label,flags,init_width_or_weight,user_id); return ImGui::TableSetupColumn(label,flags,init_width_or_weight,user_data);
} }
CIMGUI_API void igTableSetupScrollFreeze(int cols,int rows) CIMGUI_API void igTableSetupScrollFreeze(int cols,int rows)
{ {
@@ -1486,7 +1482,7 @@ CIMGUI_API void igLogText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igLogText0(const char* fmt) CIMGUI_API void igLogText0(const char* fmt)
{ {
return igLogText(fmt); igLogText(fmt);
} }
#endif #endif
CIMGUI_API void igLogTextV(const char* fmt,va_list args) CIMGUI_API void igLogTextV(const char* fmt,va_list args)
@@ -1625,6 +1621,10 @@ CIMGUI_API ImGuiItemFlags igGetItemFlags()
{ {
return ImGui::GetItemFlags(); return ImGui::GetItemFlags();
} }
CIMGUI_API int igGetItemClickedCountWithSingleClickDelay(ImGuiMouseButton mouse_button,float delay)
{
return ImGui::GetItemClickedCountWithSingleClickDelay(mouse_button,delay);
}
CIMGUI_API ImGuiViewport* igGetMainViewport() CIMGUI_API ImGuiViewport* igGetMainViewport()
{ {
return ImGui::GetMainViewport(); return ImGui::GetMainViewport();
@@ -1847,7 +1847,7 @@ CIMGUI_API void igDebugLog(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igDebugLog0(const char* fmt) CIMGUI_API void igDebugLog0(const char* fmt)
{ {
return igDebugLog(fmt); igDebugLog(fmt);
} }
#endif #endif
CIMGUI_API void igDebugLogV(const char* fmt,va_list args) CIMGUI_API void igDebugLogV(const char* fmt,va_list args)
@@ -2822,14 +2822,6 @@ CIMGUI_API void ImFontAtlas_RemoveFont(ImFontAtlas* self,ImFont* font)
{ {
return self->RemoveFont(font); return self->RemoveFont(font);
} }
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
{
return self->Clear();
}
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
{
return self->ClearFonts();
}
CIMGUI_API void ImFontAtlas_CompactCache(ImFontAtlas* self) CIMGUI_API void ImFontAtlas_CompactCache(ImFontAtlas* self)
{ {
return self->CompactCache(); return self->CompactCache();
@@ -2838,6 +2830,14 @@ CIMGUI_API void ImFontAtlas_SetFontLoader(ImFontAtlas* self,const ImFontLoader*
{ {
return self->SetFontLoader(font_loader); return self->SetFontLoader(font_loader);
} }
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
{
return self->Clear();
}
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
{
return self->ClearFonts();
}
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self) CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self)
{ {
return self->ClearInputData(); return self->ClearInputData();
@@ -3114,7 +3114,7 @@ CIMGUI_API void igImFormatStringToTempBuffer(const char** out_buf,const char** o
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igImFormatStringToTempBuffer0(const char** out_buf,const char** out_buf_end,const char* fmt) CIMGUI_API void igImFormatStringToTempBuffer0(const char** out_buf,const char** out_buf_end,const char* fmt)
{ {
return igImFormatStringToTempBuffer(out_buf,out_buf_end,fmt); igImFormatStringToTempBuffer(out_buf,out_buf_end,fmt);
} }
#endif #endif
CIMGUI_API void igImFormatStringToTempBufferV(const char** out_buf,const char** out_buf_end,const char* fmt,va_list args) CIMGUI_API void igImFormatStringToTempBufferV(const char** out_buf,const char** out_buf_end,const char* fmt,va_list args)
@@ -3345,6 +3345,10 @@ CIMGUI_API float igImRound64(float f)
{ {
return ImRound64(f); return ImRound64(f);
} }
CIMGUI_API float igImCeilFast(float f)
{
return ImCeilFast(f);
}
CIMGUI_API int igImModPositive(int a,int b) CIMGUI_API int igImModPositive(int a,int b)
{ {
return ImModPositive(a,b); return ImModPositive(a,b);
@@ -3649,6 +3653,30 @@ CIMGUI_API void ImGuiTextIndex_append(ImGuiTextIndex* self,const char* base,int
{ {
return self->append(base,old_size,new_size); return self->append(base,old_size,new_size);
} }
CIMGUI_API ImGuiPackedDate* ImGuiPackedDate_ImGuiPackedDate_Nil(void)
{
return IM_NEW(ImGuiPackedDate)();
}
CIMGUI_API void ImGuiPackedDate_destroy(ImGuiPackedDate* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiPackedDate* ImGuiPackedDate_ImGuiPackedDate_Int(int yyyymmdd)
{
return IM_NEW(ImGuiPackedDate)(yyyymmdd);
}
CIMGUI_API bool ImGuiPackedDate_IsValid(ImGuiPackedDate* self)
{
return self->IsValid();
}
CIMGUI_API int ImGuiPackedDate_Unpack(ImGuiPackedDate* self)
{
return self->Unpack();
}
CIMGUI_API void ImGuiPackedDate_SubtractMonths(ImGuiPackedDate* self,int m)
{
return self->SubtractMonths(m);
}
CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key) CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key)
{ {
return ImLowerBound(in_begin,in_end,key); return ImLowerBound(in_begin,in_end,key);
@@ -4209,6 +4237,286 @@ CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiT
{ {
return self->GetColumnSettings(); return self->GetColumnSettings();
} }
CIMGUI_API void igTableOpenContextMenu(int column_n)
{
return ImGui::TableOpenContextMenu(column_n);
}
CIMGUI_API void igTableSetColumnWidth(int column_n,float width)
{
return ImGui::TableSetColumnWidth(column_n,width);
}
CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection sort_direction,bool append_to_sort_specs)
{
return ImGui::TableSetColumnSortDirection(column_n,sort_direction,append_to_sort_specs);
}
CIMGUI_API int igTableGetHoveredRow()
{
return ImGui::TableGetHoveredRow();
}
CIMGUI_API float igTableGetHeaderRowHeight()
{
return ImGui::TableGetHeaderRowHeight();
}
CIMGUI_API float igTableGetHeaderAngledMaxLabelWidth()
{
return ImGui::TableGetHeaderAngledMaxLabelWidth();
}
CIMGUI_API void igTablePushBackgroundChannel()
{
return ImGui::TablePushBackgroundChannel();
}
CIMGUI_API void igTablePopBackgroundChannel()
{
return ImGui::TablePopBackgroundChannel();
}
CIMGUI_API void igTablePushColumnChannel(int column_n)
{
return ImGui::TablePushColumnChannel(column_n);
}
CIMGUI_API void igTablePopColumnChannel()
{
return ImGui::TablePopColumnChannel();
}
CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count)
{
return ImGui::TableAngledHeadersRowEx(row_id,angle,max_label_width,data,data_count);
}
CIMGUI_API ImGuiTable* igGetCurrentTable()
{
return ImGui::GetCurrentTable();
}
CIMGUI_API ImGuiTable* igTableFindByID(ImGuiID id)
{
return ImGui::TableFindByID(id);
}
CIMGUI_API bool igBeginTableEx(const char* name,ImGuiID id,int columns_count,ImGuiTableFlags flags,const ImVec2_c outer_size,float inner_width)
{
return ImGui::BeginTableEx(name,id,columns_count,flags,ConvertToCPP_ImVec2(outer_size),inner_width);
}
CIMGUI_API void igTableBeginInitMemory(ImGuiTable* table,int columns_count)
{
return ImGui::TableBeginInitMemory(table,columns_count);
}
CIMGUI_API void igTableApplyQueuedRequests(ImGuiTable* table)
{
return ImGui::TableApplyQueuedRequests(table);
}
CIMGUI_API void igTableSetupDrawChannels(ImGuiTable* table)
{
return ImGui::TableSetupDrawChannels(table);
}
CIMGUI_API void igTableReconcileColumns(ImGuiTable* table)
{
return ImGui::TableReconcileColumns(table);
}
CIMGUI_API void igTableUpdateLayout(ImGuiTable* table)
{
return ImGui::TableUpdateLayout(table);
}
CIMGUI_API void igTableUpdateBorders(ImGuiTable* table)
{
return ImGui::TableUpdateBorders(table);
}
CIMGUI_API void igTableUpdateColumnsWeightFromWidth(ImGuiTable* table)
{
return ImGui::TableUpdateColumnsWeightFromWidth(table);
}
CIMGUI_API void igTableApplyExternalUnclipRect(ImGuiTable* table,ImRect* rect)
{
return ImGui::TableApplyExternalUnclipRect(table,*rect);
}
CIMGUI_API void igTableDrawBorders(ImGuiTable* table)
{
return ImGui::TableDrawBorders(table);
}
CIMGUI_API void igTableDrawDefaultContextMenu(ImGuiTable* table,ImGuiTableFlags flags_for_section_to_display)
{
return ImGui::TableDrawDefaultContextMenu(table,flags_for_section_to_display);
}
CIMGUI_API bool igTableBeginContextMenuPopup(ImGuiTable* table)
{
return ImGui::TableBeginContextMenuPopup(table);
}
CIMGUI_API void igTableMergeDrawChannels(ImGuiTable* table)
{
return ImGui::TableMergeDrawChannels(table);
}
CIMGUI_API ImGuiTableInstanceData* igTableGetInstanceData(ImGuiTable* table,int instance_no)
{
return ImGui::TableGetInstanceData(table,instance_no);
}
CIMGUI_API ImGuiID igTableGetInstanceID(ImGuiTable* table,int instance_no)
{
return ImGui::TableGetInstanceID(table,instance_no);
}
CIMGUI_API void igTableFixDisplayOrder(ImGuiTable* table)
{
return ImGui::TableFixDisplayOrder(table);
}
CIMGUI_API void igTableSortSpecsSanitize(ImGuiTable* table)
{
return ImGui::TableSortSpecsSanitize(table);
}
CIMGUI_API void igTableSortSpecsBuild(ImGuiTable* table)
{
return ImGui::TableSortSpecsBuild(table);
}
CIMGUI_API void igTableInitColumnDefaults(ImGuiTable* table,ImGuiTableColumn* column,ImGuiTableColumnFlags init_mask)
{
return ImGui::TableInitColumnDefaults(table,column,init_mask);
}
CIMGUI_API ImGuiSortDirection igTableGetColumnNextSortDirection(ImGuiTableColumn* column)
{
return ImGui::TableGetColumnNextSortDirection(column);
}
CIMGUI_API void igTableFixColumnSortDirection(ImGuiTable* table,ImGuiTableColumn* column)
{
return ImGui::TableFixColumnSortDirection(table,column);
}
CIMGUI_API float igTableGetColumnWidthAuto(ImGuiTable* table,ImGuiTableColumn* column)
{
return ImGui::TableGetColumnWidthAuto(table,column);
}
CIMGUI_API void igTableBeginRow(ImGuiTable* table)
{
return ImGui::TableBeginRow(table);
}
CIMGUI_API void igTableEndRow(ImGuiTable* table)
{
return ImGui::TableEndRow(table);
}
CIMGUI_API void igTableBeginCell(ImGuiTable* table,int column_n)
{
return ImGui::TableBeginCell(table,column_n);
}
CIMGUI_API void igTableEndCell(ImGuiTable* table)
{
return ImGui::TableEndCell(table);
}
CIMGUI_API ImRect_c igTableGetCellBgRect(const ImGuiTable* table,int column_n)
{
return ConvertFromCPP_ImRect(ImGui::TableGetCellBgRect(table,column_n));
}
CIMGUI_API const char* igTableGetColumnName_TablePtr(const ImGuiTable* table,int column_n)
{
return ImGui::TableGetColumnName(table,column_n);
}
CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int instance_no)
{
return ImGui::TableGetColumnResizeID(table,column_n,instance_no);
}
CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n)
{
return ImGui::TableCalcMaxColumnWidth(table,column_n);
}
CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n)
{
return ImGui::TableSetColumnWidthAutoSingle(table,column_n);
}
CIMGUI_API void igTableSetColumnWidthAutoAll(ImGuiTable* table)
{
return ImGui::TableSetColumnWidthAutoAll(table);
}
CIMGUI_API void igTableSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order)
{
return ImGui::TableSetColumnDisplayOrder(table,column_n,dst_order);
}
CIMGUI_API void igTableQueueSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order)
{
return ImGui::TableQueueSetColumnDisplayOrder(table,column_n,dst_order);
}
CIMGUI_API void igTableRemove(ImGuiTable* table)
{
return ImGui::TableRemove(table);
}
CIMGUI_API void igTableGcCompactTransientBuffers_TablePtr(ImGuiTable* table)
{
return ImGui::TableGcCompactTransientBuffers(table);
}
CIMGUI_API void igTableGcCompactTransientBuffers_TableTempDataPtr(ImGuiTableTempData* table)
{
return ImGui::TableGcCompactTransientBuffers(table);
}
CIMGUI_API void igTableGcCompactSettings()
{
return ImGui::TableGcCompactSettings();
}
CIMGUI_API void igTableLoadSettings(ImGuiTable* table)
{
return ImGui::TableLoadSettings(table);
}
CIMGUI_API void igTableLoadSettingsForColumns(ImGuiTable* table)
{
return ImGui::TableLoadSettingsForColumns(table);
}
CIMGUI_API void igTableLoadSettingsForColumn(ImGuiTableColumn* column,ImGuiTableColumnSettings* column_settings,ImGuiTableFlags load_flags)
{
return ImGui::TableLoadSettingsForColumn(column,column_settings,load_flags);
}
CIMGUI_API void igTableSaveSettings(ImGuiTable* table)
{
return ImGui::TableSaveSettings(table);
}
CIMGUI_API void igTableResetSettings(ImGuiTable* table)
{
return ImGui::TableResetSettings(table);
}
CIMGUI_API ImGuiTableSettings* igTableGetBoundSettings(ImGuiTable* table)
{
return ImGui::TableGetBoundSettings(table);
}
CIMGUI_API void igTableSettingsAddSettingsHandler()
{
return ImGui::TableSettingsAddSettingsHandler();
}
CIMGUI_API ImGuiTableSettings* igTableSettingsCreate(ImGuiID id,int columns_count)
{
return ImGui::TableSettingsCreate(id,columns_count);
}
CIMGUI_API ImGuiTableSettings* igTableSettingsFindByID(ImGuiID id)
{
return ImGui::TableSettingsFindByID(id);
}
CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect_c clip_rect)
{
return ImGui::SetWindowClipRectBeforeSetChannel(window,ConvertToCPP_ImRect(clip_rect));
}
CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiOldColumnFlags 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 ImGuiOldColumns* igFindOrCreateColumns(ImGuiWindow* window,ImGuiID id)
{
return ImGui::FindOrCreateColumns(window,id);
}
CIMGUI_API float igGetColumnOffsetFromNorm(const ImGuiOldColumns* columns,float offset_norm)
{
return ImGui::GetColumnOffsetFromNorm(columns,offset_norm);
}
CIMGUI_API float igGetColumnNormFromOffset(const ImGuiOldColumns* columns,float offset)
{
return ImGui::GetColumnNormFromOffset(columns,offset);
}
CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx) CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx)
{ {
return &ImGui::GetIO(ctx); return &ImGui::GetIO(ctx);
@@ -4485,6 +4793,10 @@ CIMGUI_API void igClearIniSettings()
{ {
return ImGui::ClearIniSettings(); return ImGui::ClearIniSettings();
} }
CIMGUI_API void igCleanupIniSettings(ImGuiSettingsCleanupArgs* args)
{
return ImGui::CleanupIniSettings(args);
}
CIMGUI_API void igAddSettingsHandler(const ImGuiSettingsHandler* handler) CIMGUI_API void igAddSettingsHandler(const ImGuiSettingsHandler* handler)
{ {
return ImGui::AddSettingsHandler(handler); return ImGui::AddSettingsHandler(handler);
@@ -4697,7 +5009,7 @@ CIMGUI_API bool igBeginPopupMenuEx(ImGuiID id,const char* label,ImGuiWindowFlags
{ {
return ImGui::BeginPopupMenuEx(id,label,extra_window_flags); return ImGui::BeginPopupMenuEx(id,label,extra_window_flags);
} }
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags) CIMGUI_API bool igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags)
{ {
return ImGui::OpenPopupEx(id,popup_flags); return ImGui::OpenPopupEx(id,popup_flags);
} }
@@ -5093,9 +5405,9 @@ CIMGUI_API void igMultiSelectItemHeader(ImGuiID id,bool* p_selected,ImGuiButtonF
{ {
return ImGui::MultiSelectItemHeader(id,p_selected,p_button_flags); return ImGui::MultiSelectItemHeader(id,p_selected,p_button_flags);
} }
CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed) CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed,ImGuiMultiSelectFlags extra_flags)
{ {
return ImGui::MultiSelectItemFooter(id,p_selected,p_pressed); return ImGui::MultiSelectItemFooter(id,p_selected,p_pressed,extra_flags);
} }
CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected) CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected)
{ {
@@ -5113,270 +5425,6 @@ CIMGUI_API ImGuiMultiSelectState* igGetMultiSelectState(ImGuiID id)
{ {
return ImGui::GetMultiSelectState(id); return ImGui::GetMultiSelectState(id);
} }
CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect_c clip_rect)
{
return ImGui::SetWindowClipRectBeforeSetChannel(window,ConvertToCPP_ImRect(clip_rect));
}
CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiOldColumnFlags 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 ImGuiOldColumns* igFindOrCreateColumns(ImGuiWindow* window,ImGuiID id)
{
return ImGui::FindOrCreateColumns(window,id);
}
CIMGUI_API float igGetColumnOffsetFromNorm(const ImGuiOldColumns* columns,float offset_norm)
{
return ImGui::GetColumnOffsetFromNorm(columns,offset_norm);
}
CIMGUI_API float igGetColumnNormFromOffset(const ImGuiOldColumns* columns,float offset)
{
return ImGui::GetColumnNormFromOffset(columns,offset);
}
CIMGUI_API void igTableOpenContextMenu(int column_n)
{
return ImGui::TableOpenContextMenu(column_n);
}
CIMGUI_API void igTableSetColumnWidth(int column_n,float width)
{
return ImGui::TableSetColumnWidth(column_n,width);
}
CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection sort_direction,bool append_to_sort_specs)
{
return ImGui::TableSetColumnSortDirection(column_n,sort_direction,append_to_sort_specs);
}
CIMGUI_API int igTableGetHoveredRow()
{
return ImGui::TableGetHoveredRow();
}
CIMGUI_API float igTableGetHeaderRowHeight()
{
return ImGui::TableGetHeaderRowHeight();
}
CIMGUI_API float igTableGetHeaderAngledMaxLabelWidth()
{
return ImGui::TableGetHeaderAngledMaxLabelWidth();
}
CIMGUI_API void igTablePushBackgroundChannel()
{
return ImGui::TablePushBackgroundChannel();
}
CIMGUI_API void igTablePopBackgroundChannel()
{
return ImGui::TablePopBackgroundChannel();
}
CIMGUI_API void igTablePushColumnChannel(int column_n)
{
return ImGui::TablePushColumnChannel(column_n);
}
CIMGUI_API void igTablePopColumnChannel()
{
return ImGui::TablePopColumnChannel();
}
CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count)
{
return ImGui::TableAngledHeadersRowEx(row_id,angle,max_label_width,data,data_count);
}
CIMGUI_API ImGuiTable* igGetCurrentTable()
{
return ImGui::GetCurrentTable();
}
CIMGUI_API ImGuiTable* igTableFindByID(ImGuiID id)
{
return ImGui::TableFindByID(id);
}
CIMGUI_API bool igBeginTableEx(const char* name,ImGuiID id,int columns_count,ImGuiTableFlags flags,const ImVec2_c outer_size,float inner_width)
{
return ImGui::BeginTableEx(name,id,columns_count,flags,ConvertToCPP_ImVec2(outer_size),inner_width);
}
CIMGUI_API void igTableBeginInitMemory(ImGuiTable* table,int columns_count)
{
return ImGui::TableBeginInitMemory(table,columns_count);
}
CIMGUI_API void igTableBeginApplyRequests(ImGuiTable* table)
{
return ImGui::TableBeginApplyRequests(table);
}
CIMGUI_API void igTableSetupDrawChannels(ImGuiTable* table)
{
return ImGui::TableSetupDrawChannels(table);
}
CIMGUI_API void igTableUpdateLayout(ImGuiTable* table)
{
return ImGui::TableUpdateLayout(table);
}
CIMGUI_API void igTableUpdateBorders(ImGuiTable* table)
{
return ImGui::TableUpdateBorders(table);
}
CIMGUI_API void igTableUpdateColumnsWeightFromWidth(ImGuiTable* table)
{
return ImGui::TableUpdateColumnsWeightFromWidth(table);
}
CIMGUI_API void igTableApplyExternalUnclipRect(ImGuiTable* table,ImRect* rect)
{
return ImGui::TableApplyExternalUnclipRect(table,*rect);
}
CIMGUI_API void igTableDrawBorders(ImGuiTable* table)
{
return ImGui::TableDrawBorders(table);
}
CIMGUI_API void igTableDrawDefaultContextMenu(ImGuiTable* table,ImGuiTableFlags flags_for_section_to_display)
{
return ImGui::TableDrawDefaultContextMenu(table,flags_for_section_to_display);
}
CIMGUI_API bool igTableBeginContextMenuPopup(ImGuiTable* table)
{
return ImGui::TableBeginContextMenuPopup(table);
}
CIMGUI_API void igTableMergeDrawChannels(ImGuiTable* table)
{
return ImGui::TableMergeDrawChannels(table);
}
CIMGUI_API ImGuiTableInstanceData* igTableGetInstanceData(ImGuiTable* table,int instance_no)
{
return ImGui::TableGetInstanceData(table,instance_no);
}
CIMGUI_API ImGuiID igTableGetInstanceID(ImGuiTable* table,int instance_no)
{
return ImGui::TableGetInstanceID(table,instance_no);
}
CIMGUI_API void igTableFixDisplayOrder(ImGuiTable* table)
{
return ImGui::TableFixDisplayOrder(table);
}
CIMGUI_API void igTableSortSpecsSanitize(ImGuiTable* table)
{
return ImGui::TableSortSpecsSanitize(table);
}
CIMGUI_API void igTableSortSpecsBuild(ImGuiTable* table)
{
return ImGui::TableSortSpecsBuild(table);
}
CIMGUI_API ImGuiSortDirection igTableGetColumnNextSortDirection(ImGuiTableColumn* column)
{
return ImGui::TableGetColumnNextSortDirection(column);
}
CIMGUI_API void igTableFixColumnSortDirection(ImGuiTable* table,ImGuiTableColumn* column)
{
return ImGui::TableFixColumnSortDirection(table,column);
}
CIMGUI_API float igTableGetColumnWidthAuto(ImGuiTable* table,ImGuiTableColumn* column)
{
return ImGui::TableGetColumnWidthAuto(table,column);
}
CIMGUI_API void igTableBeginRow(ImGuiTable* table)
{
return ImGui::TableBeginRow(table);
}
CIMGUI_API void igTableEndRow(ImGuiTable* table)
{
return ImGui::TableEndRow(table);
}
CIMGUI_API void igTableBeginCell(ImGuiTable* table,int column_n)
{
return ImGui::TableBeginCell(table,column_n);
}
CIMGUI_API void igTableEndCell(ImGuiTable* table)
{
return ImGui::TableEndCell(table);
}
CIMGUI_API ImRect_c igTableGetCellBgRect(const ImGuiTable* table,int column_n)
{
return ConvertFromCPP_ImRect(ImGui::TableGetCellBgRect(table,column_n));
}
CIMGUI_API const char* igTableGetColumnName_TablePtr(const ImGuiTable* table,int column_n)
{
return ImGui::TableGetColumnName(table,column_n);
}
CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int instance_no)
{
return ImGui::TableGetColumnResizeID(table,column_n,instance_no);
}
CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n)
{
return ImGui::TableCalcMaxColumnWidth(table,column_n);
}
CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n)
{
return ImGui::TableSetColumnWidthAutoSingle(table,column_n);
}
CIMGUI_API void igTableSetColumnWidthAutoAll(ImGuiTable* table)
{
return ImGui::TableSetColumnWidthAutoAll(table);
}
CIMGUI_API void igTableSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order)
{
return ImGui::TableSetColumnDisplayOrder(table,column_n,dst_order);
}
CIMGUI_API void igTableQueueSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order)
{
return ImGui::TableQueueSetColumnDisplayOrder(table,column_n,dst_order);
}
CIMGUI_API void igTableRemove(ImGuiTable* table)
{
return ImGui::TableRemove(table);
}
CIMGUI_API void igTableGcCompactTransientBuffers_TablePtr(ImGuiTable* table)
{
return ImGui::TableGcCompactTransientBuffers(table);
}
CIMGUI_API void igTableGcCompactTransientBuffers_TableTempDataPtr(ImGuiTableTempData* table)
{
return ImGui::TableGcCompactTransientBuffers(table);
}
CIMGUI_API void igTableGcCompactSettings()
{
return ImGui::TableGcCompactSettings();
}
CIMGUI_API void igTableLoadSettings(ImGuiTable* table)
{
return ImGui::TableLoadSettings(table);
}
CIMGUI_API void igTableSaveSettings(ImGuiTable* table)
{
return ImGui::TableSaveSettings(table);
}
CIMGUI_API void igTableResetSettings(ImGuiTable* table)
{
return ImGui::TableResetSettings(table);
}
CIMGUI_API ImGuiTableSettings* igTableGetBoundSettings(ImGuiTable* table)
{
return ImGui::TableGetBoundSettings(table);
}
CIMGUI_API void igTableSettingsAddSettingsHandler()
{
return ImGui::TableSettingsAddSettingsHandler();
}
CIMGUI_API ImGuiTableSettings* igTableSettingsCreate(ImGuiID id,int columns_count)
{
return ImGui::TableSettingsCreate(id,columns_count);
}
CIMGUI_API ImGuiTableSettings* igTableSettingsFindByID(ImGuiID id)
{
return ImGui::TableSettingsFindByID(id);
}
CIMGUI_API ImGuiTabBar* igGetCurrentTabBar() CIMGUI_API ImGuiTabBar* igGetCurrentTabBar()
{ {
return ImGui::GetCurrentTabBar(); return ImGui::GetCurrentTabBar();
@@ -5501,9 +5549,9 @@ CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImV
{ {
return ImGui::RenderColorRectWithAlphaCheckerboard(draw_list,ConvertToCPP_ImVec2(p_min),ConvertToCPP_ImVec2(p_max),fill_col,grid_step,ConvertToCPP_ImVec2(grid_off),rounding,flags); return ImGui::RenderColorRectWithAlphaCheckerboard(draw_list,ConvertToCPP_ImVec2(p_min),ConvertToCPP_ImVec2(p_max),fill_col,grid_step,ConvertToCPP_ImVec2(grid_off),rounding,flags);
} }
CIMGUI_API void igRenderNavCursor(const ImRect_c bb,ImGuiID id,ImGuiNavRenderCursorFlags flags) CIMGUI_API void igRenderNavCursor(const ImRect_c bb,ImGuiID id,ImGuiNavRenderCursorFlags flags,float rounding)
{ {
return ImGui::RenderNavCursor(ConvertToCPP_ImRect(bb),id,flags); return ImGui::RenderNavCursor(ConvertToCPP_ImRect(bb),id,flags,rounding);
} }
CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end) CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end)
{ {
@@ -5555,7 +5603,7 @@ CIMGUI_API void igTextAligned(float align_x,float size_x,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextAligned0(float align_x,float size_x,const char* fmt) CIMGUI_API void igTextAligned0(float align_x,float size_x,const char* fmt)
{ {
return igTextAligned(align_x,size_x,fmt); igTextAligned(align_x,size_x,fmt);
} }
#endif #endif
CIMGUI_API void igTextAlignedV(float align_x,float size_x,const char* fmt,va_list args) CIMGUI_API void igTextAlignedV(float align_x,float size_x,const char* fmt,va_list args)
@@ -5902,9 +5950,9 @@ CIMGUI_API void igDebugNodeTable(ImGuiTable* table)
{ {
return ImGui::DebugNodeTable(table); return ImGui::DebugNodeTable(table);
} }
CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings) CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings,ImGuiTable* table)
{ {
return ImGui::DebugNodeTableSettings(settings); return ImGui::DebugNodeTableSettings(settings,table);
} }
CIMGUI_API void igDebugNodeInputTextState(ImGuiInputTextState* state) CIMGUI_API void igDebugNodeInputTextState(ImGuiInputTextState* state)
{ {
@@ -6178,6 +6226,10 @@ CIMGUI_API void igImFontAtlasTextureBlockQueueUpload(ImFontAtlas* atlas,ImTextur
{ {
return ImFontAtlasTextureBlockQueueUpload(atlas,tex,x,y,w,h); return ImFontAtlasTextureBlockQueueUpload(atlas,tex,x,y,w,h);
} }
CIMGUI_API bool igImTextureDataUpdateNewFrame(ImTextureData* tex)
{
return ImTextureDataUpdateNewFrame(tex);
}
CIMGUI_API void igImTextureDataQueueUpload(ImTextureData* tex,int x,int y,int w,int h) CIMGUI_API void igImTextureDataQueueUpload(ImTextureData* tex,int x,int y,int w,int h)
{ {
return ImTextureDataQueueUpload(tex,x,y,w,h); return ImTextureDataQueueUpload(tex,x,y,w,h);
@@ -6231,6 +6283,12 @@ CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt,
self->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt)
{
ImGuiTextBuffer_appendf(self,fmt);
}
#endif
CIMGUI_API float igGET_FLT_MAX() CIMGUI_API float igGET_FLT_MAX()
{ {

359
cimgui.h
View File

@@ -1,5 +1,5 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.92.8" 19280 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.92.9b" 19291 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api //with imgui_freetype.h api
#ifndef CIMGUI_INCLUDED #ifndef CIMGUI_INCLUDED
@@ -46,6 +46,12 @@ typedef unsigned __int64 ImU64;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImColor_c ImColor;
typedef struct ImRect_c ImRect;
typedef struct ImTextureRef_c ImTextureRef;
typedef struct ImVec2_c ImVec2;
typedef struct ImVec2i_c ImVec2i;
typedef struct ImVec4_c ImVec4;
typedef struct ImDrawChannel ImDrawChannel; typedef struct ImDrawChannel ImDrawChannel;
typedef struct ImDrawCmd ImDrawCmd; typedef struct ImDrawCmd ImDrawCmd;
@@ -91,6 +97,7 @@ typedef struct ImGuiViewport ImGuiViewport;
typedef struct ImBitVector ImBitVector; typedef struct ImBitVector ImBitVector;
typedef struct ImRect_c ImRect_c; typedef struct ImRect_c ImRect_c;
typedef struct ImGuiTextIndex ImGuiTextIndex; typedef struct ImGuiTextIndex ImGuiTextIndex;
typedef struct ImGuiPackedDate ImGuiPackedDate;
typedef struct ImDrawDataBuilder ImDrawDataBuilder; typedef struct ImDrawDataBuilder ImDrawDataBuilder;
typedef struct ImFontAtlasPostProcessData ImFontAtlasPostProcessData; typedef struct ImFontAtlasPostProcessData ImFontAtlasPostProcessData;
typedef struct ImFontAtlasRectEntry ImFontAtlasRectEntry; typedef struct ImFontAtlasRectEntry ImFontAtlasRectEntry;
@@ -310,6 +317,9 @@ typedef enum {
ImGuiItemFlags_AutoClosePopups = 1 << 4, ImGuiItemFlags_AutoClosePopups = 1 << 4,
ImGuiItemFlags_AllowDuplicateId = 1 << 5, ImGuiItemFlags_AllowDuplicateId = 1 << 5,
ImGuiItemFlags_Disabled = 1 << 6, ImGuiItemFlags_Disabled = 1 << 6,
ImGuiItemFlags_LiveEditOnInputText = 1 << 7,
ImGuiItemFlags_LiveEditOnInputScalar = 1 << 8,
ImGuiItemFlags_LiveEditOnInput = ImGuiItemFlags_LiveEditOnInputText | ImGuiItemFlags_LiveEditOnInputScalar,
}ImGuiItemFlags_; }ImGuiItemFlags_;
typedef enum { typedef enum {
ImGuiInputTextFlags_None = 0, ImGuiInputTextFlags_None = 0,
@@ -799,6 +809,8 @@ typedef enum {
ImGuiStyleVar_TableAngledHeadersTextAlign, ImGuiStyleVar_TableAngledHeadersTextAlign,
ImGuiStyleVar_TreeLinesSize, ImGuiStyleVar_TreeLinesSize,
ImGuiStyleVar_TreeLinesRounding, ImGuiStyleVar_TreeLinesRounding,
ImGuiStyleVar_MenuItemRounding,
ImGuiStyleVar_SelectableRounding,
ImGuiStyleVar_DragDropTargetRounding, ImGuiStyleVar_DragDropTargetRounding,
ImGuiStyleVar_ButtonTextAlign, ImGuiStyleVar_ButtonTextAlign,
ImGuiStyleVar_SelectableTextAlign, ImGuiStyleVar_SelectableTextAlign,
@@ -842,8 +854,9 @@ typedef enum {
ImGuiColorEditFlags_Float = 1 << 24, ImGuiColorEditFlags_Float = 1 << 24,
ImGuiColorEditFlags_PickerHueBar = 1 << 25, ImGuiColorEditFlags_PickerHueBar = 1 << 25,
ImGuiColorEditFlags_PickerHueWheel = 1 << 26, ImGuiColorEditFlags_PickerHueWheel = 1 << 26,
ImGuiColorEditFlags_InputRGB = 1 << 27, ImGuiColorEditFlags_PickerNoRotate = 1 << 27,
ImGuiColorEditFlags_InputHSV = 1 << 28, ImGuiColorEditFlags_InputRGB = 1 << 28,
ImGuiColorEditFlags_InputHSV = 1 << 29,
ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar, ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar,
ImGuiColorEditFlags_AlphaMask_ = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf, ImGuiColorEditFlags_AlphaMask_ = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf,
ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex, ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex,
@@ -1038,6 +1051,8 @@ struct ImGuiStyle
ImGuiTreeNodeFlags TreeLinesFlags; ImGuiTreeNodeFlags TreeLinesFlags;
float TreeLinesSize; float TreeLinesSize;
float TreeLinesRounding; float TreeLinesRounding;
float MenuItemRounding;
float SelectableRounding;
float DragDropTargetRounding; float DragDropTargetRounding;
float DragDropTargetBorderSize; float DragDropTargetBorderSize;
float DragDropTargetPadding; float DragDropTargetPadding;
@@ -1045,6 +1060,7 @@ struct ImGuiStyle
ImGuiDir ColorButtonPosition; ImGuiDir ColorButtonPosition;
ImVec2_c ButtonTextAlign; ImVec2_c ButtonTextAlign;
ImVec2_c SelectableTextAlign; ImVec2_c SelectableTextAlign;
float InputTextCursorSize;
float SeparatorSize; float SeparatorSize;
float SeparatorTextBorderSize; float SeparatorTextBorderSize;
ImVec2_c SeparatorTextAlign; ImVec2_c SeparatorTextAlign;
@@ -1096,19 +1112,24 @@ struct ImGuiIO
bool ConfigNavEscapeClearFocusWindow; bool ConfigNavEscapeClearFocusWindow;
bool ConfigNavCursorVisibleAuto; bool ConfigNavCursorVisibleAuto;
bool ConfigNavCursorVisibleAlways; bool ConfigNavCursorVisibleAlways;
bool MouseDrawCursor;
bool ConfigMacOSXBehaviors; bool ConfigMacOSXBehaviors;
bool ConfigInputTrickleEventQueue; bool ConfigInputTrickleEventQueue;
bool ConfigInputTextCursorBlink; bool ConfigInputTextCursorBlink;
bool ConfigInputTextEnterKeepActive; bool ConfigInputTextEnterKeepActive;
ImGuiColorEditFlags ConfigColorEditFlags;
bool ConfigDragClickToInputText; bool ConfigDragClickToInputText;
bool ConfigWindowsResizeFromEdges; bool ConfigWindowsResizeFromEdges;
bool ConfigWindowsMoveFromTitleBarOnly; bool ConfigWindowsMoveFromTitleBarOnly;
bool ConfigWindowsCopyContentsWithCtrlC; bool ConfigWindowsCopyContentsWithCtrlC;
bool ConfigScrollbarScrollByPage; bool ConfigScrollbarScrollByPage;
bool ConfigIniSettingsSaveLastUsedDate;
int ConfigIniSettingsAutoDiscardMonths;
bool ConfigDebugIniSettings;
bool MouseDrawCursor;
float ConfigMemoryCompactTimer; float ConfigMemoryCompactTimer;
float MouseDoubleClickTime; float MouseDoubleClickTime;
float MouseDoubleClickMaxDist; float MouseDoubleClickMaxDist;
float MouseSingleClickDelay;
float MouseDragThreshold; float MouseDragThreshold;
float KeyRepeatDelay; float KeyRepeatDelay;
float KeyRepeatRate; float KeyRepeatRate;
@@ -1122,7 +1143,6 @@ struct ImGuiIO
bool ConfigDebugBeginReturnValueOnce; bool ConfigDebugBeginReturnValueOnce;
bool ConfigDebugBeginReturnValueLoop; bool ConfigDebugBeginReturnValueLoop;
bool ConfigDebugIgnoreFocusLoss; bool ConfigDebugIgnoreFocusLoss;
bool ConfigDebugIniSettings;
const char* BackendPlatformName; const char* BackendPlatformName;
const char* BackendRendererName; const char* BackendRendererName;
void* BackendPlatformUserData; void* BackendPlatformUserData;
@@ -1291,6 +1311,7 @@ typedef enum {
ImGuiMultiSelectFlags_NavWrapX = 1 << 16, ImGuiMultiSelectFlags_NavWrapX = 1 << 16,
ImGuiMultiSelectFlags_NoSelectOnRightClick = 1 << 17, ImGuiMultiSelectFlags_NoSelectOnRightClick = 1 << 17,
ImGuiMultiSelectFlags_SelectOnMask_ = ImGuiMultiSelectFlags_SelectOnAuto | ImGuiMultiSelectFlags_SelectOnClickAlways | ImGuiMultiSelectFlags_SelectOnClickRelease, ImGuiMultiSelectFlags_SelectOnMask_ = ImGuiMultiSelectFlags_SelectOnAuto | ImGuiMultiSelectFlags_SelectOnClickAlways | ImGuiMultiSelectFlags_SelectOnClickRelease,
ImGuiMultiSelectFlags_CheckboxMode_ = 1 << 20,
}ImGuiMultiSelectFlags_; }ImGuiMultiSelectFlags_;
typedef struct ImVector_ImGuiSelectionRequest {int Size;int Capacity;ImGuiSelectionRequest* Data;} ImVector_ImGuiSelectionRequest; typedef struct ImVector_ImGuiSelectionRequest {int Size;int Capacity;ImGuiSelectionRequest* Data;} ImVector_ImGuiSelectionRequest;
@@ -1381,15 +1402,15 @@ typedef enum {
ImDrawFlags_RoundCornersBottomLeft = 1 << 6, ImDrawFlags_RoundCornersBottomLeft = 1 << 6,
ImDrawFlags_RoundCornersBottomRight = 1 << 7, ImDrawFlags_RoundCornersBottomRight = 1 << 7,
ImDrawFlags_RoundCornersNone = 1 << 8, ImDrawFlags_RoundCornersNone = 1 << 8,
ImDrawFlags_Closed = 1 << 9, ImDrawFlags_RoundCornersAll = ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
ImDrawFlags_RoundCornersDefault_ = ImDrawFlags_RoundCornersAll,
ImDrawFlags_RoundCornersTop = ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight, ImDrawFlags_RoundCornersTop = ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight,
ImDrawFlags_RoundCornersBottom = ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight, ImDrawFlags_RoundCornersBottom = ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
ImDrawFlags_RoundCornersLeft = ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft, ImDrawFlags_RoundCornersLeft = ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft,
ImDrawFlags_RoundCornersRight = ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight, ImDrawFlags_RoundCornersRight = ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight,
ImDrawFlags_RoundCornersAll = ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
ImDrawFlags_RoundCornersDefault_ = ImDrawFlags_RoundCornersAll,
ImDrawFlags_RoundCornersMask_ = ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone, ImDrawFlags_RoundCornersMask_ = ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone,
ImDrawFlags_InvalidMask_ = (ImDrawFlags)0x8000000F, ImDrawFlags_Closed = 1 << 9,
ImDrawFlags_InvalidMask_ = ~0x7FFFFFF0,
}ImDrawFlags_; }ImDrawFlags_;
typedef enum { typedef enum {
ImDrawListFlags_None = 0, ImDrawListFlags_None = 0,
@@ -1397,6 +1418,7 @@ typedef enum {
ImDrawListFlags_AntiAliasedLinesUseTex = 1 << 1, ImDrawListFlags_AntiAliasedLinesUseTex = 1 << 1,
ImDrawListFlags_AntiAliasedFill = 1 << 2, ImDrawListFlags_AntiAliasedFill = 1 << 2,
ImDrawListFlags_AllowVtxOffset = 1 << 3, ImDrawListFlags_AllowVtxOffset = 1 << 3,
ImDrawListFlags_TextNoPixelSnap = 1 << 4,
}ImDrawListFlags_; }ImDrawListFlags_;
typedef struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert; typedef struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert;
@@ -1434,7 +1456,7 @@ typedef struct ImVector_ImTextureDataPtr {int Size;int Capacity;ImTextureData**
struct ImDrawData struct ImDrawData
{ {
bool Valid; bool Valid;
int CmdListsCount; int FrameCount;
int TotalIdxCount; int TotalIdxCount;
int TotalVtxCount; int TotalVtxCount;
ImVector_ImDrawListPtr CmdLists; ImVector_ImDrawListPtr CmdLists;
@@ -1467,6 +1489,7 @@ struct ImTextureData
int UniqueID; int UniqueID;
ImTextureStatus Status; ImTextureStatus Status;
void* BackendUserData; void* BackendUserData;
void* QueueUserData;
ImTextureID TexID; ImTextureID TexID;
ImTextureFormat Format; ImTextureFormat Format;
int Width; int Width;
@@ -1655,6 +1678,7 @@ struct ImGuiPlatformIO
void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data);
void* Platform_ImeUserData; void* Platform_ImeUserData;
ImWchar Platform_LocaleDecimalPoint; ImWchar Platform_LocaleDecimalPoint;
int Platform_SessionDate;
int Renderer_TextureMaxWidth; int Renderer_TextureMaxWidth;
int Renderer_TextureMaxHeight; int Renderer_TextureMaxHeight;
void* Renderer_RenderState; void* Renderer_RenderState;
@@ -1674,6 +1698,7 @@ struct ImGuiPlatformImeData
struct ImBitVector; struct ImBitVector;
struct ImRect_c; struct ImRect_c;
struct ImGuiTextIndex; struct ImGuiTextIndex;
struct ImGuiPackedDate;
struct ImDrawDataBuilder; struct ImDrawDataBuilder;
struct ImDrawListSharedData; struct ImDrawListSharedData;
struct ImFontAtlasBuilder; struct ImFontAtlasBuilder;
@@ -1783,6 +1808,12 @@ struct ImGuiTextIndex
ImVector_int Offsets; ImVector_int Offsets;
int EndOffset; int EndOffset;
}; };
struct ImGuiPackedDate
{
ImU16 Year : 7;
ImU16 Month : 4;
ImU16 Day : 5;
};
struct ImDrawListSharedData struct ImDrawListSharedData
{ {
ImVec2_c TexUvWhitePixel; ImVec2_c TexUvWhitePixel;
@@ -1792,7 +1823,7 @@ struct ImDrawListSharedData
float FontSize; float FontSize;
float FontScale; float FontScale;
float CurveTessellationTol; float CurveTessellationTol;
float CircleSegmentMaxError; float CircleTessellationMaxError;
float InitialFringeScale; float InitialFringeScale;
ImDrawListFlags InitialFlags; ImDrawListFlags InitialFlags;
ImVec4_c ClipRectFullscreen; ImVec4_c ClipRectFullscreen;
@@ -1858,7 +1889,7 @@ typedef enum {
ImGuiItemFlags_Inputable = 1 << 20, ImGuiItemFlags_Inputable = 1 << 20,
ImGuiItemFlags_HasSelectionUserData = 1 << 21, ImGuiItemFlags_HasSelectionUserData = 1 << 21,
ImGuiItemFlags_IsMultiSelect = 1 << 22, ImGuiItemFlags_IsMultiSelect = 1 << 22,
ImGuiItemFlags_Default_ = ImGuiItemFlags_AutoClosePopups, ImGuiItemFlags_Default_ = ImGuiItemFlags_AutoClosePopups | ImGuiItemFlags_LiveEditOnInputText,
}ImGuiItemFlagsPrivate_; }ImGuiItemFlagsPrivate_;
typedef enum { typedef enum {
ImGuiItemStatusFlags_None = 0, ImGuiItemStatusFlags_None = 0,
@@ -1988,7 +2019,7 @@ struct ImGuiGroupData
ImVec2_c BackupCurrLineSize; ImVec2_c BackupCurrLineSize;
float BackupCurrLineTextBaseOffset; float BackupCurrLineTextBaseOffset;
ImGuiID BackupActiveIdIsAlive; ImGuiID BackupActiveIdIsAlive;
bool BackupActiveIdHasBeenEditedThisFrame; bool BackupAnyIdHasBeenEditedThisFrame;
bool BackupDeactivatedIdIsAlive; bool BackupDeactivatedIdIsAlive;
bool BackupHoveredIdIsAlive; bool BackupHoveredIdIsAlive;
bool BackupIsSameLine; bool BackupIsSameLine;
@@ -2009,6 +2040,7 @@ typedef struct ImGuiInputTextDeactivatedState ImGuiInputTextDeactivatedState;
struct ImGuiInputTextDeactivatedState struct ImGuiInputTextDeactivatedState
{ {
ImGuiID ID; ImGuiID ID;
int ElapseFrame;
ImVector_char TextA; ImVector_char TextA;
}; struct STB_TexteditState; }; struct STB_TexteditState;
typedef STB_TexteditState ImStbTexteditState; typedef STB_TexteditState ImStbTexteditState;
@@ -2095,7 +2127,7 @@ typedef enum {
struct ImGuiNextItemData struct ImGuiNextItemData
{ {
ImGuiNextItemDataFlags HasFlags; ImGuiNextItemDataFlags HasFlags;
ImGuiItemFlags ItemFlags; ImGuiItemFlags ItemFlagsSet;
ImGuiID FocusScopeId; ImGuiID FocusScopeId;
ImGuiSelectionUserData SelectionUserData; ImGuiSelectionUserData SelectionUserData;
float Width; float Width;
@@ -2347,7 +2379,6 @@ typedef enum {
ImGuiNavRenderCursorFlags_None = 0, ImGuiNavRenderCursorFlags_None = 0,
ImGuiNavRenderCursorFlags_Compact = 1 << 1, ImGuiNavRenderCursorFlags_Compact = 1 << 1,
ImGuiNavRenderCursorFlags_AlwaysDraw = 1 << 2, ImGuiNavRenderCursorFlags_AlwaysDraw = 1 << 2,
ImGuiNavRenderCursorFlags_NoRounding = 1 << 3,
}ImGuiNavRenderCursorFlags_; }ImGuiNavRenderCursorFlags_;
typedef enum { typedef enum {
ImGuiNavMoveFlags_None = 0, ImGuiNavMoveFlags_None = 0,
@@ -2486,6 +2517,7 @@ struct ImGuiMultiSelectTempData
bool NavIdPassedBy; bool NavIdPassedBy;
bool RangeSrcPassedBy; bool RangeSrcPassedBy;
bool RangeDstPassedBy; bool RangeDstPassedBy;
bool IsSoleOrUnknownSelectionSize;
}; };
struct ImGuiMultiSelectState struct ImGuiMultiSelectState
{ {
@@ -2516,10 +2548,22 @@ struct ImGuiWindowSettings
ImGuiID ID; ImGuiID ID;
ImVec2ih Pos; ImVec2ih Pos;
ImVec2ih Size; ImVec2ih Size;
bool Collapsed; ImGuiPackedDate LastUsedDate;
bool IsChild; bool Collapsed : 1;
bool WantApply; bool IsChild : 1;
bool WantDelete; bool WantApply : 1;
bool WantDelete : 1;
};
typedef struct ImGuiSettingsCleanupArgs ImGuiSettingsCleanupArgs;
struct ImGuiSettingsCleanupArgs
{
ImGuiID TypeHashFilter;
int DiscardOlderThanMonths;
bool DiscardWhenMissingDate;
bool DiscardAll;
bool SetCurrentSessionDateToAll;
bool SetCurrentSessionDateWhenMissingDate;
int _DiscardOlderThanDate;
}; };
struct ImGuiSettingsHandler struct ImGuiSettingsHandler
{ {
@@ -2538,13 +2582,15 @@ ImGuiLocKey_VersionStr=0,
ImGuiLocKey_TableSizeOne=1, ImGuiLocKey_TableSizeOne=1,
ImGuiLocKey_TableSizeAllFit=2, ImGuiLocKey_TableSizeAllFit=2,
ImGuiLocKey_TableSizeAllDefault=3, ImGuiLocKey_TableSizeAllDefault=3,
ImGuiLocKey_TableResetOrder=4, ImGuiLocKey_TableReset=4,
ImGuiLocKey_WindowingMainMenuBar=5, ImGuiLocKey_TableResetOrder=5,
ImGuiLocKey_WindowingPopup=6, ImGuiLocKey_TableResetVisibility=6,
ImGuiLocKey_WindowingUntitled=7, ImGuiLocKey_WindowingMainMenuBar=7,
ImGuiLocKey_OpenLink_s=8, ImGuiLocKey_WindowingPopup=8,
ImGuiLocKey_CopyLink=9, ImGuiLocKey_WindowingUntitled=9,
ImGuiLocKey_COUNT=10, ImGuiLocKey_OpenLink_s=10,
ImGuiLocKey_CopyLink=11,
ImGuiLocKey_COUNT=12,
}ImGuiLocKey; }ImGuiLocKey;
struct ImGuiLocEntry struct ImGuiLocEntry
{ {
@@ -2566,7 +2612,8 @@ typedef enum {
ImGuiDebugLogFlags_EventInputRouting = 1 << 9, ImGuiDebugLogFlags_EventInputRouting = 1 << 9,
ImGuiDebugLogFlags_EventDocking = 1 << 10, ImGuiDebugLogFlags_EventDocking = 1 << 10,
ImGuiDebugLogFlags_EventViewport = 1 << 11, ImGuiDebugLogFlags_EventViewport = 1 << 11,
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventError | ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventFont | ImGuiDebugLogFlags_EventInputRouting | ImGuiDebugLogFlags_EventDocking | ImGuiDebugLogFlags_EventViewport, ImGuiDebugLogFlags_EventTable = 1 << 12,
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventError | ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventTable | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventFont | ImGuiDebugLogFlags_EventInputRouting | ImGuiDebugLogFlags_EventDocking | ImGuiDebugLogFlags_EventViewport,
ImGuiDebugLogFlags_OutputToTTY = 1 << 20, ImGuiDebugLogFlags_OutputToTTY = 1 << 20,
ImGuiDebugLogFlags_OutputToDebugger = 1 << 21, ImGuiDebugLogFlags_OutputToDebugger = 1 << 21,
ImGuiDebugLogFlags_OutputToTestEngine = 1 << 22, ImGuiDebugLogFlags_OutputToTestEngine = 1 << 22,
@@ -2601,6 +2648,8 @@ struct ImGuiMetricsConfig
int ShowTablesRectsType; int ShowTablesRectsType;
int HighlightMonitorIdx; int HighlightMonitorIdx;
ImGuiID HighlightViewportID; ImGuiID HighlightViewportID;
int SettingsDiscardMonths;
bool SettingsHighlightOldEntries;
bool ShowFontPreview; bool ShowFontPreview;
}; };
typedef struct ImGuiStackLevelInfo ImGuiStackLevelInfo; typedef struct ImGuiStackLevelInfo ImGuiStackLevelInfo;
@@ -2764,10 +2813,13 @@ struct ImGuiContext
bool HoveredIdAllowOverlap; bool HoveredIdAllowOverlap;
bool HoveredIdIsDisabled; bool HoveredIdIsDisabled;
bool ItemUnclipByLog; bool ItemUnclipByLog;
bool AnyIdHasBeenEditedThisFrame;
ImGuiID ActiveId; ImGuiID ActiveId;
ImGuiID ActiveIdIsAlive; ImGuiID ActiveIdIsAlive;
float ActiveIdTimer; float ActiveIdTimer;
bool ActiveIdIsJustActivated; bool ActiveIdIsJustActivated;
bool ActiveIdWasSelected;
bool ActiveIdWasSoleSelected;
bool ActiveIdAllowOverlap; bool ActiveIdAllowOverlap;
bool ActiveIdNoClearOnFocusLoss; bool ActiveIdNoClearOnFocusLoss;
bool ActiveIdHasBeenPressedBefore; bool ActiveIdHasBeenPressedBefore;
@@ -2784,6 +2836,8 @@ struct ImGuiContext
ImGuiDataTypeStorage ActiveIdValueOnActivation; ImGuiDataTypeStorage ActiveIdValueOnActivation;
ImGuiID LastActiveId; ImGuiID LastActiveId;
float LastActiveIdTimer; float LastActiveIdTimer;
bool LastActiveIdWasSelected;
bool LastActiveIdWasSoleSelected;
double LastKeyModsChangeTime; double LastKeyModsChangeTime;
double LastKeyModsChangeFromNoneTime; double LastKeyModsChangeFromNoneTime;
double LastKeyboardKeyPressTime; double LastKeyboardKeyPressTime;
@@ -2935,7 +2989,6 @@ struct ImGuiContext
ImGuiDataTypeStorage DataTypeZeroValue; ImGuiDataTypeStorage DataTypeZeroValue;
int BeginMenuDepth; int BeginMenuDepth;
int BeginComboDepth; int BeginComboDepth;
ImGuiColorEditFlags ColorEditOptions;
ImGuiID ColorEditCurrentID; ImGuiID ColorEditCurrentID;
ImGuiID ColorEditSavedID; ImGuiID ColorEditSavedID;
float ColorEditSavedHue; float ColorEditSavedHue;
@@ -2963,6 +3016,7 @@ struct ImGuiContext
ImGuiPlatformImeData PlatformImeData; ImGuiPlatformImeData PlatformImeData;
ImGuiPlatformImeData PlatformImeDataPrev; ImGuiPlatformImeData PlatformImeDataPrev;
ImVector_ImTextureDataPtr UserTextures; ImVector_ImTextureDataPtr UserTextures;
ImGuiPackedDate SessionDate;
bool SettingsLoaded; bool SettingsLoaded;
float SettingsDirtyTimer; float SettingsDirtyTimer;
ImGuiTextBuffer SettingsIniData; ImGuiTextBuffer SettingsIniData;
@@ -3251,7 +3305,8 @@ struct ImGuiTableColumn
float StretchWeight; float StretchWeight;
float InitStretchWeightOrWidth; float InitStretchWeightOrWidth;
ImRect_c ClipRect; ImRect_c ClipRect;
ImGuiID UserID; ImGuiID ID;
ImGuiID UserData;
float WorkMinX; float WorkMinX;
float WorkMaxX; float WorkMaxX;
float ItemWidth; float ItemWidth;
@@ -3275,15 +3330,31 @@ struct ImGuiTableColumn
bool IsVisibleY; bool IsVisibleY;
bool IsRequestOutput; bool IsRequestOutput;
bool IsSkipItems; bool IsSkipItems;
bool IsPreserveWidthAuto; bool IsPreserveWidthAuto : 1;
bool IsJustCreated : 1;
bool IsLoadedSettings : 1;
bool IsNeedReconcileSrc : 1;
bool IsNeedReconcileDst : 1;
ImS8 NavLayerCurrent; ImS8 NavLayerCurrent;
ImU8 AutoFitQueue; ImU8 AutoFitQueue : 4;
ImU8 CannotSkipItemsQueue; ImU8 CannotSkipItemsQueue : 4;
ImU8 SortDirection : 2; ImU8 SortDirection : 2;
ImU8 SortDirectionsAvailCount : 2; ImU8 SortDirectionsAvailCount : 2;
ImU8 SortDirectionsAvailMask : 4; ImU8 SortDirectionsAvailMask : 4;
ImU8 SortDirectionsAvailList; ImU8 SortDirectionsAvailList;
}; };
typedef struct ImGuiTableReconcileColumnData ImGuiTableReconcileColumnData;
struct ImGuiTableReconcileColumnData
{
ImGuiID ID;
ImS16 NameOffset;
ImGuiTableColumnFlags Flags;
float InitWidthOrWeight;
ImGuiID UserData;
ImGuiTableColumnIdx ColumnNewIdx;
ImGuiTableColumnIdx ColumnOldIdx;
ImGuiTableColumn ColumnOldData;
};
typedef struct ImGuiTableCellData ImGuiTableCellData; typedef struct ImGuiTableCellData ImGuiTableCellData;
struct ImGuiTableCellData struct ImGuiTableCellData
{ {
@@ -3415,6 +3486,7 @@ struct ImGuiTable
bool IsLayoutLocked; bool IsLayoutLocked;
bool IsInsideRow; bool IsInsideRow;
bool IsInitializing; bool IsInitializing;
bool IsReconcileMode;
bool IsSortSpecsDirty; bool IsSortSpecsDirty;
bool IsUsingHeaders; bool IsUsingHeaders;
bool IsContextPopupOpen; bool IsContextPopupOpen;
@@ -3422,8 +3494,10 @@ struct ImGuiTable
bool IsSettingsRequestLoad; bool IsSettingsRequestLoad;
bool IsSettingsDirty; bool IsSettingsDirty;
bool IsDefaultDisplayOrder; bool IsDefaultDisplayOrder;
bool IsDefaultVisibility;
bool IsResetAllRequest; bool IsResetAllRequest;
bool IsResetDisplayOrderRequest; bool IsResetDisplayOrderRequest;
bool IsResetVisibilityRequest;
bool IsUnfrozenRows; bool IsUnfrozenRows;
bool IsDefaultSizingPolicy; bool IsDefaultSizingPolicy;
bool IsActiveIdAliveBeforeTable; bool IsActiveIdAliveBeforeTable;
@@ -3435,6 +3509,8 @@ struct ImGuiTable
}; };
typedef struct ImVector_ImGuiTableHeaderData {int Size;int Capacity;ImGuiTableHeaderData* Data;} ImVector_ImGuiTableHeaderData; typedef struct ImVector_ImGuiTableHeaderData {int Size;int Capacity;ImGuiTableHeaderData* Data;} ImVector_ImGuiTableHeaderData;
typedef struct ImVector_ImGuiTableReconcileColumnData {int Size;int Capacity;ImGuiTableReconcileColumnData* Data;} ImVector_ImGuiTableReconcileColumnData;
struct ImGuiTableTempData struct ImGuiTableTempData
{ {
ImGuiID WindowID; ImGuiID WindowID;
@@ -3442,6 +3518,9 @@ struct ImGuiTableTempData
float LastTimeActive; float LastTimeActive;
float AngledHeadersExtraWidth; float AngledHeadersExtraWidth;
ImVector_ImGuiTableHeaderData AngledHeadersRequests; ImVector_ImGuiTableHeaderData AngledHeadersRequests;
ImVector_ImGuiTableReconcileColumnData ReconcileColumnsRequests;
void* OldColumnsRawData;
ImSpan_ImGuiTableColumn OldColumnsData;
ImVec2_c UserOuterSize; ImVec2_c UserOuterSize;
ImDrawListSplitter DrawSplitter; ImDrawListSplitter DrawSplitter;
ImRect_c HostBackupWorkRect; ImRect_c HostBackupWorkRect;
@@ -3457,13 +3536,14 @@ typedef struct ImGuiTableColumnSettings ImGuiTableColumnSettings;
struct ImGuiTableColumnSettings struct ImGuiTableColumnSettings
{ {
float WidthOrWeight; float WidthOrWeight;
ImGuiID UserID; ImGuiID ID;
ImGuiTableColumnIdx Index; ImGuiTableColumnIdx Index;
ImGuiTableColumnIdx DisplayOrder; ImGuiTableColumnIdx DisplayOrder;
ImGuiTableColumnIdx SortOrder; ImGuiTableColumnIdx SortOrder;
ImU8 SortDirection : 2; ImU8 SortDirection : 2;
ImS8 IsEnabled : 2; ImS8 IsEnabled : 2;
ImU8 IsStretch : 1; ImU8 IsStretch : 1;
bool IsLoaded : 1;
}; };
struct ImGuiTableSettings struct ImGuiTableSettings
{ {
@@ -3472,7 +3552,8 @@ struct ImGuiTableSettings
float RefScale; float RefScale;
ImGuiTableColumnIdx ColumnsCount; ImGuiTableColumnIdx ColumnsCount;
ImGuiTableColumnIdx ColumnsCountMax; ImGuiTableColumnIdx ColumnsCountMax;
bool WantApply; ImGuiPackedDate LastUsedDate;
bool WantApply : 1;
}; };
struct ImFontLoader struct ImFontLoader
{ {
@@ -3543,6 +3624,45 @@ struct ImFontAtlasBuilder
ImFontAtlasRectId PackIdMouseCursors; ImFontAtlasRectId PackIdMouseCursors;
ImFontAtlasRectId PackIdLinesTexData; ImFontAtlasRectId PackIdLinesTexData;
}; };
typedef struct StbUndoRecord StbUndoRecord;
struct StbUndoRecord
{
int where;
int insert_length;
int delete_length;
int char_storage;
};
typedef struct StbUndoState StbUndoState;
struct StbUndoState
{
StbUndoRecord undo_rec [99];
char undo_char[999];
short undo_point, redo_point;
int undo_char_point, redo_char_point;
};
struct STB_TexteditState
{
int cursor;
int select_start;
int select_end;
unsigned char insert_mode;
int row_count_per_page;
unsigned char cursor_at_end_of_line;
unsigned char initialized;
unsigned char has_preferred_x;
unsigned char single_line;
unsigned char padding1, padding2, padding3;
float preferred_x;
StbUndoState undostate;
};
typedef struct StbTexteditRow StbTexteditRow;
struct StbTexteditRow
{
float x0,x1;
float baseline_y_delta;
float ymin,ymax;
int num_chars;
};
#ifdef IMGUI_ENABLE_FREETYPE #ifdef IMGUI_ENABLE_FREETYPE
struct ImFontAtlas; struct ImFontAtlas;
struct ImFontLoader; struct ImFontLoader;
@@ -3661,6 +3781,7 @@ typedef ImVector<ImGuiTabItem> ImVector_ImGuiTabItem;
typedef ImVector<ImGuiTableColumnSortSpecs> ImVector_ImGuiTableColumnSortSpecs; typedef ImVector<ImGuiTableColumnSortSpecs> ImVector_ImGuiTableColumnSortSpecs;
typedef ImVector<ImGuiTableHeaderData> ImVector_ImGuiTableHeaderData; typedef ImVector<ImGuiTableHeaderData> ImVector_ImGuiTableHeaderData;
typedef ImVector<ImGuiTableInstanceData> ImVector_ImGuiTableInstanceData; typedef ImVector<ImGuiTableInstanceData> ImVector_ImGuiTableInstanceData;
typedef ImVector<ImGuiTableReconcileColumnData> ImVector_ImGuiTableReconcileColumnData;
typedef ImVector<ImGuiTableTempData> ImVector_ImGuiTableTempData; typedef ImVector<ImGuiTableTempData> ImVector_ImGuiTableTempData;
typedef ImVector<ImGuiTextRange> ImVector_ImGuiTextRange; typedef ImVector<ImGuiTextRange> ImVector_ImGuiTextRange;
typedef ImVector<ImGuiTreeNodeStackData> ImVector_ImGuiTreeNodeStackData; typedef ImVector<ImGuiTreeNodeStackData> ImVector_ImGuiTreeNodeStackData;
@@ -3913,7 +4034,6 @@ CIMGUI_API bool igColorEdit4(const char* label,float col[4],ImGuiColorEditFlags
CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags); CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags);
CIMGUI_API bool igColorPicker4(const char* label,float col[4],ImGuiColorEditFlags flags,const float* ref_col); CIMGUI_API bool igColorPicker4(const char* label,float col[4],ImGuiColorEditFlags flags,const float* ref_col);
CIMGUI_API bool igColorButton(const char* desc_id,const ImVec4_c col,ImGuiColorEditFlags flags,const ImVec2_c size); CIMGUI_API bool igColorButton(const char* desc_id,const ImVec4_c col,ImGuiColorEditFlags flags,const ImVec2_c size);
CIMGUI_API void igSetColorEditOptions(ImGuiColorEditFlags flags);
CIMGUI_API bool igTreeNode_Str(const char* label); CIMGUI_API bool igTreeNode_Str(const char* label);
CIMGUI_API bool igTreeNode_StrStr(const char* str_id,const char* fmt,...); CIMGUI_API bool igTreeNode_StrStr(const char* str_id,const char* fmt,...);
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
@@ -3987,9 +4107,9 @@ CIMGUI_API void igSetItemTooltipV(const char* fmt,va_list args);
CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags); CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags);
CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags); CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags);
CIMGUI_API void igEndPopup(void); CIMGUI_API void igEndPopup(void);
CIMGUI_API void igOpenPopup_Str(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igOpenPopup_Str(const char* str_id,ImGuiPopupFlags popup_flags);
CIMGUI_API void igOpenPopup_ID(ImGuiID id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igOpenPopup_ID(ImGuiID id,ImGuiPopupFlags popup_flags);
CIMGUI_API void igOpenPopupOnItemClick(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,ImGuiPopupFlags popup_flags);
CIMGUI_API void igCloseCurrentPopup(void); CIMGUI_API void igCloseCurrentPopup(void);
CIMGUI_API bool igBeginPopupContextItem(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igBeginPopupContextItem(const char* str_id,ImGuiPopupFlags popup_flags);
CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,ImGuiPopupFlags popup_flags);
@@ -4000,7 +4120,7 @@ CIMGUI_API void igEndTable(void);
CIMGUI_API void igTableNextRow(ImGuiTableRowFlags row_flags,float min_row_height); CIMGUI_API void igTableNextRow(ImGuiTableRowFlags row_flags,float min_row_height);
CIMGUI_API bool igTableNextColumn(void); CIMGUI_API bool igTableNextColumn(void);
CIMGUI_API bool igTableSetColumnIndex(int column_n); CIMGUI_API bool igTableSetColumnIndex(int column_n);
CIMGUI_API void igTableSetupColumn(const char* label,ImGuiTableColumnFlags flags,float init_width_or_weight,ImGuiID user_id); CIMGUI_API void igTableSetupColumn(const char* label,ImGuiTableColumnFlags flags,float init_width_or_weight,ImGuiID user_data);
CIMGUI_API void igTableSetupScrollFreeze(int cols,int rows); CIMGUI_API void igTableSetupScrollFreeze(int cols,int rows);
CIMGUI_API void igTableHeader(const char* label); CIMGUI_API void igTableHeader(const char* label);
CIMGUI_API void igTableHeadersRow(void); CIMGUI_API void igTableHeadersRow(void);
@@ -4071,6 +4191,7 @@ CIMGUI_API ImVec2_c igGetItemRectMin(void);
CIMGUI_API ImVec2_c igGetItemRectMax(void); CIMGUI_API ImVec2_c igGetItemRectMax(void);
CIMGUI_API ImVec2_c igGetItemRectSize(void); CIMGUI_API ImVec2_c igGetItemRectSize(void);
CIMGUI_API ImGuiItemFlags igGetItemFlags(void); CIMGUI_API ImGuiItemFlags igGetItemFlags(void);
CIMGUI_API int igGetItemClickedCountWithSingleClickDelay(ImGuiMouseButton mouse_button,float delay);
CIMGUI_API ImGuiViewport* igGetMainViewport(void); CIMGUI_API ImGuiViewport* igGetMainViewport(void);
CIMGUI_API ImDrawList* igGetBackgroundDrawList_Nil(void); CIMGUI_API ImDrawList* igGetBackgroundDrawList_Nil(void);
CIMGUI_API ImDrawList* igGetForegroundDrawList_Nil(void); CIMGUI_API ImDrawList* igGetForegroundDrawList_Nil(void);
@@ -4371,10 +4492,10 @@ CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
CIMGUI_API void ImFontAtlas_RemoveFont(ImFontAtlas* self,ImFont* font); CIMGUI_API void ImFontAtlas_RemoveFont(ImFontAtlas* self,ImFont* font);
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_CompactCache(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_CompactCache(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_SetFontLoader(ImFontAtlas* self,const ImFontLoader* font_loader); CIMGUI_API void ImFontAtlas_SetFontLoader(ImFontAtlas* self,const ImFontLoader* font_loader);
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesDefault(ImFontAtlas* self); CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesDefault(ImFontAtlas* self);
@@ -4503,6 +4624,7 @@ CIMGUI_API float igImFloor_Float(float f);
CIMGUI_API ImVec2_c igImFloor_Vec2(const ImVec2_c v); CIMGUI_API ImVec2_c igImFloor_Vec2(const ImVec2_c v);
CIMGUI_API float igImTrunc64(float f); CIMGUI_API float igImTrunc64(float f);
CIMGUI_API float igImRound64(float f); CIMGUI_API float igImRound64(float f);
CIMGUI_API float igImCeilFast(float f);
CIMGUI_API int igImModPositive(int a,int b); CIMGUI_API int igImModPositive(int a,int b);
CIMGUI_API float igImDot(const ImVec2_c a,const ImVec2_c b); CIMGUI_API float igImDot(const ImVec2_c a,const ImVec2_c b);
CIMGUI_API ImVec2_c igImRotate(const ImVec2_c v,float cos_a,float sin_a); CIMGUI_API ImVec2_c igImRotate(const ImVec2_c v,float cos_a,float sin_a);
@@ -4579,6 +4701,12 @@ CIMGUI_API int ImGuiTextIndex_size(ImGuiTextIndex* self);
CIMGUI_API const char* ImGuiTextIndex_get_line_begin(ImGuiTextIndex* self,const char* base,int n); CIMGUI_API const char* ImGuiTextIndex_get_line_begin(ImGuiTextIndex* self,const char* base,int n);
CIMGUI_API const char* ImGuiTextIndex_get_line_end(ImGuiTextIndex* self,const char* base,int n); CIMGUI_API const char* ImGuiTextIndex_get_line_end(ImGuiTextIndex* self,const char* base,int n);
CIMGUI_API void ImGuiTextIndex_append(ImGuiTextIndex* self,const char* base,int old_size,int new_size); CIMGUI_API void ImGuiTextIndex_append(ImGuiTextIndex* self,const char* base,int old_size,int new_size);
CIMGUI_API ImGuiPackedDate* ImGuiPackedDate_ImGuiPackedDate_Nil(void);
CIMGUI_API void ImGuiPackedDate_destroy(ImGuiPackedDate* self);
CIMGUI_API ImGuiPackedDate* ImGuiPackedDate_ImGuiPackedDate_Int(int yyyymmdd);
CIMGUI_API bool ImGuiPackedDate_IsValid(ImGuiPackedDate* self);
CIMGUI_API int ImGuiPackedDate_Unpack(ImGuiPackedDate* self);
CIMGUI_API void ImGuiPackedDate_SubtractMonths(ImGuiPackedDate* self,int m);
CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key); CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key);
CIMGUI_API ImDrawListSharedData* ImDrawListSharedData_ImDrawListSharedData(void); CIMGUI_API ImDrawListSharedData* ImDrawListSharedData_ImDrawListSharedData(void);
CIMGUI_API void ImDrawListSharedData_destroy(ImDrawListSharedData* self); CIMGUI_API void ImDrawListSharedData_destroy(ImDrawListSharedData* self);
@@ -4719,6 +4847,76 @@ CIMGUI_API void ImGuiTableColumnSettings_destroy(ImGuiTableColumnSettings* self)
CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void); CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void);
CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self); CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self);
CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self); CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self);
CIMGUI_API void igTableOpenContextMenu(int column_n);
CIMGUI_API void igTableSetColumnWidth(int column_n,float width);
CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection sort_direction,bool append_to_sort_specs);
CIMGUI_API int igTableGetHoveredRow(void);
CIMGUI_API float igTableGetHeaderRowHeight(void);
CIMGUI_API float igTableGetHeaderAngledMaxLabelWidth(void);
CIMGUI_API void igTablePushBackgroundChannel(void);
CIMGUI_API void igTablePopBackgroundChannel(void);
CIMGUI_API void igTablePushColumnChannel(int column_n);
CIMGUI_API void igTablePopColumnChannel(void);
CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count);
CIMGUI_API ImGuiTable* igGetCurrentTable(void);
CIMGUI_API ImGuiTable* igTableFindByID(ImGuiID id);
CIMGUI_API bool igBeginTableEx(const char* name,ImGuiID id,int columns_count,ImGuiTableFlags flags,const ImVec2_c outer_size,float inner_width);
CIMGUI_API void igTableBeginInitMemory(ImGuiTable* table,int columns_count);
CIMGUI_API void igTableApplyQueuedRequests(ImGuiTable* table);
CIMGUI_API void igTableSetupDrawChannels(ImGuiTable* table);
CIMGUI_API void igTableReconcileColumns(ImGuiTable* table);
CIMGUI_API void igTableUpdateLayout(ImGuiTable* table);
CIMGUI_API void igTableUpdateBorders(ImGuiTable* table);
CIMGUI_API void igTableUpdateColumnsWeightFromWidth(ImGuiTable* table);
CIMGUI_API void igTableApplyExternalUnclipRect(ImGuiTable* table,ImRect* rect);
CIMGUI_API void igTableDrawBorders(ImGuiTable* table);
CIMGUI_API void igTableDrawDefaultContextMenu(ImGuiTable* table,ImGuiTableFlags flags_for_section_to_display);
CIMGUI_API bool igTableBeginContextMenuPopup(ImGuiTable* table);
CIMGUI_API void igTableMergeDrawChannels(ImGuiTable* table);
CIMGUI_API ImGuiTableInstanceData* igTableGetInstanceData(ImGuiTable* table,int instance_no);
CIMGUI_API ImGuiID igTableGetInstanceID(ImGuiTable* table,int instance_no);
CIMGUI_API void igTableFixDisplayOrder(ImGuiTable* table);
CIMGUI_API void igTableSortSpecsSanitize(ImGuiTable* table);
CIMGUI_API void igTableSortSpecsBuild(ImGuiTable* table);
CIMGUI_API void igTableInitColumnDefaults(ImGuiTable* table,ImGuiTableColumn* column,ImGuiTableColumnFlags init_mask);
CIMGUI_API ImGuiSortDirection igTableGetColumnNextSortDirection(ImGuiTableColumn* column);
CIMGUI_API void igTableFixColumnSortDirection(ImGuiTable* table,ImGuiTableColumn* column);
CIMGUI_API float igTableGetColumnWidthAuto(ImGuiTable* table,ImGuiTableColumn* column);
CIMGUI_API void igTableBeginRow(ImGuiTable* table);
CIMGUI_API void igTableEndRow(ImGuiTable* table);
CIMGUI_API void igTableBeginCell(ImGuiTable* table,int column_n);
CIMGUI_API void igTableEndCell(ImGuiTable* table);
CIMGUI_API ImRect_c igTableGetCellBgRect(const ImGuiTable* table,int column_n);
CIMGUI_API const char* igTableGetColumnName_TablePtr(const ImGuiTable* table,int column_n);
CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int instance_no);
CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n);
CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n);
CIMGUI_API void igTableSetColumnWidthAutoAll(ImGuiTable* table);
CIMGUI_API void igTableSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order);
CIMGUI_API void igTableQueueSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order);
CIMGUI_API void igTableRemove(ImGuiTable* table);
CIMGUI_API void igTableGcCompactTransientBuffers_TablePtr(ImGuiTable* table);
CIMGUI_API void igTableGcCompactTransientBuffers_TableTempDataPtr(ImGuiTableTempData* table);
CIMGUI_API void igTableGcCompactSettings(void);
CIMGUI_API void igTableLoadSettings(ImGuiTable* table);
CIMGUI_API void igTableLoadSettingsForColumns(ImGuiTable* table);
CIMGUI_API void igTableLoadSettingsForColumn(ImGuiTableColumn* column,ImGuiTableColumnSettings* column_settings,ImGuiTableFlags load_flags);
CIMGUI_API void igTableSaveSettings(ImGuiTable* table);
CIMGUI_API void igTableResetSettings(ImGuiTable* table);
CIMGUI_API ImGuiTableSettings* igTableGetBoundSettings(ImGuiTable* table);
CIMGUI_API void igTableSettingsAddSettingsHandler(void);
CIMGUI_API ImGuiTableSettings* igTableSettingsCreate(ImGuiID id,int columns_count);
CIMGUI_API ImGuiTableSettings* igTableSettingsFindByID(ImGuiID id);
CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect_c clip_rect);
CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiOldColumnFlags flags);
CIMGUI_API void igEndColumns(void);
CIMGUI_API void igPushColumnClipRect(int column_index);
CIMGUI_API void igPushColumnsBackground(void);
CIMGUI_API void igPopColumnsBackground(void);
CIMGUI_API ImGuiID igGetColumnsID(const char* str_id,int count);
CIMGUI_API ImGuiOldColumns* igFindOrCreateColumns(ImGuiWindow* window,ImGuiID id);
CIMGUI_API float igGetColumnOffsetFromNorm(const ImGuiOldColumns* columns,float offset_norm);
CIMGUI_API float igGetColumnNormFromOffset(const ImGuiOldColumns* columns,float offset);
CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx); CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx);
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_ContextPtr(ImGuiContext* ctx); CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_ContextPtr(ImGuiContext* ctx);
CIMGUI_API float igGetScale(void); CIMGUI_API float igGetScale(void);
@@ -4788,6 +4986,7 @@ CIMGUI_API void igSetWindowViewport(ImGuiWindow* window,ImGuiViewportP* viewport
CIMGUI_API void igMarkIniSettingsDirty_Nil(void); CIMGUI_API void igMarkIniSettingsDirty_Nil(void);
CIMGUI_API void igMarkIniSettingsDirty_WindowPtr(ImGuiWindow* window); CIMGUI_API void igMarkIniSettingsDirty_WindowPtr(ImGuiWindow* window);
CIMGUI_API void igClearIniSettings(void); CIMGUI_API void igClearIniSettings(void);
CIMGUI_API void igCleanupIniSettings(ImGuiSettingsCleanupArgs* args);
CIMGUI_API void igAddSettingsHandler(const ImGuiSettingsHandler* handler); CIMGUI_API void igAddSettingsHandler(const ImGuiSettingsHandler* handler);
CIMGUI_API void igRemoveSettingsHandler(const char* type_name); CIMGUI_API void igRemoveSettingsHandler(const char* type_name);
CIMGUI_API ImGuiSettingsHandler* igFindSettingsHandler(const char* type_name); CIMGUI_API ImGuiSettingsHandler* igFindSettingsHandler(const char* type_name);
@@ -4841,7 +5040,7 @@ CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2_c size_a
CIMGUI_API ImGuiWindow* igFindFrontMostVisibleChildWindow(ImGuiWindow* window); CIMGUI_API ImGuiWindow* igFindFrontMostVisibleChildWindow(ImGuiWindow* window);
CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags); CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags);
CIMGUI_API bool igBeginPopupMenuEx(ImGuiID id,const char* label,ImGuiWindowFlags extra_window_flags); CIMGUI_API bool igBeginPopupMenuEx(ImGuiID id,const char* label,ImGuiWindowFlags extra_window_flags);
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags);
CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup); CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup);
CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup); CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup);
CIMGUI_API void igClosePopupsExceptModals(void); CIMGUI_API void igClosePopupsExceptModals(void);
@@ -4940,77 +5139,11 @@ CIMGUI_API int igTypingSelectFindBestLeadingMatch(ImGuiTypingSelectRequest* req,
CIMGUI_API bool igBeginBoxSelect(const ImRect_c scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags); CIMGUI_API bool igBeginBoxSelect(const ImRect_c scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags);
CIMGUI_API void igEndBoxSelect(const ImRect_c scope_rect,ImGuiMultiSelectFlags ms_flags); CIMGUI_API void igEndBoxSelect(const ImRect_c scope_rect,ImGuiMultiSelectFlags ms_flags);
CIMGUI_API void igMultiSelectItemHeader(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags); CIMGUI_API void igMultiSelectItemHeader(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags);
CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed); CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed,ImGuiMultiSelectFlags extra_flags);
CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected); CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected);
CIMGUI_API void igMultiSelectAddSetRange(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item); CIMGUI_API void igMultiSelectAddSetRange(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item);
CIMGUI_API ImGuiBoxSelectState* igGetBoxSelectState(ImGuiID id); CIMGUI_API ImGuiBoxSelectState* igGetBoxSelectState(ImGuiID id);
CIMGUI_API ImGuiMultiSelectState* igGetMultiSelectState(ImGuiID id); CIMGUI_API ImGuiMultiSelectState* igGetMultiSelectState(ImGuiID id);
CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect_c clip_rect);
CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiOldColumnFlags flags);
CIMGUI_API void igEndColumns(void);
CIMGUI_API void igPushColumnClipRect(int column_index);
CIMGUI_API void igPushColumnsBackground(void);
CIMGUI_API void igPopColumnsBackground(void);
CIMGUI_API ImGuiID igGetColumnsID(const char* str_id,int count);
CIMGUI_API ImGuiOldColumns* igFindOrCreateColumns(ImGuiWindow* window,ImGuiID id);
CIMGUI_API float igGetColumnOffsetFromNorm(const ImGuiOldColumns* columns,float offset_norm);
CIMGUI_API float igGetColumnNormFromOffset(const ImGuiOldColumns* columns,float offset);
CIMGUI_API void igTableOpenContextMenu(int column_n);
CIMGUI_API void igTableSetColumnWidth(int column_n,float width);
CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection sort_direction,bool append_to_sort_specs);
CIMGUI_API int igTableGetHoveredRow(void);
CIMGUI_API float igTableGetHeaderRowHeight(void);
CIMGUI_API float igTableGetHeaderAngledMaxLabelWidth(void);
CIMGUI_API void igTablePushBackgroundChannel(void);
CIMGUI_API void igTablePopBackgroundChannel(void);
CIMGUI_API void igTablePushColumnChannel(int column_n);
CIMGUI_API void igTablePopColumnChannel(void);
CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count);
CIMGUI_API ImGuiTable* igGetCurrentTable(void);
CIMGUI_API ImGuiTable* igTableFindByID(ImGuiID id);
CIMGUI_API bool igBeginTableEx(const char* name,ImGuiID id,int columns_count,ImGuiTableFlags flags,const ImVec2_c outer_size,float inner_width);
CIMGUI_API void igTableBeginInitMemory(ImGuiTable* table,int columns_count);
CIMGUI_API void igTableBeginApplyRequests(ImGuiTable* table);
CIMGUI_API void igTableSetupDrawChannels(ImGuiTable* table);
CIMGUI_API void igTableUpdateLayout(ImGuiTable* table);
CIMGUI_API void igTableUpdateBorders(ImGuiTable* table);
CIMGUI_API void igTableUpdateColumnsWeightFromWidth(ImGuiTable* table);
CIMGUI_API void igTableApplyExternalUnclipRect(ImGuiTable* table,ImRect* rect);
CIMGUI_API void igTableDrawBorders(ImGuiTable* table);
CIMGUI_API void igTableDrawDefaultContextMenu(ImGuiTable* table,ImGuiTableFlags flags_for_section_to_display);
CIMGUI_API bool igTableBeginContextMenuPopup(ImGuiTable* table);
CIMGUI_API void igTableMergeDrawChannels(ImGuiTable* table);
CIMGUI_API ImGuiTableInstanceData* igTableGetInstanceData(ImGuiTable* table,int instance_no);
CIMGUI_API ImGuiID igTableGetInstanceID(ImGuiTable* table,int instance_no);
CIMGUI_API void igTableFixDisplayOrder(ImGuiTable* table);
CIMGUI_API void igTableSortSpecsSanitize(ImGuiTable* table);
CIMGUI_API void igTableSortSpecsBuild(ImGuiTable* table);
CIMGUI_API ImGuiSortDirection igTableGetColumnNextSortDirection(ImGuiTableColumn* column);
CIMGUI_API void igTableFixColumnSortDirection(ImGuiTable* table,ImGuiTableColumn* column);
CIMGUI_API float igTableGetColumnWidthAuto(ImGuiTable* table,ImGuiTableColumn* column);
CIMGUI_API void igTableBeginRow(ImGuiTable* table);
CIMGUI_API void igTableEndRow(ImGuiTable* table);
CIMGUI_API void igTableBeginCell(ImGuiTable* table,int column_n);
CIMGUI_API void igTableEndCell(ImGuiTable* table);
CIMGUI_API ImRect_c igTableGetCellBgRect(const ImGuiTable* table,int column_n);
CIMGUI_API const char* igTableGetColumnName_TablePtr(const ImGuiTable* table,int column_n);
CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int instance_no);
CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n);
CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n);
CIMGUI_API void igTableSetColumnWidthAutoAll(ImGuiTable* table);
CIMGUI_API void igTableSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order);
CIMGUI_API void igTableQueueSetColumnDisplayOrder(ImGuiTable* table,int column_n,int dst_order);
CIMGUI_API void igTableRemove(ImGuiTable* table);
CIMGUI_API void igTableGcCompactTransientBuffers_TablePtr(ImGuiTable* table);
CIMGUI_API void igTableGcCompactTransientBuffers_TableTempDataPtr(ImGuiTableTempData* table);
CIMGUI_API void igTableGcCompactSettings(void);
CIMGUI_API void igTableLoadSettings(ImGuiTable* table);
CIMGUI_API void igTableSaveSettings(ImGuiTable* table);
CIMGUI_API void igTableResetSettings(ImGuiTable* table);
CIMGUI_API ImGuiTableSettings* igTableGetBoundSettings(ImGuiTable* table);
CIMGUI_API void igTableSettingsAddSettingsHandler(void);
CIMGUI_API ImGuiTableSettings* igTableSettingsCreate(ImGuiID id,int columns_count);
CIMGUI_API ImGuiTableSettings* igTableSettingsFindByID(ImGuiID id);
CIMGUI_API ImGuiTabBar* igGetCurrentTabBar(void); CIMGUI_API ImGuiTabBar* igGetCurrentTabBar(void);
CIMGUI_API ImGuiTabBar* igTabBarFindByID(ImGuiID id); CIMGUI_API ImGuiTabBar* igTabBarFindByID(ImGuiID id);
CIMGUI_API void igTabBarRemove(ImGuiTabBar* tab_bar); CIMGUI_API void igTabBarRemove(ImGuiTabBar* tab_bar);
@@ -5042,7 +5175,7 @@ CIMGUI_API void igRenderFrame(ImVec2_c p_min,ImVec2_c p_max,ImU32 fill_col,bool
CIMGUI_API void igRenderFrameBorder(ImVec2_c p_min,ImVec2_c p_max,float rounding); CIMGUI_API void igRenderFrameBorder(ImVec2_c p_min,ImVec2_c p_max,float rounding);
CIMGUI_API void igRenderColorComponentMarker(const ImRect_c bb,ImU32 col,float rounding); CIMGUI_API void igRenderColorComponentMarker(const ImRect_c bb,ImU32 col,float rounding);
CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImVec2_c p_min,ImVec2_c p_max,ImU32 fill_col,float grid_step,ImVec2_c grid_off,float rounding,ImDrawFlags flags); CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImVec2_c p_min,ImVec2_c p_max,ImU32 fill_col,float grid_step,ImVec2_c grid_off,float rounding,ImDrawFlags flags);
CIMGUI_API void igRenderNavCursor(const ImRect_c bb,ImGuiID id,ImGuiNavRenderCursorFlags flags); CIMGUI_API void igRenderNavCursor(const ImRect_c bb,ImGuiID id,ImGuiNavRenderCursorFlags flags,float rounding);
CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end); CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end);
CIMGUI_API void igRenderMouseCursor(ImVec2_c pos,float scale,ImGuiMouseCursor mouse_cursor,ImU32 col_fill,ImU32 col_border,ImU32 col_shadow); CIMGUI_API void igRenderMouseCursor(ImVec2_c pos,float scale,ImGuiMouseCursor mouse_cursor,ImU32 col_fill,ImU32 col_border,ImU32 col_shadow);
CIMGUI_API void igRenderArrow(ImDrawList* draw_list,ImVec2_c pos,ImU32 col,ImGuiDir dir,float scale); CIMGUI_API void igRenderArrow(ImDrawList* draw_list,ImVec2_c pos,ImU32 col,ImGuiDir dir,float scale);
@@ -5143,7 +5276,7 @@ CIMGUI_API void igDebugNodeTexture(ImTextureData* tex,int int_id,const ImFontAtl
CIMGUI_API void igDebugNodeStorage(ImGuiStorage* storage,const char* label); CIMGUI_API void igDebugNodeStorage(ImGuiStorage* storage,const char* label);
CIMGUI_API void igDebugNodeTabBar(ImGuiTabBar* tab_bar,const char* label); CIMGUI_API void igDebugNodeTabBar(ImGuiTabBar* tab_bar,const char* label);
CIMGUI_API void igDebugNodeTable(ImGuiTable* table); CIMGUI_API void igDebugNodeTable(ImGuiTable* table);
CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings); CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings,ImGuiTable* table);
CIMGUI_API void igDebugNodeInputTextState(ImGuiInputTextState* state); CIMGUI_API void igDebugNodeInputTextState(ImGuiInputTextState* state);
CIMGUI_API void igDebugNodeTypingSelectState(ImGuiTypingSelectState* state); CIMGUI_API void igDebugNodeTypingSelectState(ImGuiTypingSelectState* state);
CIMGUI_API void igDebugNodeMultiSelectState(ImGuiMultiSelectState* state); CIMGUI_API void igDebugNodeMultiSelectState(ImGuiMultiSelectState* state);
@@ -5212,6 +5345,7 @@ CIMGUI_API void igImFontAtlasTextureBlockPostProcessMultiply(ImFontAtlasPostProc
CIMGUI_API void igImFontAtlasTextureBlockFill(ImTextureData* dst_tex,int dst_x,int dst_y,int w,int h,ImU32 col); CIMGUI_API void igImFontAtlasTextureBlockFill(ImTextureData* dst_tex,int dst_x,int dst_y,int w,int h,ImU32 col);
CIMGUI_API void igImFontAtlasTextureBlockCopy(ImTextureData* src_tex,int src_x,int src_y,ImTextureData* dst_tex,int dst_x,int dst_y,int w,int h); CIMGUI_API void igImFontAtlasTextureBlockCopy(ImTextureData* src_tex,int src_x,int src_y,ImTextureData* dst_tex,int dst_x,int dst_y,int w,int h);
CIMGUI_API void igImFontAtlasTextureBlockQueueUpload(ImFontAtlas* atlas,ImTextureData* tex,int x,int y,int w,int h); CIMGUI_API void igImFontAtlasTextureBlockQueueUpload(ImFontAtlas* atlas,ImTextureData* tex,int x,int y,int w,int h);
CIMGUI_API bool igImTextureDataUpdateNewFrame(ImTextureData* tex);
CIMGUI_API void igImTextureDataQueueUpload(ImTextureData* tex,int x,int y,int w,int h); CIMGUI_API void igImTextureDataQueueUpload(ImTextureData* tex,int x,int y,int w,int h);
CIMGUI_API int igImTextureDataGetFormatBytesPerPixel(ImTextureFormat format); CIMGUI_API int igImTextureDataGetFormatBytesPerPixel(ImTextureFormat format);
CIMGUI_API const char* igImTextureDataGetStatusName(ImTextureStatus status); CIMGUI_API const char* igImTextureDataGetStatusName(ImTextureStatus status);
@@ -5228,6 +5362,9 @@ CIMGUI_API bool ImGuiFreeType_DebugEditFontLoaderFlags(ImGuiFreeTypeLoaderFlags*
/////////////////////////hand written functions /////////////////////////hand written functions
//no appendfV //no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt);
#endif
//for getting FLT_MAX in bindings //for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void); CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings //for getting FLT_MIN in bindings

View File

@@ -30,8 +30,20 @@ CIMGUI_API void ImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window,int focuse
#endif #endif
#ifdef CIMGUI_USE_OPENGL3 #ifdef CIMGUI_USE_OPENGL3
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImGui_ImplOpenGL3_RenderState ImGui_ImplOpenGL3_RenderState;
struct ImGui_ImplOpenGL3_RenderState
{
bool UseBindSampler;
bool UseTexParameterFilter;
unsigned int CurrentSampler;
unsigned int CurrentTexParameterFilter;
};
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(void); CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(void);
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(void); CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(void);
CIMGUI_API ImGui_ImplOpenGL3_RenderState* ImGui_ImplOpenGL3_GetRenderState(void);
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version); CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame(void); CIMGUI_API void ImGui_ImplOpenGL3_NewFrame(void);
CIMGUI_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data); CIMGUI_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);

View File

@@ -17,6 +17,12 @@ CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt,
self->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt)
{
ImGuiTextBuffer_appendf(self,fmt);
}
#endif
CIMGUI_API float igGET_FLT_MAX() CIMGUI_API float igGET_FLT_MAX()
{ {

View File

@@ -56,6 +56,9 @@ PLACE_STRUCTS_C
/////////////////////////hand written functions /////////////////////////hand written functions
//no appendfV //no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt);
#endif
//for getting FLT_MAX in bindings //for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void); CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings //for getting FLT_MIN in bindings

View File

@@ -379,7 +379,7 @@ local function getRE()
-- but we don want operator== to appear as a var and as we should skip this kind of function solution is: -- but we don want operator== to appear as a var and as we should skip this kind of function solution is:
operator_re = "^([^;{}]+operator[^;{}]+%b()[\n%s%w%(%)_]*;)", operator_re = "^([^;{}]+operator[^;{}]+%b()[\n%s%w%(%)_]*;)",
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)", struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
class_re = "^([^;{}]-class[^;{}]-%b{}[%s%w_%(%)]*;)", class_re = "^([^;{}]-class[^;{}]-%b{}[%s%w_%(%)]*;)",
--class_re = "^([^;{}]-class[^;{}]-%b{}%s*;)", --class_re = "^([^;{}]-class[^;{}]-%b{}%s*;)",
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)", enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)", union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
@@ -776,8 +776,16 @@ local function parseFunction(self,stname,itt,namespace,locat)
return return
end end
local ret = line:match("([^%(%):,]+[%*%s])%s?~?[_%w]+%b()") local ret = line:match("([^%(%):,]+[%*%s])%s?~?[_%w]+%b()")
local rettt = line:match("(.+[%*%s])%s?~?[_%w]+%b()")
--if rettt and rettt:match"::" then print("rettt",rettt,ret);error"debug" end
--if ret~=rettt then print("++++++++ret~=rettt",ret,rettt) end
if rettt and rettt:match"^const" and not ret:match"^const" then
ret = "const "..ret
print("++++++++++++add const",ret)
end
--local ret = line:match("(.+[%*%s])%s?~?[_%w]+%b()") --local ret = line:match("(.+[%*%s])%s?~?[_%w]+%b()")
--local funcname, args = line:match("(~?[_%w]+)%s*(%b())") --local funcname, args = line:match("(~?[_%w]+)%s*(%b())")
local funcname, args, extraconst = line:match("(~?[_%w]+)%s*(%b())(.*)") local funcname, args, extraconst = line:match("(~?[_%w]+)%s*(%b())(.*)")
@@ -844,7 +852,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
local noname_counter = 0 local noname_counter = 0
for i,ar in ipairs(argsTa) do for i,ar in ipairs(argsTa) do
local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>") local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>")
if template then if template and not self.skip_template[ttype] then
if self.typenames[stname] ~= template then --rule out template typename if self.typenames[stname] ~= template then --rule out template typename
self.templates[ttype] = self.templates[ttype] or {} self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te self.templates[ttype][template] = te
@@ -905,6 +913,15 @@ local function parseFunction(self,stname,itt,namespace,locat)
name = name:gsub("(%[%d*%])","") name = name:gsub("(%[%d*%])","")
end end
end end
if typ:match"::" then
local const,typsimp,ptr = typ:match("(const )([^%*&]+)([%*&]*)")
print("= = = = 0 = =typ",typ,const,typsimp,ptr)
if self.opaque_structs_inv and self.opaque_structs_inv[typsimp] then
print("(((())))))=======self.opaque",const,typsimp,ptr);
typ = (const or "")..self.opaque_structs_inv[typsimp]..(ptr or "")
end
end
argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf,has_cdecl=has_cdecl,template_orig=template_orig} argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf,has_cdecl=has_cdecl,template_orig=template_orig}
if ar:match("&") and not ar:match("const") then if ar:match("&") and not ar:match("const") then
--only post error if not manual --only post error if not manual
@@ -981,7 +998,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
end end
--if ismanual then M.prtable(argsArr) end -- print(cimguiname)
-- if ismanual then M.prtable("===================================\n",argsArr) end
defT.templated = self.typenames[stname] and true defT.templated = self.typenames[stname] and true
defT.namespace = namespace defT.namespace = namespace
@@ -1195,6 +1213,11 @@ local function get_nonPOD(FP)
end end
end end
end end
if FP.forced_nonPOD then
for k,v in pairs(FP.forced_nonPOD) do
nonPOD[k] = true
end
end
FP.structs_and_enums_table.nonPOD = nonPOD FP.structs_and_enums_table.nonPOD = nonPOD
if next(nonPOD) then if next(nonPOD) then
M.prtable("nonPOD",nonPOD) M.prtable("nonPOD",nonPOD)
@@ -1272,12 +1295,27 @@ local function gen_field_conversion(tab, struct,structs, FP, to,prefix)
for i,field in ipairs(struct) do for i,field in ipairs(struct) do
local ftype = field.type:gsub("*","") local ftype = field.type:gsub("*","")
if FP.nP_used[field.type] then if FP.nP_used[field.type] then
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..field.name..".") if not field.size then
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..field.name..".")
else
local fname = field.name:match("(.+)%[[^%[%]]+%]")
for j = 0,field.size-1 do
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..fname.."["..tostring(j).."].")
end
end
elseif FP.nP_used[ftype] then elseif FP.nP_used[ftype] then
assert(not field.size, "size not worked in Convert")
local ftypec = field.type:gsub(ftype,not to and (ftype.."_c") or ftype) local ftypec = field.type:gsub(ftype,not to and (ftype.."_c") or ftype)
insert(tab, " dest."..prefix..field.name.." = reinterpret_cast<"..ftypec..">(src."..prefix..field.name..");") insert(tab, " dest."..prefix..field.name.." = reinterpret_cast<"..ftypec..">(src."..prefix..field.name..");")
else else
insert(tab," dest."..prefix..field.name.." = src."..prefix..field.name..";") if not field.size then
insert(tab," dest."..prefix..field.name.." = src."..prefix..field.name..";")
else
local fname = field.name:match("(.+)%[%d+%]")
for j = 0,field.size-1 do
insert(tab," dest."..prefix..fname.."["..tostring(j).."] = src."..prefix..fname.."["..tostring(j).."];")
end
end
end end
end end
end end
@@ -1296,6 +1334,7 @@ local function genConversions(FP)
local convers = {} local convers = {}
--for k,v in pairs(FP.nP_used) do --for k,v in pairs(FP.nP_used) do
M.table_do_sorted(FP.nP_used, function(k,v) M.table_do_sorted(FP.nP_used, function(k,v)
if not FP.skip_convert_gen[k] then
--print("genConversions",k) --print("genConversions",k)
insert(convers,"static inline "..k.." ConvertToCPP_"..k.."(const "..k.."_c& src)") insert(convers,"static inline "..k.." ConvertToCPP_"..k.."(const "..k.."_c& src)")
insert(convers,"{") insert(convers,"{")
@@ -1311,6 +1350,7 @@ local function genConversions(FP)
gen_field_conversion(convers,struct,structs,FP, false) gen_field_conversion(convers,struct,structs,FP, false)
insert(convers," return dest;") insert(convers," return dest;")
insert(convers,"}") insert(convers,"}")
end --skip_convert_gen
end) end)
--print(table.concat(convers,"\n")) --print(table.concat(convers,"\n"))
return table.concat(convers,"\n") return table.concat(convers,"\n")
@@ -1384,7 +1424,9 @@ local function header_subs_nonPOD(FP,txt)
return txt return txt
end end
M.header_subs_nonPOD = header_subs_nonPOD M.header_subs_nonPOD = header_subs_nonPOD
local function get_std_function(ar) local function get_std_function(ar,def)
print("get_std_function",ar.template_orig)
print(" from",def.ov_cimguiname)
local skip = false local skip = false
local ty=ar.template_orig:gsub(ar.name,"") local ty=ar.template_orig:gsub(ar.name,"")
ty = ty:match("std::function(%b<>)") ty = ty:match("std::function(%b<>)")
@@ -1402,12 +1444,14 @@ local function get_std_function(ar)
local argsT2 = {} local argsT2 = {}
local noname_counter = 0 local noname_counter = 0
for i,v in ipairs(argsT) do for i,v in ipairs(argsT) do
local typ, name = v:match("(.+)%s+(%w+)") print(" arg",i,v)
local typ, name = v:match("^(.+)%s+(%w*)$")
if not name then if not name then
typ = v typ = v
noname_counter = noname_counter + 1 noname_counter = noname_counter + 1
name = "noname" .. noname_counter name = "noname" .. noname_counter
end end
print(" ",typ,name)
argsT2[i] = {type=typ,name=name} argsT2[i] = {type=typ,name=name}
end end
--get conversions --get conversions
@@ -1423,6 +1467,13 @@ local function get_std_function(ar)
elseif v.type:match("std::") then elseif v.type:match("std::") then
skip = true skip = true
else else
print(" get_std_function found type",v.type)
if v.type:match"&$" then
typ = v.type:gsub("&","*")
conv = "&"..v.name
end
-- require"anima.utils"
-- prtable(ar)
end end
argsT3[i] = {type=typ or v.type,conv=conv,name=v.name} argsT3[i] = {type=typ or v.type,conv=conv,name=v.name}
end end
@@ -1461,10 +1512,12 @@ local function get_std_function(ar)
return caar,asp,skip return caar,asp,skip
end end
local function ADDnonUDT(FP) local function ADDnonUDT(FP)
print"===================ADDnonUDT==================================="
local nonPOD = get_nonPOD(FP) local nonPOD = get_nonPOD(FP)
get_nonPODused(FP) get_nonPODused(FP)
for k,defs in pairs(FP.defsT) do for k,defs in pairs(FP.defsT) do
for i, def in ipairs(defs) do for i, def in ipairs(defs) do
--print(" ADDnonUDT",def.ov_cimguiname,def.ret)
local skip = nil local skip = nil
--ret --ret
local rets = (def.ret or ""):gsub("const ","") local rets = (def.ret or ""):gsub("const ","")
@@ -1488,6 +1541,7 @@ local function ADDnonUDT(FP)
--assert(def.ret:match"%*","return opaque struct without pointer") --assert(def.ret:match"%*","return opaque struct without pointer")
--M.prtable(def) --M.prtable(def)
--error"return opaque struct without pointer" --error"return opaque struct without pointer"
print("opaque in return================")
def.nonUDT = "opaque" def.nonUDT = "opaque"
def.ret = def.ret.."*" --def.ret:gsub(rets,rets.."_opq") def.ret = def.ret.."*" --def.ret:gsub(rets,rets.."_opq")
else else
@@ -1495,15 +1549,18 @@ local function ADDnonUDT(FP)
end end
--return std:: -> skip function --return std:: -> skip function
elseif def.stdret then -- not std::string elseif def.stdret then -- not std::string
print("skip",def.stdret,"on return")
skip = true skip = true
end end
--args --args
local caar,asp local caar,asp
local argsTN = {}
if #def.argsT > 0 then if #def.argsT > 0 then
caar = "(" caar = "("
asp = "(" asp = "("
for i,v in ipairs(def.argsT) do for i,v in ipairs(def.argsT) do
local name = v.name local name = v.name
argsTN[i] = deepcopy(v)
if v.ret then --function pointer if v.ret then --function pointer
local f_ = v.has_cdecl and "(__cdecl*" or "(*" local f_ = v.has_cdecl and "(__cdecl*" or "(*"
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. "," asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
@@ -1513,23 +1570,29 @@ local function ADDnonUDT(FP)
local typ2 = typ:gsub("*","") local typ2 = typ:gsub("*","")
--nonPOD arg -> convert --nonPOD arg -> convert
if FP.nP_args[v.type] then if FP.nP_args[v.type] then
local typ3 = v.type:gsub(typ,typ.."_c")
caar = caar .. "ConvertToCPP_"..typ.."("..name..")," caar = caar .. "ConvertToCPP_"..typ.."("..name.."),"
asp = asp .. v.type:gsub(typ,typ.."_c").." "..v.name.."," asp = asp .. typ3 .." "..v.name..","
--argsTN[i].type = typ3
--nonPOD* arg -> reinterpret_cast --nonPOD* arg -> reinterpret_cast
elseif FP.nP_args[typ2] then elseif FP.nP_args[typ2] then
local typ3 = v.type:gsub(typ2,typ2.."_c") local typ3 = v.type:gsub(typ2,typ2.."_c")
caar = caar .. "reinterpret_cast<"..v.type..">("..name..")," caar = caar .. "reinterpret_cast<"..v.type..">("..name.."),"
asp = asp .. typ3 .." "..v.name.."," asp = asp .. typ3 .." "..v.name..","
--argsTN[i].type = typ3
elseif v.type:match("std::string_view") then elseif v.type:match("std::string_view") then
argsTN[i].type = "const char*"
caar = caar ..name.."," caar = caar ..name..","
asp = asp .. "const char* "..v.name.."," asp = asp .. "const char* "..v.name..","
elseif v.type:match("std::string") then elseif v.type:match("std::string") then
argsTN[i].type = "const char*"
caar = caar .. "std::string("..name..")," caar = caar .. "std::string("..name.."),"
asp = asp .. "const char* "..v.name.."," asp = asp .. "const char* "..v.name..","
elseif v.type:match"std::function" then elseif v.type:match"std::function" then
local ca2,asp2,skip2 = get_std_function(v) local ca2,asp2,skip2 = get_std_function(v,def)
caar = caar .. ca2.."," caar = caar .. ca2..","
asp = asp .. asp2.."," asp = asp .. asp2..","
argsTN[i].type = asp2
if skip2 then skip = true end if skip2 then skip = true end
--skip = true --skip = true
elseif v.type:match("std::") then elseif v.type:match("std::") then
@@ -1543,11 +1606,13 @@ local function ADDnonUDT(FP)
local callname = "*"..name local callname = "*"..name
caar = caar .. callname .. "," caar = caar .. callname .. ","
asp = asp .. newt.." "..name .. "," asp = asp .. newt.." "..name .. ","
argsTN[i].type = newt
else else
local newt = v.type --v.type:gsub(typ2.."%s*%*",typ2.."_opq") local newt = v.type --v.type:gsub(typ2.."%s*%*",typ2.."_opq")
local callname = v.reftoptr and "*"..name or name local callname = v.reftoptr and "*"..name or name
caar = caar .. callname .. "," caar = caar .. callname .. ","
asp = asp .. newt.." "..name .. "," asp = asp .. newt.." "..name .. ","
argsTN[i].type = newt
end end
else else
local siz = v.type:match("(%[%d*%])") or "" local siz = v.type:match("(%[%d*%])") or ""
@@ -1555,6 +1620,7 @@ local function ADDnonUDT(FP)
asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. "," asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. ","
local callname = v.reftoptr and "*"..name or name local callname = v.reftoptr and "*"..name or name
caar = caar .. callname .. "," caar = caar .. callname .. ","
argsTN[i].type = typ .. siz
end end
end end
end end
@@ -1565,15 +1631,21 @@ local function ADDnonUDT(FP)
asp = "()" asp = "()"
end end
if skip then if skip then
print("-------ADDnonUDT skips",def.ov_cimguiname)
def.skipped = skip def.skipped = skip
FP.skipped[def.ov_cimguiname] = true FP.skipped[def.ov_cimguiname] = true
else else
def.call_args_old = def.call_args def.call_args_old = def.call_args
def.call_args = caar def.call_args = caar
def.args = asp def.args = asp
def.argsT = argsTN
end end
end end
end end
if next(FP.skipped) then
print(" =======skipped functions=====")
M.prtable(FP.skipped)
end
end end
local function ADDnonUDT_OLD(FP) local function ADDnonUDT_OLD(FP)
local nonPOD = get_nonPOD(FP) local nonPOD = get_nonPOD(FP)
@@ -1642,6 +1714,9 @@ local function ADDnonUDT_OLD(FP)
end end
local function ADDdestructors(FP) local function ADDdestructors(FP)
print"======================================================="
print"==============ADDdestructors========================="
print"======================================================="
local defsT = FP.defsT local defsT = FP.defsT
local newcdefs = {} local newcdefs = {}
@@ -1759,8 +1834,58 @@ local function json_prepare(defs)
return defs return defs
end end
local function paramListWithoutDots(params)
i, j = string.find(params, "%.%.%.")
while i > 1 do
i = i - 1
c = string.sub(params,i,i)
if c == "," then
return string.sub(params, 1, i-1) .. params:sub(j+1)
elseif c == "(" then
return string.sub(params, 1, i) .. params:sub(j+1)
end
end
error("paramListWithoutDots failed")
return "()"
end
local function save_output(self) local function save_output(self)
--add VARGS0
local defsVARG = {}
for k,defs in pairs(self.defsT) do
for i, def in ipairs(defs) do
if def.isvararg then
--print("vararg",k,#def)
local def1 = deepcopy(def)
def1.isvararg = nil
def1.isVARG0 = true
def1.argsT[#def1.argsT] = nil
def1.args = paramListWithoutDots(def1.args)
def1.call_args_old = paramListWithoutDots(def1.call_args_old)
def1.call_args = paramListWithoutDots(def1.call_args)
def1.signature = paramListWithoutDots(def1.signature)
def1.cimguiname = def1.cimguiname.."0"
def1.ov_cimguiname = def1.ov_cimguiname.."0"
defsVARG[k.."0"] = defsVARG[k.."0"] or {}
table.insert(defsVARG[k.."0"], def1)
end
end
end
for k,def in pairs(defsVARG) do
self.defsT[k] = def
end
--add manual not present in module
for k,v in pairs(self.manuals) do
if not self.defsT[k] then
--print("add manual",k)
self.defsT[k] = {v}
else
--print("skipped manual",k)
end
end
----------------------
save_data("./output/overloads.txt",self.overloadstxt) save_data("./output/overloads.txt",self.overloadstxt)
save_data("./output/definitions.lua",M.serializeTableF(self.defsT)) save_data("./output/definitions.lua",M.serializeTableF(self.defsT))
save_data("./output/structs_and_enums.lua",M.serializeTableF(self.structs_and_enums_table)) save_data("./output/structs_and_enums.lua",M.serializeTableF(self.structs_and_enums_table))
@@ -1801,6 +1926,9 @@ function M.Parser()
par.UDTs = {} par.UDTs = {}
par.opaque_structs = {} par.opaque_structs = {}
par.forced_opaque = {} par.forced_opaque = {}
par.forced_nonPOD = {}
par.skip_template = {}
par.skip_convert_gen = {}
par.save_output = save_output par.save_output = save_output
par.genConversors = genConversions par.genConversors = genConversions
@@ -2056,7 +2184,7 @@ function M.Parser()
--clean class and get name --clean class and get name
if it.re_name == "class_re" then if it.re_name == "class_re" then
it.name = it.item:match("class%s+(%S+)") it.name = it.item:match("class%s+(%S+)")
print("cleaning class",it.name) print("cleaning class",it.name,"-------------------------------------")
--it.item = it.item:gsub("private:.+};$","};") --it.item = it.item:gsub("private:.+};$","};")
--it.item = it.item:gsub("private:","") --it.item = it.item:gsub("private:","")
it.item = it.item:gsub("public:","") it.item = it.item:gsub("public:","")
@@ -2119,22 +2247,22 @@ function M.Parser()
if derived then if derived then
local derived2 = derived:gsub("%b<>","") local derived2 = derived:gsub("%b<>","")
derived2 = derived2:gsub("%w+::","") derived2 = derived2:gsub("%w+::","")
print("--derived check",stname, derived, derived2) print(" --derived check",stname, derived, derived2)
M.prtable(self.opaque_structs) --M.prtable(self.opaque_structs)
if self.opaque_structs[derived2] then if self.opaque_structs[derived2] then
print("--make opaque opaque derived",it.name,derived,derived2) print(" --make opaque opaque derived",it.name,derived,derived2)
it.opaque_struct = get_parents_name(it)..it.name it.opaque_struct = get_parents_name(it)..it.name
self.opaque_structs[it.name] = it.opaque_struct self.opaque_structs[it.name] = it.opaque_struct
end end
end end
if derived and derived:match"std::" then if derived and derived:match"std::" then
print("--make opaque std::derived",it.name,derived) print(" --make opaque std::derived",it.name,derived)
--it.opaque_struct = (itparent and itparent.name .."::" or "")..it.name --it.opaque_struct = (itparent and itparent.name .."::" or "")..it.name
it.opaque_struct = get_parents_name(it)..it.name it.opaque_struct = get_parents_name(it)..it.name
self.opaque_structs[it.name] = it.opaque_struct self.opaque_structs[it.name] = it.opaque_struct
end end
if self.forced_opaque[it.name] then if self.forced_opaque[it.name] then
print("--make forced opaque opaque derived",it.name) print(" --make forced opaque opaque derived",it.name)
it.opaque_struct = get_parents_name(it)..it.name it.opaque_struct = get_parents_name(it)..it.name
self.opaque_structs[it.name] = it.opaque_struct self.opaque_structs[it.name] = it.opaque_struct
end end
@@ -2143,12 +2271,12 @@ function M.Parser()
-- print("=====using",child.item) -- print("=====using",child.item)
-- end -- end
if (child.re_name == "vardef_re") and child.item:match"std::" then if (child.re_name == "vardef_re") and child.item:match"std::" then
print("--make opaque",it.name,child.item) print(" --make opaque with child std::",it.name,child.item)
--M.prtable(itparent) --M.prtable(itparent)
--it.opaque_struct = (itparent and itparent.name .."::" or "")..it.name --it.opaque_struct = (itparent and itparent.name .."::" or "")..it.name
it.opaque_struct = get_parents_name(it)..it.name it.opaque_struct = get_parents_name(it)..it.name
print("===parents1",get_parents_name(it),"===parents2",(itparent and itparent.name .."::" or "")) print(" ===parents1",get_parents_name(it),"===parents2",(itparent and itparent.name .."::" or ""))
print("===",it.opaque_struct) print(" ===",it.opaque_struct)
--cant do that as function is recursive --cant do that as function is recursive
--self.opaque_structs[it.name] = get_parents_name(it)..it.name--(itparent and itparent.name .."::" or "")..it.name --self.opaque_structs[it.name] = get_parents_name(it)..it.name--(itparent and itparent.name .."::" or "")..it.name
self.opaque_structs[it.name] = it.opaque_struct self.opaque_structs[it.name] = it.opaque_struct
@@ -2176,6 +2304,9 @@ function M.Parser()
return table.concat(txtclean) return table.concat(txtclean)
end end
function par:parseItems() function par:parseItems()
print"================================================================"
print"===================parseItems==================================="
print"================================================================"
--self:initTypedefsDict() --self:initTypedefsDict()
self.linenumdict = {} self.linenumdict = {}
@@ -2198,9 +2329,13 @@ function M.Parser()
local txt = table.concat(cdefs2,"\n") local txt = table.concat(cdefs2,"\n")
--string substitution --string substitution
if self.str_subst then if self.str_subst then
print("========== str_subst")
local nn
for k,v in pairs(self.str_subst) do for k,v in pairs(self.str_subst) do
txt = txt:gsub(k,v) txt,nn = txt:gsub(k,v)
print(k,"done times:",nn)
end end
print("========== str_subst end")
end end
--clean = default in constructor (implot3d) --clean = default in constructor (implot3d)
txt = txt:gsub("=%s*default","") txt = txt:gsub("=%s*default","")
@@ -2247,12 +2382,248 @@ function M.Parser()
end end
end end
end) end)
if next(self.opaque_structs) then M.prtable("opaque_structs:",self.opaque_structs) end if next(self.opaque_structs) then
M.prtable("opaque_structs:",self.opaque_structs)
self.opaque_structs_inv = {}
for k,v in pairs(self.opaque_structs) do
self.opaque_structs_inv[v]=k
end
end
end end
function par:printItems() function par:printItems()
printItems(items) printItems(items)
end end
-- for manuals not present in original module
-- copied from parseFuncion
local function split_args(self, funcname, stname, args, ret)
print("split args",funcname, stname, args, ret)
args = clean_spaces(args)
args = moveptr(args)
ret = clean_spaces(ret)
ret = moveptr(ret)
if stname==true then stname="" end
local constructor = ret:match(stname) and true or nil
local argsp = args:sub(2,-2)..","
local argsTa = {}
for tynam in argsp:gmatch("([^,]+),") do
if tynam:match("%)") and not tynam:match("%b()") then
error"split_args"
--patenthesis not closed are merged in previous (happens in some defaults)
argsTa[#argsTa] = argsTa[#argsTa]..","..tynam
while argsTa[#argsTa]:match("%)") and not argsTa[#argsTa]:match("%b()") do
argsTa[#argsTa-1] = argsTa[#argsTa-1] .. "," .. argsTa[#argsTa]
argsTa[#argsTa] = nil
end
else
argsTa[#argsTa+1] = tynam
end
end
----------------------------
--get typ, name and defaults
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
local argsTa2 = {}
local noname_counter = 0
for i,ar in ipairs(argsTa) do
local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>")
if template then
error"manuals should not have templates"
if self.typenames[stname] ~= template then --rule out template typename
self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te
end
end
argsTa[i] = te and code2 or ar
local template_orig = te and ar or nil
ar = argsTa[i]
--avoid var name without space type&name -> type& name
-- also do type &name -> type& name
--ar = ar:gsub("(%S)&(%S)","%1& %2")
ar = ar:gsub("(%S)%s*&(%S)","%1& %2")
local typ,name,retf,sigf,reftoptr,defa,ar1
local has_cdecl = ar:match"__cdecl"
if has_cdecl then ar = ar:gsub("__cdecl","") end
if ar:match(functype_re) then
local t1,namef,t2 = ar:match(functype_reex)
local f_ = has_cdecl and "(__cdecl*)" or "(*)"
typ, name = t1..f_..t2, namef
retf = t1
sigf = t2
else
reftoptr = nil
if ar:match("&") then
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
local typ11,name11 = ar1:match("(.+)%s([^%s]+)")
typ11 = typ11:gsub("const ","")
typ11 = typ11:gsub("&","")
if ar:match("const") and not self.opaque_structs[typ11] then
--if ar:match"Palette" then print("--w---w--w",ar,typ11,name11) end
--print("--w---w--w",ar,cname)
ar = ar:gsub("&","")
else
ar = ar:gsub("&","*")
reftoptr = true
end
end
if ar:match("%.%.%.") then
typ, name = "...", "..."
else
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
typ,name = ar1:match("(.+)%s([^%s]+)")
end
if not typ or not name or name:match"%*" or M.c_types[name] or self.typedefs_dict[name] then
print("argument without name",funcname,typ,name,ar)
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
typ = ar1
noname_counter = noname_counter + 1
name = "noname"..noname_counter
end
--float name[2] to float[2] name
local siz = name:match("(%[%d*%])")
if siz then
typ = typ..siz
name = name:gsub("(%[%d*%])","")
end
end
if typ:match"::" then
local const,typsimp,ptr = typ:match("(const )([^%*&]+)([%*&]*)")
print("= = = = 0 = =typ",typ,const,typsimp,ptr)
if self.opaque_structs_inv and self.opaque_structs_inv[typsimp] then
print("(((())))))=======self.opaque",const,typsimp,ptr);
typ = (const or "")..self.opaque_structs_inv[typsimp]..(ptr or "")
end
end
argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf,has_cdecl=has_cdecl,template_orig=template_orig}
if ar:match("&") and not ar:match("const") then
--only post error if not manual
local cname = self.getCname(stname,funcname, namespace) --cimguiname
if not self.manuals[cname] then
print("reference to no const arg in",funcname,argscsinpars,ar)
end
end
end
local argsArr = argsTa2
--recreate argscsinpars, call_args and signature from argsArr
local asp, caar,signat
if #argsArr > 0 then
asp = "("
caar = "("
signat = "("
for i,v in ipairs(argsArr) do
if v.ret then --function pointer
local f_ = v.has_cdecl and "(__cdecl*" or "(*"
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
caar = caar .. v.name .. ","
signat = signat .. v.ret .. f_..")" .. clean_names_from_signature(self,v.signature) .. ","
else
local siz = v.type:match("(%[%d*%])") or ""
local typ = v.type:gsub("(%[%d*%])","")
asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. ","
local callname = v.reftoptr and "*"..v.name or v.name
caar = caar .. callname .. ","
signat = signat .. typ .. siz .. ","
end
end
asp = asp:sub(1,-2)..")"
caar = caar:sub(1,-2)..")"
signat = signat:sub(1,-2)..")" .. (extraconst or "")
else
asp = "()"
caar = "()"
signat = "()" .. (extraconst or "")
end
--if ismanual then print("manual",asp, caar, signat) end
----------------------------
--[[
if not ret and stname then --must be constructors
if not (stname == funcname or "~"..stname==funcname) then --break end
print("false constructor:",line);
print("b2:",ret,stname,funcname,args)
return --are function defs
end
end
--]]
local cimguiname = funcname --self.getCname(stname,funcname, namespace)
-- table.insert(self.funcdefs,{stname=stname,funcname=funcname,args=args,signature=signat,cimguiname=cimguiname,call_args=caar,ret =ret})
local funcdef = {stname=stname,funcname=funcname,args=args,signature=signat,cimguiname=cimguiname,call_args=caar,ret =ret}
-- local defsT = self.defsT
-- defsT[cimguiname] = defsT[cimguiname] or {}
-- table.insert(defsT[cimguiname],{})
-- local defT = defsT[cimguiname][#defsT[cimguiname]]
local defT = {constructor = constructor}
defT.defaults = {}
for i,ar in ipairs(argsArr) do
if ar.default then
--clean defaults
--do only if not a c string
local is_cstring = ar.default:sub(1,1)=='"' and ar.default:sub(-1,-1) =='"'
if not is_cstring then
ar.default = ar.default:gsub("%(%(void%s*%*%)0%)","NULL")
if ar.default:match"%(ImU32%)" and not ar.default:match"sizeof" then
ar.default = tostring(CleanImU32(ar.default))
end
end
defT.defaults[ar.name] = ar.default
ar.default = nil
end
end
-- print(cimguiname)
-- if ismanual then M.prtable("===================================\n",argsArr) end
defT.templated = self.typenames[stname] and true
defT.namespace = namespace
defT.cimguiname = cimguiname
defT.ov_cimguiname = cimguiname
defT.stname = stname
defT.is_static_function = is_static_function
defT.funcname = funcname
defT.argsoriginal = args
defT.args= asp
defT.signature = signat --signature
defT.call_args = caar --call_args
defT.isvararg = signat:match("%.%.%.%)$")
defT.location = locat
--local comentario = (itt.prevcomments or "")..(itt.comments or "")..(comment or "")
--if comentario=="" then comentario=nil end
--defT.comment = comentario
defT.argsT = argsArr
if self.get_manuals(defT) then
defT.manual = true
end
if self.get_skipped(defT) then
defT.skipped = true
end
---[[
if ret then
--defT.stdret = line:match("^\n*%s*std::")
--if ret:match"string" then print("parsefunction",defT.cimguiname, ret, line) end
defT.ret = clean_spaces(ret:gsub("&","*"))
--name_conversion
local rr = defT.ret:gsub("*","")
rr = rr:gsub("const ","")
if self.name_conversion and self.name_conversion[rr] then
defT.ret = defT.ret:gsub(rr,self.name_conversion[rr])
end
defT.retref = ret:match("&")
-- if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then
-- defT.ret = defT.ret.."_Simple"
-- end
end
--]]
--defsT[cimguiname][signat] = defT
--M.prtable(defT)
defT.call_args_old = defT.call_args
return defT --, funcdef
end
function par:set_manuals(manuals, modulen, erase) function par:set_manuals(manuals, modulen, erase)
erase = erase or {"CIMGUI_API"} erase = erase or {"CIMGUI_API"}
local moddata = read_data("./"..modulen.."_template.h") local moddata = read_data("./"..modulen.."_template.h")
@@ -2262,10 +2633,12 @@ function M.Parser()
ret = ret:gsub(ww,"") ret = ret:gsub(ww,"")
end end
local args = moddata:match(k.."%s*(%b())") local args = moddata:match(k.."%s*(%b())")
manuals[k] = {args = args, ret = ret} manuals[k] = split_args(self,k,v,args,ret)
--manuals[k] = {args = args, ret = ret, argsT = split_args(self,args), manual = true, stname = ""}
--print(k,args,ret) --print(k,args,ret)
end end
self.manuals = manuals self.manuals = manuals
M.prtable("manuals",manuals)
end end
par.parseFunction = parseFunction par.parseFunction = parseFunction
local uniques = {} local uniques = {}
@@ -2370,9 +2743,11 @@ function M.Parser()
--print("not doheader",ttype,template,te, self.typenames[ttype]) --print("not doheader",ttype,template,te, self.typenames[ttype])
--M.prtable(self.typenames) --M.prtable(self.typenames)
if self.typenames[ttype] and self.typenames[ttype] ~= template and self.typenames[ttype].."*" ~= template then --rule out T (template typename) if self.typenames[ttype] and self.typenames[ttype] ~= template and self.typenames[ttype].."*" ~= template then --rule out T (template typename)
if not self.skip_template[ttype] then
self.templates[ttype] = self.templates[ttype] or {} self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te self.templates[ttype][template] = te
it2=code2 it2=code2
end
end end
if doheader and self.templates[ttype] then if doheader and self.templates[ttype] then
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template]) local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
@@ -2381,7 +2756,7 @@ function M.Parser()
end end
--clean using --clean using
if it.re_name == "vardef_re" and it.item:match("using%s+([^=%s]+)%s*=%s*([^;]+);") then if it.re_name == "vardef_re" and it.item:match("using%s+([^=%s]+)%s*=%s*([^;]+);") then
print("===using",it.item) print("===using clean",it.item)
local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);") local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);")
print(typedef,assign) print(typedef,assign)
assign = assign:gsub("%w+::","") assign = assign:gsub("%w+::","")
@@ -2545,7 +2920,9 @@ function M.Parser()
end end
end end
function par:gen_structs_and_enums() function par:gen_structs_and_enums()
print"======================================================="
print"--------------gen_structs_and_enums" print"--------------gen_structs_and_enums"
print"======================================================="
--M.prtable(self.typenames) --M.prtable(self.typenames)
local outtab = {} local outtab = {}
local outtabpre = {} local outtabpre = {}
@@ -2602,7 +2979,7 @@ function M.Parser()
end end
if it2:match("using") then if it2:match("using") then
local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);") local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);")
print("====using",string.format("%q %q",typedef, assign)) print("====using as typedef",string.format("%q %q",typedef, assign))
if assign and assign:match"%(%s*%*%s*%)" then --function typedef if assign and assign:match"%(%s*%*%s*%)" then --function typedef
it2 = "\ntypedef "..assign:gsub("%(%s*%*%s*%)","(*"..typedef..")")..";" it2 = "\ntypedef "..assign:gsub("%(%s*%*%s*%)","(*"..typedef..")")..";"
end end
@@ -2661,9 +3038,19 @@ function M.Parser()
self:header_text_insert(outtab, tst, it) self:header_text_insert(outtab, tst, it)
end end
self.typedefs_dict[structname]="struct "..structname self.typedefs_dict[structname]="struct "..structname
--dont insert child structs as they are inserted before parent struct if not self.forced_nonPOD[structname] then
if not (it.parent and (it.parent.re_name == "struct_re" or it.parent.re_name == "class_re")) then --dont insert child structs as they are inserted before parent struct
--table.insert(outtab,predec .. cleanst) if not (it.parent and (it.parent.re_name == "struct_re" or it.parent.re_name == "class_re")) then
--table.insert(outtab,predec .. cleanst)
self:header_text_insert(outtab, predec .. cleanst, it)
end
else
local tab = self.forced_nonPOD[structname]
local cleanst = "\nstruct "..structname.."\n{\n"
for i,v in ipairs(tab) do
cleanst = cleanst.." "..v.type.." "..v.name..";\n"
end
cleanst = cleanst .. "};"
self:header_text_insert(outtab, predec .. cleanst, it) self:header_text_insert(outtab, predec .. cleanst, it)
end end
end end
@@ -2714,6 +3101,13 @@ function M.Parser()
--table.insert(outtab,"\n/////outtab end\n") --table.insert(outtab,"\n/////outtab end\n")
local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"") local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"")
outtabprest = M.header_subs_nonPOD(self,outtabprest) outtabprest = M.header_subs_nonPOD(self,outtabprest)
local txt2 = ""
M.table_do_sorted(self.nP_used, function(k,v)
if v~="inherited" then
txt2 = txt2.."typedef struct "..k.."_c "..k..";\n"
end
end)
outtabprest = txt2..outtabprest
outtabst = M.header_subs_nonPOD(self,outtabst) outtabst = M.header_subs_nonPOD(self,outtabst)
self.structs_and_enums = {outtabprest, outtabst or ""} self.structs_and_enums = {outtabprest, outtabst or ""}
@@ -2834,7 +3228,9 @@ function M.Parser()
end end
par.enums_for_table = enums_for_table par.enums_for_table = enums_for_table
function par:gen_structs_and_enums_table() function par:gen_structs_and_enums_table()
print"--------------gen_structs_and_enums_table" print"================================================================"
print"===================gen_structs_and_enums_table==================================="
print"================================================================"
local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={},opaque_structs={}} local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={},opaque_structs={}}
--self.typedefs_table = {} --self.typedefs_table = {}
local enumsordered = {} local enumsordered = {}
@@ -2902,14 +3298,18 @@ function M.Parser()
--if not void stname or templated --if not void stname or templated
if not structname then print("NO NAME",cleanst,it.item) end if not structname then print("NO NAME",cleanst,it.item) end
if structname and not self.typenames[structname] then if structname and not self.typenames[structname] then
outtab.structs[structname] = {} if self.forced_nonPOD[structname] then
outtab.struct_comments[structname] = {sameline=it.comments,above=it.prevcomments} outtab.structs[structname] = self.forced_nonPOD[structname]
outtab.struct_comments[structname] = next(outtab.struct_comments[structname]) and outtab.struct_comments[structname] or nil else
outtab.locations[structname] = it.locat outtab.structs[structname] = {}
if strtab then outtab.struct_comments[structname] = {sameline=it.comments,above=it.prevcomments}
for j=3,#strtab-1 do outtab.struct_comments[structname] = next(outtab.struct_comments[structname]) and outtab.struct_comments[structname] or nil
self:parse_struct_line(strtab[j],outtab.structs[structname],comstab[j]) outtab.locations[structname] = it.locat
end if strtab then
for j=3,#strtab-1 do
self:parse_struct_line(strtab[j],outtab.structs[structname],comstab[j])
end
end
end end
-- if structname == "Change" then -- if structname == "Change" then
-- print(it.item) -- print(it.item)
@@ -3010,6 +3410,9 @@ function M.Parser()
end end
function par:compute_overloads() function par:compute_overloads()
print"================================================================"
print"===================compute_overloads==================================="
print"================================================================"
-- if self.IMGUI_HAS_TEXTURES then -- if self.IMGUI_HAS_TEXTURES then
-- print"----------replacing ImTextureID with ImTextureUserID" -- print"----------replacing ImTextureID with ImTextureUserID"
-- REPLACE_TEXTUREID(self) -- REPLACE_TEXTUREID(self)
@@ -3236,13 +3639,16 @@ function M.Parser()
end end
--generate cimgui.cpp cimgui.h --generate cimgui.cpp cimgui.h
function par:cimgui_generation( cimgui_header) function par:cimgui_generation( cimgui_header)
print"=========================================================="
print"===============cimgui_generation==========================="
print"=========================================================="
local name = self.modulename local name = self.modulename
local hstrfile = read_data("./"..name.."_template.h") local hstrfile = read_data("./"..name.."_template.h")
M.prtable("templates",self.templates) M.prtable("templates",self.templates)
M.prtable("typenames",self.typenames) M.prtable("typenames",self.typenames)
local outpre,outpost = self.structs_and_enums[1], self.structs_and_enums[2] local outpre,outpost = self.structs_and_enums[1], self.structs_and_enums[2]
local tdt = self:generate_templates() local tdt = self:generate_templates()
M.prtable("generate_templates",tdt) --M.prtable("generate_templates",tdt)
local cstructsstr = outpre..tdt..outpost local cstructsstr = outpre..tdt..outpost
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr) hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
@@ -3258,7 +3664,16 @@ function M.Parser()
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem) hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
save_data("./output/"..name..".cpp",cimgui_header,hstrfile) save_data("./output/"..name..".cpp",cimgui_header,hstrfile)
------------------------test header----------
local COMPILER, CPRE = self.COMPILER
COMPILER = COMPILER=="g++" and "gcc" or COMPILER
if COMPILER=="gcc" then
local include_cmd = COMPILER=="cl" and [[ /I ]] or [[ -I ]]
local extra_includes = include_cmd.." ../../cimgui "
local CPRE = COMPILER..[[ -std=c99 -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS -DIMGUI_ENABLE_FREETYPE ]] ..extra_includes.. "./output/"..name..".h"
print(CPRE)
get_cdefs(CPRE,"name")
end
end end
return par return par
end end
@@ -3522,21 +3937,7 @@ local function location(file,locpathT,defines,COMPILER,keepemptylines)
end end
M.location = location M.location = location
---------------------- C writing functions ---------------------- C writing functions
local function paramListWithoutDots(params)
i, j = string.find(params, "%.%.%.")
while i > 1 do
i = i - 1
c = string.sub(params,i,i)
if c == "," then
return string.sub(params, 1, i-1) .. params:sub(j+1)
elseif c == "(" then
return string.sub(params, 1, i) .. params:sub(j+1)
end
end
error("paramListWithoutDots failed")
return "()"
end
local function ImGui_f_implementation(def) local function ImGui_f_implementation(def)
local outtab = {} local outtab = {}
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
@@ -3562,7 +3963,9 @@ local function ImGui_f_implementation(def)
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n") table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n") table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n")
table.insert(outtab, "{\n") table.insert(outtab, "{\n")
table.insert(outtab, " return "..def.ov_cimguiname..paramListWithoutDots(def.call_args_old)..";\n") local returnword = "return "
if def.ret=="void" then returnword = "" end
table.insert(outtab, " "..returnword..def.ov_cimguiname..paramListWithoutDots(def.call_args_old)..";\n")
table.insert(outtab, "}\n") table.insert(outtab, "}\n")
table.insert(outtab, "#endif\n") table.insert(outtab, "#endif\n")
elseif def.nonUDT then elseif def.nonUDT then
@@ -3572,10 +3975,12 @@ local function ImGui_f_implementation(def)
elseif def.nonUDT == 2 then elseif def.nonUDT == 2 then
insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret..namespace..def.funcname..def.call_args..");\n") insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret..namespace..def.funcname..def.call_args..");\n")
elseif def.nonUDT == "string" then elseif def.nonUDT == "string" then
insert(outtab," static std::string str = "..ptret..namespace..def.funcname..def.call_args..";\n") insert(outtab," static std::string str;\n")
insert(outtab," str.assign("..ptret.."self->"..def.funcname..def.call_args..");\n")
insert(outtab," return str.c_str();\n") insert(outtab," return str.c_str();\n")
elseif def.nonUDT == "opaque" then elseif def.nonUDT == "opaque" then
insert(outtab," static auto opq = "..ptret..namespace..def.funcname..def.call_args..";\n") insert(outtab," static auto opq = "..ptret..namespace..def.funcname..def.call_args..";\n")
insert(outtab," opq = "..ptret..namespace..def.funcname..def.call_args..";\n")
insert(outtab," return &opq;\n") insert(outtab," return &opq;\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
@@ -3608,6 +4013,16 @@ local function struct_f_implementation(def)
if def.ret~="void" then if def.ret~="void" then
table.insert(outtab," return ret;\n") table.insert(outtab," return ret;\n")
end end
table.insert(outtab,"}\n")
-- For variadic functions we add a function implementation with zero argumets, for compatibility with languages such as C#.
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n")
table.insert(outtab, "{\n")
local returnword = "return "
if def.ret=="void" then returnword = "" end
table.insert(outtab, " "..returnword..def.ov_cimguiname.."(self,"..paramListWithoutDots(def.call_args_old):sub(2,-1)..";\n")
table.insert(outtab, "}\n")
table.insert(outtab, "#endif\n")
elseif def.nonUDT then elseif def.nonUDT then
if def.nonUDT == 1 then if def.nonUDT == 1 then
--table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n") --table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
@@ -3616,16 +4031,20 @@ local function struct_f_implementation(def)
elseif def.nonUDT == 2 then elseif def.nonUDT == 2 then
insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret.."self->"..def.funcname..def.call_args..");\n") insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret.."self->"..def.funcname..def.call_args..");\n")
elseif def.nonUDT == "string" then elseif def.nonUDT == "string" then
insert(outtab," static std::string str = "..ptret.."self->"..def.funcname..def.call_args..";\n") insert(outtab," static std::string str;\n")
insert(outtab," str.assign("..ptret.."self->"..def.funcname..def.call_args..");\n")
insert(outtab," return str.c_str();\n") insert(outtab," return str.c_str();\n")
elseif def.nonUDT == "opaque" then elseif def.nonUDT == "opaque" then
insert(outtab," static auto opq = "..ptret.."self->"..def.funcname..def.call_args..";\n") insert(outtab," static auto opq = "..ptret.."self->"..def.funcname..def.call_args..";\n")
insert(outtab," opq = "..ptret.."self->"..def.funcname..def.call_args..";\n")
insert(outtab," return &opq;\n") insert(outtab," return &opq;\n")
end end
table.insert(outtab,"}\n")
else --standard struct else --standard struct
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
end end
table.insert(outtab,"}\n")
return table.concat(outtab, "") return table.concat(outtab, "")
end end
local function func_implementation(FP) local function func_implementation(FP)
@@ -3642,8 +4061,7 @@ local function func_implementation(FP)
custom = FP.custom_implementation(outtab, def, FP) custom = FP.custom_implementation(outtab, def, FP)
end end
local manual = FP.get_manuals(def) local manual = FP.get_manuals(def)
if not custom and not manual and not def.templated and not FP.get_skipped(def) if not custom and not manual and not def.templated and not FP.get_skipped(def) --and not (FP.opaque_structs[def.stname] and not def.is_static_function)
and not (FP.opaque_structs[def.stname] and not def.is_static_function)
then then
if def.constructor then if def.constructor then
local tab = {} local tab = {}
@@ -3701,7 +4119,7 @@ M.table_do_sorted = table_do_sorted
local function func_header_generate_structs(FP) local function func_header_generate_structs(FP)
local outtab = {}--"\n/////func_header_generate_structs\n"} local outtab = {}--"\n/////func_header_generate_structs\n"}
M.prtable("embeded_structs",FP.embeded_structs)
table_do_sorted(FP.embeded_structs,function(k,v) table_do_sorted(FP.embeded_structs,function(k,v)
if not FP.typenames[k] then if not FP.typenames[k] then
print("embeded",k,v) print("embeded",k,v)
@@ -3720,7 +4138,7 @@ local function func_header_generate_structs(FP)
end) end)
end end
end) end)
--M.prtable(FP.typenames) --M.prtable("typenames",FP.typenames)
table_do_sorted(FP.opaque_structs,function(k,v) table_do_sorted(FP.opaque_structs,function(k,v)
if not FP.typenames[k] then if not FP.typenames[k] then
table.insert(outtab,"typedef "..v.." "..k..";\n") table.insert(outtab,"typedef "..v.." "..k..";\n")
@@ -3739,7 +4157,6 @@ local function func_header_generate_funcs(FP)
local outtab = {} local outtab = {}
for _,t in ipairs(FP.funcdefs) do for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then if t.cimguiname then
local cimf = FP.defsT[t.cimguiname] local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature] local def = cimf[t.signature]
@@ -3749,9 +4166,8 @@ local function func_header_generate_funcs(FP)
custom = FP.custom_header(outtab, def) custom = FP.custom_header(outtab, def)
end end
local manual = FP.get_manuals(def) local manual = FP.get_manuals(def)
if not custom and not manual and not def.templated and not FP.get_skipped(def) and if not custom and not manual and not def.templated and not FP.get_skipped(def) --and not (FP.opaque_structs[def.stname] and not def.is_static_function)
not (FP.opaque_structs[def.stname] and not def.is_static_function) then then
local addcoment = "" --def.comment or "" local addcoment = "" --def.comment or ""
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
if def.constructor then if def.constructor then
@@ -3775,6 +4191,12 @@ local function func_header_generate_funcs(FP)
end end
else else
table.insert(outtab,"CIMGUI_API "..ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API "..ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
if def.isvararg then
-- For variadic functions we add a function implementation with zero argumets, for compatibility with languages such as C#.
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args)..";\n")
table.insert(outtab, "#endif\n")
end
end end
end end
end end

View File

@@ -407,19 +407,20 @@ end
--generation --generation
print("------------------generation with "..COMPILER.."------------------------") print("------------------generation with "..COMPILER.."------------------------")
local parser1 local parser1
local headers = [[#include "]]..IMGUI_PATH..[[/imgui.h" local headers = [[#include "]]..IMGUI_PATH..[[/imgui.h"
]] ]]
local headersT = {[[imgui]]} local headersT = {[[imgui]]}
if INTERNAL_GENERATION then if INTERNAL_GENERATION then
headers = headers .. [[#include "]]..IMGUI_PATH..[[/imgui_internal.h" headers = headers .. [[#include "]]..IMGUI_PATH..[[/imgui_internal.h"
]] ]]
headers = headers .. [[#include "]]..IMGUI_PATH..[[/imstb_textedit.h"
]]
headersT[#headersT + 1] = [[imgui_internal]] headersT[#headersT + 1] = [[imgui_internal]]
headersT[#headersT + 1] = [[imstb_textedit]] headersT[#headersT + 1] = [[imstb_textedit]]
end end
if FREETYPE_GENERATION then if FREETYPE_GENERATION then
headers = headers .. [[ headers = headers .. [[#include "]]..IMGUI_PATH..[[/misc/freetype/imgui_freetype.h"
#include "]]..IMGUI_PATH..[[/misc/freetype/imgui_freetype.h" ]]
]]
headersT[#headersT + 1] = [[imgui_freetype]] headersT[#headersT + 1] = [[imgui_freetype]]
end end
save_data("headers.h",headers) save_data("headers.h",headers)

View File

@@ -11,6 +11,7 @@
"IMGUI_DEBUG_LOG_NAV(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", "IMGUI_DEBUG_LOG_NAV(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
"IMGUI_DEBUG_LOG_POPUP(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", "IMGUI_DEBUG_LOG_POPUP(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
"IMGUI_DEBUG_LOG_SELECTION(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventSelection) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", "IMGUI_DEBUG_LOG_SELECTION(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventSelection) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
"IMGUI_DEBUG_LOG_TABLE(...)": "do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventTable) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
"IMGUI_DEBUG_PRINTF(_FMT,...)": "printf(_FMT, __VA_ARGS__)", "IMGUI_DEBUG_PRINTF(_FMT,...)": "printf(_FMT, __VA_ARGS__)",
"IMGUI_FONT_SIZE_MAX": "(512.0f)", "IMGUI_FONT_SIZE_MAX": "(512.0f)",
"IMGUI_FONT_SIZE_THRESHOLD_FOR_LOADADVANCEXONLYMODE": "(128.0f)", "IMGUI_FONT_SIZE_THRESHOLD_FOR_LOADADVANCEXONLYMODE": "(128.0f)",
@@ -19,11 +20,12 @@
"IMGUI_TABLE_MAX_COLUMNS": "512", "IMGUI_TABLE_MAX_COLUMNS": "512",
"IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)": "((void)0)", "IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)": "((void)0)",
"IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)": "((void)g)", "IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)": "((void)g)",
"IMGUI_VERSION": "\"1.92.8\"", "IMGUI_VERSION": "\"1.92.9b\"",
"IMGUI_VERSION_NUM": "19280", "IMGUI_VERSION_NUM": "19291",
"IMGUI_WINDOW_HARD_MIN_SIZE": "4.0f", "IMGUI_WINDOW_HARD_MIN_SIZE": "4.0f",
"IMSTB_TEXTEDIT_CHARTYPE": "char", "IMSTB_TEXTEDIT_CHARTYPE": "char",
"IMSTB_TEXTEDIT_GETWIDTH_NEWLINE": "(-1.0f)", "IMSTB_TEXTEDIT_GETWIDTH_NEWLINE": "(-1.0f)",
"IMSTB_TEXTEDIT_POSITIONTYPE": "int",
"IMSTB_TEXTEDIT_STRING": "ImGuiInputTextState", "IMSTB_TEXTEDIT_STRING": "ImGuiInputTextState",
"IMSTB_TEXTEDIT_UNDOCHARCOUNT": "999", "IMSTB_TEXTEDIT_UNDOCHARCOUNT": "999",
"IMSTB_TEXTEDIT_UNDOSTATECOUNT": "99", "IMSTB_TEXTEDIT_UNDOSTATECOUNT": "99",

View File

@@ -11,6 +11,7 @@ local t={
["IMGUI_DEBUG_LOG_NAV(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", ["IMGUI_DEBUG_LOG_NAV(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventNav) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
["IMGUI_DEBUG_LOG_POPUP(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", ["IMGUI_DEBUG_LOG_POPUP(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
["IMGUI_DEBUG_LOG_SELECTION(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventSelection) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)", ["IMGUI_DEBUG_LOG_SELECTION(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventSelection) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
["IMGUI_DEBUG_LOG_TABLE(...)"]="do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventTable) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)",
["IMGUI_DEBUG_PRINTF(_FMT,...)"]="printf(_FMT, __VA_ARGS__)", ["IMGUI_DEBUG_PRINTF(_FMT,...)"]="printf(_FMT, __VA_ARGS__)",
IMGUI_FONT_SIZE_MAX="(512.0f)", IMGUI_FONT_SIZE_MAX="(512.0f)",
IMGUI_FONT_SIZE_THRESHOLD_FOR_LOADADVANCEXONLYMODE="(128.0f)", IMGUI_FONT_SIZE_THRESHOLD_FOR_LOADADVANCEXONLYMODE="(128.0f)",
@@ -19,11 +20,12 @@ local t={
IMGUI_TABLE_MAX_COLUMNS="512", IMGUI_TABLE_MAX_COLUMNS="512",
["IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)"]="((void)0)", ["IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)"]="((void)0)",
["IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)"]="((void)g)", ["IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)"]="((void)g)",
IMGUI_VERSION="\"1.92.8\"", IMGUI_VERSION="\"1.92.9b\"",
IMGUI_VERSION_NUM="19280", IMGUI_VERSION_NUM="19291",
IMGUI_WINDOW_HARD_MIN_SIZE="4.0f", IMGUI_WINDOW_HARD_MIN_SIZE="4.0f",
IMSTB_TEXTEDIT_CHARTYPE="char", IMSTB_TEXTEDIT_CHARTYPE="char",
IMSTB_TEXTEDIT_GETWIDTH_NEWLINE="(-1.0f)", IMSTB_TEXTEDIT_GETWIDTH_NEWLINE="(-1.0f)",
IMSTB_TEXTEDIT_POSITIONTYPE="int",
IMSTB_TEXTEDIT_STRING="ImGuiInputTextState", IMSTB_TEXTEDIT_STRING="ImGuiInputTextState",
IMSTB_TEXTEDIT_UNDOCHARCOUNT="999", IMSTB_TEXTEDIT_UNDOCHARCOUNT="999",
IMSTB_TEXTEDIT_UNDOSTATECOUNT="99", IMSTB_TEXTEDIT_UNDOSTATECOUNT="99",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -642,6 +642,23 @@
"stname": "" "stname": ""
} }
], ],
"ImGui_ImplOpenGL3_GetRenderState": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"call_args_old": "()",
"cimguiname": "ImGui_ImplOpenGL3_GetRenderState",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_GetRenderState",
"location": "imgui_impl_opengl3:79",
"ov_cimguiname": "ImGui_ImplOpenGL3_GetRenderState",
"ret": "ImGui_ImplOpenGL3_RenderState*",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_Init": [ "ImGui_ImplOpenGL3_Init": [
{ {
"args": "(const char* glsl_version)", "args": "(const char* glsl_version)",
@@ -1363,7 +1380,7 @@
"cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow", "cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_CreateOrResizeWindow", "funcname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"location": "imgui_impl_vulkan:203", "location": "imgui_impl_vulkan:204",
"ov_cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow", "ov_cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"ret": "void", "ret": "void",
"signature": "(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t,VkImageUsageFlags)", "signature": "(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t,VkImageUsageFlags)",
@@ -1397,7 +1414,7 @@
"cimguiname": "ImGui_ImplVulkanH_DestroyWindow", "cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_DestroyWindow", "funcname": "ImGui_ImplVulkanH_DestroyWindow",
"location": "imgui_impl_vulkan:204", "location": "imgui_impl_vulkan:205",
"ov_cimguiname": "ImGui_ImplVulkanH_DestroyWindow", "ov_cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
"ret": "void", "ret": "void",
"signature": "(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)", "signature": "(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)",
@@ -1419,7 +1436,7 @@
"cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", "cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", "funcname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"location": "imgui_impl_vulkan:209", "location": "imgui_impl_vulkan:210",
"ov_cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", "ov_cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"ret": "int", "ret": "int",
"signature": "(VkPresentModeKHR)", "signature": "(VkPresentModeKHR)",
@@ -1441,7 +1458,7 @@
"cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice", "cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectPhysicalDevice", "funcname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"location": "imgui_impl_vulkan:207", "location": "imgui_impl_vulkan:208",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice", "ov_cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"ret": "VkPhysicalDevice", "ret": "VkPhysicalDevice",
"signature": "(VkInstance)", "signature": "(VkInstance)",
@@ -1475,7 +1492,7 @@
"cimguiname": "ImGui_ImplVulkanH_SelectPresentMode", "cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectPresentMode", "funcname": "ImGui_ImplVulkanH_SelectPresentMode",
"location": "imgui_impl_vulkan:206", "location": "imgui_impl_vulkan:207",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPresentMode", "ov_cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
"ret": "VkPresentModeKHR", "ret": "VkPresentModeKHR",
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)", "signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)",
@@ -1497,7 +1514,7 @@
"cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex", "cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex", "funcname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"location": "imgui_impl_vulkan:208", "location": "imgui_impl_vulkan:209",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex", "ov_cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"ret": "uint32_t", "ret": "uint32_t",
"signature": "(VkPhysicalDevice)", "signature": "(VkPhysicalDevice)",
@@ -1535,7 +1552,7 @@
"cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat", "cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectSurfaceFormat", "funcname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"location": "imgui_impl_vulkan:205", "location": "imgui_impl_vulkan:206",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat", "ov_cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"ret": "VkSurfaceFormatKHR", "ret": "VkSurfaceFormatKHR",
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)", "signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)",
@@ -1553,7 +1570,7 @@
"constructor": true, "constructor": true,
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplVulkanH_Window", "funcname": "ImGui_ImplVulkanH_Window",
"location": "imgui_impl_vulkan:255", "location": "imgui_impl_vulkan:256",
"namespace": "ImGui_ImplVulkanH_Window", "namespace": "ImGui_ImplVulkanH_Window",
"ov_cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window", "ov_cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
"signature": "()", "signature": "()",
@@ -1573,7 +1590,7 @@
"cimguiname": "ImGui_ImplVulkanH_Window_destroy", "cimguiname": "ImGui_ImplVulkanH_Window_destroy",
"defaults": {}, "defaults": {},
"destructor": true, "destructor": true,
"location": "imgui_impl_vulkan:255", "location": "imgui_impl_vulkan:256",
"ov_cimguiname": "ImGui_ImplVulkanH_Window_destroy", "ov_cimguiname": "ImGui_ImplVulkanH_Window_destroy",
"ret": "void", "ret": "void",
"signature": "(ImGui_ImplVulkanH_Window*)", "signature": "(ImGui_ImplVulkanH_Window*)",

View File

@@ -558,6 +558,22 @@ local t={
signature="()", signature="()",
stname=""}, stname=""},
["()"]=nil}, ["()"]=nil},
ImGui_ImplOpenGL3_GetRenderState={
[1]={
args="()",
argsT={},
argsoriginal="()",
call_args="()",
call_args_old="()",
cimguiname="ImGui_ImplOpenGL3_GetRenderState",
defaults={},
funcname="ImGui_ImplOpenGL3_GetRenderState",
location="imgui_impl_opengl3:79",
ov_cimguiname="ImGui_ImplOpenGL3_GetRenderState",
ret="ImGui_ImplOpenGL3_RenderState*",
signature="()",
stname=""},
["()"]=nil},
ImGui_ImplOpenGL3_Init={ ImGui_ImplOpenGL3_Init={
[1]={ [1]={
args="(const char* glsl_version)", args="(const char* glsl_version)",
@@ -1179,7 +1195,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_CreateOrResizeWindow", cimguiname="ImGui_ImplVulkanH_CreateOrResizeWindow",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_CreateOrResizeWindow", funcname="ImGui_ImplVulkanH_CreateOrResizeWindow",
location="imgui_impl_vulkan:203", location="imgui_impl_vulkan:204",
ov_cimguiname="ImGui_ImplVulkanH_CreateOrResizeWindow", ov_cimguiname="ImGui_ImplVulkanH_CreateOrResizeWindow",
ret="void", ret="void",
signature="(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t,VkImageUsageFlags)", signature="(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t,VkImageUsageFlags)",
@@ -1207,7 +1223,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_DestroyWindow", cimguiname="ImGui_ImplVulkanH_DestroyWindow",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_DestroyWindow", funcname="ImGui_ImplVulkanH_DestroyWindow",
location="imgui_impl_vulkan:204", location="imgui_impl_vulkan:205",
ov_cimguiname="ImGui_ImplVulkanH_DestroyWindow", ov_cimguiname="ImGui_ImplVulkanH_DestroyWindow",
ret="void", ret="void",
signature="(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)", signature="(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)",
@@ -1226,7 +1242,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", cimguiname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", funcname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
location="imgui_impl_vulkan:209", location="imgui_impl_vulkan:210",
ov_cimguiname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode", ov_cimguiname="ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
ret="int", ret="int",
signature="(VkPresentModeKHR)", signature="(VkPresentModeKHR)",
@@ -1245,7 +1261,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_SelectPhysicalDevice", cimguiname="ImGui_ImplVulkanH_SelectPhysicalDevice",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_SelectPhysicalDevice", funcname="ImGui_ImplVulkanH_SelectPhysicalDevice",
location="imgui_impl_vulkan:207", location="imgui_impl_vulkan:208",
ov_cimguiname="ImGui_ImplVulkanH_SelectPhysicalDevice", ov_cimguiname="ImGui_ImplVulkanH_SelectPhysicalDevice",
ret="VkPhysicalDevice", ret="VkPhysicalDevice",
signature="(VkInstance)", signature="(VkInstance)",
@@ -1273,7 +1289,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_SelectPresentMode", cimguiname="ImGui_ImplVulkanH_SelectPresentMode",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_SelectPresentMode", funcname="ImGui_ImplVulkanH_SelectPresentMode",
location="imgui_impl_vulkan:206", location="imgui_impl_vulkan:207",
ov_cimguiname="ImGui_ImplVulkanH_SelectPresentMode", ov_cimguiname="ImGui_ImplVulkanH_SelectPresentMode",
ret="VkPresentModeKHR", ret="VkPresentModeKHR",
signature="(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)", signature="(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)",
@@ -1292,7 +1308,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_SelectQueueFamilyIndex", cimguiname="ImGui_ImplVulkanH_SelectQueueFamilyIndex",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_SelectQueueFamilyIndex", funcname="ImGui_ImplVulkanH_SelectQueueFamilyIndex",
location="imgui_impl_vulkan:208", location="imgui_impl_vulkan:209",
ov_cimguiname="ImGui_ImplVulkanH_SelectQueueFamilyIndex", ov_cimguiname="ImGui_ImplVulkanH_SelectQueueFamilyIndex",
ret="uint32_t", ret="uint32_t",
signature="(VkPhysicalDevice)", signature="(VkPhysicalDevice)",
@@ -1323,7 +1339,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_SelectSurfaceFormat", cimguiname="ImGui_ImplVulkanH_SelectSurfaceFormat",
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_SelectSurfaceFormat", funcname="ImGui_ImplVulkanH_SelectSurfaceFormat",
location="imgui_impl_vulkan:205", location="imgui_impl_vulkan:206",
ov_cimguiname="ImGui_ImplVulkanH_SelectSurfaceFormat", ov_cimguiname="ImGui_ImplVulkanH_SelectSurfaceFormat",
ret="VkSurfaceFormatKHR", ret="VkSurfaceFormatKHR",
signature="(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)", signature="(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)",
@@ -1340,7 +1356,7 @@ local t={
constructor=true, constructor=true,
defaults={}, defaults={},
funcname="ImGui_ImplVulkanH_Window", funcname="ImGui_ImplVulkanH_Window",
location="imgui_impl_vulkan:255", location="imgui_impl_vulkan:256",
namespace="ImGui_ImplVulkanH_Window", namespace="ImGui_ImplVulkanH_Window",
ov_cimguiname="ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window", ov_cimguiname="ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
signature="()", signature="()",
@@ -1357,7 +1373,7 @@ local t={
cimguiname="ImGui_ImplVulkanH_Window_destroy", cimguiname="ImGui_ImplVulkanH_Window_destroy",
defaults={}, defaults={},
destructor=true, destructor=true,
location="imgui_impl_vulkan:255", location="imgui_impl_vulkan:256",
ov_cimguiname="ImGui_ImplVulkanH_Window_destroy", ov_cimguiname="ImGui_ImplVulkanH_Window_destroy",
ret="void", ret="void",
signature="(ImGui_ImplVulkanH_Window*)", signature="(ImGui_ImplVulkanH_Window*)",
@@ -1592,6 +1608,7 @@ t.ImGui_ImplOpenGL2_Shutdown["()"]=t.ImGui_ImplOpenGL2_Shutdown[1]
t.ImGui_ImplOpenGL2_UpdateTexture["(ImTextureData*)"]=t.ImGui_ImplOpenGL2_UpdateTexture[1] t.ImGui_ImplOpenGL2_UpdateTexture["(ImTextureData*)"]=t.ImGui_ImplOpenGL2_UpdateTexture[1]
t.ImGui_ImplOpenGL3_CreateDeviceObjects["()"]=t.ImGui_ImplOpenGL3_CreateDeviceObjects[1] t.ImGui_ImplOpenGL3_CreateDeviceObjects["()"]=t.ImGui_ImplOpenGL3_CreateDeviceObjects[1]
t.ImGui_ImplOpenGL3_DestroyDeviceObjects["()"]=t.ImGui_ImplOpenGL3_DestroyDeviceObjects[1] t.ImGui_ImplOpenGL3_DestroyDeviceObjects["()"]=t.ImGui_ImplOpenGL3_DestroyDeviceObjects[1]
t.ImGui_ImplOpenGL3_GetRenderState["()"]=t.ImGui_ImplOpenGL3_GetRenderState[1]
t.ImGui_ImplOpenGL3_Init["(const char*)"]=t.ImGui_ImplOpenGL3_Init[1] t.ImGui_ImplOpenGL3_Init["(const char*)"]=t.ImGui_ImplOpenGL3_Init[1]
t.ImGui_ImplOpenGL3_NewFrame["()"]=t.ImGui_ImplOpenGL3_NewFrame[1] t.ImGui_ImplOpenGL3_NewFrame["()"]=t.ImGui_ImplOpenGL3_NewFrame[1]
t.ImGui_ImplOpenGL3_RenderDrawData["(ImDrawData*)"]=t.ImGui_ImplOpenGL3_RenderDrawData[1] t.ImGui_ImplOpenGL3_RenderDrawData["(ImDrawData*)"]=t.ImGui_ImplOpenGL3_RenderDrawData[1]

View File

@@ -8,6 +8,9 @@ ImColor_ImColor 5
ImDrawList_AddText 2 ImDrawList_AddText 2
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*) 1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddText_FontPtr (ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*) 2 void ImDrawList_AddText_FontPtr (ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
ImGuiPackedDate_ImGuiPackedDate 2
1 nil ImGuiPackedDate_ImGuiPackedDate_Nil ()
2 nil ImGuiPackedDate_ImGuiPackedDate_Int (int)
ImGuiPtrOrIndex_ImGuiPtrOrIndex 2 ImGuiPtrOrIndex_ImGuiPtrOrIndex 2
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*) 1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int) 2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int)
@@ -217,8 +220,8 @@ igMenuItem 2
1 bool igMenuItem_Bool (const char*,const char*,bool,bool) 1 bool igMenuItem_Bool (const char*,const char*,bool,bool)
2 bool igMenuItem_BoolPtr (const char*,const char*,bool*,bool) 2 bool igMenuItem_BoolPtr (const char*,const char*,bool*,bool)
igOpenPopup 2 igOpenPopup 2
1 void igOpenPopup_Str (const char*,ImGuiPopupFlags) 1 bool igOpenPopup_Str (const char*,ImGuiPopupFlags)
2 void igOpenPopup_ID (ImGuiID,ImGuiPopupFlags) 2 bool igOpenPopup_ID (ImGuiID,ImGuiPopupFlags)
igPlotHistogram 2 igPlotHistogram 2
1 void igPlotHistogram_FloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int) 1 void igPlotHistogram_FloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotHistogram_FnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2) 2 void igPlotHistogram_FnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
@@ -309,4 +312,4 @@ igValue 4
2 void igValue_Int (const char*,int) 2 void igValue_Int (const char*,int)
3 void igValue_Uint (const char*,unsigned int) 3 void igValue_Uint (const char*,unsigned int)
4 void igValue_Float (const char*,float,const char*) 4 void igValue_Float (const char*,float,const char*)
216 overloaded 218 overloaded

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -120,6 +120,7 @@
"ImGuiOldColumnFlags": "int", "ImGuiOldColumnFlags": "int",
"ImGuiOldColumns": "struct ImGuiOldColumns", "ImGuiOldColumns": "struct ImGuiOldColumns",
"ImGuiOnceUponAFrame": "struct ImGuiOnceUponAFrame", "ImGuiOnceUponAFrame": "struct ImGuiOnceUponAFrame",
"ImGuiPackedDate": "struct ImGuiPackedDate",
"ImGuiPayload": "struct ImGuiPayload", "ImGuiPayload": "struct ImGuiPayload",
"ImGuiPlatformIO": "struct ImGuiPlatformIO", "ImGuiPlatformIO": "struct ImGuiPlatformIO",
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData", "ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
@@ -133,6 +134,7 @@
"ImGuiSelectionRequest": "struct ImGuiSelectionRequest", "ImGuiSelectionRequest": "struct ImGuiSelectionRequest",
"ImGuiSelectionUserData": "ImS64", "ImGuiSelectionUserData": "ImS64",
"ImGuiSeparatorFlags": "int", "ImGuiSeparatorFlags": "int",
"ImGuiSettingsCleanupArgs": "struct ImGuiSettingsCleanupArgs",
"ImGuiSettingsHandler": "struct ImGuiSettingsHandler", "ImGuiSettingsHandler": "struct ImGuiSettingsHandler",
"ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem", "ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem",
"ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);", "ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);",
@@ -162,6 +164,7 @@
"ImGuiTableFlags": "int", "ImGuiTableFlags": "int",
"ImGuiTableHeaderData": "struct ImGuiTableHeaderData", "ImGuiTableHeaderData": "struct ImGuiTableHeaderData",
"ImGuiTableInstanceData": "struct ImGuiTableInstanceData", "ImGuiTableInstanceData": "struct ImGuiTableInstanceData",
"ImGuiTableReconcileColumnData": "struct ImGuiTableReconcileColumnData",
"ImGuiTableRowFlags": "int", "ImGuiTableRowFlags": "int",
"ImGuiTableSettings": "struct ImGuiTableSettings", "ImGuiTableSettings": "struct ImGuiTableSettings",
"ImGuiTableSortSpecs": "struct ImGuiTableSortSpecs", "ImGuiTableSortSpecs": "struct ImGuiTableSortSpecs",
@@ -211,6 +214,9 @@
"ImWchar16": "unsigned short", "ImWchar16": "unsigned short",
"ImWchar32": "unsigned int", "ImWchar32": "unsigned int",
"STB_TexteditState": "struct STB_TexteditState", "STB_TexteditState": "struct STB_TexteditState",
"StbTexteditRow": "struct StbTexteditRow",
"StbUndoRecord": "struct StbUndoRecord",
"StbUndoState": "struct StbUndoState",
"stbrp_context_opaque": "struct stbrp_context_opaque", "stbrp_context_opaque": "struct stbrp_context_opaque",
"stbrp_node": "struct stbrp_node", "stbrp_node": "struct stbrp_node",
"stbrp_node_im": "stbrp_node" "stbrp_node_im": "stbrp_node"

View File

@@ -120,6 +120,7 @@ local t={
ImGuiOldColumnFlags="int", ImGuiOldColumnFlags="int",
ImGuiOldColumns="struct ImGuiOldColumns", ImGuiOldColumns="struct ImGuiOldColumns",
ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame", ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame",
ImGuiPackedDate="struct ImGuiPackedDate",
ImGuiPayload="struct ImGuiPayload", ImGuiPayload="struct ImGuiPayload",
ImGuiPlatformIO="struct ImGuiPlatformIO", ImGuiPlatformIO="struct ImGuiPlatformIO",
ImGuiPlatformImeData="struct ImGuiPlatformImeData", ImGuiPlatformImeData="struct ImGuiPlatformImeData",
@@ -133,6 +134,7 @@ local t={
ImGuiSelectionRequest="struct ImGuiSelectionRequest", ImGuiSelectionRequest="struct ImGuiSelectionRequest",
ImGuiSelectionUserData="ImS64", ImGuiSelectionUserData="ImS64",
ImGuiSeparatorFlags="int", ImGuiSeparatorFlags="int",
ImGuiSettingsCleanupArgs="struct ImGuiSettingsCleanupArgs",
ImGuiSettingsHandler="struct ImGuiSettingsHandler", ImGuiSettingsHandler="struct ImGuiSettingsHandler",
ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem", ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem",
ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);", ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);",
@@ -162,6 +164,7 @@ local t={
ImGuiTableFlags="int", ImGuiTableFlags="int",
ImGuiTableHeaderData="struct ImGuiTableHeaderData", ImGuiTableHeaderData="struct ImGuiTableHeaderData",
ImGuiTableInstanceData="struct ImGuiTableInstanceData", ImGuiTableInstanceData="struct ImGuiTableInstanceData",
ImGuiTableReconcileColumnData="struct ImGuiTableReconcileColumnData",
ImGuiTableRowFlags="int", ImGuiTableRowFlags="int",
ImGuiTableSettings="struct ImGuiTableSettings", ImGuiTableSettings="struct ImGuiTableSettings",
ImGuiTableSortSpecs="struct ImGuiTableSortSpecs", ImGuiTableSortSpecs="struct ImGuiTableSortSpecs",
@@ -211,6 +214,9 @@ local t={
ImWchar16="unsigned short", ImWchar16="unsigned short",
ImWchar32="unsigned int", ImWchar32="unsigned int",
STB_TexteditState="struct STB_TexteditState", STB_TexteditState="struct STB_TexteditState",
StbTexteditRow="struct StbTexteditRow",
StbUndoRecord="struct StbUndoRecord",
StbUndoState="struct StbUndoState",
stbrp_context_opaque="struct stbrp_context_opaque", stbrp_context_opaque="struct stbrp_context_opaque",
stbrp_node="struct stbrp_node", stbrp_node="struct stbrp_node",
stbrp_node_im="stbrp_node"} stbrp_node_im="stbrp_node"}

2
imgui

Submodule imgui updated: 8936b58fe2...f1cc2ae15e