Compare commits

...

32 Commits

Author SHA1 Message Date
sonoro1234
429ffc930d update README.md 2025-02-22 12:32:10 +01:00
sonoro1234
95dec01325 cimgui_impl: reworked 2025-02-22 12:11:25 +01:00
sonoro1234
79504e6f7c ClearEnable = true 2025-02-21 20:30:58 +01:00
sonoro1234
4edec25945 generation for vulkan 2025-02-21 16:57:56 +01:00
sonoro1234
daac7262b3 example_sdl_vulkan tries to emulate imgui 2025-02-21 16:56:14 +01:00
sonoro1234
2e5db87e99 backends: use cmake FetchContent for SDL2 examples 2025-02-05 17:53:05 +01:00
sonoro1234
387e5e0d8b generator.lua: corrections for Vulkan generation as now needs ImVector, also corrections in example_sdl_vulkan/main.c for last breaking changes. 2025-02-04 18:51:13 +01:00
sonoro1234
10a7a9f3f3 pull imgui 1.91.8dock and generate 2025-02-04 16:38:45 +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
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
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
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
8268b6748b pull imgui 1.91.3 docking and generate 2024-10-05 10:59:13 +02:00
31 changed files with 51477 additions and 46516 deletions

View File

@@ -26,10 +26,10 @@ set(IMGUI_FREETYPE "no" CACHE STRING "Build with freetype library")
set(IMGUI_LIBRARIES ) set(IMGUI_LIBRARIES )
if(IMGUI_FREETYPE) if(IMGUI_FREETYPE)
message(STATUS "Building with freetype")
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH}) FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype) list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp) list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE) endif(IMGUI_FREETYPE)
#add library and link #add library and link
@@ -39,6 +39,16 @@ else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES}) add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC) 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) target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
if (WIN32) if (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\)) 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) Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit)
Notes: Notes:
* currently this wrapper is based on version [1.91.2 of Dear ImGui with internal api] * currently this wrapper is based on version [1.91.8 of Dear ImGui with internal api]
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped. * only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
* if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project. * if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project.
* All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty. * All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty.
@@ -24,7 +24,7 @@ Notes:
* `git submodule update --init --recursive` (If already cloned) * `git submodule update --init --recursive` (If already cloned)
* compile * compile
* using makefile on linux/macOS/mingw (Or use CMake to generate project) * 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 * 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. 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 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) * 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. * 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 and if constructors are generated also with versions performing just initialization of structs provided by yourself (_Construct is added to the constructor names) * 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. * 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). * 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. * 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. * 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. * 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 * 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 # generate binding
@@ -92,10 +92,10 @@ Notes:
* methods have the same parameter list and return values (where possible) * methods have the same parameter list and return values (where possible)
* functions that belong to a struct have an extra first argument with a pointer to the struct. * functions that belong to a struct have an extra first argument with a pointer to the struct.
* where a function returns UDT (user defined type) by value some compilers complain so the function is generated accepting a pointer to the UDT type as the first argument (or second if belongs to a struct). * where a function returns UDT (user defined type) by value some compilers complain so the function is generated accepting a pointer to the UDT type as the first argument (or second if belongs to a struct).
* constructors return pointer to struct and has been named Struct_name_Struct_name
# usage with backends # usage with backends
* look at backend_test folder for a cmake module building with SDL and opengl3, glfw and opengl3, SDL and Vulkan * look at backend_test folder for a cmake module building with SDL and opengl3, glfw and opengl3, SDL and Vulkan, glfw and dx11
* read [How can cimgui backends be used](https://github.com/cimgui/cimgui/issues/157) * read [How can cimgui backends be used](https://github.com/cimgui/cimgui/issues/157)
# example bindings based on cimgui # example bindings based on cimgui

View File

@@ -23,6 +23,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)
@@ -101,7 +102,6 @@ target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
# using library # using library
include_directories(../../generator/output/)
add_executable(${PROJECT_NAME} main.c) add_executable(${PROJECT_NAME} main.c)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_DX11 -DCIMGUI_USE_GLFW) target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_DX11 -DCIMGUI_USE_GLFW)
target_link_libraries(${PROJECT_NAME} d3d11 d3dcompiler.lib cimgui) target_link_libraries(${PROJECT_NAME} d3d11 d3dcompiler.lib cimgui)

View File

@@ -23,6 +23,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)
@@ -105,7 +106,6 @@ target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
# using library # using library
include_directories(../../generator/output/)
add_executable(${PROJECT_NAME} main.c) add_executable(${PROJECT_NAME} main.c)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_GLFW) target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_GLFW)
target_link_libraries(${PROJECT_NAME} cimgui) target_link_libraries(${PROJECT_NAME} cimgui)

View File

@@ -22,7 +22,6 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)
set(IMGUI_SOURCES set(IMGUI_SOURCES
@@ -37,11 +36,7 @@ ${TABLES_SOURCE}
set(IMGUI_SOURCES_sdl) set(IMGUI_SOURCES_sdl)
set(IMGUI_LIBRARIES ) set(IMGUI_LIBRARIES )
if (WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W") add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W")
@@ -65,47 +60,46 @@ else(WIN32)#Unix
endif(WIN32) endif(WIN32)
#sdl2
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp) list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp)
if(DEFINED SDL_PATH) include(FetchContent)
message(STATUS "SDL_PATH defined as " ${SDL_PATH}) Set(FETCHCONTENT_QUIET FALSE)
FIND_PACKAGE(SDL2 PATHS ${SDL_PATH})
else(DEFINED SDL_PATH)
# If SDL_PATH is not set, fallback and attempt to find SDL cmake script at a default location
find_package(SDL2)
endif(DEFINED SDL_PATH)
if(SDL2_FOUND) FetchContent_Declare(
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES) SDL2
message(STATUS "sdlinclude is " ${SDL_INCLUDE}) GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older GIT_TAG release-2.30.12
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS}) #GIT_SHALLOW TRUE
include_directories(${SDL2_INCLUDE_DIRS}) GIT_PROGRESS TRUE
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES}) )
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES}) #FetchContent_MakeAvailable(SDL2)
else()#use new one SDL2 config FetchContent_GetProperties(SDL2)
include_directories(${SDL_INCLUDE}) if (NOT sdl2_POPULATED)
set(IMGUI_SDL_LIBRARY SDL2::SDL2) set(FETCHCONTENT_QUIET NO)
set(SDL_MAIN SDL2::SDL2main) FetchContent_Populate(SDL2)
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY}) set(SDL_TEST OFF CACHE BOOL "" FORCE)
endif() set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
else(SDL2_FOUND) add_subdirectory(${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR})
if(DEFINED SDL_PATH) endif()
message(FATAL_ERROR "Cannot find SDL at SDL_PATH") include_directories(${SDL2_SOURCE_DIR}/include})
else(DEFINED SDL_PATH)
message(FATAL_ERROR "Cannot find SDL. Maybe try specifying SDL_PATH?") #if dynamic SDL2 then install
endif(DEFINED SDL_PATH) install(TARGETS SDL2 RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
endif(SDL2_FOUND) LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
)
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES}) add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY}) target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
if (WIN32)
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} SDL2)
#using library #using library
include_directories(../../generator/output/)
add_executable(test_sdl main.c) add_executable(test_sdl main.c)
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2) target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2)
if (MINGW) if (MINGW)
target_link_options(test_sdl PRIVATE "-mconsole") target_link_options(test_sdl PRIVATE "-mconsole")
endif() endif()
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl) target_link_libraries(test_sdl SDL2 cimgui_sdl)

View File

@@ -0,0 +1,2 @@
To build use `cmake path_to_example_sdl_opengl3` and then `make install`

View File

@@ -18,11 +18,12 @@ else()
set(TABLES_SOURCE "") set(TABLES_SOURCE "")
endif() endif()
include_directories(../../imgui) include_directories(../../imgui ../../imgui/backends)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)
set(IMGUI_SOURCES ../../cimgui.cpp set(IMGUI_SOURCES ../../cimgui.cpp
../../cimgui_impl.cpp
../../imgui/imgui.cpp ../../imgui/imgui.cpp
../../imgui/imgui_draw.cpp ../../imgui/imgui_draw.cpp
../../imgui/imgui_demo.cpp ../../imgui/imgui_demo.cpp
@@ -33,11 +34,6 @@ ${TABLES_SOURCE}
set(IMGUI_SOURCES_sdl) set(IMGUI_SOURCES_sdl)
set(IMGUI_LIBRARIES ) set(IMGUI_LIBRARIES )
if (WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
#optional adding freetype #optional adding freetype
option(IMGUI_FREETYPE "add Freetype2" OFF) option(IMGUI_FREETYPE "add Freetype2" OFF)
@@ -53,48 +49,52 @@ endif(IMGUI_FREETYPE)
find_package(Vulkan REQUIRED FATAL_ERROR) find_package(Vulkan REQUIRED FATAL_ERROR)
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan) list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp) list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp)
include_directories(${Vulkan_INCLUDE_DIRS})
#sdl2 #sdl2
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl2.cpp) list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl2.cpp)
if(DEFINED SDL_PATH) include(FetchContent)
message(STATUS "SDL_PATH defined as " ${SDL_PATH}) Set(FETCHCONTENT_QUIET FALSE)
FIND_PACKAGE(SDL2 PATHS ${SDL_PATH})
else(DEFINED SDL_PATH)
# If SDL_PATH is not set, fallback and attempt to find SDL cmake script at a default location
find_package(SDL2)
endif(DEFINED SDL_PATH)
if(SDL2_FOUND) FetchContent_Declare(
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES) SDL2
message(STATUS "sdlinclude is " ${SDL_INCLUDE}) GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older GIT_TAG release-2.30.12
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS}) #GIT_SHALLOW TRUE
include_directories(${SDL2_INCLUDE_DIRS}) GIT_PROGRESS TRUE
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES}) )
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES}) FetchContent_GetProperties(SDL2)
else()#use new one SDL2 config if (NOT sdl2_POPULATED)
include_directories(${SDL_INCLUDE}) set(FETCHCONTENT_QUIET NO)
set(IMGUI_SDL_LIBRARY SDL2::SDL2) FetchContent_Populate(SDL2)
set(SDL_MAIN SDL2::SDL2main) set(SDL_TEST OFF CACHE BOOL "" FORCE)
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY}) set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
endif() add_subdirectory(${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR})
else(SDL2_FOUND) endif()
if(DEFINED SDL_PATH) include_directories(${SDL2_SOURCE_DIR}/include)
message(FATAL_ERROR "Cannot find SDL at SDL_PATH")
else(DEFINED SDL_PATH)
message(FATAL_ERROR "Cannot find SDL. Maybe try specifying SDL_PATH?")
endif(DEFINED SDL_PATH)
endif(SDL2_FOUND)
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY}) #if dynamic SDL2 then install
# install(TARGETS SDL2 RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
# LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
# )
add_library(cimgui_sdl STATIC ${IMGUI_SOURCES})
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
target_compile_definitions(cimgui_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
if (WIN32)
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
#target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} SDL2-static)
#using library #using library
include_directories(../../generator/output/)
add_executable(test_sdl main.c) add_executable(test_sdl main.c)
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2) target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
if (MINGW) if (MINGW)
target_link_options(test_sdl PRIVATE "-mconsole") target_link_options(test_sdl PRIVATE "-mconsole")
endif() endif()
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl) target_link_libraries(test_sdl SDL2-static cimgui_sdl ${IMGUI_LIBRARIES})

View File

@@ -0,0 +1,3 @@
This example needs vulkan generation before compilation: Vulkan SDK should be installed and then add "vulkan" to generator.bat and generate.
To build use `cmake path_to_example_sdl_vulkan` and then `make install`

File diff suppressed because it is too large Load Diff

1
cimconfig.h Normal file
View File

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

View File

