Compare commits

...

38 Commits

Author SHA1 Message Date
sonoro1234
1427639147 Merge branch 'docking_inter' 2025-01-21 16:06:26 +01:00
sonoro1234
9bc279c4d8 pull imgui docking 1.91.7 and generate 2025-01-21 15:59:46 +01:00
sonoro1234
46c47d5703 generator.lua: change for Used4kPagesMap -> Used8kPagesMap 2025-01-21 10:50:30 +01:00
sonoro1234
e5facd9083 cpp2ffi: better functypedef parsing
Some checks failed
Build / build (ubuntu-latest) (push) Failing after 4s
Build / build (macOS-latest) (push) Has been cancelled
Build / build (windows-latest) (push) Has been cancelled
2025-01-17 17:08:30 +01:00
sonoro1234
7d50243c50 better ftemplates repair 2025-01-08 16:49:42 +01:00
sonoro1234
7715efaa41 cpp2ffi: constexpr -> static const and ftemplates repair 2025-01-08 15:54:31 +01:00
sonoro1234
9cc8f27f61 cpp2ffi: autodetect nonPOD 2025-01-08 12:41:00 +01:00
sonoro1234
df65595422 generation 2025-01-08 10:46:11 +01:00
sonoro1234
2a0af76f16 cpp2ffi: git diffs are line oriented so Lua serializer uses pretty 2025-01-08 10:45:47 +01:00
sonoro1234
1053d1584f cpp2ffi: final and operator keywords 2025-01-08 00:43:55 +01:00
sonoro1234
d83e8c5892 oops!! doing last commit complete (Always have to build before commiting) 2025-01-06 19:10:59 +01:00
sonoro1234
98b667f601 modify manual function for ImGuiTextBuffer issue #283 2025-01-06 18:19:54 +01:00
sonoro1234
d9982af929 generation with new lua serializer 2024-12-18 15:17:18 +01:00
sonoro1234
58763282f8 cpp2ffi: more compact lua serialization 2024-12-18 15:15:46 +01:00
sonoro1234
e3b48a15f0 Merge branch 'docking_inter' 2024-12-12 13:20:21 +01:00
sonoro1234
970c614802 pull imgui docking 1.91.6 and generate 2024-12-12 13:13:36 +01:00
sonoro1234
3d5b2e7650 dont break cimgui.h on comments generation 2024-11-19 07:54:41 +01:00
sonoro1234
8ec6558ecc Merge branch 'docking_inter' 2024-11-18 18:26:51 +01:00
sonoro1234
4e89eac938 pull imgui docking 1.91.5 and generate 2024-11-18 18:20:25 +01:00
sonoro1234
bd2ea2acbb cpp2ffi: move typedefs_dict to gen_structs_and_enums_table 2024-11-06 16:36:29 +01:00
sonoro1234
69d3b29392 update README.md 2024-11-05 16:34:30 +01:00
sonoro1234
1c3d694f36 generator: _destroy functions get location
IMGUI_USE_FREETYPE and IMGUI_USE_WCHAR32 are build options now.
cmake takes IMGUI_FREETYPE and IMGUI_WCHAR32
2024-11-05 16:30:47 +01:00
sonoro1234
be19fd11eb cpp2ffi.lua, generator ... :get manual funcs args and ret 2024-11-01 13:47:14 +01:00
sonoro1234
fdd07821bb CMakeLists.txt: add cimconfig.h to #undef NDEBUG even in release mode https://github.com/ocornut/imgui/issues/8078 2024-10-21 09:59:59 +02:00
sonoro1234
43429513a8 Merge branch 'docking_inter' 2024-10-19 12:05:11 +02:00
sonoro1234
7640b00d27 pull imgui docking 1.91.4 and generate 2024-10-19 11:48:14 +02:00
sonoro1234
90f2147dbe generator: add sdl3 and generate 2024-10-12 11:52:55 +02:00
sonoro1234
79e40b6657 Merge branch 'docking_inter' 2024-10-05 11:06:45 +02:00
sonoro1234
8268b6748b pull imgui 1.91.3 docking and generate 2024-10-05 10:59:13 +02:00
sonoro1234
833e9366de Merge branch 'docking_inter' 2024-10-01 13:05:38 +02:00
sonoro1234
652d4cbc89 pull imgui 1.91.2 and generate 2024-10-01 12:49:47 +02:00
sonoro1234
e50a65fd62 cpp2ffi: templates from classes name :: -> _ 2024-09-24 18:52:47 +02:00
sonoro1234
f276fd4ae1 cpp2ffi: initial changes for processing classes 2024-09-24 17:47:48 +02:00
sonoro1234
c06a46b0f2 cpp2ffi: get enum name from typedef enum ... 2024-09-23 10:53:32 +02:00
sonoro1234
a051fe287b constructors missed semicolon 2024-09-18 17:16:45 +02:00
sonoro1234
411924f104 script param "constructors" to add the _Construct version of constructors issue #278 2024-09-18 14:36:22 +02:00
sonoro1234
0c7f67607d cpp2ffi: get class name 2024-09-14 20:19:51 +02:00
sonoro1234
51197f420a cpp2ffi: clean namespace in typedefs issue #277 2024-09-11 11:39:05 +02:00
26 changed files with 46588 additions and 43356 deletions

View File