@@ -1,16 +1,9 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.91.2" 19120 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.91.8" 19180 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api
//docking branch //docking branch
#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" #include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE #ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h" #include "./imgui/misc/freetype/imgui_freetype.h"
@@ -1388,6 +1381,10 @@ CIMGUI_API void igSetKeyboardFocusHere(int offset)
{ {
return ImGui::SetKeyboardFocusHere(offset); return ImGui::SetKeyboardFocusHere(offset);
} }
CIMGUI_API void igSetNavCursorVisible(bool visible)
{
return ImGui::SetNavCursorVisible(visible);
}
CIMGUI_API void igSetNextItemAllowOverlap() CIMGUI_API void igSetNextItemAllowOverlap()
{ {
return ImGui::SetNextItemAllowOverlap(); return ImGui::SetNextItemAllowOverlap();
@@ -1580,6 +1577,10 @@ CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button)
{ {
return ImGui::IsMouseDoubleClicked(button); return ImGui::IsMouseDoubleClicked(button);
} }
CIMGUI_API bool igIsMouseReleasedWithDelay(ImGuiMouseButton button,float delay)
{
return ImGui::IsMouseReleasedWithDelay(button,delay);
}
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button) CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button)
{ {
return ImGui::GetMouseClickedCount(button); return ImGui::GetMouseClickedCount(button);
@@ -2299,7 +2300,7 @@ CIMGUI_API void ImDrawList_AddText_Vec2(ImDrawList* self,const ImVec2 pos,ImU32
{ {
return self->AddText(pos,col,text_begin,text_end); return self->AddText(pos,col,text_begin,text_end);
} }
CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect) 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); return self->AddText(font,font_size,pos,col,text_begin,text_end,wrap_width,cpu_fine_clip_rect);
} }
@@ -2383,9 +2384,9 @@ CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const
{ {
return self->PathRect(rect_min,rect_max,rounding,flags); 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) CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* self)
{ {
@@ -2599,14 +2600,14 @@ CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self)
{ {
return self->ClearInputData(); return self->ClearInputData();
} }
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self)
{
return self->ClearTexData();
}
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self) CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
{ {
return self->ClearFonts(); return self->ClearFonts();
} }
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self)
{
return self->ClearTexData();
}
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self) CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
{ {
return self->Clear(); return self->Clear();
@@ -3566,22 +3567,14 @@ CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self)
{ {
IM_DELETE(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); 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) CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr)
{ {
return IM_NEW(ImGuiPtrOrIndex)(ptr); return IM_NEW(ImGuiPtrOrIndex)(ptr);
@@ -4002,6 +3995,14 @@ CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiT
{ {
return self->GetColumnSettings(); return self->GetColumnSettings();
} }
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx)
{
return &ImGui::GetIOEx(ctx);
}
CIMGUI_API ImGuiPlatformIO* igGetPlatformIOEx(ImGuiContext* ctx)
{
return &ImGui::GetPlatformIOEx(ctx);
}
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead() CIMGUI_API ImGuiWindow* igGetCurrentWindowRead()
{ {
return ImGui::GetCurrentWindowRead(); return ImGui::GetCurrentWindowRead();
@@ -4130,6 +4131,10 @@ CIMGUI_API ImFont* igGetDefaultFont()
{ {
return ImGui::GetDefaultFont(); return ImGui::GetDefaultFont();
} }
CIMGUI_API void igPushPasswordFont()
{
return ImGui::PushPasswordFont();
}
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window) CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window)
{ {
return ImGui::GetForegroundDrawList(window); return ImGui::GetForegroundDrawList(window);
@@ -4374,9 +4379,9 @@ CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id)
{ {
return ImGui::IsClippedEx(bb,id); return ImGui::IsClippedEx(bb,id);
} }
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect) CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags item_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect)
{ {
return ImGui::SetLastItemData(item_id,in_flags,status_flags,item_rect); return ImGui::SetLastItemData(item_id,item_flags,status_flags,item_rect);
} }
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h) CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h)
{ {
@@ -4406,9 +4411,9 @@ CIMGUI_API void igEndDisabledOverrideReenable()
{ {
return ImGui::EndDisabledOverrideReenable(); 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) CIMGUI_API void igLogToBuffer(int auto_open_depth)
{ {
@@ -4554,9 +4559,9 @@ CIMGUI_API void igNavClearPreferredPosForAxis(ImGuiAxis axis)
{ {
return ImGui::NavClearPreferredPosForAxis(axis); return ImGui::NavClearPreferredPosForAxis(axis);
} }
CIMGUI_API void igNavRestoreHighlightAfterMove() CIMGUI_API void igSetNavCursorVisibleAfterMove()
{ {
return ImGui::NavRestoreHighlightAfterMove(); return ImGui::SetNavCursorVisibleAfterMove();
} }
CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX() CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX()
{ {
@@ -5274,10 +5279,14 @@ CIMGUI_API void igTabBarCloseTab(ImGuiTabBar* tab_bar,ImGuiTabItem* tab)
{ {
return ImGui::TabBarCloseTab(tab_bar,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); 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) CIMGUI_API void igTabBarQueueReorder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,int offset)
{ {
return ImGui::TabBarQueueReorder(tab_bar,tab,offset); return ImGui::TabBarQueueReorder(tab_bar,tab,offset);
@@ -5294,6 +5303,10 @@ CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,
{ {
return ImGui::TabItemEx(tab_bar,label,p_open,flags,docked_window); return ImGui::TabItemEx(tab_bar,label,p_open,flags,docked_window);
} }
CIMGUI_API void igTabItemSpacing(const char* str_id,ImGuiTabItemFlags flags,float width)
{
return ImGui::TabItemSpacing(str_id,flags,width);
}
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker) CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker)
{ {
*pOut = ImGui::TabItemCalcSize(label,has_close_button_or_unsaved_marker); *pOut = ImGui::TabItemCalcSize(label,has_close_button_or_unsaved_marker);
@@ -5342,9 +5355,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); 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) CIMGUI_API const char* igFindRenderedTextEnd(const char* text,const char* text_end)
{ {
@@ -5398,9 +5411,9 @@ CIMGUI_API bool igArrowButtonEx(const char* str_id,ImGuiDir dir,ImVec2 size_arg,
{ {
return ImGui::ArrowButtonEx(str_id,dir,size_arg,flags); 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) CIMGUI_API void igSeparatorEx(ImGuiSeparatorFlags flags,float thickness)
{ {
@@ -5430,9 +5443,9 @@ CIMGUI_API void igScrollbar(ImGuiAxis axis)
{ {
return ImGui::Scrollbar(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) CIMGUI_API void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis)
{ {
@@ -5510,6 +5523,10 @@ CIMGUI_API bool igDataTypeClamp(ImGuiDataType data_type,void* p_data,const void*
{ {
return ImGui::DataTypeClamp(data_type,p_data,p_min,p_max); 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) 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); return ImGui::InputTextEx(label,hint,buf,buf_size,size_arg,flags,callback,user_data);
@@ -5578,22 +5595,42 @@ CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window)
{ {
return ImGui::GcAwakeTransientWindowBuffers(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() CIMGUI_API void igErrorCheckUsingSetCursorPosToExtendParentBoundaries()
{ {
return ImGui::ErrorCheckUsingSetCursorPosToExtendParentBoundaries(); 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) CIMGUI_API void igDebugDrawCursorPos(ImU32 col)
{ {
return ImGui::DebugDrawCursorPos(col); return ImGui::DebugDrawCursorPos(col);
@@ -5766,11 +5803,27 @@ CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[2
{ {
return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride); return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
} }
CIMGUI_API void igImFontAtlasBuildGetOversampleFactors(const ImFontConfig* cfg,int* out_oversample_h,int* out_oversample_v)
{
return ImFontAtlasBuildGetOversampleFactors(cfg,out_oversample_h,out_oversample_v);
}
#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 /////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...) CIMGUI_API void igLogText(const char *fmt, ...)
{ {
char buffer[256]; char buffer[256];
va_list args; va_list args;
@@ -5780,11 +5833,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer); 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_list args;
va_start(args, fmt); va_start(args, fmt);
buffer->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }

342
cimgui.h
View File

@@ -1,6 +1,7 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.91.2" 19120 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.91.8" 19180 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api
//docking branch //docking branch
#ifndef CIMGUI_INCLUDED #ifndef CIMGUI_INCLUDED
#define CIMGUI_INCLUDED #define CIMGUI_INCLUDED
@@ -81,16 +82,19 @@ typedef struct ImGuiViewport ImGuiViewport;
typedef struct ImGuiWindowClass ImGuiWindowClass; typedef struct ImGuiWindowClass ImGuiWindowClass;
typedef struct ImBitVector ImBitVector; typedef struct ImBitVector ImBitVector;
typedef struct ImRect ImRect; typedef struct ImRect ImRect;
typedef struct ImGuiTextIndex ImGuiTextIndex;
typedef struct ImDrawDataBuilder ImDrawDataBuilder; typedef struct ImDrawDataBuilder ImDrawDataBuilder;
typedef struct ImGuiBoxSelectState ImGuiBoxSelectState; typedef struct ImGuiBoxSelectState ImGuiBoxSelectState;
typedef struct ImGuiColorMod ImGuiColorMod; typedef struct ImGuiColorMod ImGuiColorMod;
typedef struct ImGuiContextHook ImGuiContextHook; typedef struct ImGuiContextHook ImGuiContextHook;
typedef struct ImGuiDataVarInfo ImGuiDataVarInfo; typedef struct ImGuiDataVarInfo ImGuiDataVarInfo;
typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo; typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo;
typedef struct ImGuiDeactivatedItemData ImGuiDeactivatedItemData;
typedef struct ImGuiDockContext ImGuiDockContext; typedef struct ImGuiDockContext ImGuiDockContext;
typedef struct ImGuiDockRequest ImGuiDockRequest; typedef struct ImGuiDockRequest ImGuiDockRequest;
typedef struct ImGuiDockNode ImGuiDockNode; typedef struct ImGuiDockNode ImGuiDockNode;
typedef struct ImGuiDockNodeSettings ImGuiDockNodeSettings; typedef struct ImGuiDockNodeSettings ImGuiDockNodeSettings;
typedef struct ImGuiErrorRecoveryState ImGuiErrorRecoveryState;
typedef struct ImGuiGroupData ImGuiGroupData; typedef struct ImGuiGroupData ImGuiGroupData;
typedef struct ImGuiInputTextState ImGuiInputTextState; typedef struct ImGuiInputTextState ImGuiInputTextState;
typedef struct ImGuiInputTextDeactivateData ImGuiInputTextDeactivateData; typedef struct ImGuiInputTextDeactivateData ImGuiInputTextDeactivateData;
@@ -107,7 +111,6 @@ typedef struct ImGuiOldColumnData ImGuiOldColumnData;
typedef struct ImGuiOldColumns ImGuiOldColumns; typedef struct ImGuiOldColumns ImGuiOldColumns;
typedef struct ImGuiPopupData ImGuiPopupData; typedef struct ImGuiPopupData ImGuiPopupData;
typedef struct ImGuiSettingsHandler ImGuiSettingsHandler; typedef struct ImGuiSettingsHandler ImGuiSettingsHandler;
typedef struct ImGuiStackSizes ImGuiStackSizes;
typedef struct ImGuiStyleMod ImGuiStyleMod; typedef struct ImGuiStyleMod ImGuiStyleMod;
typedef struct ImGuiTabBar ImGuiTabBar; typedef struct ImGuiTabBar ImGuiTabBar;
typedef struct ImGuiTabItem ImGuiTabItem; typedef struct ImGuiTabItem ImGuiTabItem;
@@ -211,11 +214,22 @@ typedef int ImGuiTableRowFlags;
typedef int ImGuiTreeNodeFlags; typedef int ImGuiTreeNodeFlags;
typedef int ImGuiViewportFlags; typedef int ImGuiViewportFlags;
typedef int ImGuiWindowFlags; typedef int ImGuiWindowFlags;
typedef void* ImTextureID; typedef ImU64 ImTextureID;
typedef unsigned short ImDrawIdx; typedef unsigned short ImDrawIdx;
typedef unsigned int ImWchar32; typedef unsigned int ImWchar32;
typedef unsigned short ImWchar16; typedef unsigned short ImWchar16;
#ifdef IMGUI_USE_WCHAR32
typedef ImWchar32 ImWchar;
#else
typedef ImWchar16 ImWchar; 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 ImS64 ImGuiSelectionUserData;
typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data); typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data);
typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
@@ -256,12 +270,12 @@ typedef enum {
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse, ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
ImGuiWindowFlags_DockNodeHost = 1 << 23,
ImGuiWindowFlags_ChildWindow = 1 << 24, ImGuiWindowFlags_ChildWindow = 1 << 24,
ImGuiWindowFlags_Tooltip = 1 << 25, ImGuiWindowFlags_Tooltip = 1 << 25,
ImGuiWindowFlags_Popup = 1 << 26, ImGuiWindowFlags_Popup = 1 << 26,
ImGuiWindowFlags_Modal = 1 << 27, ImGuiWindowFlags_Modal = 1 << 27,
ImGuiWindowFlags_ChildMenu = 1 << 28, ImGuiWindowFlags_ChildMenu = 1 << 28,
ImGuiWindowFlags_DockNodeHost = 1 << 29,
}ImGuiWindowFlags_; }ImGuiWindowFlags_;
typedef enum { typedef enum {
ImGuiChildFlags_None = 0, ImGuiChildFlags_None = 0,
@@ -303,12 +317,13 @@ typedef enum {
ImGuiInputTextFlags_DisplayEmptyRefVal = 1 << 14, ImGuiInputTextFlags_DisplayEmptyRefVal = 1 << 14,
ImGuiInputTextFlags_NoHorizontalScroll = 1 << 15, ImGuiInputTextFlags_NoHorizontalScroll = 1 << 15,
ImGuiInputTextFlags_NoUndoRedo = 1 << 16, ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
ImGuiInputTextFlags_CallbackCompletion = 1 << 17, ImGuiInputTextFlags_ElideLeft = 1 << 17,
ImGuiInputTextFlags_CallbackHistory = 1 << 18, ImGuiInputTextFlags_CallbackCompletion = 1 << 18,
ImGuiInputTextFlags_CallbackAlways = 1 << 19, ImGuiInputTextFlags_CallbackHistory = 1 << 19,
ImGuiInputTextFlags_CallbackCharFilter = 1 << 20, ImGuiInputTextFlags_CallbackAlways = 1 << 20,
ImGuiInputTextFlags_CallbackResize = 1 << 21, ImGuiInputTextFlags_CallbackCharFilter = 1 << 21,
ImGuiInputTextFlags_CallbackEdit = 1 << 22, ImGuiInputTextFlags_CallbackResize = 1 << 22,
ImGuiInputTextFlags_CallbackEdit = 1 << 23,
}ImGuiInputTextFlags_; }ImGuiInputTextFlags_;
typedef enum { typedef enum {
ImGuiTreeNodeFlags_None = 0, ImGuiTreeNodeFlags_None = 0,
@@ -325,9 +340,10 @@ typedef enum {
ImGuiTreeNodeFlags_FramePadding = 1 << 10, ImGuiTreeNodeFlags_FramePadding = 1 << 10,
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11, ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11,
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12, ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12,
ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13, ImGuiTreeNodeFlags_SpanLabelWidth = 1 << 13,
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14, 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_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
}ImGuiTreeNodeFlags_; }ImGuiTreeNodeFlags_;
typedef enum { typedef enum {
@@ -460,6 +476,7 @@ typedef enum {
ImGuiDataType_Float, ImGuiDataType_Float,
ImGuiDataType_Double, ImGuiDataType_Double,
ImGuiDataType_Bool, ImGuiDataType_Bool,
ImGuiDataType_String,
ImGuiDataType_COUNT ImGuiDataType_COUNT
}ImGuiDataType_; }ImGuiDataType_;
typedef enum { typedef enum {
@@ -477,6 +494,7 @@ ImGuiSortDirection_Descending=2,
}ImGuiSortDirection; }ImGuiSortDirection;
typedef enum { typedef enum {
ImGuiKey_None=0, ImGuiKey_None=0,
ImGuiKey_NamedKey_BEGIN=512,
ImGuiKey_Tab=512, ImGuiKey_Tab=512,
ImGuiKey_LeftArrow=513, ImGuiKey_LeftArrow=513,
ImGuiKey_RightArrow=514, ImGuiKey_RightArrow=514,
@@ -631,18 +649,14 @@ ImGuiKey_ReservedForModCtrl=662,
ImGuiKey_ReservedForModShift=663, ImGuiKey_ReservedForModShift=663,
ImGuiKey_ReservedForModAlt=664, ImGuiKey_ReservedForModAlt=664,
ImGuiKey_ReservedForModSuper=665, ImGuiKey_ReservedForModSuper=665,
ImGuiKey_COUNT=666, ImGuiKey_NamedKey_END=666,
ImGuiMod_None=0, ImGuiMod_None=0,
ImGuiMod_Ctrl=1 << 12, ImGuiMod_Ctrl=1 << 12,
ImGuiMod_Shift=1 << 13, ImGuiMod_Shift=1 << 13,
ImGuiMod_Alt=1 << 14, ImGuiMod_Alt=1 << 14,
ImGuiMod_Super=1 << 15, ImGuiMod_Super=1 << 15,
ImGuiMod_Mask_=0xF000, ImGuiMod_Mask_=0xF000,
ImGuiKey_NamedKey_BEGIN=512,
ImGuiKey_NamedKey_END=ImGuiKey_COUNT,
ImGuiKey_NamedKey_COUNT=ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN, ImGuiKey_NamedKey_COUNT=ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN,
ImGuiKey_KeysData_SIZE=ImGuiKey_NamedKey_COUNT,
ImGuiKey_KeysData_OFFSET=ImGuiKey_NamedKey_BEGIN,
}ImGuiKey; }ImGuiKey;
typedef enum { typedef enum {
ImGuiInputFlags_None = 0, ImGuiInputFlags_None = 0,
@@ -661,8 +675,6 @@ typedef enum {
ImGuiConfigFlags_None = 0, ImGuiConfigFlags_None = 0,
ImGuiConfigFlags_NavEnableKeyboard = 1 << 0, ImGuiConfigFlags_NavEnableKeyboard = 1 << 0,
ImGuiConfigFlags_NavEnableGamepad = 1 << 1, ImGuiConfigFlags_NavEnableGamepad = 1 << 1,
ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2,
ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3,
ImGuiConfigFlags_NoMouse = 1 << 4, ImGuiConfigFlags_NoMouse = 1 << 4,
ImGuiConfigFlags_NoMouseCursorChange = 1 << 5, ImGuiConfigFlags_NoMouseCursorChange = 1 << 5,
ImGuiConfigFlags_NoKeyboard = 1 << 6, ImGuiConfigFlags_NoKeyboard = 1 << 6,
@@ -738,7 +750,7 @@ typedef enum {
ImGuiCol_TextLink, ImGuiCol_TextLink,
ImGuiCol_TextSelectedBg, ImGuiCol_TextSelectedBg,
ImGuiCol_DragDropTarget, ImGuiCol_DragDropTarget,
ImGuiCol_NavHighlight, ImGuiCol_NavCursor,
ImGuiCol_NavWindowingHighlight, ImGuiCol_NavWindowingHighlight,
ImGuiCol_NavWindowingDimBg, ImGuiCol_NavWindowingDimBg,
ImGuiCol_ModalWindowDimBg, ImGuiCol_ModalWindowDimBg,
@@ -787,6 +799,7 @@ typedef enum {
ImGuiButtonFlags_MouseButtonRight = 1 << 1, ImGuiButtonFlags_MouseButtonRight = 1 << 1,
ImGuiButtonFlags_MouseButtonMiddle = 1 << 2, ImGuiButtonFlags_MouseButtonMiddle = 1 << 2,
ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle, ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle,
ImGuiButtonFlags_EnableNav = 1 << 3,
}ImGuiButtonFlags_; }ImGuiButtonFlags_;
typedef enum { typedef enum {
ImGuiColorEditFlags_None = 0, ImGuiColorEditFlags_None = 0,
@@ -800,9 +813,10 @@ typedef enum {
ImGuiColorEditFlags_NoSidePreview = 1 << 8, ImGuiColorEditFlags_NoSidePreview = 1 << 8,
ImGuiColorEditFlags_NoDragDrop = 1 << 9, ImGuiColorEditFlags_NoDragDrop = 1 << 9,
ImGuiColorEditFlags_NoBorder = 1 << 10, ImGuiColorEditFlags_NoBorder = 1 << 10,
ImGuiColorEditFlags_AlphaOpaque = 1 << 11,
ImGuiColorEditFlags_AlphaNoBg = 1 << 12,
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 13,
ImGuiColorEditFlags_AlphaBar = 1 << 16, ImGuiColorEditFlags_AlphaBar = 1 << 16,
ImGuiColorEditFlags_AlphaPreview = 1 << 17,
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18,
ImGuiColorEditFlags_HDR = 1 << 19, ImGuiColorEditFlags_HDR = 1 << 19,
ImGuiColorEditFlags_DisplayRGB = 1 << 20, ImGuiColorEditFlags_DisplayRGB = 1 << 20,
ImGuiColorEditFlags_DisplayHSV = 1 << 21, ImGuiColorEditFlags_DisplayHSV = 1 << 21,
@@ -814,6 +828,7 @@ typedef enum {
ImGuiColorEditFlags_InputRGB = 1 << 27, ImGuiColorEditFlags_InputRGB = 1 << 27,
ImGuiColorEditFlags_InputHSV = 1 << 28, ImGuiColorEditFlags_InputHSV = 1 << 28,
ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar, ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar,
ImGuiColorEditFlags_AlphaMask_ = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf,
ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex, ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex,
ImGuiColorEditFlags_DataTypeMask_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float, ImGuiColorEditFlags_DataTypeMask_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float,
ImGuiColorEditFlags_PickerMask_ = ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar, ImGuiColorEditFlags_PickerMask_ = ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar,
@@ -821,11 +836,14 @@ typedef enum {
}ImGuiColorEditFlags_; }ImGuiColorEditFlags_;
typedef enum { typedef enum {
ImGuiSliderFlags_None = 0, ImGuiSliderFlags_None = 0,
ImGuiSliderFlags_AlwaysClamp = 1 << 4,
ImGuiSliderFlags_Logarithmic = 1 << 5, ImGuiSliderFlags_Logarithmic = 1 << 5,
ImGuiSliderFlags_NoRoundToFormat = 1 << 6, ImGuiSliderFlags_NoRoundToFormat = 1 << 6,
ImGuiSliderFlags_NoInput = 1 << 7, ImGuiSliderFlags_NoInput = 1 << 7,
ImGuiSliderFlags_WrapAround = 1 << 8, 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_InvalidMask_ = 0x7000000F,
}ImGuiSliderFlags_; }ImGuiSliderFlags_;
typedef enum { typedef enum {
@@ -1033,6 +1051,13 @@ struct ImGuiIO
bool FontAllowUserScaling; bool FontAllowUserScaling;
ImFont* FontDefault; ImFont* FontDefault;
ImVec2 DisplayFramebufferScale; ImVec2 DisplayFramebufferScale;
bool ConfigNavSwapGamepadButtons;
bool ConfigNavMoveSetMousePos;
bool ConfigNavCaptureKeyboard;
bool ConfigNavEscapeClearFocusItem;
bool ConfigNavEscapeClearFocusWindow;
bool ConfigNavCursorVisibleAuto;
bool ConfigNavCursorVisibleAlways;
bool ConfigDockingNoSplit; bool ConfigDockingNoSplit;
bool ConfigDockingWithShift; bool ConfigDockingWithShift;
bool ConfigDockingAlwaysTabBar; bool ConfigDockingAlwaysTabBar;
@@ -1043,19 +1068,24 @@ struct ImGuiIO
bool ConfigViewportsNoDefaultParent; bool ConfigViewportsNoDefaultParent;
bool MouseDrawCursor; bool MouseDrawCursor;
bool ConfigMacOSXBehaviors; bool ConfigMacOSXBehaviors;
bool ConfigNavSwapGamepadButtons;
bool ConfigInputTrickleEventQueue; bool ConfigInputTrickleEventQueue;
bool ConfigInputTextCursorBlink; bool ConfigInputTextCursorBlink;
bool ConfigInputTextEnterKeepActive; bool ConfigInputTextEnterKeepActive;
bool ConfigDragClickToInputText; bool ConfigDragClickToInputText;
bool ConfigWindowsResizeFromEdges; bool ConfigWindowsResizeFromEdges;
bool ConfigWindowsMoveFromTitleBarOnly; bool ConfigWindowsMoveFromTitleBarOnly;
bool ConfigWindowsCopyContentsWithCtrlC;
bool ConfigScrollbarScrollByPage;
float ConfigMemoryCompactTimer; float ConfigMemoryCompactTimer;
float MouseDoubleClickTime; float MouseDoubleClickTime;
float MouseDoubleClickMaxDist; float MouseDoubleClickMaxDist;
float MouseDragThreshold; float MouseDragThreshold;
float KeyRepeatDelay; float KeyRepeatDelay;
float KeyRepeatRate; float KeyRepeatRate;
bool ConfigErrorRecovery;
bool ConfigErrorRecoveryEnableAssert;
bool ConfigErrorRecoveryEnableDebugLog;
bool ConfigErrorRecoveryEnableTooltip;
bool ConfigDebugIsDebuggerPresent; bool ConfigDebugIsDebuggerPresent;
bool ConfigDebugHighlightIdConflicts; bool ConfigDebugHighlightIdConflicts;
bool ConfigDebugBeginReturnValueOnce; bool ConfigDebugBeginReturnValueOnce;
@@ -1092,7 +1122,7 @@ struct ImGuiIO
bool KeyAlt; bool KeyAlt;
bool KeySuper; bool KeySuper;
ImGuiKeyChord KeyMods; ImGuiKeyChord KeyMods;
ImGuiKeyData KeysData[ImGuiKey_KeysData_SIZE]; ImGuiKeyData KeysData[ImGuiKey_NamedKey_COUNT];
bool WantCaptureMouseUnlessPopupClose; bool WantCaptureMouseUnlessPopupClose;
ImVec2 MousePosPrev; ImVec2 MousePosPrev;
ImVec2 MouseClickedPos[5]; ImVec2 MouseClickedPos[5];
@@ -1102,6 +1132,7 @@ struct ImGuiIO
ImU16 MouseClickedCount[5]; ImU16 MouseClickedCount[5];
ImU16 MouseClickedLastCount[5]; ImU16 MouseClickedLastCount[5];
bool MouseReleased[5]; bool MouseReleased[5];
double MouseReleasedTime[5];
bool MouseDownOwned[5]; bool MouseDownOwned[5];
bool MouseDownOwnedUnlessPopupClose[5]; bool MouseDownOwnedUnlessPopupClose[5];
bool MouseWheelRequestAxisSwap; bool MouseWheelRequestAxisSwap;
@@ -1113,8 +1144,6 @@ struct ImGuiIO
float PenPressure; float PenPressure;
bool AppFocusLost; bool AppFocusLost;
bool AppAcceptingEvents; bool AppAcceptingEvents;
ImS8 BackendUsingLegacyKeyArrays;
bool BackendUsingLegacyNavInputArray;
ImWchar16 InputQueueSurrogate; ImWchar16 InputQueueSurrogate;
ImVector_ImWchar InputQueueCharacters; ImVector_ImWchar InputQueueCharacters;
}; };
@@ -1283,6 +1312,8 @@ struct ImDrawCmd
unsigned int ElemCount; unsigned int ElemCount;
ImDrawCallback UserCallback; ImDrawCallback UserCallback;
void* UserCallbackData; void* UserCallbackData;
int UserCallbackDataSize;
int UserCallbackDataOffset;
}; };
struct ImDrawVert struct ImDrawVert
{ {
@@ -1345,6 +1376,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_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID;
typedef struct ImVector_ImU8 {int Size;int Capacity;ImU8* Data;} ImVector_ImU8;
struct ImDrawList struct ImDrawList
{ {
ImVector_ImDrawCmd CmdBuffer; ImVector_ImDrawCmd CmdBuffer;
@@ -1360,6 +1393,7 @@ struct ImDrawList
ImDrawListSplitter _Splitter; ImDrawListSplitter _Splitter;
ImVector_ImVec4 _ClipRectStack; ImVector_ImVec4 _ClipRectStack;
ImVector_ImTextureID _TextureIdStack; ImVector_ImTextureID _TextureIdStack;
ImVector_ImU8 _CallbacksDataBuf;
float _FringeScale; float _FringeScale;
const char* _OwnerName; const char* _OwnerName;
}; };
@@ -1382,17 +1416,17 @@ struct ImFontConfig
void* FontData; void* FontData;
int FontDataSize; int FontDataSize;
bool FontDataOwnedByAtlas; bool FontDataOwnedByAtlas;
bool MergeMode;
bool PixelSnapH;
int FontNo; int FontNo;
float SizePixels;
int OversampleH; int OversampleH;
int OversampleV; int OversampleV;
bool PixelSnapH; float SizePixels;
ImVec2 GlyphExtraSpacing; ImVec2 GlyphExtraSpacing;
ImVec2 GlyphOffset; ImVec2 GlyphOffset;
const ImWchar* GlyphRanges; const ImWchar* GlyphRanges;
float GlyphMinAdvanceX; float GlyphMinAdvanceX;
float GlyphMaxAdvanceX; float GlyphMaxAdvanceX;
bool MergeMode;
unsigned int FontBuilderFlags; unsigned int FontBuilderFlags;
float RasterizerMultiply; float RasterizerMultiply;
float RasterizerDensity; float RasterizerDensity;
@@ -1418,9 +1452,10 @@ struct ImFontGlyphRangesBuilder
typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect; typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect;
struct ImFontAtlasCustomRect struct ImFontAtlasCustomRect
{ {
unsigned short Width, Height;
unsigned short X, Y; unsigned short X, Y;
unsigned int GlyphID; unsigned short Width, Height;
unsigned int GlyphID : 31;
unsigned int GlyphColored : 1;
float GlyphAdvanceX; float GlyphAdvanceX;
ImVec2 GlyphOffset; ImVec2 GlyphOffset;
ImFont* Font; ImFont* Font;
@@ -1443,8 +1478,8 @@ struct ImFontAtlas
ImTextureID TexID; ImTextureID TexID;
int TexDesiredWidth; int TexDesiredWidth;
int TexGlyphPadding; int TexGlyphPadding;
bool Locked;
void* UserData; void* UserData;
bool Locked;
bool TexReady; bool TexReady;
bool TexPixelsUseColors; bool TexPixelsUseColors;
unsigned char* TexPixelsAlpha8; unsigned char* TexPixelsAlpha8;
@@ -1456,7 +1491,7 @@ struct ImFontAtlas
ImVector_ImFontPtr Fonts; ImVector_ImFontPtr Fonts;
ImVector_ImFontAtlasCustomRect CustomRects; ImVector_ImFontAtlasCustomRect CustomRects;
ImVector_ImFontConfig ConfigData; ImVector_ImFontConfig ConfigData;
ImVec4 TexUvLines[(63) + 1]; ImVec4 TexUvLines[(32) + 1];
const ImFontBuilderIO* FontBuilderIO; const ImFontBuilderIO* FontBuilderIO;
unsigned int FontBuilderFlags; unsigned int FontBuilderFlags;
int PackIdMouseCursors; int PackIdMouseCursors;
@@ -1464,6 +1499,8 @@ struct ImFontAtlas
}; };
typedef struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float; typedef struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
typedef struct ImVector_ImU16 {int Size;int Capacity;ImU16* Data;} ImVector_ImU16;
typedef struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph; typedef struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
struct ImFont struct ImFont
@@ -1471,22 +1508,22 @@ struct ImFont
ImVector_float IndexAdvanceX; ImVector_float IndexAdvanceX;
float FallbackAdvanceX; float FallbackAdvanceX;
float FontSize; float FontSize;
ImVector_ImWchar IndexLookup; ImVector_ImU16 IndexLookup;
ImVector_ImFontGlyph Glyphs; ImVector_ImFontGlyph Glyphs;
const ImFontGlyph* FallbackGlyph; const ImFontGlyph* FallbackGlyph;
ImFontAtlas* ContainerAtlas; ImFontAtlas* ContainerAtlas;
const ImFontConfig* ConfigData; const ImFontConfig* ConfigData;
short ConfigDataCount; short ConfigDataCount;
ImWchar FallbackChar;
ImWchar EllipsisChar;
short EllipsisCharCount; short EllipsisCharCount;
ImWchar EllipsisChar;
ImWchar FallbackChar;
float EllipsisWidth; float EllipsisWidth;
float EllipsisCharStep; float EllipsisCharStep;
bool DirtyLookupTables;
float Scale; float Scale;
float Ascent, Descent; float Ascent, Descent;
int MetricsTotalSurface; int MetricsTotalSurface;
ImU8 Used4kPagesMap[(0xFFFF +1)/4096/8]; bool DirtyLookupTables;
ImU8 Used8kPagesMap[(IM_UNICODE_CODEPOINT_MAX +1)/8192/8];
}; };
typedef enum { typedef enum {
ImGuiViewportFlags_None = 0, ImGuiViewportFlags_None = 0,
@@ -1539,6 +1576,7 @@ struct ImGuiPlatformIO
void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data);
void* Platform_ImeUserData; void* Platform_ImeUserData;
ImWchar Platform_LocaleDecimalPoint; ImWchar Platform_LocaleDecimalPoint;
void* Renderer_RenderState;
void (*Platform_CreateWindow)(ImGuiViewport* vp); void (*Platform_CreateWindow)(ImGuiViewport* vp);
void (*Platform_DestroyWindow)(ImGuiViewport* vp); void (*Platform_DestroyWindow)(ImGuiViewport* vp);
void (*Platform_ShowWindow)(ImGuiViewport* vp); void (*Platform_ShowWindow)(ImGuiViewport* vp);
@@ -1581,6 +1619,7 @@ struct ImGuiPlatformImeData
}; };
struct ImBitVector; struct ImBitVector;
struct ImRect; struct ImRect;
struct ImGuiTextIndex;
struct ImDrawDataBuilder; struct ImDrawDataBuilder;
struct ImDrawListSharedData; struct ImDrawListSharedData;
struct ImGuiBoxSelectState; struct ImGuiBoxSelectState;
@@ -1589,10 +1628,12 @@ struct ImGuiContext;
struct ImGuiContextHook; struct ImGuiContextHook;
struct ImGuiDataVarInfo; struct ImGuiDataVarInfo;
struct ImGuiDataTypeInfo; struct ImGuiDataTypeInfo;
struct ImGuiDeactivatedItemData;
struct ImGuiDockContext; struct ImGuiDockContext;
struct ImGuiDockRequest; struct ImGuiDockRequest;
struct ImGuiDockNode; struct ImGuiDockNode;
struct ImGuiDockNodeSettings; struct ImGuiDockNodeSettings;
struct ImGuiErrorRecoveryState;
struct ImGuiGroupData; struct ImGuiGroupData;
struct ImGuiInputTextState; struct ImGuiInputTextState;
struct ImGuiInputTextDeactivateData; struct ImGuiInputTextDeactivateData;
@@ -1609,7 +1650,6 @@ struct ImGuiOldColumnData;
struct ImGuiOldColumns; struct ImGuiOldColumns;
struct ImGuiPopupData; struct ImGuiPopupData;
struct ImGuiSettingsHandler; struct ImGuiSettingsHandler;
struct ImGuiStackSizes;
struct ImGuiStyleMod; struct ImGuiStyleMod;
struct ImGuiTabBar; struct ImGuiTabBar;
struct ImGuiTabItem; struct ImGuiTabItem;
@@ -1634,7 +1674,8 @@ typedef int ImGuiDebugLogFlags;
typedef int ImGuiFocusRequestFlags; typedef int ImGuiFocusRequestFlags;
typedef int ImGuiItemStatusFlags; typedef int ImGuiItemStatusFlags;
typedef int ImGuiOldColumnFlags; typedef int ImGuiOldColumnFlags;
typedef int ImGuiNavHighlightFlags; typedef int ImGuiLogFlags;
typedef int ImGuiNavRenderCursorFlags;
typedef int ImGuiNavMoveFlags; typedef int ImGuiNavMoveFlags;
typedef int ImGuiNextItemDataFlags; typedef int ImGuiNextItemDataFlags;
typedef int ImGuiNextWindowDataFlags; typedef int ImGuiNextWindowDataFlags;
@@ -1644,7 +1685,6 @@ typedef int ImGuiTextFlags;
typedef int ImGuiTooltipFlags; typedef int ImGuiTooltipFlags;
typedef int ImGuiTypingSelectFlags; typedef int ImGuiTypingSelectFlags;
typedef int ImGuiWindowRefreshFlags; typedef int ImGuiWindowRefreshFlags;
typedef void (*ImGuiErrorLogCallback)(void* user_data, const char* fmt, ...);
extern ImGuiContext* GImGui; extern ImGuiContext* GImGui;
typedef FILE* ImFileHandle; typedef FILE* ImFileHandle;
typedef struct ImVec1 ImVec1; typedef struct ImVec1 ImVec1;
@@ -1668,7 +1708,6 @@ struct ImBitVector
ImVector_ImU32 Storage; ImVector_ImU32 Storage;
}; };
typedef int ImPoolIdx; typedef int ImPoolIdx;
typedef struct ImGuiTextIndex ImGuiTextIndex;
typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int; typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int;
struct ImGuiTextIndex struct ImGuiTextIndex
@@ -1679,6 +1718,7 @@ struct ImGuiTextIndex
struct ImDrawListSharedData struct ImDrawListSharedData
{ {
ImVec2 TexUvWhitePixel; ImVec2 TexUvWhitePixel;
const ImVec4* TexUvLines;
ImFont* Font; ImFont* Font;
float FontSize; float FontSize;
float FontScale; float FontScale;
@@ -1690,7 +1730,6 @@ struct ImDrawListSharedData
ImVec2 ArcFastVtx[48]; ImVec2 ArcFastVtx[48];
float ArcFastRadiusCutoff; float ArcFastRadiusCutoff;
ImU8 CircleSegmentCounts[64]; ImU8 CircleSegmentCounts[64];
const ImVec4* TexUvLines;
}; };
struct ImDrawDataBuilder struct ImDrawDataBuilder
{ {
@@ -1716,8 +1755,7 @@ struct ImGuiDataTypeInfo
const char* ScanFmt; const char* ScanFmt;
}; };
typedef enum { typedef enum {
ImGuiDataType_String = ImGuiDataType_COUNT + 1, ImGuiDataType_Pointer = ImGuiDataType_COUNT + 1,
ImGuiDataType_Pointer,
ImGuiDataType_ID, ImGuiDataType_ID,
}ImGuiDataTypePrivate_; }ImGuiDataTypePrivate_;
typedef enum { typedef enum {
@@ -1726,6 +1764,8 @@ typedef enum {
ImGuiItemFlags_MixedValue = 1 << 12, ImGuiItemFlags_MixedValue = 1 << 12,
ImGuiItemFlags_NoWindowHoverableCheck = 1 << 13, ImGuiItemFlags_NoWindowHoverableCheck = 1 << 13,
ImGuiItemFlags_AllowOverlap = 1 << 14, ImGuiItemFlags_AllowOverlap = 1 << 14,
ImGuiItemFlags_NoNavDisableMouseHover = 1 << 15,
ImGuiItemFlags_NoMarkEdited = 1 << 16,
ImGuiItemFlags_Inputable = 1 << 20, ImGuiItemFlags_Inputable = 1 << 20,
ImGuiItemFlags_HasSelectionUserData = 1 << 21, ImGuiItemFlags_HasSelectionUserData = 1 << 21,
ImGuiItemFlags_IsMultiSelect = 1 << 22, ImGuiItemFlags_IsMultiSelect = 1 << 22,
@@ -1752,9 +1792,8 @@ typedef enum {
}ImGuiHoveredFlagsPrivate_; }ImGuiHoveredFlagsPrivate_;
typedef enum { typedef enum {
ImGuiInputTextFlags_Multiline = 1 << 26, ImGuiInputTextFlags_Multiline = 1 << 26,
ImGuiInputTextFlags_NoMarkEdited = 1 << 27, ImGuiInputTextFlags_MergedItem = 1 << 27,
ImGuiInputTextFlags_MergedItem = 1 << 28, ImGuiInputTextFlags_LocalizeDecimalPoint= 1 << 28,
ImGuiInputTextFlags_LocalizeDecimalPoint= 1 << 29,
}ImGuiInputTextFlagsPrivate_; }ImGuiInputTextFlagsPrivate_;
typedef enum { typedef enum {
ImGuiButtonFlags_PressedOnClick = 1 << 4, ImGuiButtonFlags_PressedOnClick = 1 << 4,
@@ -1763,12 +1802,10 @@ typedef enum {
ImGuiButtonFlags_PressedOnRelease = 1 << 7, ImGuiButtonFlags_PressedOnRelease = 1 << 7,
ImGuiButtonFlags_PressedOnDoubleClick = 1 << 8, ImGuiButtonFlags_PressedOnDoubleClick = 1 << 8,
ImGuiButtonFlags_PressedOnDragDropHold = 1 << 9, ImGuiButtonFlags_PressedOnDragDropHold = 1 << 9,
ImGuiButtonFlags_Repeat = 1 << 10,
ImGuiButtonFlags_FlattenChildren = 1 << 11, ImGuiButtonFlags_FlattenChildren = 1 << 11,
ImGuiButtonFlags_AllowOverlap = 1 << 12, ImGuiButtonFlags_AllowOverlap = 1 << 12,
ImGuiButtonFlags_DontClosePopups = 1 << 13,
ImGuiButtonFlags_AlignTextBaseLine = 1 << 15, ImGuiButtonFlags_AlignTextBaseLine = 1 << 15,
ImGuiButtonFlags_NoKeyModifiers = 1 << 16, ImGuiButtonFlags_NoKeyModsAllowed = 1 << 16,
ImGuiButtonFlags_NoHoldingActiveId = 1 << 17, ImGuiButtonFlags_NoHoldingActiveId = 1 << 17,
ImGuiButtonFlags_NoNavFocus = 1 << 18, ImGuiButtonFlags_NoNavFocus = 1 << 18,
ImGuiButtonFlags_NoHoveredOnFocus = 1 << 19, ImGuiButtonFlags_NoHoveredOnFocus = 1 << 19,
@@ -1823,12 +1860,13 @@ typedef enum {
ImGuiLayoutType_Vertical = 1 ImGuiLayoutType_Vertical = 1
}ImGuiLayoutType_; }ImGuiLayoutType_;
typedef enum { typedef enum {
ImGuiLogType_None = 0, ImGuiLogFlags_None = 0,
ImGuiLogType_TTY, ImGuiLogFlags_OutputTTY = 1 << 0,
ImGuiLogType_File, ImGuiLogFlags_OutputFile = 1 << 1,
ImGuiLogType_Buffer, ImGuiLogFlags_OutputBuffer = 1 << 2,
ImGuiLogType_Clipboard, ImGuiLogFlags_OutputClipboard = 1 << 3,
}ImGuiLogType; ImGuiLogFlags_OutputMask_ = ImGuiLogFlags_OutputTTY | ImGuiLogFlags_OutputFile | ImGuiLogFlags_OutputBuffer | ImGuiLogFlags_OutputClipboard,
}ImGuiLogFlags_;
typedef enum { typedef enum {
ImGuiAxis_None = -1, ImGuiAxis_None = -1,
ImGuiAxis_X = 0, ImGuiAxis_X = 0,
@@ -1869,7 +1907,7 @@ struct ImGuiGroupData
ImVec2 BackupCurrLineSize; ImVec2 BackupCurrLineSize;
float BackupCurrLineTextBaseOffset; float BackupCurrLineTextBaseOffset;
ImGuiID BackupActiveIdIsAlive; ImGuiID BackupActiveIdIsAlive;
bool BackupActiveIdPreviousFrameIsAlive; bool BackupDeactivatedIdIsAlive;
bool BackupHoveredIdIsAlive; bool BackupHoveredIdIsAlive;
bool BackupIsSameLine; bool BackupIsSameLine;
bool EmitItem; bool EmitItem;
@@ -1896,19 +1934,20 @@ struct ImGuiInputTextState
{ {
ImGuiContext* Ctx; ImGuiContext* Ctx;
ImStbTexteditState* Stb; ImStbTexteditState* Stb;
ImGuiInputTextFlags Flags;
ImGuiID ID; ImGuiID ID;
int CurLenA; int TextLen;
const char* TextSrc;
ImVector_char TextA; ImVector_char TextA;
ImVector_char InitialTextA; ImVector_char TextToRevertTo;
ImVector_char CallbackTextBackup; ImVector_char CallbackTextBackup;
int BufCapacityA; int BufCapacity;
ImVec2 Scroll; ImVec2 Scroll;
float CursorAnim; float CursorAnim;
bool CursorFollow; bool CursorFollow;
bool SelectedAllMouseLock; bool SelectedAllMouseLock;
bool Edited; bool Edited;
ImGuiInputTextFlags Flags; bool WantReloadUserBuf;
bool ReloadUserBuf;
int ReloadSelectionStart; int ReloadSelectionStart;
int ReloadSelectionEnd; int ReloadSelectionEnd;
}; };
@@ -1969,7 +2008,7 @@ typedef enum {
}ImGuiNextItemDataFlags_; }ImGuiNextItemDataFlags_;
struct ImGuiNextItemData struct ImGuiNextItemData
{ {
ImGuiNextItemDataFlags Flags; ImGuiNextItemDataFlags HasFlags;
ImGuiItemFlags ItemFlags; ImGuiItemFlags ItemFlags;
ImGuiID FocusScopeId; ImGuiID FocusScopeId;
ImGuiSelectionUserData SelectionUserData; ImGuiSelectionUserData SelectionUserData;
@@ -1984,7 +2023,7 @@ struct ImGuiNextItemData
struct ImGuiLastItemData struct ImGuiLastItemData
{ {
ImGuiID ID; ImGuiID ID;
ImGuiItemFlags InFlags; ImGuiItemFlags ItemFlags;
ImGuiItemStatusFlags StatusFlags; ImGuiItemStatusFlags StatusFlags;
ImRect Rect; ImRect Rect;
ImRect NavRect; ImRect NavRect;
@@ -1996,12 +2035,14 @@ struct ImGuiTreeNodeStackData
{ {
ImGuiID ID; ImGuiID ID;
ImGuiTreeNodeFlags TreeFlags; ImGuiTreeNodeFlags TreeFlags;
ImGuiItemFlags InFlags; ImGuiItemFlags ItemFlags;
ImRect NavRect; ImRect NavRect;
}; };
struct ImGuiStackSizes struct ImGuiErrorRecoveryState
{ {
short SizeOfWindowStack;
short SizeOfIDStack; short SizeOfIDStack;
short SizeOfTreeStack;
short SizeOfColorStack; short SizeOfColorStack;
short SizeOfStyleVarStack; short SizeOfStyleVarStack;
short SizeOfFontStack; short SizeOfFontStack;
@@ -2016,7 +2057,7 @@ struct ImGuiWindowStackData
{ {
ImGuiWindow* Window; ImGuiWindow* Window;
ImGuiLastItemData ParentLastItemDataBackup; ImGuiLastItemData ParentLastItemDataBackup;
ImGuiStackSizes StackSizesOnBegin; ImGuiErrorRecoveryState StackSizesInBegin;
bool DisabledOverrideReenable; bool DisabledOverrideReenable;
}; };
typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem;
@@ -2032,6 +2073,13 @@ struct ImGuiPtrOrIndex
void* Ptr; void* Ptr;
int Index; int Index;
}; };
struct ImGuiDeactivatedItemData
{
ImGuiID ID;
int ElapseFrame;
bool HasBeenEditedBefore;
bool IsAlive;
};
typedef enum { typedef enum {
ImGuiPopupPositionPolicy_Default, ImGuiPopupPositionPolicy_Default,
ImGuiPopupPositionPolicy_ComboBox, ImGuiPopupPositionPolicy_ComboBox,
@@ -2210,11 +2258,11 @@ typedef enum {
ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY, ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY,
}ImGuiScrollFlags_; }ImGuiScrollFlags_;
typedef enum { typedef enum {
ImGuiNavHighlightFlags_None = 0, ImGuiNavRenderCursorFlags_None = 0,
ImGuiNavHighlightFlags_Compact = 1 << 1, ImGuiNavRenderCursorFlags_Compact = 1 << 1,
ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, ImGuiNavRenderCursorFlags_AlwaysDraw = 1 << 2,
ImGuiNavHighlightFlags_NoRounding = 1 << 3, ImGuiNavRenderCursorFlags_NoRounding = 1 << 3,
}ImGuiNavHighlightFlags_; }ImGuiNavRenderCursorFlags_;
typedef enum { typedef enum {
ImGuiNavMoveFlags_None = 0, ImGuiNavMoveFlags_None = 0,
ImGuiNavMoveFlags_LoopX = 1 << 0, ImGuiNavMoveFlags_LoopX = 1 << 0,
@@ -2232,7 +2280,7 @@ typedef enum {
ImGuiNavMoveFlags_IsPageMove = 1 << 11, ImGuiNavMoveFlags_IsPageMove = 1 << 11,
ImGuiNavMoveFlags_Activate = 1 << 12, ImGuiNavMoveFlags_Activate = 1 << 12,
ImGuiNavMoveFlags_NoSelect = 1 << 13, ImGuiNavMoveFlags_NoSelect = 1 << 13,
ImGuiNavMoveFlags_NoSetNavHighlight = 1 << 14, ImGuiNavMoveFlags_NoSetNavCursorVisible = 1 << 14,
ImGuiNavMoveFlags_NoClearActiveId = 1 << 15, ImGuiNavMoveFlags_NoClearActiveId = 1 << 15,
}ImGuiNavMoveFlags_; }ImGuiNavMoveFlags_;
typedef enum { typedef enum {
@@ -2246,7 +2294,7 @@ struct ImGuiNavItemData
ImGuiID ID; ImGuiID ID;
ImGuiID FocusScopeId; ImGuiID FocusScopeId;
ImRect RectRel; ImRect RectRel;
ImGuiItemFlags InFlags; ImGuiItemFlags ItemFlags;
float DistBox; float DistBox;
float DistCenter; float DistCenter;
float DistAxial; float DistAxial;
@@ -2543,19 +2591,22 @@ struct ImGuiLocEntry
ImGuiLocKey Key; ImGuiLocKey Key;
const char* Text; const char* Text;
}; };
typedef void (*ImGuiErrorCallback)(ImGuiContext* ctx, void* user_data, const char* msg);
typedef enum { typedef enum {
ImGuiDebugLogFlags_None = 0, ImGuiDebugLogFlags_None = 0,
ImGuiDebugLogFlags_EventActiveId = 1 << 0, ImGuiDebugLogFlags_EventError = 1 << 0,
ImGuiDebugLogFlags_EventFocus = 1 << 1, ImGuiDebugLogFlags_EventActiveId = 1 << 1,
ImGuiDebugLogFlags_EventPopup = 1 << 2, ImGuiDebugLogFlags_EventFocus = 1 << 2,
ImGuiDebugLogFlags_EventNav = 1 << 3, ImGuiDebugLogFlags_EventPopup = 1 << 3,
ImGuiDebugLogFlags_EventClipper = 1 << 4, ImGuiDebugLogFlags_EventNav = 1 << 4,
ImGuiDebugLogFlags_EventSelection = 1 << 5, ImGuiDebugLogFlags_EventClipper = 1 << 5,
ImGuiDebugLogFlags_EventIO = 1 << 6, ImGuiDebugLogFlags_EventSelection = 1 << 6,
ImGuiDebugLogFlags_EventInputRouting = 1 << 7, ImGuiDebugLogFlags_EventIO = 1 << 7,
ImGuiDebugLogFlags_EventDocking = 1 << 8, ImGuiDebugLogFlags_EventFont = 1 << 8,
ImGuiDebugLogFlags_EventViewport = 1 << 9, ImGuiDebugLogFlags_EventInputRouting = 1 << 9,
ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventInputRouting | ImGuiDebugLogFlags_EventDocking | ImGuiDebugLogFlags_EventViewport, 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_OutputToTTY = 1 << 20,
ImGuiDebugLogFlags_OutputToTestEngine = 1 << 21, ImGuiDebugLogFlags_OutputToTestEngine = 1 << 21,
}ImGuiDebugLogFlags_; }ImGuiDebugLogFlags_;
@@ -2696,9 +2747,9 @@ struct ImGuiContext
int FrameCountEnded; int FrameCountEnded;
int FrameCountPlatformEnded; int FrameCountPlatformEnded;
int FrameCountRendered; int FrameCountRendered;
ImGuiID WithinEndChildID;
bool WithinFrameScope; bool WithinFrameScope;
bool WithinFrameScopeWithImplicitWindow; bool WithinFrameScopeWithImplicitWindow;
bool WithinEndChild;
bool GcCompactAll; bool GcCompactAll;
bool TestEngineHookItems; bool TestEngineHookItems;
void* TestEngine; void* TestEngine;
@@ -2752,9 +2803,8 @@ struct ImGuiContext
ImGuiWindow* ActiveIdWindow; ImGuiWindow* ActiveIdWindow;
ImGuiInputSource ActiveIdSource; ImGuiInputSource ActiveIdSource;
ImGuiID ActiveIdPreviousFrame; ImGuiID ActiveIdPreviousFrame;
bool ActiveIdPreviousFrameIsAlive; ImGuiDeactivatedItemData DeactivatedItemData;
bool ActiveIdPreviousFrameHasBeenEditedBefore; ImGuiDataTypeStorage ActiveIdValueOnActivation;
ImGuiWindow* ActiveIdPreviousFrameWindow;
ImGuiID LastActiveId; ImGuiID LastActiveId;
float LastActiveIdTimer; float LastActiveIdTimer;
double LastKeyModsChangeTime; double LastKeyModsChangeTime;
@@ -2793,8 +2843,12 @@ struct ImGuiContext
int ViewportCreatedCount; int ViewportCreatedCount;
int PlatformWindowsCreatedCount; int PlatformWindowsCreatedCount;
int ViewportFocusedStampCount; int ViewportFocusedStampCount;
ImGuiWindow* NavWindow; bool NavCursorVisible;
bool NavHighlightItemUnderNav;
bool NavMousePosDirty;
bool NavIdIsAlive;
ImGuiID NavId; ImGuiID NavId;
ImGuiWindow* NavWindow;
ImGuiID NavFocusScopeId; ImGuiID NavFocusScopeId;
ImGuiNavLayer NavLayer; ImGuiNavLayer NavLayer;
ImGuiID NavActivateId; ImGuiID NavActivateId;
@@ -2808,10 +2862,7 @@ struct ImGuiContext
ImGuiActivateFlags NavNextActivateFlags; ImGuiActivateFlags NavNextActivateFlags;
ImGuiInputSource NavInputSource; ImGuiInputSource NavInputSource;
ImGuiSelectionUserData NavLastValidSelectionUserData; ImGuiSelectionUserData NavLastValidSelectionUserData;
bool NavIdIsAlive; ImS8 NavCursorHideFrames;
bool NavMousePosDirty;
bool NavDisableHighlight;
bool NavDisableMouseHover;
bool NavAnyRequest; bool NavAnyRequest;
bool NavInitRequest; bool NavInitRequest;
bool NavInitRequestFromMove; bool NavInitRequestFromMove;
@@ -2924,8 +2975,8 @@ struct ImGuiContext
float DragSpeedDefaultRatio; float DragSpeedDefaultRatio;
float DisabledAlphaBackup; float DisabledAlphaBackup;
short DisabledStackSize; short DisabledStackSize;
short LockMarkEdited;
short TooltipOverrideCount; short TooltipOverrideCount;
ImGuiWindow* TooltipPreviousWindow;
ImVector_char ClipboardHandlerData; ImVector_char ClipboardHandlerData;
ImVector_ImGuiID MenusIdSubmittedThisFrame; ImVector_ImGuiID MenusIdSubmittedThisFrame;
ImGuiTypingSelectState TypingSelectState; ImGuiTypingSelectState TypingSelectState;
@@ -2944,7 +2995,8 @@ struct ImGuiContext
ImGuiID HookIdNext; ImGuiID HookIdNext;
const char* LocalizationTable[ImGuiLocKey_COUNT]; const char* LocalizationTable[ImGuiLocKey_COUNT];
bool LogEnabled; bool LogEnabled;
ImGuiLogType LogType; ImGuiLogFlags LogFlags;
ImGuiWindow* LogWindow;
ImFileHandle LogFile; ImFileHandle LogFile;
ImGuiTextBuffer LogBuffer; ImGuiTextBuffer LogBuffer;
const char* LogNextPrefix; const char* LogNextPrefix;
@@ -2954,9 +3006,18 @@ struct ImGuiContext
int LogDepthRef; int LogDepthRef;
int LogDepthToExpand; int LogDepthToExpand;
int LogDepthToExpandDefault; int LogDepthToExpandDefault;
ImGuiErrorCallback ErrorCallback;
void* ErrorCallbackUserData;
ImVec2 ErrorTooltipLockedPos;
bool ErrorFirst;
int ErrorCountCurrentFrame;
ImGuiErrorRecoveryState StackSizesInNewFrame;
ImGuiErrorRecoveryState*StackSizesInBeginForCurrentWindow;
int DebugDrawIdConflictsCount;
ImGuiDebugLogFlags DebugLogFlags; ImGuiDebugLogFlags DebugLogFlags;
ImGuiTextBuffer DebugLogBuf; ImGuiTextBuffer DebugLogBuf;
ImGuiTextIndex DebugLogIndex; ImGuiTextIndex DebugLogIndex;
int DebugLogSkippedErrors;
ImGuiDebugLogFlags DebugLogAutoDisableFlags; ImGuiDebugLogFlags DebugLogAutoDisableFlags;
ImU8 DebugLogAutoDisableFrames; ImU8 DebugLogAutoDisableFrames;
ImU8 DebugLocateFrames; ImU8 DebugLocateFrames;
@@ -3017,6 +3078,10 @@ struct ImGuiWindowTempData
ImGuiLayoutType LayoutType; ImGuiLayoutType LayoutType;
ImGuiLayoutType ParentLayoutType; ImGuiLayoutType ParentLayoutType;
ImU32 ModalDimBgColor; ImU32 ModalDimBgColor;
ImGuiItemStatusFlags WindowItemStatusFlags;
ImGuiItemStatusFlags ChildItemStatusFlags;
ImGuiItemStatusFlags DockTabItemStatusFlags;
ImRect DockTabItemRect;
float ItemWidth; float ItemWidth;
float TextWrapPos; float TextWrapPos;
ImVector_float ItemWidthStack; ImVector_float ItemWidthStack;
@@ -3112,7 +3177,9 @@ struct ImGuiWindow
ImGuiStorage StateStorage; ImGuiStorage StateStorage;
ImVector_ImGuiOldColumns ColumnsStorage; ImVector_ImGuiOldColumns ColumnsStorage;
float FontWindowScale; float FontWindowScale;
float FontWindowScaleParents;
float FontDpiScale; float FontDpiScale;
float FontRefSize;
int SettingsOffset; int SettingsOffset;
ImDrawList* DrawList; ImDrawList* DrawList;
ImDrawList DrawListInst; ImDrawList DrawListInst;
@@ -3141,8 +3208,6 @@ struct ImGuiWindow
ImGuiDockNode* DockNode; ImGuiDockNode* DockNode;
ImGuiDockNode* DockNodeAsHost; ImGuiDockNode* DockNodeAsHost;
ImGuiID DockId; ImGuiID DockId;
ImGuiItemStatusFlags DockTabItemStatusFlags;
ImRect DockTabItemRect;
}; };
typedef enum { typedef enum {
ImGuiTabBarFlags_DockNode = 1 << 20, ImGuiTabBarFlags_DockNode = 1 << 20,
@@ -3153,7 +3218,8 @@ typedef enum {
ImGuiTabItemFlags_SectionMask_ = ImGuiTabItemFlags_Leading | ImGuiTabItemFlags_Trailing, ImGuiTabItemFlags_SectionMask_ = ImGuiTabItemFlags_Leading | ImGuiTabItemFlags_Trailing,
ImGuiTabItemFlags_NoCloseButton = 1 << 20, ImGuiTabItemFlags_NoCloseButton = 1 << 20,
ImGuiTabItemFlags_Button = 1 << 21, ImGuiTabItemFlags_Button = 1 << 21,
ImGuiTabItemFlags_Unsorted = 1 << 22, ImGuiTabItemFlags_Invisible = 1 << 22,
ImGuiTabItemFlags_Unsorted = 1 << 23,
}ImGuiTabItemFlagsPrivate_; }ImGuiTabItemFlagsPrivate_;
struct ImGuiTabItem struct ImGuiTabItem
{ {
@@ -3175,6 +3241,7 @@ typedef struct ImVector_ImGuiTabItem {int Size;int Capacity;ImGuiTabItem* Data;}
struct ImGuiTabBar struct ImGuiTabBar
{ {
ImGuiWindow* Window;
ImVector_ImGuiTabItem Tabs; ImVector_ImGuiTabItem Tabs;
ImGuiTabBarFlags Flags; ImGuiTabBarFlags Flags;
ImGuiID ID; ImGuiID ID;
@@ -3382,6 +3449,7 @@ struct ImGuiTable
ImGuiTableDrawChannelIdx DummyDrawChannel; ImGuiTableDrawChannelIdx DummyDrawChannel;
ImGuiTableDrawChannelIdx Bg2DrawChannelCurrent; ImGuiTableDrawChannelIdx Bg2DrawChannelCurrent;
ImGuiTableDrawChannelIdx Bg2DrawChannelUnfrozen; ImGuiTableDrawChannelIdx Bg2DrawChannelUnfrozen;
ImS8 NavLayer;
bool IsLayoutLocked; bool IsLayoutLocked;
bool IsInsideRow; bool IsInsideRow;
bool IsInitializing; bool IsInitializing;
@@ -3447,6 +3515,22 @@ struct ImFontBuilderIO
{ {
bool (*FontBuilder_Build)(ImFontAtlas* atlas); 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 IMGUI_HAS_DOCK 1 #define IMGUI_HAS_DOCK 1
#define ImDrawCallback_ResetRenderState (ImDrawCallback)(-8) #define ImDrawCallback_ResetRenderState (ImDrawCallback)(-8)
@@ -3513,7 +3597,9 @@ typedef ImVector<ImGuiViewportP*> ImVector_ImGuiViewportPPtr;
typedef ImVector<ImGuiWindow*> ImVector_ImGuiWindowPtr; typedef ImVector<ImGuiWindow*> ImVector_ImGuiWindowPtr;
typedef ImVector<ImGuiWindowStackData> ImVector_ImGuiWindowStackData; typedef ImVector<ImGuiWindowStackData> ImVector_ImGuiWindowStackData;
typedef ImVector<ImTextureID> ImVector_ImTextureID; typedef ImVector<ImTextureID> ImVector_ImTextureID;
typedef ImVector<ImU16> ImVector_ImU16;
typedef ImVector<ImU32> ImVector_ImU32; typedef ImVector<ImU32> ImVector_ImU32;
typedef ImVector<ImU8> ImVector_ImU8;
typedef ImVector<ImVec2> ImVector_ImVec2; typedef ImVector<ImVec2> ImVector_ImVec2;
typedef ImVector<ImVec4> ImVector_ImVec4; typedef ImVector<ImVec4> ImVector_ImVec4;
typedef ImVector<ImWchar> ImVector_ImWchar; typedef ImVector<ImWchar> ImVector_ImWchar;
@@ -3855,6 +3941,7 @@ CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect
CIMGUI_API void igPopClipRect(void); CIMGUI_API void igPopClipRect(void);
CIMGUI_API void igSetItemDefaultFocus(void); CIMGUI_API void igSetItemDefaultFocus(void);
CIMGUI_API void igSetKeyboardFocusHere(int offset); CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API void igSetNavCursorVisible(bool visible);
CIMGUI_API void igSetNextItemAllowOverlap(void); CIMGUI_API void igSetNextItemAllowOverlap(void);
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags); CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
CIMGUI_API bool igIsItemActive(void); CIMGUI_API bool igIsItemActive(void);
@@ -3903,6 +3990,7 @@ CIMGUI_API bool igIsMouseDown_Nil(ImGuiMouseButton button);
CIMGUI_API bool igIsMouseClicked_Bool(ImGuiMouseButton button,bool repeat); CIMGUI_API bool igIsMouseClicked_Bool(ImGuiMouseButton button,bool repeat);
CIMGUI_API bool igIsMouseReleased_Nil(ImGuiMouseButton button); CIMGUI_API bool igIsMouseReleased_Nil(ImGuiMouseButton button);
CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button); CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button);
CIMGUI_API bool igIsMouseReleasedWithDelay(ImGuiMouseButton button,float delay);
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button); CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button);
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip); CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos); CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
@@ -4082,7 +4170,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_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_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_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_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_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); CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness);
@@ -4103,7 +4191,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_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_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_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 void ImDrawList_AddDrawCmd(ImDrawList* self);
CIMGUI_API ImDrawList* ImDrawList_CloneOutput(ImDrawList* self); CIMGUI_API ImDrawList* ImDrawList_CloneOutput(ImDrawList* self);
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* self,int count); CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* self,int count);
@@ -4157,8 +4245,8 @@ CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self); CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self); CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel); CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel);
@@ -4397,10 +4485,8 @@ CIMGUI_API void ImGuiNextItemData_destroy(ImGuiNextItemData* self);
CIMGUI_API void ImGuiNextItemData_ClearFlags(ImGuiNextItemData* self); CIMGUI_API void ImGuiNextItemData_ClearFlags(ImGuiNextItemData* self);
CIMGUI_API ImGuiLastItemData* ImGuiLastItemData_ImGuiLastItemData(void); CIMGUI_API ImGuiLastItemData* ImGuiLastItemData_ImGuiLastItemData(void);
CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self); CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self);
CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void); CIMGUI_API ImGuiErrorRecoveryState* ImGuiErrorRecoveryState_ImGuiErrorRecoveryState(void);
CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self); CIMGUI_API void ImGuiErrorRecoveryState_destroy(ImGuiErrorRecoveryState* self);
CIMGUI_API void ImGuiStackSizes_SetToContextState(ImGuiStackSizes* self,ImGuiContext* ctx);
CIMGUI_API void ImGuiStackSizes_CompareWithContextState(ImGuiStackSizes* self,ImGuiContext* ctx);
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr); CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr);
CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self); CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self);
CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(int index); CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(int index);
@@ -4506,6 +4592,8 @@ CIMGUI_API void ImGuiTableColumnSettings_destroy(ImGuiTableColumnSettings* self)
CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void); CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void);
CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self); CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self);
CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self); CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self);
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx);
CIMGUI_API ImGuiPlatformIO* igGetPlatformIOEx(ImGuiContext* ctx);
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead(void); CIMGUI_API ImGuiWindow* igGetCurrentWindowRead(void);
CIMGUI_API ImGuiWindow* igGetCurrentWindow(void); CIMGUI_API ImGuiWindow* igGetCurrentWindow(void);
CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id); CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id);
@@ -4538,6 +4626,7 @@ CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindo
CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags); CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags);
CIMGUI_API void igSetCurrentFont(ImFont* font); CIMGUI_API void igSetCurrentFont(ImFont* font);
CIMGUI_API ImFont* igGetDefaultFont(void); CIMGUI_API ImFont* igGetDefaultFont(void);
CIMGUI_API void igPushPasswordFont(void);
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window); CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window);
CIMGUI_API void igAddDrawListToDrawDataEx(ImDrawData* draw_data,ImVector_ImDrawListPtr* out_list,ImDrawList* draw_list); CIMGUI_API void igAddDrawListToDrawDataEx(ImDrawData* draw_data,ImVector_ImDrawListPtr* out_list,ImDrawList* draw_list);
CIMGUI_API void igInitialize(void); CIMGUI_API void igInitialize(void);
@@ -4599,7 +4688,7 @@ CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiI
CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id,ImGuiItemFlags item_flags); CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id,ImGuiItemFlags item_flags);
CIMGUI_API bool igIsWindowContentHoverable(ImGuiWindow* window,ImGuiHoveredFlags flags); CIMGUI_API bool igIsWindowContentHoverable(ImGuiWindow* window,ImGuiHoveredFlags flags);
CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id); CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id);
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect); CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags item_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect);
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h); CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h);
CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x); CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x);
CIMGUI_API void igPushMultiItemsWidths(int components,float width_full); CIMGUI_API void igPushMultiItemsWidths(int components,float width_full);
@@ -4607,7 +4696,7 @@ CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width
CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx); CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx);
CIMGUI_API void igBeginDisabledOverrideReenable(void); CIMGUI_API void igBeginDisabledOverrideReenable(void);
CIMGUI_API void igEndDisabledOverrideReenable(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 igLogToBuffer(int auto_open_depth);
CIMGUI_API void igLogRenderedText(const ImVec2* ref_pos,const char* text,const char* text_end); 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); CIMGUI_API void igLogSetNextTextDecoration(const char* prefix,const char* suffix);
@@ -4644,7 +4733,7 @@ CIMGUI_API void igNavMoveRequestApplyResult(void);
CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags); CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags);
CIMGUI_API void igNavHighlightActivated(ImGuiID id); CIMGUI_API void igNavHighlightActivated(ImGuiID id);
CIMGUI_API void igNavClearPreferredPosForAxis(ImGuiAxis axis); CIMGUI_API void igNavClearPreferredPosForAxis(ImGuiAxis axis);
CIMGUI_API void igNavRestoreHighlightAfterMove(void); CIMGUI_API void igSetNavCursorVisibleAfterMove(void);
CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX(void); CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX(void);
CIMGUI_API void igSetNavWindow(ImGuiWindow* window); CIMGUI_API void igSetNavWindow(ImGuiWindow* window);
CIMGUI_API void igSetNavID(ImGuiID id,ImGuiNavLayer nav_layer,ImGuiID focus_scope_id,const ImRect rect_rel); CIMGUI_API void igSetNavID(ImGuiID id,ImGuiNavLayer nav_layer,ImGuiID focus_scope_id,const ImRect rect_rel);
@@ -4824,11 +4913,13 @@ CIMGUI_API const char* igTabBarGetTabName(ImGuiTabBar* tab_bar,ImGuiTabItem* tab
CIMGUI_API void igTabBarAddTab(ImGuiTabBar* tab_bar,ImGuiTabItemFlags tab_flags,ImGuiWindow* window); CIMGUI_API void igTabBarAddTab(ImGuiTabBar* tab_bar,ImGuiTabItemFlags tab_flags,ImGuiWindow* window);
CIMGUI_API void igTabBarRemoveTab(ImGuiTabBar* tab_bar,ImGuiID tab_id); CIMGUI_API void igTabBarRemoveTab(ImGuiTabBar* tab_bar,ImGuiID tab_id);
CIMGUI_API void igTabBarCloseTab(ImGuiTabBar* tab_bar,ImGuiTabItem* tab); 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 igTabBarQueueReorder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,int offset);
CIMGUI_API void igTabBarQueueReorderFromMousePos(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,ImVec2 mouse_pos); CIMGUI_API void igTabBarQueueReorderFromMousePos(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,ImVec2 mouse_pos);
CIMGUI_API bool igTabBarProcessReorder(ImGuiTabBar* tab_bar); CIMGUI_API bool igTabBarProcessReorder(ImGuiTabBar* tab_bar);
CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,ImGuiTabItemFlags flags,ImGuiWindow* docked_window); CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,ImGuiTabItemFlags flags,ImGuiWindow* docked_window);
CIMGUI_API void igTabItemSpacing(const char* str_id,ImGuiTabItemFlags flags,float width);
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker); CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker);
CIMGUI_API void igTabItemCalcSize_WindowPtr(ImVec2 *pOut,ImGuiWindow* window); CIMGUI_API void igTabItemCalcSize_WindowPtr(ImVec2 *pOut,ImGuiWindow* window);
CIMGUI_API void igTabItemBackground(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImU32 col); CIMGUI_API void igTabItemBackground(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImU32 col);
@@ -4841,7 +4932,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 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 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 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 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 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); CIMGUI_API void igRenderArrow(ImDrawList* draw_list,ImVec2 pos,ImU32 col,ImGuiDir dir,float scale);
@@ -4855,7 +4946,7 @@ CIMGUI_API ImDrawFlags igCalcRoundingFlagsForRectInRect(const ImRect r_in,const
CIMGUI_API void igTextEx(const char* text,const char* text_end,ImGuiTextFlags flags); 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 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 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 igSeparatorEx(ImGuiSeparatorFlags flags,float thickness);
CIMGUI_API void igSeparatorTextEx(ImGuiID id,const char* label,const char* label_end,float extra_width); 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); CIMGUI_API bool igCheckboxFlags_S64Ptr(const char* label,ImS64* flags,ImS64 flags_value);
@@ -4863,7 +4954,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 igCloseButton(ImGuiID id,const ImVec2 pos);
CIMGUI_API bool igCollapseButton(ImGuiID id,const ImVec2 pos,ImGuiDockNode* dock_node); CIMGUI_API bool igCollapseButton(ImGuiID id,const ImVec2 pos,ImGuiDockNode* dock_node);
CIMGUI_API void igScrollbar(ImGuiAxis axis); 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 void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis);
CIMGUI_API ImGuiID igGetWindowScrollbarID(ImGuiWindow* window,ImGuiAxis axis); CIMGUI_API ImGuiID igGetWindowScrollbarID(ImGuiWindow* window,ImGuiAxis axis);
CIMGUI_API ImGuiID igGetWindowResizeCornerID(ImGuiWindow* window,int n); CIMGUI_API ImGuiID igGetWindowResizeCornerID(ImGuiWindow* window,int n);
@@ -4883,6 +4974,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 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 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 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 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 void igInputTextDeactivateHook(ImGuiID id);
CIMGUI_API bool igTempInputText(const ImRect bb,ImGuiID id,const char* label,char* buf,int buf_size,ImGuiInputTextFlags flags); CIMGUI_API bool igTempInputText(const ImRect bb,ImGuiID id,const char* label,char* buf,int buf_size,ImGuiInputTextFlags flags);
@@ -4900,10 +4992,15 @@ CIMGUI_API void igShadeVertsTransformPos(ImDrawList* draw_list,int vert_start_id
CIMGUI_API void igGcCompactTransientMiscBuffers(void); CIMGUI_API void igGcCompactTransientMiscBuffers(void);
CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window); CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window);
CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window); CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window);
CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size); CIMGUI_API bool igErrorLog(const char* msg);
CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,void* user_data); CIMGUI_API void igErrorRecoveryStoreState(ImGuiErrorRecoveryState* state_out);
CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data); CIMGUI_API void igErrorRecoveryTryToRecoverState(const ImGuiErrorRecoveryState* state_in);
CIMGUI_API void igErrorRecoveryTryToRecoverWindowState(const ImGuiErrorRecoveryState* state_in);
CIMGUI_API void igErrorCheckUsingSetCursorPosToExtendParentBoundaries(void); 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 igDebugDrawCursorPos(ImU32 col);
CIMGUI_API void igDebugDrawLineExtents(ImU32 col); CIMGUI_API void igDebugDrawLineExtents(ImU32 col);
CIMGUI_API void igDebugDrawItemRect(ImU32 col); CIMGUI_API void igDebugDrawItemRect(ImU32 col);
@@ -4947,13 +5044,18 @@ 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 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 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); CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride);
CIMGUI_API void igImFontAtlasBuildGetOversampleFactors(const ImFontConfig* cfg,int* out_oversample_h,int* out_oversample_v);
#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 /////////////////////////hand written functions
//no LogTextV //no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV //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 //for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void); CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings //for getting FLT_MIN in bindings

65
cimgui_impl.cpp Normal file
View File

@@ -0,0 +1,65 @@
#include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h"
#endif
#include "./imgui/imgui_internal.h"
#include "cimgui.h"
#ifdef CIMGUI_USE_DX9
#include "imgui_impl_dx9.h"
#endif
#ifdef CIMGUI_USE_DX10
#include "imgui_impl_dx10.h"
#endif
#ifdef CIMGUI_USE_DX11
#include "imgui_impl_dx11.h"
#endif
#ifdef CIMGUI_USE_DX12
#include "imgui_impl_dx12.h"
#endif
#ifdef CIMGUI_USE_GLFW
#include "imgui_impl_glfw.h"
#endif
#ifdef CIMGUI_USE_OPENGL2
#include "imgui_impl_opengl2.h"
#endif
#ifdef CIMGUI_USE_OPENGL3
#include "imgui_impl_opengl3.h"
#endif
#ifdef CIMGUI_USE_SDL2
#include "imgui_impl_sdl2.h"
#endif
#ifdef CIMGUI_USE_SDL3
#include "imgui_impl_sdl3.h"
#endif
#ifdef CIMGUI_USE_VULKAN
#include "imgui_impl_vulkan.h"
#endif
#ifdef CIMGUI_USE_WIN32
#include "imgui_impl_win32.h"
#endif
#include "cimgui_impl.h"
#ifdef CIMGUI_USE_VULKAN
CIMGUI_API ImGui_ImplVulkanH_Window* ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window()
{
return IM_NEW(ImGui_ImplVulkanH_Window)();
}
CIMGUI_API void ImGui_ImplVulkanH_Window_Construct(ImGui_ImplVulkanH_Window* self)
{
IM_PLACEMENT_NEW(self) ImGui_ImplVulkanH_Window();
}
#endif