@@ -26,10 +26,10 @@ set(IMGUI_FREETYPE "no" CACHE STRING "Build with freetype library")
set(IMGUI_LIBRARIES )
if(IMGUI_FREETYPE)
message(STATUS "Building with freetype")
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE)
#add library and link
@@ -39,6 +39,16 @@ else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC)
if(IMGUI_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_STB_TRUETYPE)
endif(IMGUI_FREETYPE)
if(IMGUI_WCHAR32)
target_compile_definitions(cimgui PUBLIC IMGUI_USE_WCHAR32)
endif(IMGUI_WCHAR32)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
if (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))

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)
Notes:
* currently this wrapper is based on version [1.91.0 of Dear ImGui with internal api]
* currently this wrapper is based on version [1.91.7 of Dear ImGui with internal api]
* 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.
* 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.
@@ -24,7 +24,7 @@ Notes:
* `git submodule update --init --recursive` (If already cloned)
* compile
* using makefile on linux/macOS/mingw (Or use CMake to generate project)
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) (only if cimgui is generated with freetype option)
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) and IMGUI_WCHAR32
* or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master/build
For compiling with backends there are now examples with SDL2 and opengl3/vulkan in folder backend_test.
@@ -37,12 +37,12 @@ Notes:
* you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download
* you need to use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC). (this repo was done with gcc)
* update `imgui` folder to the version you desire.
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, Freetype2 is used or not and comments are generated or not
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, comments are generated or not and if constructors are generated also with versions performing just initialization of structs provided by yourself (_Construct is added to the constructor names)
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, vulkan, opengl2 and opengl3 as backends.
* edit config_generator.lua for adding includes needed by your chosen backends (vulkan needs that).
* Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH.
* as a result some files are generated: `cimgui.cpp`, `cimgui.h` and `cimgui_impl.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the backends info.
* You can pass compiler flags to generator.sh or generator.bat by editing them at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
* You can pass compiler flags to generator.sh or generator.bat by editing them at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG)
* You are able to pass any extra argument to generator.sh (.bat) in the command-line.
* If you are using different options than cimgui repo and if you want to keep them after a cimgui update, you can keep them in a copy of generator.sh (.bat) outside of cimgui folder where `cd cimgui/generator` is used before luajit call. See https://github.com/cimgui/cimgui/issues/232#issuecomment-1497059497
# generate binding

View File

@@ -23,6 +23,7 @@ else()
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)

View File

@@ -23,6 +23,7 @@ else()
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)

View File

@@ -22,6 +22,7 @@ else()
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)

View File

@@ -19,6 +19,7 @@ else()
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)

1
cimconfig.h Normal file
View File

@@ -0,0 +1 @@
#undef NDEBUG

View File

@@ -1,15 +1,8 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.91.1" 19110 from Dear ImGui https://github.com/ocornut/imgui
//based on imgui.h file version "1.91.7" 19170 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api
#ifdef IMGUI_ENABLE_FREETYPE
#ifndef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should be defined for Freetype linking"
#endif
#else
#ifdef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should not be defined without freetype generated cimgui"
#endif
#endif
//with imgui_freetype.h api
#include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h"
@@ -1351,6 +1344,10 @@ CIMGUI_API void igSetKeyboardFocusHere(int offset)
{
return ImGui::SetKeyboardFocusHere(offset);
}
CIMGUI_API void igSetNavCursorVisible(bool visible)
{
return ImGui::SetNavCursorVisible(visible);
}
CIMGUI_API void igSetNextItemAllowOverlap()
{
return ImGui::SetNextItemAllowOverlap();
@@ -2230,7 +2227,7 @@ CIMGUI_API void ImDrawList_AddText_Vec2(ImDrawList* self,const ImVec2 pos,ImU32
{
return self->AddText(pos,col,text_begin,text_end);
}
CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect)
CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect)
{
return self->AddText(font,font_size,pos,col,text_begin,text_end,wrap_width,cpu_fine_clip_rect);
}
@@ -2314,9 +2311,9 @@ CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const
{
return self->PathRect(rect_min,rect_max,rounding,flags);
}
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* callback_data)
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* userdata,size_t userdata_size)
{
return self->AddCallback(callback,callback_data);
return self->AddCallback(callback,userdata,userdata_size);
}
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* self)
{
@@ -2794,9 +2791,9 @@ CIMGUI_API int igImStrlenW(const ImWchar* str)
{
return ImStrlenW(str);
}
CIMGUI_API const ImWchar* igImStrbolW(const ImWchar* buf_mid_line,const ImWchar* buf_begin)
CIMGUI_API const char* igImStrbol(const char* buf_mid_line,const char* buf_begin)
{
return ImStrbolW(buf_mid_line,buf_begin);
return ImStrbol(buf_mid_line,buf_begin);
}
CIMGUI_API char igImToUpper(char c)
{
@@ -3405,18 +3402,14 @@ CIMGUI_API void ImGuiInputTextState_ClearFreeMemory(ImGuiInputTextState* self)
{
return self->ClearFreeMemory();
}
CIMGUI_API int ImGuiInputTextState_GetUndoAvailCount(ImGuiInputTextState* self)
{
return self->GetUndoAvailCount();
}
CIMGUI_API int ImGuiInputTextState_GetRedoAvailCount(ImGuiInputTextState* self)
{
return self->GetRedoAvailCount();
}
CIMGUI_API void ImGuiInputTextState_OnKeyPressed(ImGuiInputTextState* self,int key)
{
return self->OnKeyPressed(key);
}
CIMGUI_API void ImGuiInputTextState_OnCharPressed(ImGuiInputTextState* self,unsigned int c)
{
return self->OnCharPressed(c);
}
CIMGUI_API void ImGuiInputTextState_CursorAnimReset(ImGuiInputTextState* self)
{
return self->CursorAnimReset();
@@ -3493,22 +3486,14 @@ CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void)
CIMGUI_API ImGuiErrorRecoveryState* ImGuiErrorRecoveryState_ImGuiErrorRecoveryState(void)
{
return IM_NEW(ImGuiStackSizes)();
return IM_NEW(ImGuiErrorRecoveryState)();
}
CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self)
CIMGUI_API void ImGuiErrorRecoveryState_destroy(ImGuiErrorRecoveryState* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiStackSizes_SetToContextState(ImGuiStackSizes* self,ImGuiContext* ctx)
{
return self->SetToContextState(ctx);
}
CIMGUI_API void ImGuiStackSizes_CompareWithContextState(ImGuiStackSizes* self,ImGuiContext* ctx)
{
return self->CompareWithContextState(ctx);
}
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr)
{
return IM_NEW(ImGuiPtrOrIndex)(ptr);
@@ -3861,6 +3846,10 @@ CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiT
{
return self->GetColumnSettings();
}
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx)
{
return &ImGui::GetIOEx(ctx);
}
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead()
{
return ImGui::GetCurrentWindowRead();
@@ -4049,6 +4038,10 @@ CIMGUI_API void igCallContextHooks(ImGuiContext* context,ImGuiContextHookType ty
{
return ImGui::CallContextHooks(context,type);
}
CIMGUI_API void igScaleWindowsInViewport(ImGuiViewportP* viewport,float scale)
{
return ImGui::ScaleWindowsInViewport(viewport,scale);
}
CIMGUI_API void igSetWindowViewport(ImGuiWindow* window,ImGuiViewportP* viewport)
{
return ImGui::SetWindowViewport(window,viewport);
@@ -4245,9 +4238,9 @@ CIMGUI_API void igEndDisabledOverrideReenable()
{
return ImGui::EndDisabledOverrideReenable();
}
CIMGUI_API void igLogBegin(ImGuiLogType type,int auto_open_depth)
CIMGUI_API void igLogBegin(ImGuiLogFlags flags,int auto_open_depth)
{
return ImGui::LogBegin(type,auto_open_depth);
return ImGui::LogBegin(flags,auto_open_depth);
}
CIMGUI_API void igLogToBuffer(int auto_open_depth)
{
@@ -4393,9 +4386,9 @@ CIMGUI_API void igNavClearPreferredPosForAxis(ImGuiAxis axis)
{
return ImGui::NavClearPreferredPosForAxis(axis);
}
CIMGUI_API void igNavRestoreHighlightAfterMove()
CIMGUI_API void igSetNavCursorVisibleAfterMove()
{
return ImGui::NavRestoreHighlightAfterMove();
return ImGui::SetNavCursorVisibleAfterMove();
}
CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX()
{
@@ -4937,10 +4930,14 @@ CIMGUI_API void igTabBarCloseTab(ImGuiTabBar* tab_bar,ImGuiTabItem* tab)
{
return ImGui::TabBarCloseTab(tab_bar,tab);
}
CIMGUI_API void igTabBarQueueFocus(ImGuiTabBar* tab_bar,ImGuiTabItem* tab)
CIMGUI_API void igTabBarQueueFocus_TabItemPtr(ImGuiTabBar* tab_bar,ImGuiTabItem* tab)
{
return ImGui::TabBarQueueFocus(tab_bar,tab);
}
CIMGUI_API void igTabBarQueueFocus_Str(ImGuiTabBar* tab_bar,const char* tab_name)
{
return ImGui::TabBarQueueFocus(tab_bar,tab_name);
}
CIMGUI_API void igTabBarQueueReorder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,int offset)
{
return ImGui::TabBarQueueReorder(tab_bar,tab,offset);
@@ -5005,9 +5002,9 @@ CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImV
{
return ImGui::RenderColorRectWithAlphaCheckerboard(draw_list,p_min,p_max,fill_col,grid_step,grid_off,rounding,flags);
}
CIMGUI_API void igRenderNavHighlight(const ImRect bb,ImGuiID id,ImGuiNavHighlightFlags flags)
CIMGUI_API void igRenderNavCursor(const ImRect bb,ImGuiID id,ImGuiNavRenderCursorFlags flags)
{
return ImGui::RenderNavHighlight(bb,id,flags);
return ImGui::RenderNavCursor(bb,id,flags);
}
CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end)
{
@@ -5053,9 +5050,9 @@ CIMGUI_API bool igArrowButtonEx(const char* str_id,ImGuiDir dir,ImVec2 size_arg,
{
return ImGui::ArrowButtonEx(str_id,dir,size_arg,flags);
}
CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col,ImGuiButtonFlags flags)
CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col,ImGuiButtonFlags flags)
{
return ImGui::ImageButtonEx(id,texture_id,image_size,uv0,uv1,bg_col,tint_col,flags);
return ImGui::ImageButtonEx(id,user_texture_id,image_size,uv0,uv1,bg_col,tint_col,flags);
}
CIMGUI_API void igSeparatorEx(ImGuiSeparatorFlags flags,float thickness)
{
@@ -5085,9 +5082,9 @@ CIMGUI_API void igScrollbar(ImGuiAxis axis)
{
return ImGui::Scrollbar(axis);
}
CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags)
CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags draw_rounding_flags)
{
return ImGui::ScrollbarEx(bb,id,axis,p_scroll_v,avail_v,contents_v,flags);
return ImGui::ScrollbarEx(bb,id,axis,p_scroll_v,avail_v,contents_v,draw_rounding_flags);
}
CIMGUI_API void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis)
{
@@ -5165,6 +5162,10 @@ CIMGUI_API bool igDataTypeClamp(ImGuiDataType data_type,void* p_data,const void*
{
return ImGui::DataTypeClamp(data_type,p_data,p_min,p_max);
}
CIMGUI_API bool igDataTypeIsZero(ImGuiDataType data_type,const void* p_data)
{
return ImGui::DataTypeIsZero(data_type,p_data);
}
CIMGUI_API bool igInputTextEx(const char* label,const char* hint,char* buf,int buf_size,const ImVec2 size_arg,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputTextEx(label,hint,buf,buf_size,size_arg,flags,callback,user_data);
@@ -5233,22 +5234,42 @@ CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window)
{
return ImGui::GcAwakeTransientWindowBuffers(window);
}
CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size)
CIMGUI_API bool igErrorLog(const char* msg)
{
return ImGui::DebugAllocHook(info,frame_count,ptr,size);
return ImGui::ErrorLog(msg);
}
CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,void* user_data)
CIMGUI_API void igErrorRecoveryStoreState(ImGuiErrorRecoveryState* state_out)
{
return ImGui::ErrorCheckEndFrameRecover(log_callback,user_data);
return ImGui::ErrorRecoveryStoreState(state_out);
}
CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data)
CIMGUI_API void igErrorRecoveryTryToRecoverState(const ImGuiErrorRecoveryState* state_in)
{
return ImGui::ErrorCheckEndWindowRecover(log_callback,user_data);
return ImGui::ErrorRecoveryTryToRecoverState(state_in);
}
CIMGUI_API void igErrorRecoveryTryToRecoverWindowState(const ImGuiErrorRecoveryState* state_in)
{
return ImGui::ErrorRecoveryTryToRecoverWindowState(state_in);
}
CIMGUI_API void igErrorCheckUsingSetCursorPosToExtendParentBoundaries()
{
return ImGui::ErrorCheckUsingSetCursorPosToExtendParentBoundaries();
}
CIMGUI_API void igErrorCheckEndFrameFinalizeErrorTooltip()
{
return ImGui::ErrorCheckEndFrameFinalizeErrorTooltip();
}
CIMGUI_API bool igBeginErrorTooltip()
{
return ImGui::BeginErrorTooltip();
}
CIMGUI_API void igEndErrorTooltip()
{
return ImGui::EndErrorTooltip();
}
CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size)
{
return ImGui::DebugAllocHook(info,frame_count,ptr,size);
}
CIMGUI_API void igDebugDrawCursorPos(ImU32 col)
{
return ImGui::DebugDrawCursorPos(col);
@@ -5413,11 +5434,23 @@ CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[2
{
return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
}
#ifdef IMGUI_ENABLE_FREETYPE
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType()
{
return ImGuiFreeType::GetBuilderForFreeType();
}
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data)
{
return ImGuiFreeType::SetAllocatorFunctions(alloc_func,free_func,user_data);
}
#endif
/////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...)
CIMGUI_API void igLogText(const char *fmt, ...)
{
char buffer[256];
va_list args;
@@ -5427,11 +5460,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer);
}
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
buffer->appendfv(fmt, args);
self->appendfv(fmt, args);
va_end(args);
}

357
cimgui.h
View File

@@ -1,6 +1,7 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.91.1" 19110 from Dear ImGui https://github.com/ocornut/imgui
//based on imgui.h file version "1.91.7" 19170 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api
//with imgui_freetype.h api
#ifndef CIMGUI_INCLUDED
#define CIMGUI_INCLUDED
#include <stdio.h>
@@ -84,6 +85,8 @@ typedef struct ImGuiColorMod ImGuiColorMod;
typedef struct ImGuiContextHook ImGuiContextHook;
typedef struct ImGuiDataVarInfo ImGuiDataVarInfo;
typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo;
typedef struct ImGuiDeactivatedItemData ImGuiDeactivatedItemData;
typedef struct ImGuiErrorRecoveryState ImGuiErrorRecoveryState;
typedef struct ImGuiGroupData ImGuiGroupData;
typedef struct ImGuiInputTextState ImGuiInputTextState;
typedef struct ImGuiInputTextDeactivateData ImGuiInputTextDeactivateData;
@@ -100,7 +103,6 @@ typedef struct ImGuiOldColumnData ImGuiOldColumnData;
typedef struct ImGuiOldColumns ImGuiOldColumns;
typedef struct ImGuiPopupData ImGuiPopupData;
typedef struct ImGuiSettingsHandler ImGuiSettingsHandler;
typedef struct ImGuiStackSizes ImGuiStackSizes;
typedef struct ImGuiStyleMod ImGuiStyleMod;
typedef struct ImGuiTabBar ImGuiTabBar;
typedef struct ImGuiTabItem ImGuiTabItem;
@@ -117,6 +119,7 @@ typedef struct ImGuiTypingSelectRequest ImGuiTypingSelectRequest;
typedef struct ImGuiWindow ImGuiWindow;
typedef struct ImGuiWindowTempData ImGuiWindowTempData;
typedef struct ImGuiWindowSettings ImGuiWindowSettings;
typedef struct STB_TexteditState STB_TexteditState;
typedef unsigned int ImGuiID;
typedef signed char ImS8;
typedef unsigned char ImU8;
@@ -197,11 +200,22 @@ typedef int ImGuiTableRowFlags;
typedef int ImGuiTreeNodeFlags;
typedef int ImGuiViewportFlags;
typedef int ImGuiWindowFlags;
typedef void* ImTextureID;
typedef ImU64 ImTextureID;
typedef unsigned short ImDrawIdx;
typedef unsigned int ImWchar32;
typedef unsigned short ImWchar16;
#ifdef IMGUI_USE_WCHAR32
typedef ImWchar32 ImWchar;
#else
typedef ImWchar16 ImWchar;
#endif
#ifdef IMGUI_USE_WCHAR32
#define IM_UNICODE_CODEPOINT_MAX 0x10FFFF
#else
#define IM_UNICODE_CODEPOINT_MAX 0xFFFF
#endif
typedef ImS64 ImGuiSelectionUserData;
typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data);
typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
@@ -266,6 +280,7 @@ typedef enum {
ImGuiItemFlags_NoNavDefaultFocus = 1 << 2,
ImGuiItemFlags_ButtonRepeat = 1 << 3,
ImGuiItemFlags_AutoClosePopups = 1 << 4,
ImGuiItemFlags_AllowDuplicateId = 1 << 5,
}ImGuiItemFlags_;
typedef enum {
ImGuiInputTextFlags_None = 0,
@@ -286,12 +301,13 @@ typedef enum {
ImGuiInputTextFlags_DisplayEmptyRefVal = 1 << 14,
ImGuiInputTextFlags_NoHorizontalScroll = 1 << 15,
ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
ImGuiInputTextFlags_CallbackCompletion = 1 << 17,
ImGuiInputTextFlags_CallbackHistory = 1 << 18,
ImGuiInputTextFlags_CallbackAlways = 1 << 19,
ImGuiInputTextFlags_CallbackCharFilter = 1 << 20,
ImGuiInputTextFlags_CallbackResize = 1 << 21,
ImGuiInputTextFlags_CallbackEdit = 1 << 22,
ImGuiInputTextFlags_ElideLeft = 1 << 17,
ImGuiInputTextFlags_CallbackCompletion = 1 << 18,
ImGuiInputTextFlags_CallbackHistory = 1 << 19,
ImGuiInputTextFlags_CallbackAlways = 1 << 20,
ImGuiInputTextFlags_CallbackCharFilter = 1 << 21,
ImGuiInputTextFlags_CallbackResize = 1 << 22,
ImGuiInputTextFlags_CallbackEdit = 1 << 23,
}ImGuiInputTextFlags_;
typedef enum {
ImGuiTreeNodeFlags_None = 0,
@@ -308,9 +324,10 @@ typedef enum {
ImGuiTreeNodeFlags_FramePadding = 1 << 10,
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11,
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12,
ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13,
ImGuiTreeNodeFlags_SpanLabelWidth = 1 << 13,
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14,
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 15,
ImGuiTreeNodeFlags_LabelSpanAllColumns = 1 << 15,
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 17,
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
}ImGuiTreeNodeFlags_;
typedef enum {
@@ -431,6 +448,7 @@ typedef enum {
ImGuiDataType_Float,
ImGuiDataType_Double,
ImGuiDataType_Bool,
ImGuiDataType_String,
ImGuiDataType_COUNT
}ImGuiDataType_;
typedef enum {
@@ -448,6 +466,7 @@ ImGuiSortDirection_Descending=2,
}ImGuiSortDirection;
typedef enum {
ImGuiKey_None=0,
ImGuiKey_NamedKey_BEGIN=512,
ImGuiKey_Tab=512,
ImGuiKey_LeftArrow=513,
ImGuiKey_RightArrow=514,
@@ -602,18 +621,14 @@ ImGuiKey_ReservedForModCtrl=662,
ImGuiKey_ReservedForModShift=663,
ImGuiKey_ReservedForModAlt=664,
ImGuiKey_ReservedForModSuper=665,
ImGuiKey_COUNT=666,
ImGuiKey_NamedKey_END=666,
ImGuiMod_None=0,
ImGuiMod_Ctrl=1 << 12,
ImGuiMod_Shift=1 << 13,
ImGuiMod_Alt=1 << 14,
ImGuiMod_Super=1 << 15,
ImGuiMod_Mask_=0xF000,
ImGuiKey_NamedKey_BEGIN=512,
ImGuiKey_NamedKey_END=ImGuiKey_COUNT,
ImGuiKey_NamedKey_COUNT=ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN,
ImGuiKey_KeysData_SIZE=ImGuiKey_NamedKey_COUNT,
ImGuiKey_KeysData_OFFSET=ImGuiKey_NamedKey_BEGIN,
}ImGuiKey;
typedef enum {
ImGuiInputFlags_None = 0,
@@ -632,8 +647,6 @@ typedef enum {
ImGuiConfigFlags_None = 0,
ImGuiConfigFlags_NavEnableKeyboard = 1 << 0,
ImGuiConfigFlags_NavEnableGamepad = 1 << 1,
ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2,
ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3,
ImGuiConfigFlags_NoMouse = 1 << 4,
ImGuiConfigFlags_NoMouseCursorChange = 1 << 5,
ImGuiConfigFlags_NoKeyboard = 1 << 6,
@@ -700,7 +713,7 @@ typedef enum {
ImGuiCol_TextLink,
ImGuiCol_TextSelectedBg,
ImGuiCol_DragDropTarget,
ImGuiCol_NavHighlight,
ImGuiCol_NavCursor,
ImGuiCol_NavWindowingHighlight,
ImGuiCol_NavWindowingDimBg,
ImGuiCol_ModalWindowDimBg,
@@ -748,6 +761,7 @@ typedef enum {
ImGuiButtonFlags_MouseButtonRight = 1 << 1,
ImGuiButtonFlags_MouseButtonMiddle = 1 << 2,
ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle,
ImGuiButtonFlags_EnableNav = 1 << 3,
}ImGuiButtonFlags_;
typedef enum {
ImGuiColorEditFlags_None = 0,
@@ -782,11 +796,14 @@ typedef enum {
}ImGuiColorEditFlags_;
typedef enum {
ImGuiSliderFlags_None = 0,
ImGuiSliderFlags_AlwaysClamp = 1 << 4,
ImGuiSliderFlags_Logarithmic = 1 << 5,
ImGuiSliderFlags_NoRoundToFormat = 1 << 6,
ImGuiSliderFlags_NoInput = 1 << 7,
ImGuiSliderFlags_WrapAround = 1 << 8,
ImGuiSliderFlags_ClampOnInput = 1 << 9,
ImGuiSliderFlags_ClampZeroRange = 1 << 10,
ImGuiSliderFlags_NoSpeedTweaks = 1 << 11,
ImGuiSliderFlags_AlwaysClamp = ImGuiSliderFlags_ClampOnInput | ImGuiSliderFlags_ClampZeroRange,
ImGuiSliderFlags_InvalidMask_ = 0x7000000F,
}ImGuiSliderFlags_;
typedef enum {
@@ -993,22 +1010,35 @@ struct ImGuiIO
bool FontAllowUserScaling;
ImFont* FontDefault;
ImVec2 DisplayFramebufferScale;
bool ConfigNavSwapGamepadButtons;
bool ConfigNavMoveSetMousePos;
bool ConfigNavCaptureKeyboard;
bool ConfigNavEscapeClearFocusItem;
bool ConfigNavEscapeClearFocusWindow;
bool ConfigNavCursorVisibleAuto;
bool ConfigNavCursorVisibleAlways;
bool MouseDrawCursor;
bool ConfigMacOSXBehaviors;
bool ConfigNavSwapGamepadButtons;
bool ConfigInputTrickleEventQueue;
bool ConfigInputTextCursorBlink;
bool ConfigInputTextEnterKeepActive;
bool ConfigDragClickToInputText;
bool ConfigWindowsResizeFromEdges;
bool ConfigWindowsMoveFromTitleBarOnly;
bool ConfigWindowsCopyContentsWithCtrlC;
bool ConfigScrollbarScrollByPage;
float ConfigMemoryCompactTimer;
float MouseDoubleClickTime;
float MouseDoubleClickMaxDist;
float MouseDragThreshold;
float KeyRepeatDelay;
float KeyRepeatRate;
bool ConfigErrorRecovery;
bool ConfigErrorRecoveryEnableAssert;
bool ConfigErrorRecoveryEnableDebugLog;
bool ConfigErrorRecoveryEnableTooltip;
bool ConfigDebugIsDebuggerPresent;
bool ConfigDebugHighlightIdConflicts;
bool ConfigDebugBeginReturnValueOnce;
bool ConfigDebugBeginReturnValueLoop;
bool ConfigDebugIgnoreFocusLoss;
@@ -1042,7 +1072,7 @@ struct ImGuiIO
bool KeyAlt;
bool KeySuper;
ImGuiKeyChord KeyMods;
ImGuiKeyData KeysData[ImGuiKey_KeysData_SIZE];
ImGuiKeyData KeysData[ImGuiKey_NamedKey_COUNT];
bool WantCaptureMouseUnlessPopupClose;
ImVec2 MousePosPrev;
ImVec2 MouseClickedPos[5];
@@ -1062,8 +1092,6 @@ struct ImGuiIO
float PenPressure;
bool AppFocusLost;
bool AppAcceptingEvents;
ImS8 BackendUsingLegacyKeyArrays;
bool BackendUsingLegacyNavInputArray;
ImWchar16 InputQueueSurrogate;
ImVector_ImWchar InputQueueCharacters;
};
@@ -1220,6 +1248,8 @@ struct ImDrawCmd
unsigned int ElemCount;
ImDrawCallback UserCallback;
void* UserCallbackData;
int UserCallbackDataSize;
int UserCallbackDataOffset;
};
struct ImDrawVert
{
@@ -1282,6 +1312,8 @@ typedef struct ImVector_ImVec4 {int Size;int Capacity;ImVec4* Data;} ImVector_Im
typedef struct ImVector_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID;
typedef struct ImVector_ImU8 {int Size;int Capacity;ImU8* Data;} ImVector_ImU8;
struct ImDrawList
{
ImVector_ImDrawCmd CmdBuffer;
@@ -1297,6 +1329,7 @@ struct ImDrawList
ImDrawListSplitter _Splitter;
ImVector_ImVec4 _ClipRectStack;
ImVector_ImTextureID _TextureIdStack;
ImVector_ImU8 _CallbacksDataBuf;
float _FringeScale;
const char* _OwnerName;
};
@@ -1355,9 +1388,10 @@ struct ImFontGlyphRangesBuilder
typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect;
struct ImFontAtlasCustomRect
{
unsigned short Width, Height;
unsigned short X, Y;
unsigned int GlyphID;
unsigned short Width, Height;
unsigned int GlyphID : 31;
unsigned int GlyphColored : 1;
float GlyphAdvanceX;
ImVec2 GlyphOffset;
ImFont* Font;
@@ -1414,16 +1448,16 @@ struct ImFont
ImFontAtlas* ContainerAtlas;
const ImFontConfig* ConfigData;
short ConfigDataCount;
ImWchar FallbackChar;
ImWchar EllipsisChar;
short EllipsisCharCount;
ImWchar EllipsisChar;
ImWchar FallbackChar;
float EllipsisWidth;
float EllipsisCharStep;
bool DirtyLookupTables;
float Scale;
float Ascent, Descent;
int MetricsTotalSurface;
ImU8 Used4kPagesMap[(0xFFFF +1)/4096/8];
ImU8 Used4kPagesMap[(IM_UNICODE_CODEPOINT_MAX +1)/4096/8];
};
typedef enum {
ImGuiViewportFlags_None = 0,
@@ -1452,6 +1486,7 @@ struct ImGuiPlatformIO
void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data);
void* Platform_ImeUserData;
ImWchar Platform_LocaleDecimalPoint;
void* Renderer_RenderState;
};
struct ImGuiPlatformImeData
{
@@ -1469,6 +1504,8 @@ struct ImGuiContext;
struct ImGuiContextHook;
struct ImGuiDataVarInfo;
struct ImGuiDataTypeInfo;
struct ImGuiDeactivatedItemData;
struct ImGuiErrorRecoveryState;
struct ImGuiGroupData;
struct ImGuiInputTextState;
struct ImGuiInputTextDeactivateData;
@@ -1485,7 +1522,6 @@ struct ImGuiOldColumnData;
struct ImGuiOldColumns;
struct ImGuiPopupData;
struct ImGuiSettingsHandler;
struct ImGuiStackSizes;
struct ImGuiStyleMod;
struct ImGuiTabBar;
struct ImGuiTabItem;
@@ -1508,7 +1544,8 @@ typedef int ImGuiDebugLogFlags;
typedef int ImGuiFocusRequestFlags;
typedef int ImGuiItemStatusFlags;
typedef int ImGuiOldColumnFlags;
typedef int ImGuiNavHighlightFlags;
typedef int ImGuiLogFlags;
typedef int ImGuiNavRenderCursorFlags;
typedef int ImGuiNavMoveFlags;
typedef int ImGuiNextItemDataFlags;
typedef int ImGuiNextWindowDataFlags;
@@ -1518,48 +1555,7 @@ typedef int ImGuiTextFlags;
typedef int ImGuiTooltipFlags;
typedef int ImGuiTypingSelectFlags;
typedef int ImGuiWindowRefreshFlags;
typedef void (*ImGuiErrorLogCallback)(void* user_data, const char* fmt, ...);
extern ImGuiContext* GImGui;
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];
ImWchar undo_char[999];
short undo_point, redo_point;
int undo_char_point, redo_char_point;
};
typedef struct STB_TexteditState STB_TexteditState;
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;
};
typedef FILE* ImFileHandle;
typedef struct ImVec1 ImVec1;
struct ImVec1
@@ -1593,6 +1589,7 @@ struct ImGuiTextIndex
struct ImDrawListSharedData
{
ImVec2 TexUvWhitePixel;
const ImVec4* TexUvLines;
ImFont* Font;
float FontSize;
float FontScale;
@@ -1604,7 +1601,6 @@ struct ImDrawListSharedData
ImVec2 ArcFastVtx[48];
float ArcFastRadiusCutoff;
ImU8 CircleSegmentCounts[64];
const ImVec4* TexUvLines;
};
struct ImDrawDataBuilder
{
@@ -1630,8 +1626,7 @@ struct ImGuiDataTypeInfo
const char* ScanFmt;
};
typedef enum {
ImGuiDataType_String = ImGuiDataType_COUNT + 1,
ImGuiDataType_Pointer,
ImGuiDataType_Pointer = ImGuiDataType_COUNT + 1,
ImGuiDataType_ID,
}ImGuiDataTypePrivate_;
typedef enum {
@@ -1640,6 +1635,8 @@ typedef enum {
ImGuiItemFlags_MixedValue = 1 << 12,
ImGuiItemFlags_NoWindowHoverableCheck = 1 << 13,
ImGuiItemFlags_AllowOverlap = 1 << 14,
ImGuiItemFlags_NoNavDisableMouseHover = 1 << 15,
ImGuiItemFlags_NoMarkEdited = 1 << 16,
ImGuiItemFlags_Inputable = 1 << 20,
ImGuiItemFlags_HasSelectionUserData = 1 << 21,
ImGuiItemFlags_IsMultiSelect = 1 << 22,
@@ -1666,9 +1663,8 @@ typedef enum {
}ImGuiHoveredFlagsPrivate_;
typedef enum {
ImGuiInputTextFlags_Multiline = 1 << 26,
ImGuiInputTextFlags_NoMarkEdited = 1 << 27,
ImGuiInputTextFlags_MergedItem = 1 << 28,
ImGuiInputTextFlags_LocalizeDecimalPoint= 1 << 29,
ImGuiInputTextFlags_MergedItem = 1 << 27,
ImGuiInputTextFlags_LocalizeDecimalPoint= 1 << 28,
}ImGuiInputTextFlagsPrivate_;
typedef enum {
ImGuiButtonFlags_PressedOnClick = 1 << 4,
@@ -1677,12 +1673,10 @@ typedef enum {
ImGuiButtonFlags_PressedOnRelease = 1 << 7,
ImGuiButtonFlags_PressedOnDoubleClick = 1 << 8,
ImGuiButtonFlags_PressedOnDragDropHold = 1 << 9,
ImGuiButtonFlags_Repeat = 1 << 10,
ImGuiButtonFlags_FlattenChildren = 1 << 11,
ImGuiButtonFlags_AllowOverlap = 1 << 12,
ImGuiButtonFlags_DontClosePopups = 1 << 13,
ImGuiButtonFlags_AlignTextBaseLine = 1 << 15,
ImGuiButtonFlags_NoKeyModifiers = 1 << 16,
ImGuiButtonFlags_NoKeyModsAllowed = 1 << 16,
ImGuiButtonFlags_NoHoldingActiveId = 1 << 17,
ImGuiButtonFlags_NoNavFocus = 1 << 18,
ImGuiButtonFlags_NoHoveredOnFocus = 1 << 19,
@@ -1737,12 +1731,13 @@ typedef enum {
ImGuiLayoutType_Vertical = 1
}ImGuiLayoutType_;
typedef enum {
ImGuiLogType_None = 0,
ImGuiLogType_TTY,
ImGuiLogType_File,
ImGuiLogType_Buffer,
ImGuiLogType_Clipboard,
}ImGuiLogType;
ImGuiLogFlags_None = 0,
ImGuiLogFlags_OutputTTY = 1 << 0,
ImGuiLogFlags_OutputFile = 1 << 1,
ImGuiLogFlags_OutputBuffer = 1 << 2,
ImGuiLogFlags_OutputClipboard = 1 << 3,
ImGuiLogFlags_OutputMask_ = ImGuiLogFlags_OutputTTY | ImGuiLogFlags_OutputFile | ImGuiLogFlags_OutputBuffer | ImGuiLogFlags_OutputClipboard,
}ImGuiLogFlags_;
typedef enum {
ImGuiAxis_None = -1,
ImGuiAxis_X = 0,
@@ -1783,7 +1778,7 @@ struct ImGuiGroupData
ImVec2 BackupCurrLineSize;
float BackupCurrLineTextBaseOffset;
ImGuiID BackupActiveIdIsAlive;
bool BackupActiveIdPreviousFrameIsAlive;
bool BackupDeactivatedIdIsAlive;
bool BackupHoveredIdIsAlive;
bool BackupIsSameLine;
bool EmitItem;
@@ -1804,25 +1799,26 @@ struct ImGuiInputTextDeactivatedState
{
ImGuiID ID;
ImVector_char TextA;
};
}; struct STB_TexteditState;
typedef STB_TexteditState ImStbTexteditState;
struct ImGuiInputTextState
{
ImGuiContext* Ctx;
ImStbTexteditState* Stb;
ImGuiInputTextFlags Flags;
ImGuiID ID;
int CurLenW, CurLenA;
ImVector_ImWchar TextW;
int TextLen;
const char* TextSrc;
ImVector_char TextA;
ImVector_char InitialTextA;
bool TextAIsValid;
int BufCapacityA;
ImVector_char TextToRevertTo;
ImVector_char CallbackTextBackup;
int BufCapacity;
ImVec2 Scroll;
STB_TexteditState Stb;
float CursorAnim;
bool CursorFollow;
bool SelectedAllMouseLock;
bool Edited;
ImGuiInputTextFlags Flags;
bool ReloadUserBuf;
bool WantReloadUserBuf;
int ReloadSelectionStart;
int ReloadSelectionEnd;
};
@@ -1875,7 +1871,7 @@ typedef enum {
}ImGuiNextItemDataFlags_;
struct ImGuiNextItemData
{
ImGuiNextItemDataFlags Flags;
ImGuiNextItemDataFlags HasFlags;
ImGuiItemFlags ItemFlags;
ImGuiID FocusScopeId;
ImGuiSelectionUserData SelectionUserData;
@@ -1890,7 +1886,7 @@ struct ImGuiNextItemData
struct ImGuiLastItemData
{
ImGuiID ID;
ImGuiItemFlags InFlags;
ImGuiItemFlags ItemFlags;
ImGuiItemStatusFlags StatusFlags;
ImRect Rect;
ImRect NavRect;
@@ -1902,12 +1898,14 @@ struct ImGuiTreeNodeStackData
{
ImGuiID ID;
ImGuiTreeNodeFlags TreeFlags;
ImGuiItemFlags InFlags;
ImGuiItemFlags ItemFlags;
ImRect NavRect;
};
struct ImGuiStackSizes
struct ImGuiErrorRecoveryState
{
short SizeOfWindowStack;
short SizeOfIDStack;
short SizeOfTreeStack;
short SizeOfColorStack;
short SizeOfStyleVarStack;
short SizeOfFontStack;
@@ -1922,7 +1920,7 @@ struct ImGuiWindowStackData
{
ImGuiWindow* Window;
ImGuiLastItemData ParentLastItemDataBackup;
ImGuiStackSizes StackSizesOnBegin;
ImGuiErrorRecoveryState StackSizesInBegin;
bool DisabledOverrideReenable;
};
typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem;
@@ -1938,6 +1936,13 @@ struct ImGuiPtrOrIndex
void* Ptr;
int Index;
};
struct ImGuiDeactivatedItemData
{
ImGuiID ID;
int ElapseFrame;
bool HasBeenEditedBefore;
bool IsAlive;
};
typedef enum {
ImGuiPopupPositionPolicy_Default,
ImGuiPopupPositionPolicy_ComboBox,
@@ -2110,11 +2115,11 @@ typedef enum {
ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY,
}ImGuiScrollFlags_;
typedef enum {
ImGuiNavHighlightFlags_None = 0,
ImGuiNavHighlightFlags_Compact = 1 << 1,
ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2,
ImGuiNavHighlightFlags_NoRounding = 1 << 3,
}ImGuiNavHighlightFlags_;
ImGuiNavRenderCursorFlags_None = 0,
ImGuiNavRenderCursorFlags_Compact = 1 << 1,
ImGuiNavRenderCursorFlags_AlwaysDraw = 1 << 2,
ImGuiNavRenderCursorFlags_NoRounding = 1 << 3,
}ImGuiNavRenderCursorFlags_;
typedef enum {
ImGuiNavMoveFlags_None = 0,
ImGuiNavMoveFlags_LoopX = 1 << 0,
@@ -2132,7 +2137,7 @@ typedef enum {
ImGuiNavMoveFlags_IsPageMove = 1 << 11,
ImGuiNavMoveFlags_Activate = 1 << 12,
ImGuiNavMoveFlags_NoSelect = 1 << 13,
ImGuiNavMoveFlags_NoSetNavHighlight = 1 << 14,
ImGuiNavMoveFlags_NoSetNavCursorVisible = 1 << 14,
ImGuiNavMoveFlags_NoClearActiveId = 1 << 15,
}ImGuiNavMoveFlags_;
typedef enum {
@@ -2146,7 +2151,7 @@ struct ImGuiNavItemData
ImGuiID ID;
ImGuiID FocusScopeId;
ImRect RectRel;
ImGuiItemFlags InFlags;
ImGuiItemFlags ItemFlags;
float DistBox;
float DistCenter;
float DistAxial;
@@ -2308,25 +2313,31 @@ ImGuiLocKey_TableResetOrder=4,
ImGuiLocKey_WindowingMainMenuBar=5,
ImGuiLocKey_WindowingPopup=6,
ImGuiLocKey_WindowingUntitled=7,
ImGuiLocKey_CopyLink=8,
ImGuiLocKey_COUNT=9,
ImGuiLocKey_OpenLink_s=8,
ImGuiLocKey_CopyLink=9,
ImGuiLocKey_COUNT=10,
}ImGuiLocKey;
struct ImGuiLocEntry
{
ImGuiLocKey Key;
const char* Text;
};
typedef void (*ImGuiErrorCallback)(ImGuiContext* ctx, void* user_data, const char* msg);
typedef enum {
ImGuiDebugLogFlags_None = 0,
ImGuiDebugLogFlags_EventActiveId = 1 << 0,
ImGuiDebugLogFlags_EventFocus = 1 << 1,
ImGuiDebugLogFlags_EventPopup = 1 << 2,
ImGuiDebugLogFlags_EventNav = 1 << 3,
ImGuiDebugLogFlags_EventClipper = 1 << 4,
ImGuiDebugLogFlags_EventSelection = 1 << 5,
ImGuiDebugLogFlags_EventIO = 1 << 6,
ImGuiDebugLogFlags_EventInputRouting = 1 << 7,
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventInputRouting,
ImGuiDebugLogFlags_EventError = 1 << 0,
ImGuiDebugLogFlags_EventActiveId = 1 << 1,
ImGuiDebugLogFlags_EventFocus = 1 << 2,
ImGuiDebugLogFlags_EventPopup = 1 << 3,
ImGuiDebugLogFlags_EventNav = 1 << 4,
ImGuiDebugLogFlags_EventClipper = 1 << 5,
ImGuiDebugLogFlags_EventSelection = 1 << 6,
ImGuiDebugLogFlags_EventIO = 1 << 7,
ImGuiDebugLogFlags_EventFont = 1 << 8,
ImGuiDebugLogFlags_EventInputRouting = 1 << 9,
ImGuiDebugLogFlags_EventDocking = 1 << 10,
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_OutputToTTY = 1 << 20,
ImGuiDebugLogFlags_OutputToTestEngine = 1 << 21,
}ImGuiDebugLogFlags_;
@@ -2465,9 +2476,9 @@ struct ImGuiContext
int FrameCount;
int FrameCountEnded;
int FrameCountRendered;
ImGuiID WithinEndChildID;
bool WithinFrameScope;
bool WithinFrameScopeWithImplicitWindow;
bool WithinEndChild;
bool GcCompactAll;
bool TestEngineHookItems;
void* TestEngine;
@@ -2496,9 +2507,11 @@ struct ImGuiContext
float WheelingWindowReleaseTimer;
ImVec2 WheelingWindowWheelRemainder;
ImVec2 WheelingAxisAvg;
ImGuiID DebugDrawIdConflicts;
ImGuiID DebugHookIdInfo;
ImGuiID HoveredId;
ImGuiID HoveredIdPreviousFrame;
int HoveredIdPreviousFrameItemCount;
float HoveredIdTimer;
float HoveredIdNotActiveTimer;
bool HoveredIdAllowOverlap;
@@ -2519,9 +2532,8 @@ struct ImGuiContext
ImGuiWindow* ActiveIdWindow;
ImGuiInputSource ActiveIdSource;
ImGuiID ActiveIdPreviousFrame;
bool ActiveIdPreviousFrameIsAlive;
bool ActiveIdPreviousFrameHasBeenEditedBefore;
ImGuiWindow* ActiveIdPreviousFrameWindow;
ImGuiDeactivatedItemData DeactivatedItemData;
ImGuiDataTypeStorage ActiveIdValueOnActivation;
ImGuiID LastActiveId;
float LastActiveIdTimer;
double LastKeyModsChangeTime;
@@ -2551,8 +2563,12 @@ struct ImGuiContext
ImVector_ImGuiPopupData BeginPopupStack;
ImVector_ImGuiTreeNodeStackData TreeNodeStack;
ImVector_ImGuiViewportPPtr Viewports;
ImGuiWindow* NavWindow;
bool NavCursorVisible;
bool NavHighlightItemUnderNav;
bool NavMousePosDirty;
bool NavIdIsAlive;
ImGuiID NavId;
ImGuiWindow* NavWindow;
ImGuiID NavFocusScopeId;
ImGuiNavLayer NavLayer;
ImGuiID NavActivateId;
@@ -2566,10 +2582,7 @@ struct ImGuiContext
ImGuiActivateFlags NavNextActivateFlags;
ImGuiInputSource NavInputSource;
ImGuiSelectionUserData NavLastValidSelectionUserData;
bool NavIdIsAlive;
bool NavMousePosDirty;
bool NavDisableHighlight;
bool NavDisableMouseHover;
ImS8 NavCursorHideFrames;
bool NavAnyRequest;
bool NavInitRequest;
bool NavInitRequestFromMove;
@@ -2682,8 +2695,8 @@ struct ImGuiContext
float DragSpeedDefaultRatio;
float DisabledAlphaBackup;
short DisabledStackSize;
short LockMarkEdited;
short TooltipOverrideCount;
ImGuiWindow* TooltipPreviousWindow;
ImVector_char ClipboardHandlerData;
ImVector_ImGuiID MenusIdSubmittedThisFrame;
ImGuiTypingSelectState TypingSelectState;
@@ -2699,7 +2712,8 @@ struct ImGuiContext
ImGuiID HookIdNext;
const char* LocalizationTable[ImGuiLocKey_COUNT];
bool LogEnabled;
ImGuiLogType LogType;
ImGuiLogFlags LogFlags;
ImGuiWindow* LogWindow;
ImFileHandle LogFile;
ImGuiTextBuffer LogBuffer;
const char* LogNextPrefix;
@@ -2709,9 +2723,18 @@ struct ImGuiContext
int LogDepthRef;
int LogDepthToExpand;
int LogDepthToExpandDefault;
ImGuiErrorCallback ErrorCallback;
void* ErrorCallbackUserData;
ImVec2 ErrorTooltipLockedPos;
bool ErrorFirst;
int ErrorCountCurrentFrame;
ImGuiErrorRecoveryState StackSizesInNewFrame;
ImGuiErrorRecoveryState*StackSizesInBeginForCurrentWindow;
int DebugDrawIdConflictsCount;
ImGuiDebugLogFlags DebugLogFlags;
ImGuiTextBuffer DebugLogBuf;
ImGuiTextIndex DebugLogIndex;
int DebugLogSkippedErrors;
ImGuiDebugLogFlags DebugLogAutoDisableFlags;
ImU8 DebugLogAutoDisableFrames;
ImU8 DebugLocateFrames;
@@ -2906,6 +2929,7 @@ typedef struct ImVector_ImGuiTabItem {int Size;int Capacity;ImGuiTabItem* Data;}
struct ImGuiTabBar
{
ImGuiWindow* Window;
ImVector_ImGuiTabItem Tabs;
ImGuiTabBarFlags Flags;
ImGuiID ID;
@@ -3178,6 +3202,22 @@ struct ImFontBuilderIO
{
bool (*FontBuilder_Build)(ImFontAtlas* atlas);
};
#ifdef IMGUI_ENABLE_FREETYPE
struct ImFontAtlas;
struct ImFontBuilderIO;
typedef enum {
ImGuiFreeTypeBuilderFlags_NoHinting = 1 << 0,
ImGuiFreeTypeBuilderFlags_NoAutoHint = 1 << 1,
ImGuiFreeTypeBuilderFlags_ForceAutoHint = 1 << 2,
ImGuiFreeTypeBuilderFlags_LightHinting = 1 << 3,
ImGuiFreeTypeBuilderFlags_MonoHinting = 1 << 4,
ImGuiFreeTypeBuilderFlags_Bold = 1 << 5,
ImGuiFreeTypeBuilderFlags_Oblique = 1 << 6,
ImGuiFreeTypeBuilderFlags_Monochrome = 1 << 7,
ImGuiFreeTypeBuilderFlags_LoadColor = 1 << 8,
ImGuiFreeTypeBuilderFlags_Bitmap = 1 << 9
}ImGuiFreeTypeBuilderFlags;
#endif
#define ImDrawCallback_ResetRenderState (ImDrawCallback)(-8)
#else
@@ -3189,9 +3229,6 @@ typedef union SDL_Event SDL_Event;
#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImGuiTextFilter::ImGuiTextRange ImGuiTextRange;
typedef ImStb::STB_TexteditState STB_TexteditState;
typedef ImStb::StbTexteditRow StbTexteditRow;
typedef ImStb::StbUndoRecord StbUndoRecord;
typedef ImStb::StbUndoState StbUndoState;
typedef ImChunkStream<ImGuiTableSettings> ImChunkStream_ImGuiTableSettings;
typedef ImChunkStream<ImGuiWindowSettings> ImChunkStream_ImGuiWindowSettings;
typedef ImPool<ImGuiMultiSelectState> ImPool_ImGuiMultiSelectState;
@@ -3242,6 +3279,7 @@ typedef ImVector<ImGuiWindow*> ImVector_ImGuiWindowPtr;
typedef ImVector<ImGuiWindowStackData> ImVector_ImGuiWindowStackData;
typedef ImVector<ImTextureID> ImVector_ImTextureID;
typedef ImVector<ImU32> ImVector_ImU32;
typedef ImVector<ImU8> ImVector_ImU8;
typedef ImVector<ImVec2> ImVector_ImVec2;
typedef ImVector<ImVec4> ImVector_ImVec4;
typedef ImVector<ImWchar> ImVector_ImWchar;
@@ -3573,6 +3611,7 @@ CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect
CIMGUI_API void igPopClipRect(void);
CIMGUI_API void igSetItemDefaultFocus(void);
CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API void igSetNavCursorVisible(bool visible);
CIMGUI_API void igSetNextItemAllowOverlap(void);
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
CIMGUI_API bool igIsItemActive(void);
@@ -3792,7 +3831,7 @@ CIMGUI_API void ImDrawList_AddNgonFilled(ImDrawList* self,const ImVec2 center,fl
CIMGUI_API void ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments,float thickness);
CIMGUI_API void ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments);
CIMGUI_API void ImDrawList_AddText_Vec2(ImDrawList* self,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end);
CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect);
CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect);
CIMGUI_API void ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments);
CIMGUI_API void ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness,int num_segments);
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness);
@@ -3813,7 +3852,7 @@ CIMGUI_API void ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 cen
CIMGUI_API void ImDrawList_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,int num_segments);
CIMGUI_API void ImDrawList_PathBezierQuadraticCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,int num_segments);
CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max,float rounding,ImDrawFlags flags);
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* callback_data);
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,void* userdata,size_t userdata_size);
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* self);
CIMGUI_API ImDrawList* ImDrawList_CloneOutput(ImDrawList* self);
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* self,int count);
@@ -3933,7 +3972,7 @@ CIMGUI_API const char* igImStristr(const char* haystack,const char* haystack_end
CIMGUI_API void igImStrTrimBlanks(char* str);
CIMGUI_API const char* igImStrSkipBlank(const char* str);
CIMGUI_API int igImStrlenW(const ImWchar* str);
CIMGUI_API const ImWchar* igImStrbolW(const ImWchar* buf_mid_line,const ImWchar* buf_begin);
CIMGUI_API const char* igImStrbol(const char* buf_mid_line,const char* buf_begin);
CIMGUI_API char igImToUpper(char c);
CIMGUI_API bool igImCharIsBlankA(char c);
CIMGUI_API bool igImCharIsBlankW(unsigned int c);
@@ -4084,9 +4123,8 @@ CIMGUI_API ImGuiInputTextState* ImGuiInputTextState_ImGuiInputTextState(void);
CIMGUI_API void ImGuiInputTextState_destroy(ImGuiInputTextState* self);
CIMGUI_API void ImGuiInputTextState_ClearText(ImGuiInputTextState* self);
CIMGUI_API void ImGuiInputTextState_ClearFreeMemory(ImGuiInputTextState* self);
CIMGUI_API int ImGuiInputTextState_GetUndoAvailCount(ImGuiInputTextState* self);
CIMGUI_API int ImGuiInputTextState_GetRedoAvailCount(ImGuiInputTextState* self);
CIMGUI_API void ImGuiInputTextState_OnKeyPressed(ImGuiInputTextState* self,int key);
CIMGUI_API void ImGuiInputTextState_OnCharPressed(ImGuiInputTextState* self,unsigned int c);
CIMGUI_API void ImGuiInputTextState_CursorAnimReset(ImGuiInputTextState* self);
CIMGUI_API void ImGuiInputTextState_CursorClamp(ImGuiInputTextState* self);
CIMGUI_API bool ImGuiInputTextState_HasSelection(ImGuiInputTextState* self);
@@ -4106,10 +4144,8 @@ CIMGUI_API void ImGuiNextItemData_destroy(ImGuiNextItemData* self);
CIMGUI_API void ImGuiNextItemData_ClearFlags(ImGuiNextItemData* self);
CIMGUI_API ImGuiLastItemData* ImGuiLastItemData_ImGuiLastItemData(void);
CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self);
CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void);
CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self);
CIMGUI_API void ImGuiStackSizes_SetToContextState(ImGuiStackSizes* self,ImGuiContext* ctx);
CIMGUI_API void ImGuiStackSizes_CompareWithContextState(ImGuiStackSizes* self,ImGuiContext* ctx);
CIMGUI_API ImGuiErrorRecoveryState* ImGuiErrorRecoveryState_ImGuiErrorRecoveryState(void);
CIMGUI_API void ImGuiErrorRecoveryState_destroy(ImGuiErrorRecoveryState* self);
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr);
CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self);
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(int index);
@@ -4198,6 +4234,7 @@ CIMGUI_API void ImGuiTableColumnSettings_destroy(ImGuiTableColumnSettings* self)
CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void);
CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self);
CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self);
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx);
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead(void);
CIMGUI_API ImGuiWindow* igGetCurrentWindow(void);
CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id);
@@ -4245,6 +4282,7 @@ CIMGUI_API void igUpdateMouseMovingWindowEndFrame(void);
CIMGUI_API ImGuiID igAddContextHook(ImGuiContext* context,const ImGuiContextHook* hook);
CIMGUI_API void igRemoveContextHook(ImGuiContext* context,ImGuiID hook_to_remove);
CIMGUI_API void igCallContextHooks(ImGuiContext* context,ImGuiContextHookType type);
CIMGUI_API void igScaleWindowsInViewport(ImGuiViewportP* viewport,float scale);
CIMGUI_API void igSetWindowViewport(ImGuiWindow* window,ImGuiViewportP* viewport);
CIMGUI_API void igMarkIniSettingsDirty_Nil(void);
CIMGUI_API void igMarkIniSettingsDirty_WindowPtr(ImGuiWindow* window);
@@ -4294,7 +4332,7 @@ CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width
CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx);
CIMGUI_API void igBeginDisabledOverrideReenable(void);
CIMGUI_API void igEndDisabledOverrideReenable(void);
CIMGUI_API void igLogBegin(ImGuiLogType type,int auto_open_depth);
CIMGUI_API void igLogBegin(ImGuiLogFlags flags,int auto_open_depth);
CIMGUI_API void igLogToBuffer(int auto_open_depth);
CIMGUI_API void igLogRenderedText(const ImVec2* ref_pos,const char* text,const char* text_end);
CIMGUI_API void igLogSetNextTextDecoration(const char* prefix,const char* suffix);
@@ -4331,7 +4369,7 @@ CIMGUI_API void igNavMoveRequestApplyResult(void);
CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags);
CIMGUI_API void igNavHighlightActivated(ImGuiID id);
CIMGUI_API void igNavClearPreferredPosForAxis(ImGuiAxis axis);
CIMGUI_API void igNavRestoreHighlightAfterMove(void);
CIMGUI_API void igSetNavCursorVisibleAfterMove(void);
CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX(void);
CIMGUI_API void igSetNavWindow(ImGuiWindow* window);
CIMGUI_API void igSetNavID(ImGuiID id,ImGuiNavLayer nav_layer,ImGuiID focus_scope_id,const ImRect rect_rel);
@@ -4467,7 +4505,8 @@ CIMGUI_API int igTabBarGetTabOrder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab);
CIMGUI_API const char* igTabBarGetTabName(ImGuiTabBar* tab_bar,ImGuiTabItem* tab);
CIMGUI_API void igTabBarRemoveTab(ImGuiTabBar* tab_bar,ImGuiID tab_id);
CIMGUI_API void igTabBarCloseTab(ImGuiTabBar* tab_bar,ImGuiTabItem* tab);
CIMGUI_API void igTabBarQueueFocus(ImGuiTabBar* tab_bar,ImGuiTabItem* tab);
CIMGUI_API void igTabBarQueueFocus_TabItemPtr(ImGuiTabBar* tab_bar,ImGuiTabItem* tab);
CIMGUI_API void igTabBarQueueFocus_Str(ImGuiTabBar* tab_bar,const char* tab_name);
CIMGUI_API void igTabBarQueueReorder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,int offset);
CIMGUI_API void igTabBarQueueReorderFromMousePos(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,ImVec2 mouse_pos);
CIMGUI_API bool igTabBarProcessReorder(ImGuiTabBar* tab_bar);
@@ -4484,7 +4523,7 @@ CIMGUI_API void igRenderTextEllipsis(ImDrawList* draw_list,const ImVec2 pos_min,
CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool borders,float rounding);
CIMGUI_API void igRenderFrameBorder(ImVec2 p_min,ImVec2 p_max,float rounding);
CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,float grid_step,ImVec2 grid_off,float rounding,ImDrawFlags flags);
CIMGUI_API void igRenderNavHighlight(const ImRect bb,ImGuiID id,ImGuiNavHighlightFlags flags);
CIMGUI_API void igRenderNavCursor(const ImRect bb,ImGuiID id,ImGuiNavRenderCursorFlags flags);
CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end);
CIMGUI_API void igRenderMouseCursor(ImVec2 pos,float scale,ImGuiMouseCursor mouse_cursor,ImU32 col_fill,ImU32 col_border,ImU32 col_shadow);
CIMGUI_API void igRenderArrow(ImDrawList* draw_list,ImVec2 pos,ImU32 col,ImGuiDir dir,float scale);
@@ -4496,7 +4535,7 @@ CIMGUI_API void igRenderRectFilledWithHole(ImDrawList* draw_list,const ImRect ou
CIMGUI_API void igTextEx(const char* text,const char* text_end,ImGuiTextFlags flags);
CIMGUI_API bool igButtonEx(const char* label,const ImVec2 size_arg,ImGuiButtonFlags flags);
CIMGUI_API bool igArrowButtonEx(const char* str_id,ImGuiDir dir,ImVec2 size_arg,ImGuiButtonFlags flags);
CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col,ImGuiButtonFlags flags);
CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col,ImGuiButtonFlags flags);
CIMGUI_API void igSeparatorEx(ImGuiSeparatorFlags flags,float thickness);
CIMGUI_API void igSeparatorTextEx(ImGuiID id,const char* label,const char* label_end,float extra_width);
CIMGUI_API bool igCheckboxFlags_S64Ptr(const char* label,ImS64* flags,ImS64 flags_value);
@@ -4504,7 +4543,7 @@ CIMGUI_API bool igCheckboxFlags_U64Ptr(const char* label,ImU64* flags,ImU64 flag
CIMGUI_API bool igCloseButton(ImGuiID id,const ImVec2 pos);
CIMGUI_API bool igCollapseButton(ImGuiID id,const ImVec2 pos);
CIMGUI_API void igScrollbar(ImGuiAxis axis);
CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags);
CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags draw_rounding_flags);
CIMGUI_API void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis);
CIMGUI_API ImGuiID igGetWindowScrollbarID(ImGuiWindow* window,ImGuiAxis axis);
CIMGUI_API ImGuiID igGetWindowResizeCornerID(ImGuiWindow* window,int n);
@@ -4524,6 +4563,7 @@ CIMGUI_API void igDataTypeApplyOp(ImGuiDataType data_type,int op,void* output,co
CIMGUI_API bool igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,void* p_data,const char* format,void* p_data_when_empty);
CIMGUI_API int igDataTypeCompare(ImGuiDataType data_type,const void* arg_1,const void* arg_2);
CIMGUI_API bool igDataTypeClamp(ImGuiDataType data_type,void* p_data,const void* p_min,const void* p_max);
CIMGUI_API bool igDataTypeIsZero(ImGuiDataType data_type,const void* p_data);
CIMGUI_API bool igInputTextEx(const char* label,const char* hint,char* buf,int buf_size,const ImVec2 size_arg,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API void igInputTextDeactivateHook(ImGuiID id);
CIMGUI_API bool igTempInputText(const ImRect bb,ImGuiID id,const char* label,char* buf,int buf_size,ImGuiInputTextFlags flags);
@@ -4541,10 +4581,15 @@ CIMGUI_API void igShadeVertsTransformPos(ImDrawList* draw_list,int vert_start_id
CIMGUI_API void igGcCompactTransientMiscBuffers(void);
CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window);
CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window);
CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size);
CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,void* user_data);
CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data);
CIMGUI_API bool igErrorLog(const char* msg);
CIMGUI_API void igErrorRecoveryStoreState(ImGuiErrorRecoveryState* state_out);
CIMGUI_API void igErrorRecoveryTryToRecoverState(const ImGuiErrorRecoveryState* state_in);
CIMGUI_API void igErrorRecoveryTryToRecoverWindowState(const ImGuiErrorRecoveryState* state_in);
CIMGUI_API void igErrorCheckUsingSetCursorPosToExtendParentBoundaries(void);
CIMGUI_API void igErrorCheckEndFrameFinalizeErrorTooltip(void);
CIMGUI_API bool igBeginErrorTooltip(void);
CIMGUI_API void igEndErrorTooltip(void);
CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size);
CIMGUI_API void igDebugDrawCursorPos(ImU32 col);
CIMGUI_API void igDebugDrawLineExtents(ImU32 col);
CIMGUI_API void igDebugDrawItemRect(ImU32 col);
@@ -4586,13 +4631,17 @@ CIMGUI_API void igImFontAtlasBuildRender8bppRectFromString(ImFontAtlas* atlas,in
CIMGUI_API void igImFontAtlasBuildRender32bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned int in_marker_pixel_value);
CIMGUI_API void igImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256],float in_multiply_factor);
CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride);
#ifdef IMGUI_ENABLE_FREETYPE
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType(void);
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
#endif
/////////////////////////hand written functions
//no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...);
CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
//for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings

View File

@@ -1,12 +1,4 @@
#ifdef IMGUI_ENABLE_FREETYPE
#ifndef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should be defined for Freetype linking"
#endif
#else
#ifdef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should not be defined without freetype generated cimgui"
#endif
#endif
#include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h"
@@ -20,7 +12,7 @@
/////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...)
CIMGUI_API void igLogText(const char *fmt, ...)
{
char buffer[256];
va_list args;
@@ -30,11 +22,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer);
}
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
buffer->appendfv(fmt, args);
self->appendfv(fmt, args);
va_end(args);
}

View File

@@ -47,9 +47,9 @@ typedef union SDL_Event SDL_Event;
/////////////////////////hand written functions
//no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...);
CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
//for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings

View File

@@ -175,6 +175,7 @@ local function check_template(code)
te = te:gsub("%-","less")
te = te:gsub("%s","_")
te = te:gsub("%*","Ptr")
te = te:gsub("::","_")
code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2")
code2 = code2:gsub("<([^<>]-)>","_"..te)
@@ -319,6 +320,9 @@ local function getRE()
function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated)
--we need to skip = as function because of "var = f()" initialization in struct fields
-- 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%(%)_]*;)",
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
@@ -343,7 +347,7 @@ local function getRE()
}
local resN = {"comment2_re","comment_re","emptyline_re",
"functypedef_re","functype_re","function_re","functionD_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"}
"functypedef_re","functype_re","function_re","functionD_re","operator_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"}
return res,resN
end
@@ -431,20 +435,15 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
loca = table.remove(loca,1)
end
if not loca then
print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline)
-- for k,v in pairs(linenumdict) do
-- if k:match(itemfirstline) then
-- print(string.format("%q",k),#k)
-- end
-- end
--error"no entry in linenumdict"
--take locat from parent
if itparent and itparent.locat then
loca = itparent.locat
print("parent loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
else
loca = 0
--error"no entry in linenumdict"
print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
end
end
else
error"no linenumdict"
@@ -480,7 +479,7 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
end
return itemarr,items
end
M.parseItems = parseItems
--M.parseItems = parseItems
local function name_overloadsAlgo(v)
local aa = {} -- args
@@ -604,7 +603,7 @@ local function clean_names_from_signature(self,signat)
return result
end
local function clean_functypedef(line)
local first, args = line:match("(typedef .-%(%*[_%w]+%))%s*(%b())")
local first, args = line:match("(typedef .-%(%*%s*[_%w]+%))%s*(%b())")
if not args then
print"not getting args in"
@@ -672,14 +671,18 @@ local function CleanImU32(def)
for i=1,#bb do res = res + bb[i] end
return res
end
local function moveptr(line)
line = line:gsub("%s*%*","%*")
line = line:gsub("%*([%w_])","%* %1")
line = line:gsub("(%(%*)%s","%1")
return line
end
local function parseFunction(self,stname,itt,namespace,locat)
local lineorig,comment = split_comment(itt.item)
line = clean_spaces(lineorig)
--move *
line = line:gsub("%s*%*","%*")
line = line:gsub("%*([%w_])","%* %1")
line = line:gsub("(%(%*)%s","%1")
line = moveptr(line)
--print(line)
--clean implemetation
@@ -718,6 +721,21 @@ local function parseFunction(self,stname,itt,namespace,locat)
error"parseFunction not getting args"
end
--get manuals args and ret
local cname = self.getCname(stname,funcname, namespace) --cimguiname
local manpars = self.manuals[cname]
local ismanual
if manpars then
if type(manpars) == "boolean" then
print("warning: unable to get args and ret from "..cname)
print("did you forgot to use set_manuals? ")
else
ismanual = true
args, ret = manpars.args, manpars.ret
args = moveptr(args)
ret = moveptr(ret)
end
end
local argsp = args:sub(2,-2)..","
local argsTa = {}
@@ -733,6 +751,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
argsTa[#argsTa+1] = tynam
end
end
--- templates in args
for i,ar in ipairs(argsTa) do
--TODO several diferent templates
@@ -746,7 +766,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end
argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector
end
--get typ, name and defaults
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
@@ -806,6 +826,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end
end
local argsArr = argsTa2
--recreate argscsinpars, call_args and signature from argsArr
@@ -837,7 +858,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
caar = "()"
signat = "()" .. (extraconst or "")
end
--if ismanual then print("manual",asp, caar, signat) end
------------------------------
if not ret and stname then --must be constructors
@@ -870,6 +891,9 @@ local function parseFunction(self,stname,itt,namespace,locat)
ar.default = nil
end
end
--if ismanual then M.prtable(argsArr) end
defT.templated = self.typenames[stname] and true
defT.namespace = namespace
defT.cimguiname = cimguiname
@@ -900,6 +924,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
-- end
end
defsT[cimguiname][signat] = defT
end
local function itemsCount(items)
print"------------items"
@@ -912,8 +937,8 @@ end
local function AdjustArguments(FP)
for fun,defs in pairs(FP.defsT) do
--struct function but no constructors or static functions
if defs[1].stname~="" and defs[1].ret and not defs[1].is_static_function then
--struct function but no constructors or static functions or manuals
if defs[1].stname~="" and defs[1].ret and not defs[1].is_static_function and not defs[1].manual then
--print("adjusting",fun)
for i,def in ipairs(defs) do
local empty = def.args:match("^%(%)") --no args
@@ -1020,7 +1045,39 @@ local function ADDIMSTR_S(FP)
end
FP.funcdefs = newcdefs
end
--this creates defsBystruct in case you need to list by struct container
local function DefsByStruct(FP)
local structs = {}
for fun,defs in pairs(FP.defsT) do
local stname = defs[1].stname
structs[stname] = structs[stname] or {}
table.insert(structs[stname],defs)--fun)
end
return structs
end
local function get_nonPOD(FP)
local defbystruct = DefsByStruct(FP)
--M.prtable(defbystruct)
local nonPOD = {}
for k,defs in pairs(defbystruct) do
if k~="" then
for i, ww in ipairs(defs) do
-- print(k,i,ww)
-- M.prtable(ww)
if not ww[1].ret then --constructor
nonPOD[k] = true
break;
end
end
end
end
FP.structs_and_enums_table.nonPOD = nonPOD
return nonPOD
end
local function ADDnonUDT(FP)
local nonPOD = get_nonPOD(FP)
--print"nonPOD"
--M.prtable(nonPOD)
local defsT = FP.defsT
--local newcdefs = {}
for numcdef,t in ipairs(FP.funcdefs) do
@@ -1034,10 +1091,17 @@ local function ADDnonUDT(FP)
end
--if UDT return generate nonUDT version
local isUDT = false
for _,udt_ret in ipairs(FP.UDTs) do
if udt_ret == defT.ret then isUDT=true;break end
--isUDT = FP.structs_and_enums_table.structs[defT.ret] and true or false
isUDT = nonPOD[defT.ret] and true or false
--inherited
if (not isUDT) and FP.cimgui_inherited and FP.cimgui_inherited.nonPOD[defT.ret] then
isUDT = true
end
--if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then
for _,udt_ret in ipairs(FP.UDTs) do
if udt_ret == defT.ret then isUDT=true; break end
end
if isUDT then
--passing as a pointer arg
local defT2 = {}
@@ -1110,14 +1174,15 @@ local function ADDdestructors(FP)
error"names should be equal"
end
local def = {}
local isrealdestructor = keep_dest_locat[defT[1].stname] and true
def.stname = defT[1].stname
def.templated = defT[1].templated
def.location = keep_dest_locat[defT[1].stname]
def.location = keep_dest_locat[defT[1].stname] or defT[1].location
def.ret = "void"
def.ov_cimguiname = def.stname.."_destroy"
def.cimguiname = def.ov_cimguiname
def.destructor = true
def.realdestructor = def.location and true
def.realdestructor = isrealdestructor
def.args = "("..def.stname.."* self)"
def.call_args = "(self)"
def.signature = "("..def.stname.."*)"
@@ -1269,7 +1334,7 @@ function M.Parser()
self.typedefs_dict[key] = linet
elseif not line:match"typedef%s*struct" then --discard typedef struct
print("typedef not found")
print(key,value,line)
print(key,value,line,cdef[1],cdef[2])
end
end
end
@@ -1289,6 +1354,15 @@ function M.Parser()
function par:parseItemsR2(txt, itparent)
local itsarr,its = parseItems(txt,self.linenumdict,itparent)
for i,it in ipairs(itsarr) do
--clean class
if it.re_name == "class_re" then
it.name = it.item:match("class%s+(%S+)")
print("cleaning class",it.name)
it.item = it.item:gsub("private:.+};$","};")
--it.item = it.item:gsub("private:","")
it.item = it.item:gsub("public:","")
it.item = it.item:gsub("enum%s*class","enum")
end
if not isLeaf(it.re_name) then
local inner = strip_end(it.item:match("%b{}"):sub(2,-2))
it.childs = par:parseItemsR2(inner, it)
@@ -1311,6 +1385,8 @@ function M.Parser()
end
elseif it.re_name == "namespace_re" then
it.name = it.item:match("namespace%s+(%S+)")
elseif it.re_name == "class_re" then
--it.name = it.item:match("class%s+(%S+)")
end
end
end
@@ -1332,11 +1408,12 @@ function M.Parser()
return table.concat(txtclean)
end
function par:parseItems()
self:initTypedefsDict()
--self:initTypedefsDict()
self.linenumdict = {}
local cdefs2 = {}
for i,cdef in ipairs(cdefs) do
cdef[1] = cdef[1]:gsub("enum%s*class","enum") --clean class
local cdef1 = clean_comments(cdef[1])
if self.linenumdict[cdef1] then
--print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]]))
@@ -1346,7 +1423,6 @@ function M.Parser()
table.insert(self.linenumdict[cdef1],cdef[2])
end
else
--print("nuevo linenumdict es",cdef[1],cdef[2])
self.linenumdict[cdef1]=cdef[2]
end
table.insert(cdefs2,cdef[1])
@@ -1391,12 +1467,27 @@ function M.Parser()
--save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt)
--]]
self.itemsarr = par:parseItemsR2(txt)
--save_data("./itemsarr.lua",ToStr(self.itemsarr))
itemsarr = self.itemsarr
end
function par:printItems()
printItems(items)
end
function par:set_manuals(manuals, modulen, erase)
erase = erase or {"CIMGUI_API"}
local moddata = read_data("./"..modulen.."_template.h")
for k,v in pairs(manuals) do
local ret = moddata:match("([^%(%):,\n;]+[%*%s])%s?~?"..k.."%b()")
for i,ww in ipairs(erase) do
ret = ret:gsub(ww,"")
end
local args = moddata:match(k.."%s*(%b())")
manuals[k] = {args = args, ret = ret}
--print(k,args,ret)
end
self.manuals = manuals
end
par.parseFunction = parseFunction
local uniques = {}
local function check_unique_typedefs(l,uniques)
@@ -1423,13 +1514,20 @@ function M.Parser()
local predeclare = ""
--local iner = strip_end(stru:match("%b{}"):sub(2,-2))
local inistruct = clean_spaces(stru:match("(.-)%b{}"))
--clean final:
inistruct = inistruct:gsub("%s*final%s*:",":")
--local stname = stru:match("struct%s*(%S+)%s*%b{}")
local stname, derived
if inistruct:match":" then
stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)"
--print(inistruct,stname,derived)
derived = derived:match"(%S+)$"
else
stname = inistruct:match"struct%s(%S+)"
if itst.re_name == "struct_re" then
stname = inistruct:match"struct%s(%S+)"
elseif itst.re_name == "class_re" then
stname = inistruct:match"class%s(%S+)"
end
end
if derived then print(stname,"derived from",derived) end
@@ -1439,6 +1537,7 @@ function M.Parser()
stname = stru:match("%b{}%s*(%S+)%s*;")
end
local is_nested
if not stname then
is_nested = itst.parent and (itst.parent.re_name == "struct_re")
@@ -1476,12 +1575,14 @@ function M.Parser()
--local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>")
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
if template then
--print("not doheader",ttype,template,te)
if self.typenames[ttype] ~= template then --rule out T (template typename)
self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te
it2=code2
end
if doheader then
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
predeclare = predeclare .. templatetypedef
end
@@ -1537,7 +1638,7 @@ function M.Parser()
end
elseif it.re_name == "enum_re" then
--nop
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24))
--M.prtable(it)
end
@@ -1566,8 +1667,9 @@ function M.Parser()
if parnam~="" then parnam = parnam:sub(1,-3) end
return parnam
end
function par:header_text_insert(tab,txt,it)
table.insert(tab, txt)
end
function par:gen_structs_and_enums()
print"--------------gen_structs_and_enums"
--M.prtable(self.typenames)
@@ -1595,25 +1697,31 @@ function M.Parser()
local tdt = self:gentemplatetypedef(ttype,template,te)
it2 = tdt..code2
elseif it2:match"%w+::" then
print("clean namespace typedef",it2)
it2 = it2:gsub("%w+::","")
end
elseif it.re_name == "functypedef_re" then
it2 = clean_functypedef(it2)
else
assert(it.re_name == "vardef_re")
it2 = it2:gsub("constexpr","static const")
if it2:match"enum" then
print("--skip enum forward declaration:",it2)
it2 = ""
end
end
--table.insert(outtabpre,it2)
table.insert(outtab,it2)
--table.insert(outtab,it2)
self:header_text_insert(outtab, it2, it)
-- add typedef after struct name
if it.re_name == "vardef_re" and it.item:match"^%s*struct" then
local stname = it.item:match("struct%s*(%S+)%s*;")
--table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
local tst = "\ntypedef struct "..stname.." "..stname..";"
if check_unique_typedefs(tst,uniques) then
table.insert(outtabpre,tst)
--table.insert(outtabpre,tst)
self:header_text_insert(outtabpre ,tst, it)
end
self.typedefs_dict[stname]="struct "..stname
if it.parent then --must be struct name; inside namespace
@@ -1639,24 +1747,31 @@ function M.Parser()
end
end
enumbody = "{"..enumbody.."\n}"
table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";"..extraenums)
--table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";"..extraenums)
local it2 = "\ntypedef enum ".. enumbody..enumname..";"..extraenums
self:header_text_insert(outtab, it2, it)
else
local enumbody = it.item:match"(%b{})"
enumbody = clean_comments(enumbody)
table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";")
--table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";")
local it2 = "\ntypedef enum ".. enumbody..enumname..";"
self:header_text_insert(outtab, it2, it)
end
if it.parent then
if it.parent.re_name == "namespace_re" then
local namespace = it.parent.item:match("namespace%s+(%S+)")
self.embeded_enums[enumname] = namespace.."::"..enumname
else
self.embeded_enums[enumname] = it.parent.name.."::"..enumname
end
end
else --unamed enum just repeat declaration
local cl_item = clean_comments(it.item)
table.insert(outtab,cl_item)
--table.insert(outtab,cl_item)
self:header_text_insert(outtab, cl_item, it)
print("unnamed enum",cl_item)
end
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true)
if not structname then print("NO NAME",cleanst,it.item) end
--if not void stname or templated
@@ -1665,12 +1780,14 @@ function M.Parser()
--table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
local tst = "\ntypedef struct "..structname.." "..structname..";"
if check_unique_typedefs(tst,uniques) then
table.insert(outtab,tst)
--table.insert(outtab,tst)
self:header_text_insert(outtab, tst, it)
end
self.typedefs_dict[structname]="struct "..structname
--dont insert child structs as they are inserted before parent struct
if not (it.parent and it.parent.re_name == "struct_re") then
table.insert(outtab,predec .. cleanst)
--table.insert(outtab,predec .. cleanst)
self:header_text_insert(outtab, predec .. cleanst, it)
end
end
if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
@@ -1693,7 +1810,7 @@ function M.Parser()
local stname = ""
local namespace
if it.parent then
if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" or it.parent.re_name == "class_re" then
stname = it.parent.name
elseif it.parent.re_name == "namespace_re" then
namespace = get_parents_nameC(it) --it.parent.name
@@ -1703,7 +1820,9 @@ function M.Parser()
local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$"
if self.ftemplate_list and self.ftemplate_list[ttype] then
for iT,vT in ipairs(self.ftemplate_list[ttype]) do
local funT = fun:gsub(ttype,vT)
local funT = fun:gsub("([< %(])"..ttype,"%1"..vT)
--funT = funT:gsub("sizeof%("..ttype.."%)","sizeof("..vT..")")
--local funT = fun:gsub(ttype,vT)
self:parseFunction(stname,{item=funT},namespace,it.locat)
end
end
@@ -1711,7 +1830,9 @@ function M.Parser()
self:parseFunction(stname,it,namespace,it.locat)
end
else
if it.re_name~="operator_re" then
print("not processed gen",it.re_name,it.item:sub(1,20))
end
end
end
@@ -1779,7 +1900,8 @@ function M.Parser()
end
local unnamed_enum_counter = 0
local function enums_for_table(it, outtab, enumsordered)
local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
--local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
local enumname = it.item:match"^[^;{}]-enum%s+([^%s;{}]+)"
if not enumname then
unnamed_enum_counter = unnamed_enum_counter + 1
enumname = "unnamed"..unnamed_enum_counter
@@ -1842,7 +1964,7 @@ function M.Parser()
function par:gen_structs_and_enums_table()
print"--------------gen_structs_and_enums_table"
local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={}}
self.typedefs_table = {}
--self.typedefs_table = {}
local enumsordered = {}
unnamed_enum_counter = 0
self.templated_structs = {}
@@ -1865,11 +1987,35 @@ function M.Parser()
if it.re_name == "typedef_re" and not it.parent then
local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$"
typedefname = strip(typedefname)
self.typedefs_table[typedefname] = strip(typedefdef)
--self.typedefs_table[typedefname] = strip(typedefdef)
self.typedefs_dict[typedefname] = strip(typedefdef)
elseif it.re_name == "functypedef_re" then
-- "^\n*%s*(typedef[%w%s%*_]+%([^*]*%*?%s*[%w_]+%s*%)%s*%b()%s*;)"
local key = it.item:match("%(%*%s*([%w_]+)%)%s*%([^%(%)]*%)")
if key then
local linet = it.item
linet = linet:gsub("[\n%s]+typedef ","")
linet = linet:gsub("%(%*("..key..")%)","(*)")
self.typedefs_dict[key] = linet
--print("functypedef_re",1,linet)--,clean_functypedef(line))
else
--try function typedef
key = it.item:match("%(([%w_]+)%)%([^%(%)]*%)")
if key then
local linet = it.item
linet = linet:gsub("typedef ","")
linet = linet:gsub("%(("..key..")%)","()")
self.typedefs_dict[key] = linet
print("functypedef_re",2, it.item)
else
print("func typedef not found")
print(it.item)
end
end
end
elseif it.re_name == "enum_re" then
enums_for_table(it, outtab, enumsordered)
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
local cleanst,structname,strtab,comstab = self:clean_structR1(it)
--if not void stname or templated
if not structname then print("NO NAME",cleanst,it.item) end
@@ -1896,7 +2042,7 @@ function M.Parser()
end
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
--nop
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
print("not processed gen table",it.re_name)
end
end
@@ -2141,6 +2287,7 @@ function M.Parser()
return self:gen_template_typedef_auto(ttype,te,newte)
end
function par:gen_template_typedef_auto(ttype,te,newte)
--M.prtable(self.templated_structs)
assert(self.templated_structs[ttype],ttype)
local defi = self.templated_structs[ttype]
local Targ = strsplit(self.typenames[ttype],",")
@@ -2184,7 +2331,111 @@ function M.Parser()
end
return par
end
-- more compact serialization
local function basicSerialize (o)
if type(o) == "number" then
return string.format("%.17g", o)
elseif type(o)=="boolean" then
return tostring(o)
elseif type(o) == "string" then
return string.format("%q", o)
elseif pcall(function() return o.__serialize end) then
return o.__serialize(o)
elseif type(o)=="cdata" then
return cdataSerialize(o)
else
return tostring(o) --"nil"
end
end
-- very readable and now suited for cyclic tables
local kw = {['and'] = true, ['break'] = true, ['do'] = true, ['else'] = true,
['elseif'] = true, ['end'] = true, ['false'] = true, ['for'] = true,
['function'] = true, ['goto'] = true, ['if'] = true, ['in'] = true,
['local'] = true, ['nil'] = true, ['not'] = true, ['or'] = true,
['repeat'] = true, ['return'] = true, ['then'] = true, ['true'] = true,
['until'] = true, ['while'] = true}
function tb2st_serialize(t,options)
options = options or {}
local function sorter(a,b)
if type(a)==type(b) then
return a<b
elseif type(a)=="number" then
return true
else
assert(type(b)=="number")
return false
end
end
local function serialize_key(val, dodot, pretty)
local dot = dodot and "." or ""
if type(val)=="string" then
if val:match '^[_%a][_%w]*$' and not kw[val] then
return dot..tostring(val)
else
return "[\""..tostring(val).."\"]"
end
elseif (not pretty) and (not dodot) and (type(val) == "number") and (math.floor(val)==val) then
return --array index
else
return "["..tostring(val).."]"
end
end
local function serialize_key_name(val)
return serialize_key(val, true)
end
local insert = table.insert
local function _tb2st(t,saved,sref,level,name)
saved = saved or {} -- initial value
level = level or 0
sref = sref or {}
name = name or "t"
if type(t)=="table" then
if saved[t] then
sref[#sref+1] = {saved[t],name}
return"nil"
else
saved[t] = name
local ordered_keys = {}
for k,v in pairs(t) do
insert(ordered_keys,k)
end
table.sort(ordered_keys,sorter)
local str2 = {}
insert(str2,"{")
if options.pretty then insert(str2,"\n") end
for _,k in ipairs(ordered_keys) do
if options.pretty then insert(str2,(" "):rep(level+1)) end
local v = t[k]
local kser = serialize_key(k, nil, options.pretty)
insert(str2, (kser and (kser .."=") or ""))
if type(v)~="table" then
insert(str2, basicSerialize(v))
else
local name2 = name .. serialize_key_name(k)
insert(str2,_tb2st(v,saved,sref,level+1,name2))
end
if options.pretty then insert(str2,",\n") else insert(str2, ",") end
end
str2[#str2] = "}"
if level == 0 then
--insert(str2, 1,"local ffi = require'ffi'\nlocal t=")
insert(str2, 1,"local t=")
for i,v in ipairs(sref) do
insert(str2, "\n"..v[2].."="..v[1])
end
insert(str2,"\n return t")
end
return table.concat(str2)
end
else
return basicSerialize(t)
end
end
return(_tb2st(t))
end
M.tb2st_serialize = tb2st_serialize
------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
local function serializeTable(name, value, saved)
@@ -2246,10 +2497,11 @@ local function serializeTable(name, value, saved)
return table.concat(string_table)
end
M.serializeTable = serializeTable
M.serializeTableF = function(t)
return M.serializeTable("defs",t).."\nreturn defs"
end
-- M.serializeTable = serializeTable
-- M.serializeTableF = function(t)
-- return M.serializeTable("defs",t).."\nreturn defs"
-- end
M.serializeTableF = function(t) return tb2st_serialize(t,{pretty=true}) end --new serialization more compact
--iterates lines from a gcc/clang -E in a specific location
local function location(file,locpathT,defines,COMPILER,keepemptylines)
local define_re = "^#define%s+([^%s]+)%s+(.+)$"
@@ -2336,7 +2588,8 @@ local function location(file,locpathT,defines,COMPILER,keepemptylines)
end
M.location = location
---------------------- C writing functions
local function ImGui_f_implementation(outtab,def)
local function ImGui_f_implementation(def)
local outtab = {}
local ptret = def.retref and "&" or ""
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n")
@@ -2363,8 +2616,10 @@ local function ImGui_f_implementation(outtab,def)
table.insert(outtab," return "..ptret..namespace..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
return table.concat(outtab, "")
end
local function struct_f_implementation(outtab,def)
local function struct_f_implementation(def)
local outtab = {}
local empty = def.args:match("^%(%)") --no args
local ptret = def.retref and "&" or ""
@@ -2393,6 +2648,7 @@ local function struct_f_implementation(outtab,def)
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
return table.concat(outtab, "")
end
local function func_implementation(FP)
@@ -2410,25 +2666,38 @@ local function func_implementation(FP)
local manual = FP.get_manuals(def)
if not custom and not manual and not def.templated and not FP.get_skipped(def) then
if def.constructor then
local tab = {}
assert(def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(outtab,"{\n")
table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(outtab,"}\n")
table.insert(tab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(tab,"{\n")
table.insert(tab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(tab,"}\n")
if FP.CONSTRUCTORS_GENERATION then
table.insert(tab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..")\n")
table.insert(tab,"{\n")
table.insert(tab," IM_PLACEMENT_NEW(self)"..def.stname..def.call_args..";\n")
table.insert(tab,"}\n")
end
table.insert(outtab, table.concat(tab, ""))
elseif def.destructor then
local tab = {}
local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," IM_DELETE(self);\n")
table.insert(outtab,"}\n")
table.insert(tab,"CIMGUI_API void "..fname..args.."\n")
table.insert(tab,"{\n")
table.insert(tab," IM_DELETE(self);\n")
table.insert(tab,"}\n")
table.insert(outtab, table.concat(tab, ""))
elseif def.stname == "" or def.is_static_function then
ImGui_f_implementation(outtab,def)
table.insert(outtab, ImGui_f_implementation(def))
else -- stname
struct_f_implementation(outtab,def)
table.insert(outtab, struct_f_implementation(def))
end
end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
until true
end
return table.concat(outtab)
@@ -2451,13 +2720,16 @@ local function func_header_generate_structs(FP)
local outtab = {}
table_do_sorted(FP.embeded_structs,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end)
table_do_sorted(FP.embeded_structs,function(k,v)
table.insert(outtab,"typedef "..v.." "..k..";\n")
end)
table_do_sorted(FP.embeded_enums,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end)
table_do_sorted(FP.templates,function(ttype,v)
table_do_sorted(v,function(ttypein,te)
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n")
local ttype2 = ttype:gsub("::","_") --std::string
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype2.."_"..te..";\n")
end)
end)
return outtab
@@ -2486,6 +2758,9 @@ local function func_header_generate_funcs(FP)
if def.constructor then
assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
if FP.CONSTRUCTORS_GENERATION then
outtab[#outtab] = outtab[#outtab].."\nCIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..");\n"
end
elseif def.destructor then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else --not constructor
@@ -2497,9 +2772,13 @@ local function func_header_generate_funcs(FP)
end
end
end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end
end
return outtab

View File

@@ -15,10 +15,12 @@ set PATH=%PATH%;C:\anima;C:\mingws\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\min
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
::process files
:: arg[1] compiler name gcc, clang or cl
:: arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
:: examples: "" "internal" "internal freetype comments"
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 %*
:: arg[2] options as words in one string: internal for imgui_internal generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
:: "constructors" adds the _Construct version of constructors
:: examples: "" "internal" "internal comments"
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 -DIMGUI_USE_WCHAR32 %*
::leave console open
cmd /k

View File

@@ -7,8 +7,9 @@ assert(bit,"Must use LuaJIT")
local script_args = {...}
local COMPILER = script_args[1]
local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false
local FREETYPE_GENERATION = script_args[2]:match("freetype") and true or false
local FREETYPE_GENERATION = true --script_args[2]:match("freetype") and true or false
local COMMENTS_GENERATION = script_args[2]:match("comments") and true or false
local CONSTRUCTORS_GENERATION = script_args[2]:match("constructors") and true or false
local NOCHAR = script_args[2]:match("nochar") and true or false
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
@@ -18,6 +19,9 @@ local CPRE,CTEST
local implementations = {}
for i=3,#script_args do
if script_args[i]:match(COMPILER == "cl" and "^/" or "^%-") then
if script_args[i]:match("IMGUI_USE_WCHAR32") then
script_args[i] = "" --dont use this define
end
local key, value = script_args[i]:match("^(.+)=(.+)$")
if key and value then
CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\"";
@@ -30,11 +34,11 @@ for i=3,#script_args do
end
if FREETYPE_GENERATION then
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE "
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE" --both builders
end
if COMPILER == "gcc" or COMPILER == "clang" or COMPILER == "zig cc" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS
@@ -67,6 +71,7 @@ print("HAVE_COMPILER",HAVE_COMPILER)
print("INTERNAL_GENERATION",INTERNAL_GENERATION)
print("FREETYPE_GENERATION",FREETYPE_GENERATION)
print("COMMENTS_GENERATION",COMMENTS_GENERATION)
print("CONSTRUCTORS_GENERATION",CONSTRUCTORS_GENERATION)
print("CPRE",CPRE)
--------------------------------------------------------------------------
--this table has the functions to be skipped in generation
@@ -212,6 +217,27 @@ local function DefsByStruct(FP)
FP.defsBystruct = structs
end
local function colapse_defines(str, define)
local num = 1
while num > 0 do
str,num = str:gsub("(#ifdef "..define..".+)".."(#endif\n+#ifdef "..define.."\n)", "%1")
end
return str
end
local wchardefine =
[[
#ifdef IMGUI_USE_WCHAR32
typedef ImWchar32 ImWchar;
#else
typedef ImWchar16 ImWchar;
#endif
#ifdef IMGUI_USE_WCHAR32
#define IM_UNICODE_CODEPOINT_MAX 0x10FFFF
#else
#define IM_UNICODE_CODEPOINT_MAX 0xFFFF
#endif
]]
--generate cimgui.cpp cimgui.h
local function cimgui_generation(parser)
@@ -259,18 +285,27 @@ local function cimgui_generation(parser)
end
end
cstructsstr = colapse_defines(cstructsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser)
cfuncsstr = colapse_defines(cfuncsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
--patch hstrfile for ImWchar
local num
hstrfile, num = hstrfile:gsub("typedef ImWchar16 ImWchar;", wchardefine)
assert(num == 1)
hstrfile, num = hstrfile:gsub("kPagesMap%[%(0xFFFF", "kPagesMap[(IM_UNICODE_CODEPOINT_MAX")
assert(num == 1, "kPagesMap[(IM_UNICODE_CODEPOINT_MAX not found or found more than once")
save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser)
cimplem = colapse_defines(cimplem, "IMGUI_ENABLE_FREETYPE")
local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
local ftdef = FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or ""
local ftdef = "" --FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or ""
save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile)
end
@@ -305,6 +340,20 @@ print("NOIMSTRV",NOIMSTRV)
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
print("IMGUI_VERSION",gdefines.IMGUI_VERSION)
local function custom_function_post(self, outtab, def)
assert(def.location)
if def.location:match("imgui_freetype") then
outtab[#outtab] = "#ifdef IMGUI_ENABLE_FREETYPE\n"..outtab[#outtab].."\n#endif\n"
end
end
local function header_text_insert(self, outtab, txt, it)
assert(it.locat)
if it.locat:match("imgui_freetype") then
table.insert(outtab, "\n#ifdef IMGUI_ENABLE_FREETYPE"..txt.."\n#endif")
else
table.insert(outtab, txt)
end
end
--funtion for parsing imgui headers
local function parseImGuiHeader(header,names)
@@ -316,13 +365,17 @@ local function parseImGuiHeader(header,names)
return pre..funcname
end
parser.cname_overloads = cimgui_overloads
parser.manuals = cimgui_manuals
--parser.manuals = cimgui_manuals
parser:set_manuals(cimgui_manuals, "cimgui")
parser.skipped = cimgui_skipped
parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"}
--parser.gen_template_typedef = gen_template_typedef --use auto
parser.COMMENTS_GENERATION = COMMENTS_GENERATION
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
parser.NOCHAR = NOCHAR
parser.NOIMSTRV = NOIMSTRV
parser.custom_function_post = custom_function_post
parser.header_text_insert = header_text_insert
local defines = parser:take_lines(CPRE..header,names,COMPILER)
return parser

View File

@@ -13,9 +13,11 @@
#process files
# arg[1] compiler name gcc, clang, or cl
# arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
# examples: "" "internal" "internal freetype" "comments internal"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
# arg[2] options as words in one string: internal for imgui_internal generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
# "constructors" adds the _Construct version of constructors
# examples: "" "internal" "comments internal"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG)
# -DIMGUI_USE_WCHAR32 should not be used as it is generated for both ImWchar
#
# parse command line arguments
@@ -23,7 +25,7 @@
POSITIONAL_ARGS=()
TARGETS="internal noimstrv"
CFLAGS="glfw opengl3 opengl2 sdl2"
CFLAGS="glfw opengl3 opengl2 sdl2 sdl3"
help() {
cat <<EOF

View File

@@ -65,3 +65,25 @@ CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
CIMGUI_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count);
#endif
#ifdef CIMGUI_USE_SDL3
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct SDL_Gamepad SDL_Gamepad;
struct SDL_Window;
struct SDL_Renderer;
struct SDL_Gamepad;
typedef union SDL_Event SDL_Event;
typedef enum { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }ImGui_ImplSDL3_GamepadMode;CIMGUI_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL3_Shutdown(void);
CIMGUI_API void ImGui_ImplSDL3_NewFrame(void);
CIMGUI_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
CIMGUI_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count);
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -427,7 +427,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"location": "imgui_impl_opengl2:36",
"location": "imgui_impl_opengl2:38",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ret": "bool",
"signature": "()",
@@ -443,7 +443,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"location": "imgui_impl_opengl2:34",
"location": "imgui_impl_opengl2:36",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ret": "bool",
"signature": "()",
@@ -459,7 +459,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"location": "imgui_impl_opengl2:37",
"location": "imgui_impl_opengl2:39",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ret": "void",
"signature": "()",
@@ -475,7 +475,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"location": "imgui_impl_opengl2:35",
"location": "imgui_impl_opengl2:37",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ret": "void",
"signature": "()",
@@ -491,7 +491,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Init",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_Init",
"location": "imgui_impl_opengl2:28",
"location": "imgui_impl_opengl2:30",
"ov_cimguiname": "ImGui_ImplOpenGL2_Init",
"ret": "bool",
"signature": "()",
@@ -507,7 +507,7 @@
"cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_NewFrame",
"location": "imgui_impl_opengl2:30",
"location": "imgui_impl_opengl2:32",
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"ret": "void",
"signature": "()",
@@ -528,7 +528,7 @@
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_RenderDrawData",
"location": "imgui_impl_opengl2:31",
"location": "imgui_impl_opengl2:33",
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*)",
@@ -544,7 +544,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_Shutdown",
"location": "imgui_impl_opengl2:29",
"location": "imgui_impl_opengl2:31",
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"ret": "void",
"signature": "()",
@@ -879,11 +879,11 @@
"type": "int"
}
],
"argsoriginal": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array=((void*)0),int manual_gamepads_count=-1)",
"argsoriginal": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"defaults": {
"manual_gamepads_array": "NULL",
"manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1"
},
"funcname": "ImGui_ImplSDL2_SetGamepadMode",
@@ -909,5 +909,245 @@
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForD3D": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForD3D",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForD3D",
"location": "imgui_impl_sdl3:35",
"ov_cimguiname": "ImGui_ImplSDL3_InitForD3D",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForMetal": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForMetal",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForMetal",
"location": "imgui_impl_sdl3:36",
"ov_cimguiname": "ImGui_ImplSDL3_InitForMetal",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOpenGL": [
{
"args": "(SDL_Window* window,void* sdl_gl_context)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "sdl_gl_context",
"type": "void*"
}
],
"argsoriginal": "(SDL_Window* window,void* sdl_gl_context)",
"call_args": "(window,sdl_gl_context)",
"cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOpenGL",
"location": "imgui_impl_sdl3:33",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"ret": "bool",
"signature": "(SDL_Window*,void*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOther": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForOther",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOther",
"location": "imgui_impl_sdl3:39",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOther",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLGPU": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLGPU",
"location": "imgui_impl_sdl3:38",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLRenderer": [
{
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "renderer",
"type": "SDL_Renderer*"
}
],
"argsoriginal": "(SDL_Window* window,SDL_Renderer* renderer)",
"call_args": "(window,renderer)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLRenderer",
"location": "imgui_impl_sdl3:37",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"ret": "bool",
"signature": "(SDL_Window*,SDL_Renderer*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForVulkan": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForVulkan",
"location": "imgui_impl_sdl3:34",
"ov_cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplSDL3_NewFrame",
"location": "imgui_impl_sdl3:41",
"ov_cimguiname": "ImGui_ImplSDL3_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL3_ProcessEvent": [
{
"args": "(const SDL_Event* event)",
"argsT": [
{
"name": "event",
"type": "const SDL_Event*"
}
],
"argsoriginal": "(const SDL_Event* event)",
"call_args": "(event)",
"cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"defaults": {},
"funcname": "ImGui_ImplSDL3_ProcessEvent",
"location": "imgui_impl_sdl3:42",
"ov_cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"ret": "bool",
"signature": "(const SDL_Event*)",
"stname": ""
}
],
"ImGui_ImplSDL3_SetGamepadMode": [
{
"args": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count)",
"argsT": [
{
"name": "mode",
"type": "ImGui_ImplSDL3_GamepadMode"
},
{
"name": "manual_gamepads_array",
"type": "SDL_Gamepad**"
},
{
"name": "manual_gamepads_count",
"type": "int"
}
],
"argsoriginal": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"defaults": {
"manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1"
},
"funcname": "ImGui_ImplSDL3_SetGamepadMode",
"location": "imgui_impl_sdl3:47",
"ov_cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"ret": "void",
"signature": "(ImGui_ImplSDL3_GamepadMode,SDL_Gamepad**,int)",
"stname": ""
}
],
"ImGui_ImplSDL3_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplSDL3_Shutdown",
"location": "imgui_impl_sdl3:40",
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ ImColor_ImColor 5
5 nil ImColor_ImColor_U32 (ImU32)
ImDrawList_AddText 2
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddText_FontPtr (const 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*)
ImGuiPtrOrIndex_ImGuiPtrOrIndex 2
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int)
@@ -263,6 +263,9 @@ igSetWindowSize 3
igShortcut 2
1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags)
2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID)
igTabBarQueueFocus 2
1 void igTabBarQueueFocus_TabItemPtr (ImGuiTabBar*,ImGuiTabItem*)
2 void igTabBarQueueFocus_Str (ImGuiTabBar*,const char*)
igTabItemCalcSize 2
1 ImVec2 igTabItemCalcSize_Str (const char*,bool)
2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*)
@@ -294,4 +297,4 @@ igValue 4
2 void igValue_Int (const char*,int)
3 void igValue_Uint (const char*,unsigned int)
4 void igValue_Float (const char*,float,const char*)
206 overloaded
208 overloaded

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
{
"ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>",
"ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
"ImBitArrayPtr": "ImU32*",
"ImBitVector": "struct ImBitVector",
"ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);",
"ImDrawCallback": "void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel",
"ImDrawCmd": "struct ImDrawCmd",
"ImDrawCmdHeader": "struct ImDrawCmdHeader",
@@ -39,16 +39,18 @@
"ImGuiConfigFlags": "int",
"ImGuiContext": "struct ImGuiContext",
"ImGuiContextHook": "struct ImGuiContextHook",
"ImGuiContextHookCallback": "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);",
"ImGuiContextHookCallback": "void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
"ImGuiDataType": "int",
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
"ImGuiDebugLogFlags": "int",
"ImGuiDragDropFlags": "int",
"ImGuiErrorLogCallback": "void(*)(void* user_data,const char* fmt,...);",
"ImGuiErrorCallback": "void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
"ImGuiErrorRecoveryState": "struct ImGuiErrorRecoveryState",
"ImGuiFocusRequestFlags": "int",
"ImGuiFocusScopeData": "struct ImGuiFocusScopeData",
"ImGuiFocusedFlags": "int",
@@ -65,7 +67,7 @@
"ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel",
"ImGuiInputEventText": "struct ImGuiInputEventText",
"ImGuiInputFlags": "int",
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputTextCallback": "int (*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
"ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData",
"ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState",
@@ -85,8 +87,9 @@
"ImGuiListClipperData": "struct ImGuiListClipperData",
"ImGuiListClipperRange": "struct ImGuiListClipperRange",
"ImGuiLocEntry": "struct ImGuiLocEntry",
"ImGuiMemAllocFunc": "void*(*)(size_t sz,void* user_data);",
"ImGuiMemFreeFunc": "void(*)(void* ptr,void* user_data);",
"ImGuiLogFlags": "int",
"ImGuiMemAllocFunc": "void* (*)(size_t sz, void* user_data);",
"ImGuiMemFreeFunc": "void (*)(void* ptr, void* user_data);",
"ImGuiMenuColumns": "struct ImGuiMenuColumns",
"ImGuiMetricsConfig": "struct ImGuiMetricsConfig",
"ImGuiMouseButton": "int",
@@ -95,9 +98,9 @@
"ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO",
"ImGuiMultiSelectState": "struct ImGuiMultiSelectState",
"ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData",
"ImGuiNavHighlightFlags": "int",
"ImGuiNavItemData": "struct ImGuiNavItemData",
"ImGuiNavMoveFlags": "int",
"ImGuiNavRenderCursorFlags": "int",
"ImGuiNextItemData": "struct ImGuiNextItemData",
"ImGuiNextItemDataFlags": "int",
"ImGuiNextWindowData": "struct ImGuiNextWindowData",
@@ -121,11 +124,10 @@
"ImGuiSeparatorFlags": "int",
"ImGuiSettingsHandler": "struct ImGuiSettingsHandler",
"ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem",
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiSliderFlags": "int",
"ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo",
"ImGuiStackSizes": "struct ImGuiStackSizes",
"ImGuiStorage": "struct ImGuiStorage",
"ImGuiStoragePair": "struct ImGuiStoragePair",
"ImGuiStyle": "struct ImGuiStyle",
@@ -178,7 +180,8 @@
"ImS32": "signed int",
"ImS64": "signed long long",
"ImS8": "signed char",
"ImTextureID": "void*",
"ImStbTexteditState": "ImStb::STB_TexteditState",
"ImTextureID": "ImU64",
"ImU16": "unsigned short",
"ImU32": "unsigned int",
"ImU64": "unsigned long long",
@@ -190,11 +193,5 @@
"ImWchar": "ImWchar16",
"ImWchar16": "unsigned short",
"ImWchar32": "unsigned int",
"STB_TexteditState": "struct STB_TexteditState",
"StbTexteditRow": "struct StbTexteditRow",
"StbUndoRecord": "struct StbUndoRecord",
"StbUndoState": "struct StbUndoState",
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"
"STB_TexteditState": "struct STB_TexteditState"
}

View File

@@ -1,201 +1,197 @@
local defs = {}
defs["ImBitArrayForNamedKeys"] = "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>"
defs["ImBitArrayPtr"] = "ImU32*"
defs["ImBitVector"] = "struct ImBitVector"
defs["ImColor"] = "struct ImColor"
defs["ImDrawCallback"] = "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);"
defs["ImDrawChannel"] = "struct ImDrawChannel"
defs["ImDrawCmd"] = "struct ImDrawCmd"
defs["ImDrawCmdHeader"] = "struct ImDrawCmdHeader"
defs["ImDrawData"] = "struct ImDrawData"
defs["ImDrawDataBuilder"] = "struct ImDrawDataBuilder"
defs["ImDrawFlags"] = "int"
defs["ImDrawIdx"] = "unsigned short"
defs["ImDrawList"] = "struct ImDrawList"
defs["ImDrawListFlags"] = "int"
defs["ImDrawListSharedData"] = "struct ImDrawListSharedData"
defs["ImDrawListSplitter"] = "struct ImDrawListSplitter"
defs["ImDrawVert"] = "struct ImDrawVert"
defs["ImFileHandle"] = "FILE*"
defs["ImFont"] = "struct ImFont"
defs["ImFontAtlas"] = "struct ImFontAtlas"
defs["ImFontAtlasCustomRect"] = "struct ImFontAtlasCustomRect"
defs["ImFontAtlasFlags"] = "int"
defs["ImFontBuilderIO"] = "struct ImFontBuilderIO"
defs["ImFontConfig"] = "struct ImFontConfig"
defs["ImFontGlyph"] = "struct ImFontGlyph"
defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder"
defs["ImGuiActivateFlags"] = "int"
defs["ImGuiBackendFlags"] = "int"
defs["ImGuiBoxSelectState"] = "struct ImGuiBoxSelectState"
defs["ImGuiButtonFlags"] = "int"
defs["ImGuiChildFlags"] = "int"
defs["ImGuiCol"] = "int"
defs["ImGuiColorEditFlags"] = "int"
defs["ImGuiColorMod"] = "struct ImGuiColorMod"
defs["ImGuiComboFlags"] = "int"
defs["ImGuiComboPreviewData"] = "struct ImGuiComboPreviewData"
defs["ImGuiCond"] = "int"
defs["ImGuiConfigFlags"] = "int"
defs["ImGuiContext"] = "struct ImGuiContext"
defs["ImGuiContextHook"] = "struct ImGuiContextHook"
defs["ImGuiContextHookCallback"] = "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);"
defs["ImGuiDataType"] = "int"
defs["ImGuiDataTypeInfo"] = "struct ImGuiDataTypeInfo"
defs["ImGuiDataTypeStorage"] = "struct ImGuiDataTypeStorage"
defs["ImGuiDataVarInfo"] = "struct ImGuiDataVarInfo"
defs["ImGuiDebugAllocEntry"] = "struct ImGuiDebugAllocEntry"
defs["ImGuiDebugAllocInfo"] = "struct ImGuiDebugAllocInfo"
defs["ImGuiDebugLogFlags"] = "int"
defs["ImGuiDragDropFlags"] = "int"
defs["ImGuiErrorLogCallback"] = "void(*)(void* user_data,const char* fmt,...);"
defs["ImGuiFocusRequestFlags"] = "int"
defs["ImGuiFocusScopeData"] = "struct ImGuiFocusScopeData"
defs["ImGuiFocusedFlags"] = "int"
defs["ImGuiGroupData"] = "struct ImGuiGroupData"
defs["ImGuiHoveredFlags"] = "int"
defs["ImGuiID"] = "unsigned int"
defs["ImGuiIDStackTool"] = "struct ImGuiIDStackTool"
defs["ImGuiIO"] = "struct ImGuiIO"
defs["ImGuiInputEvent"] = "struct ImGuiInputEvent"
defs["ImGuiInputEventAppFocused"] = "struct ImGuiInputEventAppFocused"
defs["ImGuiInputEventKey"] = "struct ImGuiInputEventKey"
defs["ImGuiInputEventMouseButton"] = "struct ImGuiInputEventMouseButton"
defs["ImGuiInputEventMousePos"] = "struct ImGuiInputEventMousePos"
defs["ImGuiInputEventMouseWheel"] = "struct ImGuiInputEventMouseWheel"
defs["ImGuiInputEventText"] = "struct ImGuiInputEventText"
defs["ImGuiInputFlags"] = "int"
defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData* data);"
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData"
defs["ImGuiInputTextDeactivateData"] = "struct ImGuiInputTextDeactivateData"
defs["ImGuiInputTextDeactivatedState"] = "struct ImGuiInputTextDeactivatedState"
defs["ImGuiInputTextFlags"] = "int"
defs["ImGuiInputTextState"] = "struct ImGuiInputTextState"
defs["ImGuiItemFlags"] = "int"
defs["ImGuiItemStatusFlags"] = "int"
defs["ImGuiKeyChord"] = "int"
defs["ImGuiKeyData"] = "struct ImGuiKeyData"
defs["ImGuiKeyOwnerData"] = "struct ImGuiKeyOwnerData"
defs["ImGuiKeyRoutingData"] = "struct ImGuiKeyRoutingData"
defs["ImGuiKeyRoutingIndex"] = "ImS16"
defs["ImGuiKeyRoutingTable"] = "struct ImGuiKeyRoutingTable"
defs["ImGuiLastItemData"] = "struct ImGuiLastItemData"
defs["ImGuiLayoutType"] = "int"
defs["ImGuiListClipper"] = "struct ImGuiListClipper"
defs["ImGuiListClipperData"] = "struct ImGuiListClipperData"
defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange"
defs["ImGuiLocEntry"] = "struct ImGuiLocEntry"
defs["ImGuiMemAllocFunc"] = "void*(*)(size_t sz,void* user_data);"
defs["ImGuiMemFreeFunc"] = "void(*)(void* ptr,void* user_data);"
defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns"
defs["ImGuiMetricsConfig"] = "struct ImGuiMetricsConfig"
defs["ImGuiMouseButton"] = "int"
defs["ImGuiMouseCursor"] = "int"
defs["ImGuiMultiSelectFlags"] = "int"
defs["ImGuiMultiSelectIO"] = "struct ImGuiMultiSelectIO"
defs["ImGuiMultiSelectState"] = "struct ImGuiMultiSelectState"
defs["ImGuiMultiSelectTempData"] = "struct ImGuiMultiSelectTempData"
defs["ImGuiNavHighlightFlags"] = "int"
defs["ImGuiNavItemData"] = "struct ImGuiNavItemData"
defs["ImGuiNavMoveFlags"] = "int"
defs["ImGuiNextItemData"] = "struct ImGuiNextItemData"
defs["ImGuiNextItemDataFlags"] = "int"
defs["ImGuiNextWindowData"] = "struct ImGuiNextWindowData"
defs["ImGuiNextWindowDataFlags"] = "int"
defs["ImGuiOldColumnData"] = "struct ImGuiOldColumnData"
defs["ImGuiOldColumnFlags"] = "int"
defs["ImGuiOldColumns"] = "struct ImGuiOldColumns"
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame"
defs["ImGuiPayload"] = "struct ImGuiPayload"
defs["ImGuiPlatformIO"] = "struct ImGuiPlatformIO"
defs["ImGuiPlatformImeData"] = "struct ImGuiPlatformImeData"
defs["ImGuiPopupData"] = "struct ImGuiPopupData"
defs["ImGuiPopupFlags"] = "int"
defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex"
defs["ImGuiScrollFlags"] = "int"
defs["ImGuiSelectableFlags"] = "int"
defs["ImGuiSelectionBasicStorage"] = "struct ImGuiSelectionBasicStorage"
defs["ImGuiSelectionExternalStorage"] = "struct ImGuiSelectionExternalStorage"
defs["ImGuiSelectionRequest"] = "struct ImGuiSelectionRequest"
defs["ImGuiSelectionUserData"] = "ImS64"
defs["ImGuiSeparatorFlags"] = "int"
defs["ImGuiSettingsHandler"] = "struct ImGuiSettingsHandler"
defs["ImGuiShrinkWidthItem"] = "struct ImGuiShrinkWidthItem"
defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);"
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData"
defs["ImGuiSliderFlags"] = "int"
defs["ImGuiStackLevelInfo"] = "struct ImGuiStackLevelInfo"
defs["ImGuiStackSizes"] = "struct ImGuiStackSizes"
defs["ImGuiStorage"] = "struct ImGuiStorage"
defs["ImGuiStoragePair"] = "struct ImGuiStoragePair"
defs["ImGuiStyle"] = "struct ImGuiStyle"
defs["ImGuiStyleMod"] = "struct ImGuiStyleMod"
defs["ImGuiStyleVar"] = "int"
defs["ImGuiTabBar"] = "struct ImGuiTabBar"
defs["ImGuiTabBarFlags"] = "int"
defs["ImGuiTabItem"] = "struct ImGuiTabItem"
defs["ImGuiTabItemFlags"] = "int"
defs["ImGuiTable"] = "struct ImGuiTable"
defs["ImGuiTableBgTarget"] = "int"
defs["ImGuiTableCellData"] = "struct ImGuiTableCellData"
defs["ImGuiTableColumn"] = "struct ImGuiTableColumn"
defs["ImGuiTableColumnFlags"] = "int"
defs["ImGuiTableColumnIdx"] = "ImS16"
defs["ImGuiTableColumnSettings"] = "struct ImGuiTableColumnSettings"
defs["ImGuiTableColumnSortSpecs"] = "struct ImGuiTableColumnSortSpecs"
defs["ImGuiTableColumnsSettings"] = "struct ImGuiTableColumnsSettings"
defs["ImGuiTableDrawChannelIdx"] = "ImU16"
defs["ImGuiTableFlags"] = "int"
defs["ImGuiTableHeaderData"] = "struct ImGuiTableHeaderData"
defs["ImGuiTableInstanceData"] = "struct ImGuiTableInstanceData"
defs["ImGuiTableRowFlags"] = "int"
defs["ImGuiTableSettings"] = "struct ImGuiTableSettings"
defs["ImGuiTableSortSpecs"] = "struct ImGuiTableSortSpecs"
defs["ImGuiTableTempData"] = "struct ImGuiTableTempData"
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
defs["ImGuiTextFlags"] = "int"
defs["ImGuiTextIndex"] = "struct ImGuiTextIndex"
defs["ImGuiTextRange"] = "struct ImGuiTextRange"
defs["ImGuiTooltipFlags"] = "int"
defs["ImGuiTreeNodeFlags"] = "int"
defs["ImGuiTreeNodeStackData"] = "struct ImGuiTreeNodeStackData"
defs["ImGuiTypingSelectFlags"] = "int"
defs["ImGuiTypingSelectRequest"] = "struct ImGuiTypingSelectRequest"
defs["ImGuiTypingSelectState"] = "struct ImGuiTypingSelectState"
defs["ImGuiViewport"] = "struct ImGuiViewport"
defs["ImGuiViewportFlags"] = "int"
defs["ImGuiViewportP"] = "struct ImGuiViewportP"
defs["ImGuiWindow"] = "struct ImGuiWindow"
defs["ImGuiWindowFlags"] = "int"
defs["ImGuiWindowRefreshFlags"] = "int"
defs["ImGuiWindowSettings"] = "struct ImGuiWindowSettings"
defs["ImGuiWindowStackData"] = "struct ImGuiWindowStackData"
defs["ImGuiWindowTempData"] = "struct ImGuiWindowTempData"
defs["ImPoolIdx"] = "int"
defs["ImRect"] = "struct ImRect"
defs["ImS16"] = "signed short"
defs["ImS32"] = "signed int"
defs["ImS64"] = "signed long long"
defs["ImS8"] = "signed char"
defs["ImTextureID"] = "void*"
defs["ImU16"] = "unsigned short"
defs["ImU32"] = "unsigned int"
defs["ImU64"] = "unsigned long long"
defs["ImU8"] = "unsigned char"
defs["ImVec1"] = "struct ImVec1"
defs["ImVec2"] = "struct ImVec2"
defs["ImVec2ih"] = "struct ImVec2ih"
defs["ImVec4"] = "struct ImVec4"
defs["ImWchar"] = "ImWchar16"
defs["ImWchar16"] = "unsigned short"
defs["ImWchar32"] = "unsigned int"
defs["STB_TexteditState"] = "struct STB_TexteditState"
defs["StbTexteditRow"] = "struct StbTexteditRow"
defs["StbUndoRecord"] = "struct StbUndoRecord"
defs["StbUndoState"] = "struct StbUndoState"
defs["const_iterator"] = "const value_type*"
defs["iterator"] = "value_type*"
defs["value_type"] = "T"
return defs
local t={
ImBitArrayForNamedKeys="ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
ImBitArrayPtr="ImU32*",
ImBitVector="struct ImBitVector",
ImColor="struct ImColor",
ImDrawCallback="void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
ImDrawChannel="struct ImDrawChannel",
ImDrawCmd="struct ImDrawCmd",
ImDrawCmdHeader="struct ImDrawCmdHeader",
ImDrawData="struct ImDrawData",
ImDrawDataBuilder="struct ImDrawDataBuilder",
ImDrawFlags="int",
ImDrawIdx="unsigned short",
ImDrawList="struct ImDrawList",
ImDrawListFlags="int",
ImDrawListSharedData="struct ImDrawListSharedData",
ImDrawListSplitter="struct ImDrawListSplitter",
ImDrawVert="struct ImDrawVert",
ImFileHandle="FILE*",
ImFont="struct ImFont",
ImFontAtlas="struct ImFontAtlas",
ImFontAtlasCustomRect="struct ImFontAtlasCustomRect",
ImFontAtlasFlags="int",
ImFontBuilderIO="struct ImFontBuilderIO",
ImFontConfig="struct ImFontConfig",
ImFontGlyph="struct ImFontGlyph",
ImFontGlyphRangesBuilder="struct ImFontGlyphRangesBuilder",
ImGuiActivateFlags="int",
ImGuiBackendFlags="int",
ImGuiBoxSelectState="struct ImGuiBoxSelectState",
ImGuiButtonFlags="int",
ImGuiChildFlags="int",
ImGuiCol="int",
ImGuiColorEditFlags="int",
ImGuiColorMod="struct ImGuiColorMod",
ImGuiComboFlags="int",
ImGuiComboPreviewData="struct ImGuiComboPreviewData",
ImGuiCond="int",
ImGuiConfigFlags="int",
ImGuiContext="struct ImGuiContext",
ImGuiContextHook="struct ImGuiContextHook",
ImGuiContextHookCallback="void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
ImGuiDataType="int",
ImGuiDataTypeInfo="struct ImGuiDataTypeInfo",
ImGuiDataTypeStorage="struct ImGuiDataTypeStorage",
ImGuiDataVarInfo="struct ImGuiDataVarInfo",
ImGuiDeactivatedItemData="struct ImGuiDeactivatedItemData",
ImGuiDebugAllocEntry="struct ImGuiDebugAllocEntry",
ImGuiDebugAllocInfo="struct ImGuiDebugAllocInfo",
ImGuiDebugLogFlags="int",
ImGuiDragDropFlags="int",
ImGuiErrorCallback="void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
ImGuiErrorRecoveryState="struct ImGuiErrorRecoveryState",
ImGuiFocusRequestFlags="int",
ImGuiFocusScopeData="struct ImGuiFocusScopeData",
ImGuiFocusedFlags="int",
ImGuiGroupData="struct ImGuiGroupData",
ImGuiHoveredFlags="int",
ImGuiID="unsigned int",
ImGuiIDStackTool="struct ImGuiIDStackTool",
ImGuiIO="struct ImGuiIO",
ImGuiInputEvent="struct ImGuiInputEvent",
ImGuiInputEventAppFocused="struct ImGuiInputEventAppFocused",
ImGuiInputEventKey="struct ImGuiInputEventKey",
ImGuiInputEventMouseButton="struct ImGuiInputEventMouseButton",
ImGuiInputEventMousePos="struct ImGuiInputEventMousePos",
ImGuiInputEventMouseWheel="struct ImGuiInputEventMouseWheel",
ImGuiInputEventText="struct ImGuiInputEventText",
ImGuiInputFlags="int",
ImGuiInputTextCallback="int (*)(ImGuiInputTextCallbackData* data);",
ImGuiInputTextCallbackData="struct ImGuiInputTextCallbackData",
ImGuiInputTextDeactivateData="struct ImGuiInputTextDeactivateData",
ImGuiInputTextDeactivatedState="struct ImGuiInputTextDeactivatedState",
ImGuiInputTextFlags="int",
ImGuiInputTextState="struct ImGuiInputTextState",
ImGuiItemFlags="int",
ImGuiItemStatusFlags="int",
ImGuiKeyChord="int",
ImGuiKeyData="struct ImGuiKeyData",
ImGuiKeyOwnerData="struct ImGuiKeyOwnerData",
ImGuiKeyRoutingData="struct ImGuiKeyRoutingData",
ImGuiKeyRoutingIndex="ImS16",
ImGuiKeyRoutingTable="struct ImGuiKeyRoutingTable",
ImGuiLastItemData="struct ImGuiLastItemData",
ImGuiLayoutType="int",
ImGuiListClipper="struct ImGuiListClipper",
ImGuiListClipperData="struct ImGuiListClipperData",
ImGuiListClipperRange="struct ImGuiListClipperRange",
ImGuiLocEntry="struct ImGuiLocEntry",
ImGuiLogFlags="int",
ImGuiMemAllocFunc="void* (*)(size_t sz, void* user_data);",
ImGuiMemFreeFunc="void (*)(void* ptr, void* user_data);",
ImGuiMenuColumns="struct ImGuiMenuColumns",
ImGuiMetricsConfig="struct ImGuiMetricsConfig",
ImGuiMouseButton="int",
ImGuiMouseCursor="int",
ImGuiMultiSelectFlags="int",
ImGuiMultiSelectIO="struct ImGuiMultiSelectIO",
ImGuiMultiSelectState="struct ImGuiMultiSelectState",
ImGuiMultiSelectTempData="struct ImGuiMultiSelectTempData",
ImGuiNavItemData="struct ImGuiNavItemData",
ImGuiNavMoveFlags="int",
ImGuiNavRenderCursorFlags="int",
ImGuiNextItemData="struct ImGuiNextItemData",
ImGuiNextItemDataFlags="int",
ImGuiNextWindowData="struct ImGuiNextWindowData",
ImGuiNextWindowDataFlags="int",
ImGuiOldColumnData="struct ImGuiOldColumnData",
ImGuiOldColumnFlags="int",
ImGuiOldColumns="struct ImGuiOldColumns",
ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame",
ImGuiPayload="struct ImGuiPayload",
ImGuiPlatformIO="struct ImGuiPlatformIO",
ImGuiPlatformImeData="struct ImGuiPlatformImeData",
ImGuiPopupData="struct ImGuiPopupData",
ImGuiPopupFlags="int",
ImGuiPtrOrIndex="struct ImGuiPtrOrIndex",
ImGuiScrollFlags="int",
ImGuiSelectableFlags="int",
ImGuiSelectionBasicStorage="struct ImGuiSelectionBasicStorage",
ImGuiSelectionExternalStorage="struct ImGuiSelectionExternalStorage",
ImGuiSelectionRequest="struct ImGuiSelectionRequest",
ImGuiSelectionUserData="ImS64",
ImGuiSeparatorFlags="int",
ImGuiSettingsHandler="struct ImGuiSettingsHandler",
ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem",
ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);",
ImGuiSizeCallbackData="struct ImGuiSizeCallbackData",
ImGuiSliderFlags="int",
ImGuiStackLevelInfo="struct ImGuiStackLevelInfo",
ImGuiStorage="struct ImGuiStorage",
ImGuiStoragePair="struct ImGuiStoragePair",
ImGuiStyle="struct ImGuiStyle",
ImGuiStyleMod="struct ImGuiStyleMod",
ImGuiStyleVar="int",
ImGuiTabBar="struct ImGuiTabBar",
ImGuiTabBarFlags="int",
ImGuiTabItem="struct ImGuiTabItem",
ImGuiTabItemFlags="int",
ImGuiTable="struct ImGuiTable",
ImGuiTableBgTarget="int",
ImGuiTableCellData="struct ImGuiTableCellData",
ImGuiTableColumn="struct ImGuiTableColumn",
ImGuiTableColumnFlags="int",
ImGuiTableColumnIdx="ImS16",
ImGuiTableColumnSettings="struct ImGuiTableColumnSettings",
ImGuiTableColumnSortSpecs="struct ImGuiTableColumnSortSpecs",
ImGuiTableColumnsSettings="struct ImGuiTableColumnsSettings",
ImGuiTableDrawChannelIdx="ImU16",
ImGuiTableFlags="int",
ImGuiTableHeaderData="struct ImGuiTableHeaderData",
ImGuiTableInstanceData="struct ImGuiTableInstanceData",
ImGuiTableRowFlags="int",
ImGuiTableSettings="struct ImGuiTableSettings",
ImGuiTableSortSpecs="struct ImGuiTableSortSpecs",
ImGuiTableTempData="struct ImGuiTableTempData",
ImGuiTextBuffer="struct ImGuiTextBuffer",
ImGuiTextFilter="struct ImGuiTextFilter",
ImGuiTextFlags="int",
ImGuiTextIndex="struct ImGuiTextIndex",
ImGuiTextRange="struct ImGuiTextRange",
ImGuiTooltipFlags="int",
ImGuiTreeNodeFlags="int",
ImGuiTreeNodeStackData="struct ImGuiTreeNodeStackData",
ImGuiTypingSelectFlags="int",
ImGuiTypingSelectRequest="struct ImGuiTypingSelectRequest",
ImGuiTypingSelectState="struct ImGuiTypingSelectState",
ImGuiViewport="struct ImGuiViewport",
ImGuiViewportFlags="int",
ImGuiViewportP="struct ImGuiViewportP",
ImGuiWindow="struct ImGuiWindow",
ImGuiWindowFlags="int",
ImGuiWindowRefreshFlags="int",
ImGuiWindowSettings="struct ImGuiWindowSettings",
ImGuiWindowStackData="struct ImGuiWindowStackData",
ImGuiWindowTempData="struct ImGuiWindowTempData",
ImPoolIdx="int",
ImRect="struct ImRect",
ImS16="signed short",
ImS32="signed int",
ImS64="signed long long",
ImS8="signed char",
ImStbTexteditState="ImStb::STB_TexteditState",
ImTextureID="ImU64",
ImU16="unsigned short",
ImU32="unsigned int",
ImU64="unsigned long long",
ImU8="unsigned char",
ImVec1="struct ImVec1",
ImVec2="struct ImVec2",
ImVec2ih="struct ImVec2ih",
ImVec4="struct ImVec4",
ImWchar="ImWchar16",
ImWchar16="unsigned short",
ImWchar32="unsigned int",
STB_TexteditState="struct STB_TexteditState"}
return t

2
imgui

Submodule imgui updated: 1dfbb100d6...5c1d2d1e4c