197
cimgui_impl.h Normal file
View File

@@ -0,0 +1,197 @@
#ifdef CIMGUI_USE_GLFW
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct GLFWwindow GLFWwindow;
typedef struct GLFWmonitor GLFWmonitor;
struct GLFWwindow;
struct GLFWmonitor;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window,bool install_callbacks);
CIMGUI_API bool ImGui_ImplGlfw_InitForVulkan(GLFWwindow* window,bool install_callbacks);
CIMGUI_API bool ImGui_ImplGlfw_InitForOther(GLFWwindow* window,bool install_callbacks);
CIMGUI_API void ImGui_ImplGlfw_Shutdown(void);
CIMGUI_API void ImGui_ImplGlfw_NewFrame(void);
CIMGUI_API void ImGui_ImplGlfw_InstallCallbacks(GLFWwindow* window);
CIMGUI_API void ImGui_ImplGlfw_RestoreCallbacks(GLFWwindow* window);
CIMGUI_API void ImGui_ImplGlfw_SetCallbacksChainForAllWindows(bool chain_for_all_windows);
CIMGUI_API void ImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window,int focused);
CIMGUI_API void ImGui_ImplGlfw_CursorEnterCallback(GLFWwindow* window,int entered);
CIMGUI_API void ImGui_ImplGlfw_CursorPosCallback(GLFWwindow* window,double x,double y);
CIMGUI_API void ImGui_ImplGlfw_MouseButtonCallback(GLFWwindow* window,int button,int action,int mods);
CIMGUI_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window,double xoffset,double yoffset);
CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods);
CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c);
CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event);
CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds);
#endif
#ifdef CIMGUI_USE_OPENGL3
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
CIMGUI_API void ImGui_ImplOpenGL3_Shutdown(void);
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame(void);
CIMGUI_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
CIMGUI_API bool ImGui_ImplOpenGL3_CreateFontsTexture(void);
CIMGUI_API void ImGui_ImplOpenGL3_DestroyFontsTexture(void);
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(void);
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(void);
#endif
#ifdef CIMGUI_USE_OPENGL2
CIMGUI_API bool ImGui_ImplOpenGL2_Init(void);
CIMGUI_API void ImGui_ImplOpenGL2_Shutdown(void);
CIMGUI_API void ImGui_ImplOpenGL2_NewFrame(void);
CIMGUI_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data);
CIMGUI_API bool ImGui_ImplOpenGL2_CreateFontsTexture(void);
CIMGUI_API void ImGui_ImplOpenGL2_DestroyFontsTexture(void);
CIMGUI_API bool ImGui_ImplOpenGL2_CreateDeviceObjects(void);
CIMGUI_API void ImGui_ImplOpenGL2_DestroyDeviceObjects(void);
#endif
#ifdef CIMGUI_USE_SDL2
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct _SDL_GameController _SDL_GameController;
struct SDL_Window;
struct SDL_Renderer;
struct _SDL_GameController;
typedef union SDL_Event SDL_Event;
typedef enum { ImGui_ImplSDL2_GamepadMode_AutoFirst, ImGui_ImplSDL2_GamepadMode_AutoAll, ImGui_ImplSDL2_GamepadMode_Manual }ImGui_ImplSDL2_GamepadMode;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
CIMGUI_API bool ImGui_ImplSDL2_InitForOther(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL2_Shutdown(void);
CIMGUI_API void ImGui_ImplSDL2_NewFrame(void);
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
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
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;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
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
#ifdef CIMGUI_USE_VULKAN
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImGui_ImplVulkanH_Frame ImGui_ImplVulkanH_Frame;
typedef struct ImGui_ImplVulkanH_Window ImGui_ImplVulkanH_Window;
typedef struct ImGui_ImplVulkan_InitInfo ImGui_ImplVulkan_InitInfo;
struct ImGui_ImplVulkan_InitInfo
{
VkInstance Instance;
VkPhysicalDevice PhysicalDevice;
VkDevice Device;
uint32_t QueueFamily;
VkQueue Queue;
VkDescriptorPool DescriptorPool;
VkRenderPass RenderPass;
uint32_t MinImageCount;
uint32_t ImageCount;
VkSampleCountFlagBits MSAASamples;
VkPipelineCache PipelineCache;
uint32_t Subpass;
uint32_t DescriptorPoolSize;
bool UseDynamicRendering;
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo;
const VkAllocationCallbacks* Allocator;
void (*CheckVkResultFn)(VkResult err);
VkDeviceSize MinAllocationSize;
};
typedef struct ImGui_ImplVulkan_RenderState ImGui_ImplVulkan_RenderState;
struct ImGui_ImplVulkan_RenderState
{
VkCommandBuffer CommandBuffer;
VkPipeline Pipeline;
VkPipelineLayout PipelineLayout;
};
struct ImGui_ImplVulkanH_Frame;
struct ImGui_ImplVulkanH_Window;
struct ImGui_ImplVulkanH_Frame
{
VkCommandPool CommandPool;
VkCommandBuffer CommandBuffer;
VkFence Fence;
VkImage Backbuffer;
VkImageView BackbufferView;
VkFramebuffer Framebuffer;
};
typedef struct ImGui_ImplVulkanH_FrameSemaphores ImGui_ImplVulkanH_FrameSemaphores;
struct ImGui_ImplVulkanH_FrameSemaphores
{
VkSemaphore ImageAcquiredSemaphore;
VkSemaphore RenderCompleteSemaphore;
};
typedef struct ImVector_ImGui_ImplVulkanH_Frame {int Size;int Capacity;ImGui_ImplVulkanH_Frame* Data;} ImVector_ImGui_ImplVulkanH_Frame;
typedef struct ImVector_ImGui_ImplVulkanH_FrameSemaphores {int Size;int Capacity;ImGui_ImplVulkanH_FrameSemaphores* Data;} ImVector_ImGui_ImplVulkanH_FrameSemaphores;
struct ImGui_ImplVulkanH_Window
{
int Width;
int Height;
VkSwapchainKHR Swapchain;
VkSurfaceKHR Surface;
VkSurfaceFormatKHR SurfaceFormat;
VkPresentModeKHR PresentMode;
VkRenderPass RenderPass;
bool UseDynamicRendering;
bool ClearEnable;
VkClearValue ClearValue;
uint32_t FrameIndex;
uint32_t ImageCount;
uint32_t SemaphoreCount;
uint32_t SemaphoreIndex;
ImVector_ImGui_ImplVulkanH_Frame Frames;
ImVector_ImGui_ImplVulkanH_FrameSemaphores FrameSemaphores;
};
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef ImVector<ImGui_ImplVulkanH_Frame> ImVector_ImGui_ImplVulkanH_Frame;
typedef ImVector<ImGui_ImplVulkanH_FrameSemaphores> ImVector_ImGui_ImplVulkanH_FrameSemaphores;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info);
CIMGUI_API void ImGui_ImplVulkan_Shutdown(void);
CIMGUI_API void ImGui_ImplVulkan_NewFrame(void);
CIMGUI_API void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline);
CIMGUI_API bool ImGui_ImplVulkan_CreateFontsTexture(void);
CIMGUI_API void ImGui_ImplVulkan_DestroyFontsTexture(void);
CIMGUI_API void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count);
CIMGUI_API VkDescriptorSet ImGui_ImplVulkan_AddTexture(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout);
CIMGUI_API void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set);
CIMGUI_API bool ImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data);
CIMGUI_API void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count);
CIMGUI_API void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator);
CIMGUI_API VkSurfaceFormatKHR ImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space);
CIMGUI_API VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count);
CIMGUI_API VkPhysicalDevice ImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance);
CIMGUI_API uint32_t ImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device);
CIMGUI_API int ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode);
CIMGUI_API ImGui_ImplVulkanH_Window* ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window();
#endif

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" #include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE #ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h" #include "./imgui/misc/freetype/imgui_freetype.h"
@@ -20,7 +12,7 @@
/////////////////////////////manual written functions /////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...) CIMGUI_API void igLogText(const char *fmt, ...)
{ {
char buffer[256]; char buffer[256];
va_list args; va_list args;
@@ -30,11 +22,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer); 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_list args;
va_start(args, fmt); va_start(args, fmt);
buffer->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }

View File

@@ -47,9 +47,9 @@ typedef union SDL_Event SDL_Event;
/////////////////////////hand written functions /////////////////////////hand written functions
//no LogTextV //no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV //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 //for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void); CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings //for getting FLT_MIN in bindings

View File

@@ -320,6 +320,9 @@ local function getRE()
function_re = "^([^;{}]+%b()[\n%s]*;)%s*", function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated) 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_%(%)]*;)", struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)", enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)", union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
@@ -344,7 +347,7 @@ local function getRE()
} }
local resN = {"comment2_re","comment_re","emptyline_re", 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 return res,resN
end end
@@ -432,20 +435,15 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
loca = table.remove(loca,1) loca = table.remove(loca,1)
end end
if not loca then 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 --take locat from parent
if itparent and itparent.locat then if itparent and itparent.locat then
loca = itparent.locat loca = itparent.locat
print("parent loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
else else
loca = 0 loca = 0
--error"no entry in linenumdict" print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
end end
end end
else else
error"no linenumdict" error"no linenumdict"
@@ -481,7 +479,7 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
end end
return itemarr,items return itemarr,items
end end
M.parseItems = parseItems --M.parseItems = parseItems
local function name_overloadsAlgo(v) local function name_overloadsAlgo(v)
local aa = {} -- args local aa = {} -- args
@@ -605,7 +603,7 @@ local function clean_names_from_signature(self,signat)
return result return result
end end
local function clean_functypedef(line) 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 if not args then
print"not getting args in" print"not getting args in"
@@ -673,14 +671,18 @@ local function CleanImU32(def)
for i=1,#bb do res = res + bb[i] end for i=1,#bb do res = res + bb[i] end
return res return res
end 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 function parseFunction(self,stname,itt,namespace,locat)
local lineorig,comment = split_comment(itt.item) local lineorig,comment = split_comment(itt.item)
line = clean_spaces(lineorig) line = clean_spaces(lineorig)
--move * --move *
line = line:gsub("%s*%*","%*") line = moveptr(line)
line = line:gsub("%*([%w_])","%* %1")
line = line:gsub("(%(%*)%s","%1")
--print(line) --print(line)
--clean implemetation --clean implemetation
@@ -719,6 +721,21 @@ local function parseFunction(self,stname,itt,namespace,locat)
error"parseFunction not getting args" error"parseFunction not getting args"
end 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 argsp = args:sub(2,-2)..","
local argsTa = {} local argsTa = {}
@@ -734,6 +751,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
argsTa[#argsTa+1] = tynam argsTa[#argsTa+1] = tynam
end end
end end
--- templates in args --- templates in args
for i,ar in ipairs(argsTa) do for i,ar in ipairs(argsTa) do
--TODO several diferent templates --TODO several diferent templates
@@ -747,7 +766,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector
end end
--get typ, name and defaults --get typ, name and defaults
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)" local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))" local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
@@ -807,6 +826,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
end end
local argsArr = argsTa2 local argsArr = argsTa2
--recreate argscsinpars, call_args and signature from argsArr --recreate argscsinpars, call_args and signature from argsArr
@@ -838,7 +858,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
caar = "()" caar = "()"
signat = "()" .. (extraconst or "") signat = "()" .. (extraconst or "")
end end
--if ismanual then print("manual",asp, caar, signat) end
------------------------------ ------------------------------
if not ret and stname then --must be constructors if not ret and stname then --must be constructors
@@ -871,6 +891,9 @@ local function parseFunction(self,stname,itt,namespace,locat)
ar.default = nil ar.default = nil
end end
end end
--if ismanual then M.prtable(argsArr) end
defT.templated = self.typenames[stname] and true defT.templated = self.typenames[stname] and true
defT.namespace = namespace defT.namespace = namespace
defT.cimguiname = cimguiname defT.cimguiname = cimguiname
@@ -901,6 +924,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
-- end -- end
end end
defsT[cimguiname][signat] = defT defsT[cimguiname][signat] = defT
end end
local function itemsCount(items) local function itemsCount(items)
print"------------items" print"------------items"
@@ -913,8 +937,8 @@ end
local function AdjustArguments(FP) local function AdjustArguments(FP)
for fun,defs in pairs(FP.defsT) do for fun,defs in pairs(FP.defsT) do
--struct function but no constructors or static functions --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 then if defs[1].stname~="" and defs[1].ret and not defs[1].is_static_function and not defs[1].manual then
--print("adjusting",fun) --print("adjusting",fun)
for i,def in ipairs(defs) do for i,def in ipairs(defs) do
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
@@ -1021,7 +1045,39 @@ local function ADDIMSTR_S(FP)
end end
FP.funcdefs = newcdefs FP.funcdefs = newcdefs
end 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 function ADDnonUDT(FP)
local nonPOD = get_nonPOD(FP)
--print"nonPOD"
--M.prtable(nonPOD)
local defsT = FP.defsT local defsT = FP.defsT
--local newcdefs = {} --local newcdefs = {}
for numcdef,t in ipairs(FP.funcdefs) do for numcdef,t in ipairs(FP.funcdefs) do
@@ -1035,10 +1091,17 @@ local function ADDnonUDT(FP)
end end
--if UDT return generate nonUDT version --if UDT return generate nonUDT version
local isUDT = false local isUDT = false
for _,udt_ret in ipairs(FP.UDTs) do --isUDT = FP.structs_and_enums_table.structs[defT.ret] and true or false
if udt_ret == defT.ret then isUDT=true;break end 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 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 if isUDT then
--passing as a pointer arg --passing as a pointer arg
local defT2 = {} local defT2 = {}
@@ -1111,14 +1174,15 @@ local function ADDdestructors(FP)
error"names should be equal" error"names should be equal"
end end
local def = {} local def = {}
local isrealdestructor = keep_dest_locat[defT[1].stname] and true
def.stname = defT[1].stname def.stname = defT[1].stname
def.templated = defT[1].templated 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.ret = "void"
def.ov_cimguiname = def.stname.."_destroy" def.ov_cimguiname = def.stname.."_destroy"
def.cimguiname = def.ov_cimguiname def.cimguiname = def.ov_cimguiname
def.destructor = true def.destructor = true
def.realdestructor = def.location and true def.realdestructor = isrealdestructor
def.args = "("..def.stname.."* self)" def.args = "("..def.stname.."* self)"
def.call_args = "(self)" def.call_args = "(self)"
def.signature = "("..def.stname.."*)" def.signature = "("..def.stname.."*)"
@@ -1270,7 +1334,7 @@ function M.Parser()
self.typedefs_dict[key] = linet self.typedefs_dict[key] = linet
elseif not line:match"typedef%s*struct" then --discard typedef struct elseif not line:match"typedef%s*struct" then --discard typedef struct
print("typedef not found") print("typedef not found")
print(key,value,line) print(key,value,line,cdef[1],cdef[2])
end end
end end
end end
@@ -1295,6 +1359,7 @@ function M.Parser()
it.name = it.item:match("class%s+(%S+)") it.name = it.item:match("class%s+(%S+)")
print("cleaning class",it.name) print("cleaning class",it.name)
it.item = it.item:gsub("private:.+};$","};") it.item = it.item:gsub("private:.+};$","};")
--it.item = it.item:gsub("private:","")
it.item = it.item:gsub("public:","") it.item = it.item:gsub("public:","")
it.item = it.item:gsub("enum%s*class","enum") it.item = it.item:gsub("enum%s*class","enum")
end end
@@ -1343,7 +1408,7 @@ function M.Parser()
return table.concat(txtclean) return table.concat(txtclean)
end end
function par:parseItems() function par:parseItems()
self:initTypedefsDict() --self:initTypedefsDict()
self.linenumdict = {} self.linenumdict = {}
local cdefs2 = {} local cdefs2 = {}
@@ -1402,12 +1467,27 @@ function M.Parser()
--save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt) --save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt)
--]] --]]
self.itemsarr = par:parseItemsR2(txt) self.itemsarr = par:parseItemsR2(txt)
--save_data("./itemsarr.lua",ToStr(self.itemsarr))
itemsarr = self.itemsarr itemsarr = self.itemsarr
end end
function par:printItems() function par:printItems()
printItems(items) printItems(items)
end 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 par.parseFunction = parseFunction
local uniques = {} local uniques = {}
local function check_unique_typedefs(l,uniques) local function check_unique_typedefs(l,uniques)
@@ -1434,10 +1514,13 @@ function M.Parser()
local predeclare = "" local predeclare = ""
--local iner = strip_end(stru:match("%b{}"):sub(2,-2)) --local iner = strip_end(stru:match("%b{}"):sub(2,-2))
local inistruct = clean_spaces(stru:match("(.-)%b{}")) 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 = stru:match("struct%s*(%S+)%s*%b{}")
local stname, derived local stname, derived
if inistruct:match":" then if inistruct:match":" then
stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)" stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)"
--print(inistruct,stname,derived)
derived = derived:match"(%S+)$" derived = derived:match"(%S+)$"
else else
if itst.re_name == "struct_re" then if itst.re_name == "struct_re" then
@@ -1492,12 +1575,14 @@ function M.Parser()
--local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>") --local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>")
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>" local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
if template then if template then
--print("not doheader",ttype,template,te)
if self.typenames[ttype] ~= template then --rule out T (template typename) if self.typenames[ttype] ~= template then --rule out T (template typename)
self.templates[ttype] = self.templates[ttype] or {} self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te self.templates[ttype][template] = te
it2=code2 it2=code2
end end
if doheader then if doheader then
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template]) local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
predeclare = predeclare .. templatetypedef predeclare = predeclare .. templatetypedef
end end
@@ -1553,7 +1638,7 @@ function M.Parser()
end end
elseif it.re_name == "enum_re" then elseif it.re_name == "enum_re" then
--nop --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)) print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24))
--M.prtable(it) --M.prtable(it)
end end
@@ -1582,8 +1667,9 @@ function M.Parser()
if parnam~="" then parnam = parnam:sub(1,-3) end if parnam~="" then parnam = parnam:sub(1,-3) end
return parnam return parnam
end end
function par:header_text_insert(tab,txt,it)
table.insert(tab, txt)
end
function par:gen_structs_and_enums() function par:gen_structs_and_enums()
print"--------------gen_structs_and_enums" print"--------------gen_structs_and_enums"
--M.prtable(self.typenames) --M.prtable(self.typenames)
@@ -1619,20 +1705,23 @@ function M.Parser()
it2 = clean_functypedef(it2) it2 = clean_functypedef(it2)
else else
assert(it.re_name == "vardef_re") assert(it.re_name == "vardef_re")
it2 = it2:gsub("constexpr","static const")
if it2:match"enum" then if it2:match"enum" then
print("--skip enum forward declaration:",it2) print("--skip enum forward declaration:",it2)
it2 = "" it2 = ""
end end
end end
--table.insert(outtabpre,it2) --table.insert(outtabpre,it2)
table.insert(outtab,it2) --table.insert(outtab,it2)
self:header_text_insert(outtab, it2, it)
-- add typedef after struct name -- add typedef after struct name
if it.re_name == "vardef_re" and it.item:match"^%s*struct" then if it.re_name == "vardef_re" and it.item:match"^%s*struct" then
local stname = it.item:match("struct%s*(%S+)%s*;") local stname = it.item:match("struct%s*(%S+)%s*;")
--table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n") --table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
local tst = "\ntypedef struct "..stname.." "..stname..";" local tst = "\ntypedef struct "..stname.." "..stname..";"
if check_unique_typedefs(tst,uniques) then if check_unique_typedefs(tst,uniques) then
table.insert(outtabpre,tst) --table.insert(outtabpre,tst)
self:header_text_insert(outtabpre ,tst, it)
end end
self.typedefs_dict[stname]="struct "..stname self.typedefs_dict[stname]="struct "..stname
if it.parent then --must be struct name; inside namespace if it.parent then --must be struct name; inside namespace
@@ -1658,11 +1747,15 @@ function M.Parser()
end end
end end
enumbody = "{"..enumbody.."\n}" 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 else
local enumbody = it.item:match"(%b{})" local enumbody = it.item:match"(%b{})"
enumbody = clean_comments(enumbody) 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 end
if it.parent then if it.parent then
if it.parent.re_name == "namespace_re" then if it.parent.re_name == "namespace_re" then
@@ -1674,7 +1767,8 @@ function M.Parser()
end end
else --unamed enum just repeat declaration else --unamed enum just repeat declaration
local cl_item = clean_comments(it.item) 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) print("unnamed enum",cl_item)
end end
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
@@ -1686,12 +1780,14 @@ function M.Parser()
--table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n") --table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
local tst = "\ntypedef struct "..structname.." "..structname..";" local tst = "\ntypedef struct "..structname.." "..structname..";"
if check_unique_typedefs(tst,uniques) then if check_unique_typedefs(tst,uniques) then
table.insert(outtab,tst) --table.insert(outtab,tst)
self:header_text_insert(outtab, tst, it)
end end
self.typedefs_dict[structname]="struct "..structname self.typedefs_dict[structname]="struct "..structname
--dont insert child structs as they are inserted before parent struct --dont insert child structs as they are inserted before parent struct
if not (it.parent and it.parent.re_name == "struct_re") then 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
end end
if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
@@ -1724,7 +1820,9 @@ function M.Parser()
local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$" local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$"
if self.ftemplate_list and self.ftemplate_list[ttype] then if self.ftemplate_list and self.ftemplate_list[ttype] then
for iT,vT in ipairs(self.ftemplate_list[ttype]) do 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) self:parseFunction(stname,{item=funT},namespace,it.locat)
end end
end end
@@ -1732,7 +1830,9 @@ function M.Parser()
self:parseFunction(stname,it,namespace,it.locat) self:parseFunction(stname,it,namespace,it.locat)
end end
else else
if it.re_name~="operator_re" then
print("not processed gen",it.re_name,it.item:sub(1,20)) print("not processed gen",it.re_name,it.item:sub(1,20))
end
end end
end end
@@ -1864,7 +1964,7 @@ function M.Parser()
function par:gen_structs_and_enums_table() function par:gen_structs_and_enums_table()
print"--------------gen_structs_and_enums_table" print"--------------gen_structs_and_enums_table"
local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={}} local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={}}
self.typedefs_table = {} --self.typedefs_table = {}
local enumsordered = {} local enumsordered = {}
unnamed_enum_counter = 0 unnamed_enum_counter = 0
self.templated_structs = {} self.templated_structs = {}
@@ -1887,7 +1987,31 @@ function M.Parser()
if it.re_name == "typedef_re" and not it.parent then if it.re_name == "typedef_re" and not it.parent then
local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$" local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$"
typedefname = strip(typedefname) 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 end
elseif it.re_name == "enum_re" then elseif it.re_name == "enum_re" then
enums_for_table(it, outtab, enumsordered) enums_for_table(it, outtab, enumsordered)
@@ -1918,7 +2042,7 @@ function M.Parser()
end end
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
--nop --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) print("not processed gen table",it.re_name)
end end
end end
@@ -2163,6 +2287,7 @@ function M.Parser()
return self:gen_template_typedef_auto(ttype,te,newte) return self:gen_template_typedef_auto(ttype,te,newte)
end end
function par:gen_template_typedef_auto(ttype,te,newte) function par:gen_template_typedef_auto(ttype,te,newte)
--M.prtable(self.templated_structs)
assert(self.templated_structs[ttype],ttype) assert(self.templated_structs[ttype],ttype)
local defi = self.templated_structs[ttype] local defi = self.templated_structs[ttype]
local Targ = strsplit(self.typenames[ttype],",") local Targ = strsplit(self.typenames[ttype],",")
@@ -2206,7 +2331,111 @@ function M.Parser()
end end
return par return par
end 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) ------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
local function serializeTable(name, value, saved) local function serializeTable(name, value, saved)
@@ -2268,10 +2497,11 @@ local function serializeTable(name, value, saved)
return table.concat(string_table) return table.concat(string_table)
end end
M.serializeTable = serializeTable -- M.serializeTable = serializeTable
M.serializeTableF = function(t) -- M.serializeTableF = function(t)
return M.serializeTable("defs",t).."\nreturn defs" -- return M.serializeTable("defs",t).."\nreturn defs"
end -- 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 --iterates lines from a gcc/clang -E in a specific location
local function location(file,locpathT,defines,COMPILER,keepemptylines) local function location(file,locpathT,defines,COMPILER,keepemptylines)
local define_re = "^#define%s+([^%s]+)%s+(.+)$" local define_re = "^#define%s+([^%s]+)%s+(.+)$"
@@ -2358,7 +2588,8 @@ local function location(file,locpathT,defines,COMPILER,keepemptylines)
end end
M.location = location M.location = location
---------------------- C writing functions ---------------------- C writing functions
local function ImGui_f_implementation(outtab,def) local function ImGui_f_implementation(def)
local outtab = {}
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n") table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n") table.insert(outtab,"{\n")
@@ -2385,8 +2616,10 @@ local function ImGui_f_implementation(outtab,def)
table.insert(outtab," return "..ptret..namespace..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret..namespace..def.funcname..def.call_args..";\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
return table.concat(outtab, "")
end end
local function struct_f_implementation(outtab,def) local function struct_f_implementation(def)
local outtab = {}
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
@@ -2415,6 +2648,7 @@ local function struct_f_implementation(outtab,def)
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
return table.concat(outtab, "")
end end
local function func_implementation(FP) local function func_implementation(FP)
@@ -2432,31 +2666,38 @@ local function func_implementation(FP)
local manual = FP.get_manuals(def) local manual = FP.get_manuals(def)
if not custom and not manual and not def.templated and not FP.get_skipped(def) then if not custom and not manual and not def.templated and not FP.get_skipped(def) then
if def.constructor then if def.constructor then
local tab = {}
assert(def.stname ~= "","constructor without struct") assert(def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args 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(tab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(outtab,"{\n") table.insert(tab,"{\n")
table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n") table.insert(tab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(outtab,"}\n") table.insert(tab,"}\n")
if FP.CONSTRUCTORS_GENERATION then if FP.CONSTRUCTORS_GENERATION then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..")\n") table.insert(tab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..")\n")
table.insert(outtab,"{\n") table.insert(tab,"{\n")
table.insert(outtab," IM_PLACEMENT_NEW(self)"..def.stname..def.call_args..";\n") table.insert(tab," IM_PLACEMENT_NEW(self)"..def.stname..def.call_args..";\n")
table.insert(outtab,"}\n") table.insert(tab,"}\n")
end end
table.insert(outtab, table.concat(tab, ""))
elseif def.destructor then elseif def.destructor then
local tab = {}
local args = "("..def.stname.."* self)" local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy" local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args.."\n") table.insert(tab,"CIMGUI_API void "..fname..args.."\n")
table.insert(outtab,"{\n") table.insert(tab,"{\n")
table.insert(outtab," IM_DELETE(self);\n") table.insert(tab," IM_DELETE(self);\n")
table.insert(outtab,"}\n") table.insert(tab,"}\n")
table.insert(outtab, table.concat(tab, ""))
elseif def.stname == "" or def.is_static_function then elseif def.stname == "" or def.is_static_function then
ImGui_f_implementation(outtab,def) table.insert(outtab, ImGui_f_implementation(def))
else -- stname else -- stname
struct_f_implementation(outtab,def) table.insert(outtab, struct_f_implementation(def))
end end
end end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
until true until true
end end
return table.concat(outtab) return table.concat(outtab)
@@ -2479,7 +2720,9 @@ local function func_header_generate_structs(FP)
local outtab = {} 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.embeded_enums,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end)
@@ -2516,7 +2759,7 @@ local function func_header_generate_funcs(FP)
assert(def.stname ~= "","constructor without struct") assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
if FP.CONSTRUCTORS_GENERATION then if FP.CONSTRUCTORS_GENERATION then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..");\n") outtab[#outtab] = outtab[#outtab].."\nCIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..");\n"
end end
elseif def.destructor then elseif def.destructor then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
@@ -2529,9 +2772,13 @@ local function func_header_generate_funcs(FP)
end end
end end
end end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
else --not cimguiname else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end end
end end
return outtab return outtab

View File

@@ -15,11 +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; :: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
::process files ::process files
:: arg[1] compiler name gcc, clang or cl :: 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 :: 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 :: "constructors" adds the _Construct version of constructors
:: examples: "" "internal" "internal freetype comments" :: examples: "" "internal" "internal comments"
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32) :: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 %* ::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 vulkan -DIMGUI_USE_WCHAR32 %*
::leave console open ::leave console open
cmd /k cmd /k

View File

@@ -7,7 +7,7 @@ assert(bit,"Must use LuaJIT")
local script_args = {...} local script_args = {...}
local COMPILER = script_args[1] local COMPILER = script_args[1]
local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false 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 COMMENTS_GENERATION = script_args[2]:match("comments") and true or false
local CONSTRUCTORS_GENERATION = script_args[2]:match("constructors") 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 NOCHAR = script_args[2]:match("nochar") and true or false
@@ -19,6 +19,9 @@ local CPRE,CTEST
local implementations = {} local implementations = {}
for i=3,#script_args do for i=3,#script_args do
if script_args[i]:match(COMPILER == "cl" and "^/" or "^%-") then 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("^(.+)=(.+)$") local key, value = script_args[i]:match("^(.+)=(.+)$")
if key and value then if key and value then
CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\""; CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\"";
@@ -31,11 +34,11 @@ for i=3,#script_args do
end end
if FREETYPE_GENERATION then if FREETYPE_GENERATION then
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE " CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE" --both builders
end end
if COMPILER == "gcc" or COMPILER == "clang" or COMPILER == "zig cc" then 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" CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS
@@ -122,9 +125,11 @@ local function func_header_impl_generate(FP)
local def = cimf[t.signature] local def = cimf[t.signature]
local addcoment = def.comment or "" local addcoment = def.comment or ""
if def.constructor then if def.constructor then
-- it happens with vulkan impl but constructor ImGui_ImplVulkanH_Window is not needed -- only vulkan is manually created
--assert(def.stname ~= "","constructor without struct") assert(def.ov_cimguiname=="ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window" or
--table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or --def.args)..";"..addcoment.."\n") def.ov_cimguiname=="ImGui_ImplVulkanH_Window_Construct", "not cpp for "..def.ov_cimguiname)
assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
elseif def.destructor then elseif def.destructor then
--table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n") --table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else else
@@ -214,6 +219,27 @@ local function DefsByStruct(FP)
FP.defsBystruct = structs FP.defsBystruct = structs
end 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 --generate cimgui.cpp cimgui.h
local function cimgui_generation(parser) local function cimgui_generation(parser)
@@ -261,18 +287,27 @@ local function cimgui_generation(parser)
end end
end end
cstructsstr = colapse_defines(cstructsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr) hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser) local cfuncsstr = func_header_generate(parser)
cfuncsstr = colapse_defines(cfuncsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr) 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) save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp --merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser) local cimplem = func_implementation(parser)
cimplem = colapse_defines(cimplem, "IMGUI_ENABLE_FREETYPE")
local hstrfile = read_data"./cimgui_template.cpp" local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem) 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) save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile)
end end
@@ -307,6 +342,20 @@ print("NOIMSTRV",NOIMSTRV)
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK) print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
print("IMGUI_VERSION",gdefines.IMGUI_VERSION) 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 --funtion for parsing imgui headers
local function parseImGuiHeader(header,names) local function parseImGuiHeader(header,names)
@@ -318,7 +367,8 @@ local function parseImGuiHeader(header,names)
return pre..funcname return pre..funcname
end end
parser.cname_overloads = cimgui_overloads parser.cname_overloads = cimgui_overloads
parser.manuals = cimgui_manuals --parser.manuals = cimgui_manuals
parser:set_manuals(cimgui_manuals, "cimgui")
parser.skipped = cimgui_skipped parser.skipped = cimgui_skipped
parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"} parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"}
--parser.gen_template_typedef = gen_template_typedef --use auto --parser.gen_template_typedef = gen_template_typedef --use auto
@@ -326,6 +376,8 @@ local function parseImGuiHeader(header,names)
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
parser.NOCHAR = NOCHAR parser.NOCHAR = NOCHAR
parser.NOIMSTRV = NOIMSTRV 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) local defines = parser:take_lines(CPRE..header,names,COMPILER)
return parser return parser
@@ -414,15 +466,26 @@ if #implementations > 0 then
extra_includes = extra_includes .. include_cmd .. inc .. " " extra_includes = extra_includes .. include_cmd .. inc .. " "
end end
end end
parser2.cimgui_inherited = dofile([[../../cimgui/generator/output/structs_and_enums.lua]])
local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER) local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
local parser3 = cpp2ffi.Parser() local parser3 = cpp2ffi.Parser()
parser3.cimgui_inherited = dofile([[../../cimgui/generator/output/structs_and_enums.lua]])
parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER) parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
parser3:do_parse() parser3:do_parse()
local cfuncsstr = func_header_impl_generate(parser3) local cfuncsstr = func_header_impl_generate(parser3)
local cstructstr1,cstructstr2 = parser3.structs_and_enums[1], parser3.structs_and_enums[2] local cstructstr1,cstructstr2 = parser3.structs_and_enums[1], parser3.structs_and_enums[2]
impl_str = impl_str .. "#ifdef CIMGUI_USE_".. string.upper(impl).."\n" .. cstructstr1 .. cstructstr2 .. cfuncsstr .. "\n#endif\n" local cstru = cstructstr1 .. cstructstr2
if cstru ~="" then
cstru = "#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n"..cstru .."\n#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n"
end
impl_str = impl_str .. "#ifdef CIMGUI_USE_".. string.upper(impl).."\n".. cstru
local outtab = cpp2ffi.func_header_generate_structs(parser3)
if #outtab > 0 then
table.insert(outtab, 1, "#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
end
impl_str = impl_str.. table.concat(outtab)..cfuncsstr .. "\n#endif\n"
end end
parser2:do_parse() parser2:do_parse()
@@ -466,7 +529,9 @@ end
--]] --]]
-------------------copy C files to repo root -------------------copy C files to repo root
copyfile("./output/cimgui.h", "../cimgui.h") copyfile("./output/cimgui.h", "../cimgui.h")
copyfile("./output/cimgui_impl.h", "../cimgui_impl.h")
copyfile("./output/cimgui.cpp", "../cimgui.cpp") copyfile("./output/cimgui.cpp", "../cimgui.cpp")
os.remove("./output/cimgui.h") os.remove("./output/cimgui.h")
os.remove("./output/cimgui_impl.h")
os.remove("./output/cimgui.cpp") os.remove("./output/cimgui.cpp")
print"all done!!" print"all done!!"

View File

@@ -13,10 +13,11 @@
#process files #process files
# arg[1] compiler name gcc, clang, or cl # 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 # 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 # "constructors" adds the _Construct version of constructors
# examples: "" "internal" "internal freetype" "comments internal" # examples: "" "internal" "comments internal"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32) # 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 # parse command line arguments
@@ -24,7 +25,7 @@
POSITIONAL_ARGS=() POSITIONAL_ARGS=()
TARGETS="internal noimstrv" TARGETS="internal noimstrv"
CFLAGS="glfw opengl3 opengl2 sdl2" CFLAGS="glfw opengl3 opengl2 sdl2 sdl3"
help() { help() {
cat <<EOF cat <<EOF

View File

@@ -1,67 +0,0 @@
#ifdef CIMGUI_USE_GLFW
typedef struct GLFWwindow GLFWwindow;
typedef struct GLFWmonitor GLFWmonitor;
struct GLFWwindow;
struct GLFWmonitor;CIMGUI_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window,bool install_callbacks);
CIMGUI_API bool ImGui_ImplGlfw_InitForVulkan(GLFWwindow* window,bool install_callbacks);
CIMGUI_API bool ImGui_ImplGlfw_InitForOther(GLFWwindow* window,bool install_callbacks);
CIMGUI_API void ImGui_ImplGlfw_Shutdown(void);
CIMGUI_API void ImGui_ImplGlfw_NewFrame(void);
CIMGUI_API void ImGui_ImplGlfw_InstallCallbacks(GLFWwindow* window);
CIMGUI_API void ImGui_ImplGlfw_RestoreCallbacks(GLFWwindow* window);
CIMGUI_API void ImGui_ImplGlfw_SetCallbacksChainForAllWindows(bool chain_for_all_windows);
CIMGUI_API void ImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window,int focused);
CIMGUI_API void ImGui_ImplGlfw_CursorEnterCallback(GLFWwindow* window,int entered);
CIMGUI_API void ImGui_ImplGlfw_CursorPosCallback(GLFWwindow* window,double x,double y);
CIMGUI_API void ImGui_ImplGlfw_MouseButtonCallback(GLFWwindow* window,int button,int action,int mods);
CIMGUI_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window,double xoffset,double yoffset);
CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods);
CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c);
CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event);
CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds);
#endif
#ifdef CIMGUI_USE_OPENGL3
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
CIMGUI_API void ImGui_ImplOpenGL3_Shutdown(void);
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame(void);
CIMGUI_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
CIMGUI_API bool ImGui_ImplOpenGL3_CreateFontsTexture(void);
CIMGUI_API void ImGui_ImplOpenGL3_DestroyFontsTexture(void);
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(void);
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(void);
#endif
#ifdef CIMGUI_USE_OPENGL2
CIMGUI_API bool ImGui_ImplOpenGL2_Init(void);
CIMGUI_API void ImGui_ImplOpenGL2_Shutdown(void);
CIMGUI_API void ImGui_ImplOpenGL2_NewFrame(void);
CIMGUI_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data);
CIMGUI_API bool ImGui_ImplOpenGL2_CreateFontsTexture(void);
CIMGUI_API void ImGui_ImplOpenGL2_DestroyFontsTexture(void);
CIMGUI_API bool ImGui_ImplOpenGL2_CreateDeviceObjects(void);
CIMGUI_API void ImGui_ImplOpenGL2_DestroyDeviceObjects(void);
#endif
#ifdef CIMGUI_USE_SDL2
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct _SDL_GameController _SDL_GameController;
struct SDL_Window;
struct SDL_Renderer;
struct _SDL_GameController;
typedef union SDL_Event SDL_Event;
typedef enum { ImGui_ImplSDL2_GamepadMode_AutoFirst, ImGui_ImplSDL2_GamepadMode_AutoAll, ImGui_ImplSDL2_GamepadMode_Manual }ImGui_ImplSDL2_GamepadMode;CIMGUI_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
CIMGUI_API bool ImGui_ImplSDL2_InitForOther(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL2_Shutdown(void);
CIMGUI_API void ImGui_ImplSDL2_NewFrame(void);
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

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", "cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"location": "imgui_impl_opengl2:37", "location": "imgui_impl_opengl2:39",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -443,7 +443,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture", "funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"location": "imgui_impl_opengl2:35", "location": "imgui_impl_opengl2:37",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -459,7 +459,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"location": "imgui_impl_opengl2:38", "location": "imgui_impl_opengl2:40",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -475,7 +475,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"location": "imgui_impl_opengl2:36", "location": "imgui_impl_opengl2:38",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -491,7 +491,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Init", "cimguiname": "ImGui_ImplOpenGL2_Init",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_Init", "funcname": "ImGui_ImplOpenGL2_Init",
"location": "imgui_impl_opengl2:29", "location": "imgui_impl_opengl2:31",
"ov_cimguiname": "ImGui_ImplOpenGL2_Init", "ov_cimguiname": "ImGui_ImplOpenGL2_Init",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -507,7 +507,7 @@
"cimguiname": "ImGui_ImplOpenGL2_NewFrame", "cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_NewFrame", "funcname": "ImGui_ImplOpenGL2_NewFrame",
"location": "imgui_impl_opengl2:31", "location": "imgui_impl_opengl2:33",
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame", "ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -528,7 +528,7 @@
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_RenderDrawData", "funcname": "ImGui_ImplOpenGL2_RenderDrawData",
"location": "imgui_impl_opengl2:32", "location": "imgui_impl_opengl2:34",
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"ret": "void", "ret": "void",
"signature": "(ImDrawData*)", "signature": "(ImDrawData*)",
@@ -544,7 +544,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Shutdown", "cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_Shutdown", "funcname": "ImGui_ImplOpenGL2_Shutdown",
"location": "imgui_impl_opengl2:30", "location": "imgui_impl_opengl2:32",
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown", "ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -879,11 +879,11 @@
"type": "int" "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)", "call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL2_SetGamepadMode", "cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"defaults": { "defaults": {
"manual_gamepads_array": "NULL", "manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1" "manual_gamepads_count": "-1"
}, },
"funcname": "ImGui_ImplSDL2_SetGamepadMode", "funcname": "ImGui_ImplSDL2_SetGamepadMode",
@@ -909,5 +909,714 @@
"signature": "()", "signature": "()",
"stname": "" "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:36",
"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:37",
"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:34",
"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:40",
"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:39",
"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:38",
"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:35",
"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:42",
"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:43",
"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:48",
"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:41",
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplVulkanH_CreateOrResizeWindow": [
{
"args": "(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count)",
"argsT": [
{
"name": "instance",
"type": "VkInstance"
},
{
"name": "physical_device",
"type": "VkPhysicalDevice"
},
{
"name": "device",
"type": "VkDevice"
},
{
"name": "wd",
"type": "ImGui_ImplVulkanH_Window*"
},
{
"name": "queue_family",
"type": "uint32_t"
},
{
"name": "allocator",
"type": "const VkAllocationCallbacks*"
},
{
"name": "w",
"type": "int"
},
{
"name": "h",
"type": "int"
},
{
"name": "min_image_count",
"type": "uint32_t"
}
],
"argsoriginal": "(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count)",
"call_args": "(instance,physical_device,device,wd,queue_family,allocator,w,h,min_image_count)",
"cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"location": "imgui_impl_vulkan:165",
"ov_cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
"ret": "void",
"signature": "(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t)",
"stname": ""
}
],
"ImGui_ImplVulkanH_DestroyWindow": [
{
"args": "(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator)",
"argsT": [
{
"name": "instance",
"type": "VkInstance"
},
{
"name": "device",
"type": "VkDevice"
},
{
"name": "wd",
"type": "ImGui_ImplVulkanH_Window*"
},
{
"name": "allocator",
"type": "const VkAllocationCallbacks*"
}
],
"argsoriginal": "(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator)",
"call_args": "(instance,device,wd,allocator)",
"cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_DestroyWindow",
"location": "imgui_impl_vulkan:166",
"ov_cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
"ret": "void",
"signature": "(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)",
"stname": ""
}
],
"ImGui_ImplVulkanH_GetMinImageCountFromPresentMode": [
{
"args": "(VkPresentModeKHR present_mode)",
"argsT": [
{
"name": "present_mode",
"type": "VkPresentModeKHR"
}
],
"argsoriginal": "(VkPresentModeKHR present_mode)",
"call_args": "(present_mode)",
"cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"location": "imgui_impl_vulkan:171",
"ov_cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
"ret": "int",
"signature": "(VkPresentModeKHR)",
"stname": ""
}
],
"ImGui_ImplVulkanH_SelectPhysicalDevice": [
{
"args": "(VkInstance instance)",
"argsT": [
{
"name": "instance",
"type": "VkInstance"
}
],
"argsoriginal": "(VkInstance instance)",
"call_args": "(instance)",
"cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"location": "imgui_impl_vulkan:169",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"ret": "VkPhysicalDevice",
"signature": "(VkInstance)",
"stname": ""
}
],
"ImGui_ImplVulkanH_SelectPresentMode": [
{
"args": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count)",
"argsT": [
{
"name": "physical_device",
"type": "VkPhysicalDevice"
},
{
"name": "surface",
"type": "VkSurfaceKHR"
},
{
"name": "request_modes",
"type": "const VkPresentModeKHR*"
},
{
"name": "request_modes_count",
"type": "int"
}
],
"argsoriginal": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count)",
"call_args": "(physical_device,surface,request_modes,request_modes_count)",
"cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectPresentMode",
"location": "imgui_impl_vulkan:168",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
"ret": "VkPresentModeKHR",
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)",
"stname": ""
}
],
"ImGui_ImplVulkanH_SelectQueueFamilyIndex": [
{
"args": "(VkPhysicalDevice physical_device)",
"argsT": [
{
"name": "physical_device",
"type": "VkPhysicalDevice"
}
],
"argsoriginal": "(VkPhysicalDevice physical_device)",
"call_args": "(physical_device)",
"cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"location": "imgui_impl_vulkan:170",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"ret": "uint32_t",
"signature": "(VkPhysicalDevice)",
"stname": ""
}
],
"ImGui_ImplVulkanH_SelectSurfaceFormat": [
{
"args": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space)",
"argsT": [
{
"name": "physical_device",
"type": "VkPhysicalDevice"
},
{
"name": "surface",
"type": "VkSurfaceKHR"
},
{
"name": "request_formats",
"type": "const VkFormat*"
},
{
"name": "request_formats_count",
"type": "int"
},
{
"name": "request_color_space",
"type": "VkColorSpaceKHR"
}
],
"argsoriginal": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space)",
"call_args": "(physical_device,surface,request_formats,request_formats_count,request_color_space)",
"cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"defaults": {},
"funcname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"location": "imgui_impl_vulkan:167",
"ov_cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
"ret": "VkSurfaceFormatKHR",
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)",
"stname": ""
}
],
"ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
"constructor": true,
"defaults": {},
"funcname": "ImGui_ImplVulkanH_Window",
"location": "imgui_impl_vulkan:213",
"ov_cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
"signature": "()",
"stname": "ImGui_ImplVulkanH_Window"
}
],
"ImGui_ImplVulkanH_Window_destroy": [
{
"args": "(ImGui_ImplVulkanH_Window* self)",
"argsT": [
{
"name": "self",
"type": "ImGui_ImplVulkanH_Window*"
}
],
"call_args": "(self)",
"cimguiname": "ImGui_ImplVulkanH_Window_destroy",
"defaults": {},
"destructor": true,
"location": "imgui_impl_vulkan:213",
"ov_cimguiname": "ImGui_ImplVulkanH_Window_destroy",
"ret": "void",
"signature": "(ImGui_ImplVulkanH_Window*)",
"stname": "ImGui_ImplVulkanH_Window"
}
],
"ImGui_ImplVulkan_AddTexture": [
{
"args": "(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout)",
"argsT": [
{
"name": "sampler",
"type": "VkSampler"
},
{
"name": "image_view",
"type": "VkImageView"
},
{
"name": "image_layout",
"type": "VkImageLayout"
}
],
"argsoriginal": "(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout)",
"call_args": "(sampler,image_view,image_layout)",
"cimguiname": "ImGui_ImplVulkan_AddTexture",
"defaults": {},
"funcname": "ImGui_ImplVulkan_AddTexture",
"location": "imgui_impl_vulkan:122",
"ov_cimguiname": "ImGui_ImplVulkan_AddTexture",
"ret": "VkDescriptorSet",
"signature": "(VkSampler,VkImageView,VkImageLayout)",
"stname": ""
}
],
"ImGui_ImplVulkan_CreateFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplVulkan_CreateFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplVulkan_CreateFontsTexture",
"location": "imgui_impl_vulkan:115",
"ov_cimguiname": "ImGui_ImplVulkan_CreateFontsTexture",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplVulkan_DestroyFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplVulkan_DestroyFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplVulkan_DestroyFontsTexture",
"location": "imgui_impl_vulkan:116",
"ov_cimguiname": "ImGui_ImplVulkan_DestroyFontsTexture",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplVulkan_Init": [
{
"args": "(ImGui_ImplVulkan_InitInfo* info)",
"argsT": [
{
"name": "info",
"type": "ImGui_ImplVulkan_InitInfo*"
}
],
"argsoriginal": "(ImGui_ImplVulkan_InitInfo* info)",
"call_args": "(info)",
"cimguiname": "ImGui_ImplVulkan_Init",
"defaults": {},
"funcname": "ImGui_ImplVulkan_Init",
"location": "imgui_impl_vulkan:111",
"ov_cimguiname": "ImGui_ImplVulkan_Init",
"ret": "bool",
"signature": "(ImGui_ImplVulkan_InitInfo*)",
"stname": ""
}
],
"ImGui_ImplVulkan_LoadFunctions": [
{
"args": "(PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data)",
"argsT": [
{
"name": "user_data)",
"type": "PFN_vkVoidFunction(*loader_func)(const char* function_name,void*"
},
{
"name": "user_data",
"type": "void*"
}
],
"argsoriginal": "(PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data=nullptr)",
"call_args": "(user_data),user_data)",
"cimguiname": "ImGui_ImplVulkan_LoadFunctions",
"defaults": {
"user_data": "nullptr"
},
"funcname": "ImGui_ImplVulkan_LoadFunctions",
"location": "imgui_impl_vulkan:127",
"ov_cimguiname": "ImGui_ImplVulkan_LoadFunctions",
"ret": "bool",
"signature": "(PFN_vkVoidFunction(*loader_func)(const char* function_name,void*,void*)",
"stname": ""
}
],
"ImGui_ImplVulkan_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplVulkan_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplVulkan_NewFrame",
"location": "imgui_impl_vulkan:113",
"ov_cimguiname": "ImGui_ImplVulkan_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplVulkan_RemoveTexture": [
{
"args": "(VkDescriptorSet descriptor_set)",
"argsT": [
{
"name": "descriptor_set",
"type": "VkDescriptorSet"
}
],
"argsoriginal": "(VkDescriptorSet descriptor_set)",
"call_args": "(descriptor_set)",
"cimguiname": "ImGui_ImplVulkan_RemoveTexture",
"defaults": {},
"funcname": "ImGui_ImplVulkan_RemoveTexture",
"location": "imgui_impl_vulkan:123",
"ov_cimguiname": "ImGui_ImplVulkan_RemoveTexture",
"ret": "void",
"signature": "(VkDescriptorSet)",
"stname": ""
}
],
"ImGui_ImplVulkan_RenderDrawData": [
{
"args": "(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline)",
"argsT": [
{
"name": "draw_data",
"type": "ImDrawData*"
},
{
"name": "command_buffer",
"type": "VkCommandBuffer"
},
{
"name": "pipeline",
"type": "VkPipeline"
}
],
"argsoriginal": "(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline=0ULL)",
"call_args": "(draw_data,command_buffer,pipeline)",
"cimguiname": "ImGui_ImplVulkan_RenderDrawData",
"defaults": {
"pipeline": "0ULL"
},
"funcname": "ImGui_ImplVulkan_RenderDrawData",
"location": "imgui_impl_vulkan:114",
"ov_cimguiname": "ImGui_ImplVulkan_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*,VkCommandBuffer,VkPipeline)",
"stname": ""
}
],
"ImGui_ImplVulkan_SetMinImageCount": [
{
"args": "(uint32_t min_image_count)",
"argsT": [
{
"name": "min_image_count",
"type": "uint32_t"
}
],
"argsoriginal": "(uint32_t min_image_count)",
"call_args": "(min_image_count)",
"cimguiname": "ImGui_ImplVulkan_SetMinImageCount",
"defaults": {},
"funcname": "ImGui_ImplVulkan_SetMinImageCount",
"location": "imgui_impl_vulkan:117",
"ov_cimguiname": "ImGui_ImplVulkan_SetMinImageCount",
"ret": "void",
"signature": "(uint32_t)",
"stname": ""
}
],
"ImGui_ImplVulkan_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplVulkan_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplVulkan_Shutdown",
"location": "imgui_impl_vulkan:112",
"ov_cimguiname": "ImGui_ImplVulkan_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) 5 nil ImColor_ImColor_U32 (ImU32)
ImDrawList_AddText 2 ImDrawList_AddText 2
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*) 1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddText_FontPtr (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 ImGuiPtrOrIndex_ImGuiPtrOrIndex 2
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*) 1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int) 2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int)
@@ -259,6 +259,9 @@ igSetWindowSize 3
igShortcut 2 igShortcut 2
1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags) 1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags)
2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID) 2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID)
igTabBarQueueFocus 2
1 void igTabBarQueueFocus_TabItemPtr (ImGuiTabBar*,ImGuiTabItem*)
2 void igTabBarQueueFocus_Str (ImGuiTabBar*,const char*)
igTabItemCalcSize 2 igTabItemCalcSize 2
1 ImVec2 igTabItemCalcSize_Str (const char*,bool) 1 ImVec2 igTabItemCalcSize_Str (const char*,bool)
2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*) 2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*)
@@ -290,4 +293,4 @@ igValue 4
2 void igValue_Int (const char*,int) 2 void igValue_Int (const char*,int)
3 void igValue_Uint (const char*,unsigned int) 3 void igValue_Uint (const char*,unsigned int)
4 void igValue_Float (const char*,float,const char*) 4 void igValue_Float (const char*,float,const char*)
203 overloaded 205 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*", "ImBitArrayPtr": "ImU32*",
"ImBitVector": "struct ImBitVector", "ImBitVector": "struct ImBitVector",
"ImColor": "struct ImColor", "ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);", "ImDrawCallback": "void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel", "ImDrawChannel": "struct ImDrawChannel",
"ImDrawCmd": "struct ImDrawCmd", "ImDrawCmd": "struct ImDrawCmd",
"ImDrawCmdHeader": "struct ImDrawCmdHeader", "ImDrawCmdHeader": "struct ImDrawCmdHeader",
@@ -39,12 +39,13 @@
"ImGuiConfigFlags": "int", "ImGuiConfigFlags": "int",
"ImGuiContext": "struct ImGuiContext", "ImGuiContext": "struct ImGuiContext",
"ImGuiContextHook": "struct ImGuiContextHook", "ImGuiContextHook": "struct ImGuiContextHook",
"ImGuiContextHookCallback": "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);", "ImGuiContextHookCallback": "void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
"ImGuiDataAuthority": "int", "ImGuiDataAuthority": "int",
"ImGuiDataType": "int", "ImGuiDataType": "int",
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo", "ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage", "ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo", "ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry", "ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo", "ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
"ImGuiDebugLogFlags": "int", "ImGuiDebugLogFlags": "int",
@@ -54,7 +55,8 @@
"ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings", "ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings",
"ImGuiDockRequest": "struct ImGuiDockRequest", "ImGuiDockRequest": "struct ImGuiDockRequest",
"ImGuiDragDropFlags": "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", "ImGuiFocusRequestFlags": "int",
"ImGuiFocusScopeData": "struct ImGuiFocusScopeData", "ImGuiFocusScopeData": "struct ImGuiFocusScopeData",
"ImGuiFocusedFlags": "int", "ImGuiFocusedFlags": "int",
@@ -72,7 +74,7 @@
"ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel", "ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel",
"ImGuiInputEventText": "struct ImGuiInputEventText", "ImGuiInputEventText": "struct ImGuiInputEventText",
"ImGuiInputFlags": "int", "ImGuiInputFlags": "int",
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData* data);", "ImGuiInputTextCallback": "int (*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData", "ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
"ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData", "ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData",
"ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState", "ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState",
@@ -92,8 +94,9 @@
"ImGuiListClipperData": "struct ImGuiListClipperData", "ImGuiListClipperData": "struct ImGuiListClipperData",
"ImGuiListClipperRange": "struct ImGuiListClipperRange", "ImGuiListClipperRange": "struct ImGuiListClipperRange",
"ImGuiLocEntry": "struct ImGuiLocEntry", "ImGuiLocEntry": "struct ImGuiLocEntry",
"ImGuiMemAllocFunc": "void*(*)(size_t sz,void* user_data);", "ImGuiLogFlags": "int",
"ImGuiMemFreeFunc": "void(*)(void* ptr,void* user_data);", "ImGuiMemAllocFunc": "void* (*)(size_t sz, void* user_data);",
"ImGuiMemFreeFunc": "void (*)(void* ptr, void* user_data);",
"ImGuiMenuColumns": "struct ImGuiMenuColumns", "ImGuiMenuColumns": "struct ImGuiMenuColumns",
"ImGuiMetricsConfig": "struct ImGuiMetricsConfig", "ImGuiMetricsConfig": "struct ImGuiMetricsConfig",
"ImGuiMouseButton": "int", "ImGuiMouseButton": "int",
@@ -102,9 +105,9 @@
"ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO", "ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO",
"ImGuiMultiSelectState": "struct ImGuiMultiSelectState", "ImGuiMultiSelectState": "struct ImGuiMultiSelectState",
"ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData", "ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData",
"ImGuiNavHighlightFlags": "int",
"ImGuiNavItemData": "struct ImGuiNavItemData", "ImGuiNavItemData": "struct ImGuiNavItemData",
"ImGuiNavMoveFlags": "int", "ImGuiNavMoveFlags": "int",
"ImGuiNavRenderCursorFlags": "int",
"ImGuiNextItemData": "struct ImGuiNextItemData", "ImGuiNextItemData": "struct ImGuiNextItemData",
"ImGuiNextItemDataFlags": "int", "ImGuiNextItemDataFlags": "int",
"ImGuiNextWindowData": "struct ImGuiNextWindowData", "ImGuiNextWindowData": "struct ImGuiNextWindowData",
@@ -129,11 +132,10 @@
"ImGuiSeparatorFlags": "int", "ImGuiSeparatorFlags": "int",
"ImGuiSettingsHandler": "struct ImGuiSettingsHandler", "ImGuiSettingsHandler": "struct ImGuiSettingsHandler",
"ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem", "ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem",
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);", "ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData", "ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiSliderFlags": "int", "ImGuiSliderFlags": "int",
"ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo", "ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo",
"ImGuiStackSizes": "struct ImGuiStackSizes",
"ImGuiStorage": "struct ImGuiStorage", "ImGuiStorage": "struct ImGuiStorage",
"ImGuiStoragePair": "struct ImGuiStoragePair", "ImGuiStoragePair": "struct ImGuiStoragePair",
"ImGuiStyle": "struct ImGuiStyle", "ImGuiStyle": "struct ImGuiStyle",
@@ -189,7 +191,7 @@
"ImS64": "signed long long", "ImS64": "signed long long",
"ImS8": "signed char", "ImS8": "signed char",
"ImStbTexteditState": "ImStb::STB_TexteditState", "ImStbTexteditState": "ImStb::STB_TexteditState",
"ImTextureID": "void*", "ImTextureID": "ImU64",
"ImU16": "unsigned short", "ImU16": "unsigned short",
"ImU32": "unsigned int", "ImU32": "unsigned int",
"ImU64": "unsigned long long", "ImU64": "unsigned long long",
@@ -201,8 +203,5 @@
"ImWchar": "ImWchar16", "ImWchar": "ImWchar16",
"ImWchar16": "unsigned short", "ImWchar16": "unsigned short",
"ImWchar32": "unsigned int", "ImWchar32": "unsigned int",
"STB_TexteditState": "struct STB_TexteditState", "STB_TexteditState": "struct STB_TexteditState"
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"
} }

View File

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

2
imgui

Submodule imgui updated: bc77cccd31...11b3a7c8ca