mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-11 20:28:30 +01:00
Compare commits
72 Commits
1.90.9dock
...
1.91.9
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e9a4157067 | ||
![]() |
de213c9105 | ||
![]() |
4bd8b6dbbd | ||
![]() |
a1dbf23597 | ||
![]() |
f2e203b05a | ||
![]() |
429ffc930d | ||
![]() |
95dec01325 | ||
![]() |
79504e6f7c | ||
![]() |
4edec25945 | ||
![]() |
daac7262b3 | ||
![]() |
2e5db87e99 | ||
![]() |
387e5e0d8b | ||
![]() |
d6b4ecda71 | ||
![]() |
10a7a9f3f3 | ||
![]() |
1427639147 | ||
![]() |
9bc279c4d8 | ||
![]() |
46c47d5703 | ||
![]() |
e5facd9083 | ||
![]() |
7d50243c50 | ||
![]() |
7715efaa41 | ||
![]() |
9cc8f27f61 | ||
![]() |
df65595422 | ||
![]() |
2a0af76f16 | ||
![]() |
1053d1584f | ||
![]() |
d83e8c5892 | ||
![]() |
98b667f601 | ||
![]() |
d9982af929 | ||
![]() |
58763282f8 | ||
![]() |
e3b48a15f0 | ||
![]() |
970c614802 | ||
![]() |
3d5b2e7650 | ||
![]() |
8ec6558ecc | ||
![]() |
4e89eac938 | ||
![]() |
bd2ea2acbb | ||
![]() |
69d3b29392 | ||
![]() |
1c3d694f36 | ||
![]() |
be19fd11eb | ||
![]() |
fdd07821bb | ||
![]() |
43429513a8 | ||
![]() |
7640b00d27 | ||
![]() |
90f2147dbe | ||
![]() |
79e40b6657 | ||
![]() |
8268b6748b | ||
![]() |
833e9366de | ||
![]() |
652d4cbc89 | ||
![]() |
e50a65fd62 | ||
![]() |
f276fd4ae1 | ||
![]() |
c06a46b0f2 | ||
![]() |
a051fe287b | ||
![]() |
411924f104 | ||
![]() |
0c7f67607d | ||
![]() |
51197f420a | ||
![]() |
74902e7392 | ||
![]() |
ed017a0704 | ||
![]() |
c482a65118 | ||
![]() |
143c37b7ac | ||
![]() |
35a4e8f893 | ||
![]() |
2b4d572704 | ||
![]() |
7c79f59fa2 | ||
![]() |
35fdbf393f | ||
![]() |
bf02a1552e | ||
![]() |
481cd32543 | ||
![]() |
d222bc5a4e | ||
![]() |
f0fb387921 | ||
![]() |
c7133969db | ||
![]() |
0821a31dfe | ||
![]() |
9009dd72e9 | ||
![]() |
b6e02f4131 | ||
![]() |
b28023c3f6 | ||
![]() |
1bb9cd7347 | ||
![]() |
d24246adfd | ||
![]() |
6dba58d90f |
@@ -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\))
|
||||||
|
12
README.md
12
README.md
@@ -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.90.9 of Dear ImGui with internal api]
|
* currently this wrapper is based on version [1.91.9 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
|
* 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
|
||||||
|
@@ -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)
|
||||||
|
@@ -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)
|
||||||
|
@@ -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)
|
||||||
|
|
||||||
|
2
backend_test/example_sdl_opengl3/README.md
Normal file
2
backend_test/example_sdl_opengl3/README.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
To build use `cmake path_to_example_sdl_opengl3` and then `make install`
|
@@ -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})
|
||||||
|
|
||||||
|
3
backend_test/example_sdl_vulkan/README.md
Normal file
3
backend_test/example_sdl_vulkan/README.md
Normal 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
1
cimconfig.h
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#undef NDEBUG
|
870
cimgui.cpp
870
cimgui.cpp
File diff suppressed because it is too large
Load Diff
65
cimgui_impl.cpp
Normal file
65
cimgui_impl.cpp
Normal 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
|
199
cimgui_impl.h
Normal file
199
cimgui_impl.h
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
#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
|
||||||
|
{
|
||||||
|
uint32_t ApiVersion;
|
||||||
|
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;
|
||||||
|
VkPipeline Pipeline;
|
||||||
|
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(uint32_t api_version,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* wnd,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* wnd,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
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +81,7 @@ CimguiStorage& GetCimguiStorage()
|
|||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
if (io.BackendLanguageUserData == NULL)
|
if (io.BackendLanguageUserData == NULL)
|
||||||
{
|
{
|
||||||
io.BackendLanguageUserData = new CimguiStorage();
|
io.BackendLanguageUserData = IM_NEW(CimguiStorage)();
|
||||||
}
|
}
|
||||||
|
|
||||||
return *(CimguiStorage*)io.BackendLanguageUserData;
|
return *(CimguiStorage*)io.BackendLanguageUserData;
|
||||||
|
@@ -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
|
||||||
|
@@ -175,6 +175,7 @@ local function check_template(code)
|
|||||||
te = te:gsub("%-","less")
|
te = te:gsub("%-","less")
|
||||||
te = te:gsub("%s","_")
|
te = te:gsub("%s","_")
|
||||||
te = te:gsub("%*","Ptr")
|
te = te:gsub("%*","Ptr")
|
||||||
|
te = te:gsub("::","_")
|
||||||
|
|
||||||
code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2")
|
code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2")
|
||||||
code2 = code2:gsub("<([^<>]-)>","_"..te)
|
code2 = code2:gsub("<([^<>]-)>","_"..te)
|
||||||
@@ -202,6 +203,8 @@ local function parse_enum_value(value, allenums,dontpost)
|
|||||||
if allenums[clean(value)] then return allenums[clean(value)] end
|
if allenums[clean(value)] then return allenums[clean(value)] end
|
||||||
--must be several and operators
|
--must be several and operators
|
||||||
------------precedence order (hope not ())
|
------------precedence order (hope not ())
|
||||||
|
--delete (int)
|
||||||
|
value = value:gsub("%(int%)","")
|
||||||
--first drop outer ()
|
--first drop outer ()
|
||||||
value = value:gsub("^(%()",""):gsub("(%))$","")
|
value = value:gsub("^(%()",""):gsub("(%))$","")
|
||||||
assert(not value:match("[%(%)]"),value)
|
assert(not value:match("[%(%)]"),value)
|
||||||
@@ -317,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_%(%)]*;)",
|
||||||
@@ -341,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
|
||||||
@@ -429,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"
|
||||||
@@ -478,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
|
||||||
@@ -602,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"
|
||||||
@@ -670,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
|
||||||
@@ -716,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 = {}
|
||||||
@@ -731,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
|
||||||
@@ -744,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_]+)%)(%([^%(%)]*%))"
|
||||||
@@ -804,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
|
||||||
@@ -835,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
|
||||||
@@ -868,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
|
||||||
@@ -898,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"
|
||||||
@@ -910,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
|
||||||
@@ -922,6 +949,31 @@ local function AdjustArguments(FP)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local function REPLACE_TEXTUREID(FP)
|
||||||
|
local defsT = FP.defsT
|
||||||
|
for numcdef,t in ipairs(FP.funcdefs) do
|
||||||
|
assert(t.cimguiname)
|
||||||
|
local cimf = defsT[t.cimguiname]
|
||||||
|
local defT = cimf[t.signature]
|
||||||
|
local hasTextureID = false
|
||||||
|
for i,arg in ipairs(defT.argsT) do
|
||||||
|
if arg.type == "ImTextureID" then print(t.cimguiname,t.signature);hasTextureID = true; break end
|
||||||
|
end
|
||||||
|
if hasTextureID then
|
||||||
|
for i,v in ipairs(defT.argsT) do
|
||||||
|
v.type = (v.type == "ImTextureID") and "ImTextureUserID" or v.type
|
||||||
|
end
|
||||||
|
--defaults table
|
||||||
|
for k,v in pairs(defT.defaults) do
|
||||||
|
if v:match"ImTextureID" then
|
||||||
|
error"default ImTextureID not implemented"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
defT.args = defT.args:gsub("ImTextureID","ImTextureUserID")
|
||||||
|
defT.signature = defT.signature:gsub("ImTextureID","ImTextureUserID")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
local function ADDIMSTR_S(FP)
|
local function ADDIMSTR_S(FP)
|
||||||
local defsT = FP.defsT
|
local defsT = FP.defsT
|
||||||
local newcdefs = {}
|
local newcdefs = {}
|
||||||
@@ -1018,7 +1070,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
|
||||||
@@ -1032,10 +1116,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 = {}
|
||||||
@@ -1108,14 +1199,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.."*)"
|
||||||
@@ -1267,7 +1359,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
|
||||||
@@ -1287,6 +1379,15 @@ function M.Parser()
|
|||||||
function par:parseItemsR2(txt, itparent)
|
function par:parseItemsR2(txt, itparent)
|
||||||
local itsarr,its = parseItems(txt,self.linenumdict,itparent)
|
local itsarr,its = parseItems(txt,self.linenumdict,itparent)
|
||||||
for i,it in ipairs(itsarr) do
|
for i,it in ipairs(itsarr) do
|
||||||
|
--clean class
|
||||||
|
if it.re_name == "class_re" then
|
||||||
|
it.name = it.item:match("class%s+(%S+)")
|
||||||
|
print("cleaning class",it.name)
|
||||||
|
it.item = it.item:gsub("private:.+};$","};")
|
||||||
|
--it.item = it.item:gsub("private:","")
|
||||||
|
it.item = it.item:gsub("public:","")
|
||||||
|
it.item = it.item:gsub("enum%s*class","enum")
|
||||||
|
end
|
||||||
if not isLeaf(it.re_name) then
|
if not isLeaf(it.re_name) then
|
||||||
local inner = strip_end(it.item:match("%b{}"):sub(2,-2))
|
local inner = strip_end(it.item:match("%b{}"):sub(2,-2))
|
||||||
it.childs = par:parseItemsR2(inner, it)
|
it.childs = par:parseItemsR2(inner, it)
|
||||||
@@ -1309,6 +1410,8 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
elseif it.re_name == "namespace_re" then
|
elseif it.re_name == "namespace_re" then
|
||||||
it.name = it.item:match("namespace%s+(%S+)")
|
it.name = it.item:match("namespace%s+(%S+)")
|
||||||
|
elseif it.re_name == "class_re" then
|
||||||
|
--it.name = it.item:match("class%s+(%S+)")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1330,11 +1433,12 @@ 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 = {}
|
||||||
for i,cdef in ipairs(cdefs) do
|
for i,cdef in ipairs(cdefs) do
|
||||||
|
cdef[1] = cdef[1]:gsub("enum%s*class","enum") --clean class
|
||||||
local cdef1 = clean_comments(cdef[1])
|
local cdef1 = clean_comments(cdef[1])
|
||||||
if self.linenumdict[cdef1] then
|
if self.linenumdict[cdef1] then
|
||||||
--print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]]))
|
--print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]]))
|
||||||
@@ -1344,7 +1448,6 @@ function M.Parser()
|
|||||||
table.insert(self.linenumdict[cdef1],cdef[2])
|
table.insert(self.linenumdict[cdef1],cdef[2])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
--print("nuevo linenumdict es",cdef[1],cdef[2])
|
|
||||||
self.linenumdict[cdef1]=cdef[2]
|
self.linenumdict[cdef1]=cdef[2]
|
||||||
end
|
end
|
||||||
table.insert(cdefs2,cdef[1])
|
table.insert(cdefs2,cdef[1])
|
||||||
@@ -1389,12 +1492,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)
|
||||||
@@ -1421,13 +1539,20 @@ 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
|
||||||
stname = inistruct:match"struct%s(%S+)"
|
if itst.re_name == "struct_re" then
|
||||||
|
stname = inistruct:match"struct%s(%S+)"
|
||||||
|
elseif itst.re_name == "class_re" then
|
||||||
|
stname = inistruct:match"class%s(%S+)"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if derived then print(stname,"derived from",derived) end
|
if derived then print(stname,"derived from",derived) end
|
||||||
@@ -1437,6 +1562,7 @@ function M.Parser()
|
|||||||
stname = stru:match("%b{}%s*(%S+)%s*;")
|
stname = stru:match("%b{}%s*(%S+)%s*;")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local is_nested
|
local is_nested
|
||||||
if not stname then
|
if not stname then
|
||||||
is_nested = itst.parent and (itst.parent.re_name == "struct_re")
|
is_nested = itst.parent and (itst.parent.re_name == "struct_re")
|
||||||
@@ -1474,12 +1600,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
|
||||||
if self.typenames[ttype] ~= template then --rule out T (template typename)
|
--print("not doheader",ttype,template,te, self.typenames[ttype])
|
||||||
|
if self.typenames[ttype] ~= template and 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
|
||||||
@@ -1535,7 +1663,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
|
||||||
@@ -1564,8 +1692,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)
|
||||||
@@ -1593,25 +1722,31 @@ function M.Parser()
|
|||||||
|
|
||||||
local tdt = self:gentemplatetypedef(ttype,template,te)
|
local tdt = self:gentemplatetypedef(ttype,template,te)
|
||||||
it2 = tdt..code2
|
it2 = tdt..code2
|
||||||
|
elseif it2:match"%w+::" then
|
||||||
|
print("clean namespace typedef",it2)
|
||||||
|
it2 = it2:gsub("%w+::","")
|
||||||
end
|
end
|
||||||
elseif it.re_name == "functypedef_re" then
|
elseif it.re_name == "functypedef_re" then
|
||||||
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
|
||||||
@@ -1637,24 +1772,31 @@ 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
|
||||||
local namespace = it.parent.item:match("namespace%s+(%S+)")
|
local namespace = it.parent.item:match("namespace%s+(%S+)")
|
||||||
self.embeded_enums[enumname] = namespace.."::"..enumname
|
self.embeded_enums[enumname] = namespace.."::"..enumname
|
||||||
|
else
|
||||||
|
self.embeded_enums[enumname] = it.parent.name.."::"..enumname
|
||||||
end
|
end
|
||||||
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" then
|
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
|
||||||
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true)
|
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true)
|
||||||
if not structname then print("NO NAME",cleanst,it.item) end
|
if not structname then print("NO NAME",cleanst,it.item) end
|
||||||
--if not void stname or templated
|
--if not void stname or templated
|
||||||
@@ -1663,12 +1805,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
|
||||||
@@ -1691,7 +1835,7 @@ function M.Parser()
|
|||||||
local stname = ""
|
local stname = ""
|
||||||
local namespace
|
local namespace
|
||||||
if it.parent then
|
if it.parent then
|
||||||
if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
|
if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" or it.parent.re_name == "class_re" then
|
||||||
stname = it.parent.name
|
stname = it.parent.name
|
||||||
elseif it.parent.re_name == "namespace_re" then
|
elseif it.parent.re_name == "namespace_re" then
|
||||||
namespace = get_parents_nameC(it) --it.parent.name
|
namespace = get_parents_nameC(it) --it.parent.name
|
||||||
@@ -1701,7 +1845,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
|
||||||
@@ -1709,7 +1855,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
|
||||||
|
|
||||||
@@ -1777,7 +1925,8 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
local unnamed_enum_counter = 0
|
local unnamed_enum_counter = 0
|
||||||
local function enums_for_table(it, outtab, enumsordered)
|
local function enums_for_table(it, outtab, enumsordered)
|
||||||
local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
|
--local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
|
||||||
|
local enumname = it.item:match"^[^;{}]-enum%s+([^%s;{}]+)"
|
||||||
if not enumname then
|
if not enumname then
|
||||||
unnamed_enum_counter = unnamed_enum_counter + 1
|
unnamed_enum_counter = unnamed_enum_counter + 1
|
||||||
enumname = "unnamed"..unnamed_enum_counter
|
enumname = "unnamed"..unnamed_enum_counter
|
||||||
@@ -1840,7 +1989,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 = {}
|
||||||
@@ -1863,11 +2012,35 @@ 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)
|
||||||
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then
|
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
|
||||||
local cleanst,structname,strtab,comstab = self:clean_structR1(it)
|
local cleanst,structname,strtab,comstab = self:clean_structR1(it)
|
||||||
--if not void stname or templated
|
--if not void stname or templated
|
||||||
if not structname then print("NO NAME",cleanst,it.item) end
|
if not structname then print("NO NAME",cleanst,it.item) end
|
||||||
@@ -1894,7 +2067,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
|
||||||
@@ -1967,6 +2140,11 @@ function M.Parser()
|
|||||||
for k,v in pairs(self.alltypes) do print(k, typetoStr(k) ) end
|
for k,v in pairs(self.alltypes) do print(k, typetoStr(k) ) end
|
||||||
end
|
end
|
||||||
function par:compute_overloads()
|
function par:compute_overloads()
|
||||||
|
if self.IMGUI_HAS_TEXTURES then
|
||||||
|
print"----------replacing ImTextureID with ImTextureUserID"
|
||||||
|
REPLACE_TEXTUREID(self)
|
||||||
|
print"----------end replacing ImTextureID with ImTextureUserID"
|
||||||
|
end
|
||||||
ADDIMSTR_S(self)
|
ADDIMSTR_S(self)
|
||||||
local strt = {}
|
local strt = {}
|
||||||
local numoverloaded = 0
|
local numoverloaded = 0
|
||||||
@@ -2139,6 +2317,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],",")
|
||||||
@@ -2182,7 +2361,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)
|
||||||
|
|
||||||
@@ -2244,10 +2527,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+(.+)$"
|
||||||
@@ -2334,7 +2618,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")
|
||||||
@@ -2361,8 +2646,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 ""
|
||||||
|
|
||||||
@@ -2391,6 +2678,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)
|
||||||
|
|
||||||
@@ -2408,25 +2696,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
|
||||||
|
table.insert(tab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..")\n")
|
||||||
|
table.insert(tab,"{\n")
|
||||||
|
table.insert(tab," IM_PLACEMENT_NEW(self)"..def.stname..def.call_args..";\n")
|
||||||
|
table.insert(tab,"}\n")
|
||||||
|
end
|
||||||
|
table.insert(outtab, table.concat(tab, ""))
|
||||||
elseif def.destructor then
|
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)
|
||||||
@@ -2449,13 +2750,16 @@ 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)
|
||||||
|
|
||||||
table_do_sorted(FP.templates,function(ttype,v)
|
table_do_sorted(FP.templates,function(ttype,v)
|
||||||
table_do_sorted(v,function(ttypein,te)
|
table_do_sorted(v,function(ttypein,te)
|
||||||
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n")
|
local ttype2 = ttype:gsub("::","_") --std::string
|
||||||
|
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype2.."_"..te..";\n")
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
return outtab
|
return outtab
|
||||||
@@ -2484,6 +2788,9 @@ local function func_header_generate_funcs(FP)
|
|||||||
if def.constructor then
|
if def.constructor then
|
||||||
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
|
||||||
|
outtab[#outtab] = outtab[#outtab].."\nCIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..");\n"
|
||||||
|
end
|
||||||
elseif def.destructor then
|
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 --not constructor
|
else --not constructor
|
||||||
@@ -2495,9 +2802,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
|
||||||
|
@@ -15,10 +15,12 @@ set PATH=%PATH%;C:\anima;C:\mingws\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\min
|
|||||||
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
|
:: 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
|
||||||
:: examples: "" "internal" "internal freetype comments"
|
:: "constructors" adds the _Construct version of constructors
|
||||||
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
|
:: examples: "" "internal" "internal comments"
|
||||||
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 %*
|
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
|
||||||
|
::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
|
||||||
|
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 vulkan -DIMGUI_USE_WCHAR32 %*
|
||||||
|
|
||||||
::leave console open
|
::leave console open
|
||||||
cmd /k
|
cmd /k
|
||||||
|
@@ -7,8 +7,9 @@ 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 NOCHAR = script_args[2]:match("nochar") and true or false
|
local NOCHAR = script_args[2]:match("nochar") and true or false
|
||||||
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
|
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
|
||||||
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
|
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
|
||||||
@@ -18,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("\"", "\\\"") .. "\"";
|
||||||
@@ -30,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
|
||||||
@@ -67,6 +71,7 @@ print("HAVE_COMPILER",HAVE_COMPILER)
|
|||||||
print("INTERNAL_GENERATION",INTERNAL_GENERATION)
|
print("INTERNAL_GENERATION",INTERNAL_GENERATION)
|
||||||
print("FREETYPE_GENERATION",FREETYPE_GENERATION)
|
print("FREETYPE_GENERATION",FREETYPE_GENERATION)
|
||||||
print("COMMENTS_GENERATION",COMMENTS_GENERATION)
|
print("COMMENTS_GENERATION",COMMENTS_GENERATION)
|
||||||
|
print("CONSTRUCTORS_GENERATION",CONSTRUCTORS_GENERATION)
|
||||||
print("CPRE",CPRE)
|
print("CPRE",CPRE)
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
--this table has the functions to be skipped in generation
|
--this table has the functions to be skipped in generation
|
||||||
@@ -86,6 +91,10 @@ local cimgui_skipped = {
|
|||||||
--desired name
|
--desired name
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
local cimgui_overloads = {
|
local cimgui_overloads = {
|
||||||
|
igGetIO = {
|
||||||
|
["()"] = "igGetIO",
|
||||||
|
["(ImGuiContext*)"] = "igGetIOEx",
|
||||||
|
},
|
||||||
--igPushID = {
|
--igPushID = {
|
||||||
--["(const char*)"] = "igPushIDStr",
|
--["(const char*)"] = "igPushIDStr",
|
||||||
--["(const char*,const char*)"] = "igPushIDRange",
|
--["(const char*,const char*)"] = "igPushIDRange",
|
||||||
@@ -120,9 +129,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
|
||||||
@@ -212,6 +223,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)
|
||||||
@@ -259,18 +291,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
|
||||||
@@ -279,8 +320,8 @@ end
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
--get imgui.h version and IMGUI_HAS_DOCK--------------------------
|
--get imgui.h version and IMGUI_HAS_DOCK--------------------------
|
||||||
--defines for the cl compiler must be present in the print_defines.cpp file
|
--defines for the cl compiler must be present in the print_defines.cpp file
|
||||||
gdefines = get_defines{"IMGUI_VERSION","IMGUI_VERSION_NUM","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK","IMGUI_HAS_IMSTR","ImDrawCallback_ResetRenderState"}
|
gdefines = get_defines{"IMGUI_VERSION","IMGUI_VERSION_NUM","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK","IMGUI_HAS_IMSTR","ImDrawCallback_ResetRenderState","IMGUI_HAS_TEXTURES"}
|
||||||
--cpp2ffi.prtable(gdefines)
|
cpp2ffi.prtable(gdefines)
|
||||||
if gdefines.IMGUI_HAS_DOCK then gdefines.IMGUI_HAS_DOCK = true end
|
if gdefines.IMGUI_HAS_DOCK then gdefines.IMGUI_HAS_DOCK = true end
|
||||||
if gdefines.IMGUI_HAS_IMSTR then gdefines.IMGUI_HAS_IMSTR = true end
|
if gdefines.IMGUI_HAS_IMSTR then gdefines.IMGUI_HAS_IMSTR = true end
|
||||||
|
|
||||||
@@ -300,11 +341,26 @@ if gdefines.IMGUI_HAS_DOCK then
|
|||||||
end
|
end
|
||||||
assert(not NOCHAR or not NOIMSTRV,"nochar and noimstrv cant be set at the same time")
|
assert(not NOCHAR or not NOIMSTRV,"nochar and noimstrv cant be set at the same time")
|
||||||
print("IMGUI_HAS_IMSTR",gdefines.IMGUI_HAS_IMSTR)
|
print("IMGUI_HAS_IMSTR",gdefines.IMGUI_HAS_IMSTR)
|
||||||
|
print("IMGUI_HAS_TEXTURES",gdefines.IMGUI_HAS_TEXTURES and true)
|
||||||
print("NOCHAR",NOCHAR)
|
print("NOCHAR",NOCHAR)
|
||||||
print("NOIMSTRV",NOIMSTRV)
|
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)
|
||||||
@@ -316,13 +372,18 @@ 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
|
||||||
parser.COMMENTS_GENERATION = COMMENTS_GENERATION
|
parser.COMMENTS_GENERATION = COMMENTS_GENERATION
|
||||||
|
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
|
||||||
parser.NOCHAR = NOCHAR
|
parser.NOCHAR = NOCHAR
|
||||||
parser.NOIMSTRV = NOIMSTRV
|
parser.NOIMSTRV = NOIMSTRV
|
||||||
|
parser.IMGUI_HAS_TEXTURES = gdefines.IMGUI_HAS_TEXTURES
|
||||||
|
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
|
||||||
@@ -411,15 +472,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()
|
||||||
@@ -463,7 +535,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!!"
|
||||||
|
@@ -13,9 +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
|
||||||
# examples: "" "internal" "internal freetype" "comments internal"
|
# "constructors" adds the _Construct version of constructors
|
||||||
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
|
# examples: "" "internal" "comments internal"
|
||||||
|
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG)
|
||||||
|
# -DIMGUI_USE_WCHAR32 should not be used as it is generated for both ImWchar
|
||||||
#
|
#
|
||||||
|
|
||||||
# parse command line arguments
|
# parse command line arguments
|
||||||
@@ -23,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
|
||||||
|
@@ -1,66 +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);
|
|
||||||
|
|
||||||
#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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||||
@@ -108,23 +108,34 @@ igCombo 3
|
|||||||
1 bool igCombo_Str_arr (const char*,int*,const char* const[],int,int)
|
1 bool igCombo_Str_arr (const char*,int*,const char* const[],int,int)
|
||||||
2 bool igCombo_Str (const char*,int*,const char*,int)
|
2 bool igCombo_Str (const char*,int*,const char*,int)
|
||||||
3 bool igCombo_FnStrPtr (const char*,int*,const char*(*)(void*,int),void*,int,int)
|
3 bool igCombo_FnStrPtr (const char*,int*,const char*(*)(void*,int),void*,int,int)
|
||||||
|
igGetBackgroundDrawList 2
|
||||||
|
1 ImDrawList* igGetBackgroundDrawList_Nil ()
|
||||||
|
2 ImDrawList* igGetBackgroundDrawList_ViewportPtr (ImGuiViewport*)
|
||||||
igGetColorU32 3
|
igGetColorU32 3
|
||||||
1 ImU32 igGetColorU32_Col (ImGuiCol,float)
|
1 ImU32 igGetColorU32_Col (ImGuiCol,float)
|
||||||
2 ImU32 igGetColorU32_Vec4 (const ImVec4)
|
2 ImU32 igGetColorU32_Vec4 (const ImVec4)
|
||||||
3 ImU32 igGetColorU32_U32 (ImU32,float)
|
3 ImU32 igGetColorU32_U32 (ImU32,float)
|
||||||
igGetForegroundDrawList 2
|
igGetForegroundDrawList 3
|
||||||
1 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
|
1 ImDrawList* igGetForegroundDrawList_Nil ()
|
||||||
2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
|
2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
|
||||||
igGetID 3
|
3 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
|
||||||
|
igGetID 4
|
||||||
1 ImGuiID igGetID_Str (const char*)
|
1 ImGuiID igGetID_Str (const char*)
|
||||||
2 ImGuiID igGetID_StrStr (const char*,const char*)
|
2 ImGuiID igGetID_StrStr (const char*,const char*)
|
||||||
3 ImGuiID igGetID_Ptr (const void*)
|
3 ImGuiID igGetID_Ptr (const void*)
|
||||||
|
4 ImGuiID igGetID_Int (int)
|
||||||
igGetIDWithSeed 2
|
igGetIDWithSeed 2
|
||||||
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
|
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
|
||||||
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
|
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
|
||||||
|
igGetIO 2
|
||||||
|
1 ImGuiIO* igGetIO ()
|
||||||
|
2 ImGuiIO* igGetIOEx (ImGuiContext*)
|
||||||
igGetKeyData 2
|
igGetKeyData 2
|
||||||
1 ImGuiKeyData* igGetKeyData_ContextPtr (ImGuiContext*,ImGuiKey)
|
1 ImGuiKeyData* igGetKeyData_ContextPtr (ImGuiContext*,ImGuiKey)
|
||||||
2 ImGuiKeyData* igGetKeyData_Key (ImGuiKey)
|
2 ImGuiKeyData* igGetKeyData_Key (ImGuiKey)
|
||||||
|
igGetPlatformIO 2
|
||||||
|
1 ImGuiPlatformIO* igGetPlatformIO_Nil ()
|
||||||
|
2 ImGuiPlatformIO* igGetPlatformIO_ContextPtr (ImGuiContext*)
|
||||||
igImAbs 3
|
igImAbs 3
|
||||||
1 int igImAbs_Int (int)
|
1 int igImAbs_Int (int)
|
||||||
2 float igImAbs_Float (float)
|
2 float igImAbs_Float (float)
|
||||||
@@ -225,6 +236,9 @@ igRadioButton 2
|
|||||||
igSelectable 2
|
igSelectable 2
|
||||||
1 bool igSelectable_Bool (const char*,bool,ImGuiSelectableFlags,const ImVec2)
|
1 bool igSelectable_Bool (const char*,bool,ImGuiSelectableFlags,const ImVec2)
|
||||||
2 bool igSelectable_BoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2)
|
2 bool igSelectable_BoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2)
|
||||||
|
igSetItemKeyOwner 2
|
||||||
|
1 void igSetItemKeyOwner_Nil (ImGuiKey)
|
||||||
|
2 void igSetItemKeyOwner_InputFlags (ImGuiKey,ImGuiInputFlags)
|
||||||
igSetScrollFromPosX 2
|
igSetScrollFromPosX 2
|
||||||
1 void igSetScrollFromPosX_Float (float,float)
|
1 void igSetScrollFromPosX_Float (float,float)
|
||||||
2 void igSetScrollFromPosX_WindowPtr (ImGuiWindow*,float,float)
|
2 void igSetScrollFromPosX_WindowPtr (ImGuiWindow*,float,float)
|
||||||
@@ -255,6 +269,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*)
|
||||||
@@ -286,4 +303,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*)
|
||||||
200 overloaded
|
212 overloaded
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
"ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder",
|
"ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder",
|
||||||
"ImGuiActivateFlags": "int",
|
"ImGuiActivateFlags": "int",
|
||||||
"ImGuiBackendFlags": "int",
|
"ImGuiBackendFlags": "int",
|
||||||
|
"ImGuiBoxSelectState": "struct ImGuiBoxSelectState",
|
||||||
"ImGuiButtonFlags": "int",
|
"ImGuiButtonFlags": "int",
|
||||||
"ImGuiChildFlags": "int",
|
"ImGuiChildFlags": "int",
|
||||||
"ImGuiCol": "int",
|
"ImGuiCol": "int",
|
||||||
@@ -38,22 +39,17 @@
|
|||||||
"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",
|
|
||||||
"ImGuiDataType": "int",
|
"ImGuiDataType": "int",
|
||||||
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
|
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
|
||||||
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
|
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
|
||||||
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
|
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
|
||||||
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
|
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
|
||||||
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
|
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
|
||||||
"ImGuiDebugLogFlags": "int",
|
"ImGuiDebugLogFlags": "int",
|
||||||
"ImGuiDockContext": "struct ImGuiDockContext",
|
|
||||||
"ImGuiDockNode": "struct ImGuiDockNode",
|
|
||||||
"ImGuiDockNodeFlags": "int",
|
|
||||||
"ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings",
|
|
||||||
"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",
|
||||||
@@ -67,11 +63,10 @@
|
|||||||
"ImGuiInputEventKey": "struct ImGuiInputEventKey",
|
"ImGuiInputEventKey": "struct ImGuiInputEventKey",
|
||||||
"ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton",
|
"ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton",
|
||||||
"ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos",
|
"ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos",
|
||||||
"ImGuiInputEventMouseViewport": "struct ImGuiInputEventMouseViewport",
|
|
||||||
"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",
|
||||||
@@ -91,16 +86,20 @@
|
|||||||
"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",
|
||||||
"ImGuiMouseCursor": "int",
|
"ImGuiMouseCursor": "int",
|
||||||
"ImGuiNavHighlightFlags": "int",
|
"ImGuiMultiSelectFlags": "int",
|
||||||
|
"ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO",
|
||||||
|
"ImGuiMultiSelectState": "struct ImGuiMultiSelectState",
|
||||||
|
"ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData",
|
||||||
"ImGuiNavItemData": "struct ImGuiNavItemData",
|
"ImGuiNavItemData": "struct ImGuiNavItemData",
|
||||||
"ImGuiNavMoveFlags": "int",
|
"ImGuiNavMoveFlags": "int",
|
||||||
"ImGuiNavTreeNodeData": "struct ImGuiNavTreeNodeData",
|
"ImGuiNavRenderCursorFlags": "int",
|
||||||
"ImGuiNextItemData": "struct ImGuiNextItemData",
|
"ImGuiNextItemData": "struct ImGuiNextItemData",
|
||||||
"ImGuiNextItemDataFlags": "int",
|
"ImGuiNextItemDataFlags": "int",
|
||||||
"ImGuiNextWindowData": "struct ImGuiNextWindowData",
|
"ImGuiNextWindowData": "struct ImGuiNextWindowData",
|
||||||
@@ -112,26 +111,28 @@
|
|||||||
"ImGuiPayload": "struct ImGuiPayload",
|
"ImGuiPayload": "struct ImGuiPayload",
|
||||||
"ImGuiPlatformIO": "struct ImGuiPlatformIO",
|
"ImGuiPlatformIO": "struct ImGuiPlatformIO",
|
||||||
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
|
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
|
||||||
"ImGuiPlatformMonitor": "struct ImGuiPlatformMonitor",
|
|
||||||
"ImGuiPopupData": "struct ImGuiPopupData",
|
"ImGuiPopupData": "struct ImGuiPopupData",
|
||||||
"ImGuiPopupFlags": "int",
|
"ImGuiPopupFlags": "int",
|
||||||
"ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex",
|
"ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex",
|
||||||
"ImGuiScrollFlags": "int",
|
"ImGuiScrollFlags": "int",
|
||||||
"ImGuiSelectableFlags": "int",
|
"ImGuiSelectableFlags": "int",
|
||||||
|
"ImGuiSelectionBasicStorage": "struct ImGuiSelectionBasicStorage",
|
||||||
|
"ImGuiSelectionExternalStorage": "struct ImGuiSelectionExternalStorage",
|
||||||
|
"ImGuiSelectionRequest": "struct ImGuiSelectionRequest",
|
||||||
"ImGuiSelectionUserData": "ImS64",
|
"ImGuiSelectionUserData": "ImS64",
|
||||||
"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",
|
||||||
"ImGuiStyleMod": "struct ImGuiStyleMod",
|
"ImGuiStyleMod": "struct ImGuiStyleMod",
|
||||||
"ImGuiStyleVar": "int",
|
"ImGuiStyleVar": "int",
|
||||||
|
"ImGuiStyleVarInfo": "struct ImGuiStyleVarInfo",
|
||||||
"ImGuiTabBar": "struct ImGuiTabBar",
|
"ImGuiTabBar": "struct ImGuiTabBar",
|
||||||
"ImGuiTabBarFlags": "int",
|
"ImGuiTabBarFlags": "int",
|
||||||
"ImGuiTabItem": "struct ImGuiTabItem",
|
"ImGuiTabItem": "struct ImGuiTabItem",
|
||||||
@@ -160,6 +161,7 @@
|
|||||||
"ImGuiTextRange": "struct ImGuiTextRange",
|
"ImGuiTextRange": "struct ImGuiTextRange",
|
||||||
"ImGuiTooltipFlags": "int",
|
"ImGuiTooltipFlags": "int",
|
||||||
"ImGuiTreeNodeFlags": "int",
|
"ImGuiTreeNodeFlags": "int",
|
||||||
|
"ImGuiTreeNodeStackData": "struct ImGuiTreeNodeStackData",
|
||||||
"ImGuiTypingSelectFlags": "int",
|
"ImGuiTypingSelectFlags": "int",
|
||||||
"ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest",
|
"ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest",
|
||||||
"ImGuiTypingSelectState": "struct ImGuiTypingSelectState",
|
"ImGuiTypingSelectState": "struct ImGuiTypingSelectState",
|
||||||
@@ -167,8 +169,6 @@
|
|||||||
"ImGuiViewportFlags": "int",
|
"ImGuiViewportFlags": "int",
|
||||||
"ImGuiViewportP": "struct ImGuiViewportP",
|
"ImGuiViewportP": "struct ImGuiViewportP",
|
||||||
"ImGuiWindow": "struct ImGuiWindow",
|
"ImGuiWindow": "struct ImGuiWindow",
|
||||||
"ImGuiWindowClass": "struct ImGuiWindowClass",
|
|
||||||
"ImGuiWindowDockStyle": "struct ImGuiWindowDockStyle",
|
|
||||||
"ImGuiWindowFlags": "int",
|
"ImGuiWindowFlags": "int",
|
||||||
"ImGuiWindowRefreshFlags": "int",
|
"ImGuiWindowRefreshFlags": "int",
|
||||||
"ImGuiWindowSettings": "struct ImGuiWindowSettings",
|
"ImGuiWindowSettings": "struct ImGuiWindowSettings",
|
||||||
@@ -180,7 +180,8 @@
|
|||||||
"ImS32": "signed int",
|
"ImS32": "signed int",
|
||||||
"ImS64": "signed long long",
|
"ImS64": "signed long long",
|
||||||
"ImS8": "signed char",
|
"ImS8": "signed char",
|
||||||
"ImTextureID": "void*",
|
"ImStbTexteditState": "ImStb::STB_TexteditState",
|
||||||
|
"ImTextureID": "ImU64",
|
||||||
"ImU16": "unsigned short",
|
"ImU16": "unsigned short",
|
||||||
"ImU32": "unsigned int",
|
"ImU32": "unsigned int",
|
||||||
"ImU64": "unsigned long long",
|
"ImU64": "unsigned long long",
|
||||||
@@ -192,11 +193,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"
|
||||||
"StbTexteditRow": "struct StbTexteditRow",
|
|
||||||
"StbUndoRecord": "struct StbUndoRecord",
|
|
||||||
"StbUndoState": "struct StbUndoState",
|
|
||||||
"const_iterator": "const value_type*",
|
|
||||||
"iterator": "value_type*",
|
|
||||||
"value_type": "T"
|
|
||||||
}
|
}
|
@@ -1,203 +1,197 @@
|
|||||||
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["ImGuiButtonFlags"] = "int"
|
ImGuiBoxSelectState="struct ImGuiBoxSelectState",
|
||||||
defs["ImGuiChildFlags"] = "int"
|
ImGuiButtonFlags="int",
|
||||||
defs["ImGuiCol"] = "int"
|
ImGuiChildFlags="int",
|
||||||
defs["ImGuiColorEditFlags"] = "int"
|
ImGuiCol="int",
|
||||||
defs["ImGuiColorMod"] = "struct ImGuiColorMod"
|
ImGuiColorEditFlags="int",
|
||||||
defs["ImGuiComboFlags"] = "int"
|
ImGuiColorMod="struct ImGuiColorMod",
|
||||||
defs["ImGuiComboPreviewData"] = "struct ImGuiComboPreviewData"
|
ImGuiComboFlags="int",
|
||||||
defs["ImGuiCond"] = "int"
|
ImGuiComboPreviewData="struct ImGuiComboPreviewData",
|
||||||
defs["ImGuiConfigFlags"] = "int"
|
ImGuiCond="int",
|
||||||
defs["ImGuiContext"] = "struct ImGuiContext"
|
ImGuiConfigFlags="int",
|
||||||
defs["ImGuiContextHook"] = "struct ImGuiContextHook"
|
ImGuiContext="struct ImGuiContext",
|
||||||
defs["ImGuiContextHookCallback"] = "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);"
|
ImGuiContextHook="struct ImGuiContextHook",
|
||||||
defs["ImGuiDataAuthority"] = "int"
|
ImGuiContextHookCallback="void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
|
||||||
defs["ImGuiDataType"] = "int"
|
ImGuiDataType="int",
|
||||||
defs["ImGuiDataTypeInfo"] = "struct ImGuiDataTypeInfo"
|
ImGuiDataTypeInfo="struct ImGuiDataTypeInfo",
|
||||||
defs["ImGuiDataTypeStorage"] = "struct ImGuiDataTypeStorage"
|
ImGuiDataTypeStorage="struct ImGuiDataTypeStorage",
|
||||||
defs["ImGuiDataVarInfo"] = "struct ImGuiDataVarInfo"
|
ImGuiDeactivatedItemData="struct ImGuiDeactivatedItemData",
|
||||||
defs["ImGuiDebugAllocEntry"] = "struct ImGuiDebugAllocEntry"
|
ImGuiDebugAllocEntry="struct ImGuiDebugAllocEntry",
|
||||||
defs["ImGuiDebugAllocInfo"] = "struct ImGuiDebugAllocInfo"
|
ImGuiDebugAllocInfo="struct ImGuiDebugAllocInfo",
|
||||||
defs["ImGuiDebugLogFlags"] = "int"
|
ImGuiDebugLogFlags="int",
|
||||||
defs["ImGuiDockContext"] = "struct ImGuiDockContext"
|
ImGuiDragDropFlags="int",
|
||||||
defs["ImGuiDockNode"] = "struct ImGuiDockNode"
|
ImGuiErrorCallback="void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
|
||||||
defs["ImGuiDockNodeFlags"] = "int"
|
ImGuiErrorRecoveryState="struct ImGuiErrorRecoveryState",
|
||||||
defs["ImGuiDockNodeSettings"] = "struct ImGuiDockNodeSettings"
|
ImGuiFocusRequestFlags="int",
|
||||||
defs["ImGuiDockRequest"] = "struct ImGuiDockRequest"
|
ImGuiFocusScopeData="struct ImGuiFocusScopeData",
|
||||||
defs["ImGuiDragDropFlags"] = "int"
|
ImGuiFocusedFlags="int",
|
||||||
defs["ImGuiErrorLogCallback"] = "void(*)(void* user_data,const char* fmt,...);"
|
ImGuiGroupData="struct ImGuiGroupData",
|
||||||
defs["ImGuiFocusRequestFlags"] = "int"
|
ImGuiHoveredFlags="int",
|
||||||
defs["ImGuiFocusScopeData"] = "struct ImGuiFocusScopeData"
|
ImGuiID="unsigned int",
|
||||||
defs["ImGuiFocusedFlags"] = "int"
|
ImGuiIDStackTool="struct ImGuiIDStackTool",
|
||||||
defs["ImGuiGroupData"] = "struct ImGuiGroupData"
|
ImGuiIO="struct ImGuiIO",
|
||||||
defs["ImGuiHoveredFlags"] = "int"
|
ImGuiInputEvent="struct ImGuiInputEvent",
|
||||||
defs["ImGuiID"] = "unsigned int"
|
ImGuiInputEventAppFocused="struct ImGuiInputEventAppFocused",
|
||||||
defs["ImGuiIDStackTool"] = "struct ImGuiIDStackTool"
|
ImGuiInputEventKey="struct ImGuiInputEventKey",
|
||||||
defs["ImGuiIO"] = "struct ImGuiIO"
|
ImGuiInputEventMouseButton="struct ImGuiInputEventMouseButton",
|
||||||
defs["ImGuiInputEvent"] = "struct ImGuiInputEvent"
|
ImGuiInputEventMousePos="struct ImGuiInputEventMousePos",
|
||||||
defs["ImGuiInputEventAppFocused"] = "struct ImGuiInputEventAppFocused"
|
ImGuiInputEventMouseWheel="struct ImGuiInputEventMouseWheel",
|
||||||
defs["ImGuiInputEventKey"] = "struct ImGuiInputEventKey"
|
ImGuiInputEventText="struct ImGuiInputEventText",
|
||||||
defs["ImGuiInputEventMouseButton"] = "struct ImGuiInputEventMouseButton"
|
ImGuiInputFlags="int",
|
||||||
defs["ImGuiInputEventMousePos"] = "struct ImGuiInputEventMousePos"
|
ImGuiInputTextCallback="int (*)(ImGuiInputTextCallbackData* data);",
|
||||||
defs["ImGuiInputEventMouseViewport"] = "struct ImGuiInputEventMouseViewport"
|
ImGuiInputTextCallbackData="struct ImGuiInputTextCallbackData",
|
||||||
defs["ImGuiInputEventMouseWheel"] = "struct ImGuiInputEventMouseWheel"
|
ImGuiInputTextDeactivateData="struct ImGuiInputTextDeactivateData",
|
||||||
defs["ImGuiInputEventText"] = "struct ImGuiInputEventText"
|
ImGuiInputTextDeactivatedState="struct ImGuiInputTextDeactivatedState",
|
||||||
defs["ImGuiInputFlags"] = "int"
|
ImGuiInputTextFlags="int",
|
||||||
defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData* data);"
|
ImGuiInputTextState="struct ImGuiInputTextState",
|
||||||
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData"
|
ImGuiItemFlags="int",
|
||||||
defs["ImGuiInputTextDeactivateData"] = "struct ImGuiInputTextDeactivateData"
|
ImGuiItemStatusFlags="int",
|
||||||
defs["ImGuiInputTextDeactivatedState"] = "struct ImGuiInputTextDeactivatedState"
|
ImGuiKeyChord="int",
|
||||||
defs["ImGuiInputTextFlags"] = "int"
|
ImGuiKeyData="struct ImGuiKeyData",
|
||||||
defs["ImGuiInputTextState"] = "struct ImGuiInputTextState"
|
ImGuiKeyOwnerData="struct ImGuiKeyOwnerData",
|
||||||
defs["ImGuiItemFlags"] = "int"
|
ImGuiKeyRoutingData="struct ImGuiKeyRoutingData",
|
||||||
defs["ImGuiItemStatusFlags"] = "int"
|
ImGuiKeyRoutingIndex="ImS16",
|
||||||
defs["ImGuiKeyChord"] = "int"
|
ImGuiKeyRoutingTable="struct ImGuiKeyRoutingTable",
|
||||||
defs["ImGuiKeyData"] = "struct ImGuiKeyData"
|
ImGuiLastItemData="struct ImGuiLastItemData",
|
||||||
defs["ImGuiKeyOwnerData"] = "struct ImGuiKeyOwnerData"
|
ImGuiLayoutType="int",
|
||||||
defs["ImGuiKeyRoutingData"] = "struct ImGuiKeyRoutingData"
|
ImGuiListClipper="struct ImGuiListClipper",
|
||||||
defs["ImGuiKeyRoutingIndex"] = "ImS16"
|
ImGuiListClipperData="struct ImGuiListClipperData",
|
||||||
defs["ImGuiKeyRoutingTable"] = "struct ImGuiKeyRoutingTable"
|
ImGuiListClipperRange="struct ImGuiListClipperRange",
|
||||||
defs["ImGuiLastItemData"] = "struct ImGuiLastItemData"
|
ImGuiLocEntry="struct ImGuiLocEntry",
|
||||||
defs["ImGuiLayoutType"] = "int"
|
ImGuiLogFlags="int",
|
||||||
defs["ImGuiListClipper"] = "struct ImGuiListClipper"
|
ImGuiMemAllocFunc="void* (*)(size_t sz, void* user_data);",
|
||||||
defs["ImGuiListClipperData"] = "struct ImGuiListClipperData"
|
ImGuiMemFreeFunc="void (*)(void* ptr, void* user_data);",
|
||||||
defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange"
|
ImGuiMenuColumns="struct ImGuiMenuColumns",
|
||||||
defs["ImGuiLocEntry"] = "struct ImGuiLocEntry"
|
ImGuiMetricsConfig="struct ImGuiMetricsConfig",
|
||||||
defs["ImGuiMemAllocFunc"] = "void*(*)(size_t sz,void* user_data);"
|
ImGuiMouseButton="int",
|
||||||
defs["ImGuiMemFreeFunc"] = "void(*)(void* ptr,void* user_data);"
|
ImGuiMouseCursor="int",
|
||||||
defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns"
|
ImGuiMultiSelectFlags="int",
|
||||||
defs["ImGuiMetricsConfig"] = "struct ImGuiMetricsConfig"
|
ImGuiMultiSelectIO="struct ImGuiMultiSelectIO",
|
||||||
defs["ImGuiMouseButton"] = "int"
|
ImGuiMultiSelectState="struct ImGuiMultiSelectState",
|
||||||
defs["ImGuiMouseCursor"] = "int"
|
ImGuiMultiSelectTempData="struct ImGuiMultiSelectTempData",
|
||||||
defs["ImGuiNavHighlightFlags"] = "int"
|
ImGuiNavItemData="struct ImGuiNavItemData",
|
||||||
defs["ImGuiNavItemData"] = "struct ImGuiNavItemData"
|
ImGuiNavMoveFlags="int",
|
||||||
defs["ImGuiNavMoveFlags"] = "int"
|
ImGuiNavRenderCursorFlags="int",
|
||||||
defs["ImGuiNavTreeNodeData"] = "struct ImGuiNavTreeNodeData"
|
ImGuiNextItemData="struct ImGuiNextItemData",
|
||||||
defs["ImGuiNextItemData"] = "struct ImGuiNextItemData"
|
ImGuiNextItemDataFlags="int",
|
||||||
defs["ImGuiNextItemDataFlags"] = "int"
|
ImGuiNextWindowData="struct ImGuiNextWindowData",
|
||||||
defs["ImGuiNextWindowData"] = "struct ImGuiNextWindowData"
|
ImGuiNextWindowDataFlags="int",
|
||||||
defs["ImGuiNextWindowDataFlags"] = "int"
|
ImGuiOldColumnData="struct ImGuiOldColumnData",
|
||||||
defs["ImGuiOldColumnData"] = "struct ImGuiOldColumnData"
|
ImGuiOldColumnFlags="int",
|
||||||
defs["ImGuiOldColumnFlags"] = "int"
|
ImGuiOldColumns="struct ImGuiOldColumns",
|
||||||
defs["ImGuiOldColumns"] = "struct ImGuiOldColumns"
|
ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame",
|
||||||
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame"
|
ImGuiPayload="struct ImGuiPayload",
|
||||||
defs["ImGuiPayload"] = "struct ImGuiPayload"
|
ImGuiPlatformIO="struct ImGuiPlatformIO",
|
||||||
defs["ImGuiPlatformIO"] = "struct ImGuiPlatformIO"
|
ImGuiPlatformImeData="struct ImGuiPlatformImeData",
|
||||||
defs["ImGuiPlatformImeData"] = "struct ImGuiPlatformImeData"
|
ImGuiPopupData="struct ImGuiPopupData",
|
||||||
defs["ImGuiPlatformMonitor"] = "struct ImGuiPlatformMonitor"
|
ImGuiPopupFlags="int",
|
||||||
defs["ImGuiPopupData"] = "struct ImGuiPopupData"
|
ImGuiPtrOrIndex="struct ImGuiPtrOrIndex",
|
||||||
defs["ImGuiPopupFlags"] = "int"
|
ImGuiScrollFlags="int",
|
||||||
defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex"
|
ImGuiSelectableFlags="int",
|
||||||
defs["ImGuiScrollFlags"] = "int"
|
ImGuiSelectionBasicStorage="struct ImGuiSelectionBasicStorage",
|
||||||
defs["ImGuiSelectableFlags"] = "int"
|
ImGuiSelectionExternalStorage="struct ImGuiSelectionExternalStorage",
|
||||||
defs["ImGuiSelectionUserData"] = "ImS64"
|
ImGuiSelectionRequest="struct ImGuiSelectionRequest",
|
||||||
defs["ImGuiSeparatorFlags"] = "int"
|
ImGuiSelectionUserData="ImS64",
|
||||||
defs["ImGuiSettingsHandler"] = "struct ImGuiSettingsHandler"
|
ImGuiSeparatorFlags="int",
|
||||||
defs["ImGuiShrinkWidthItem"] = "struct ImGuiShrinkWidthItem"
|
ImGuiSettingsHandler="struct ImGuiSettingsHandler",
|
||||||
defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);"
|
ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem",
|
||||||
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData"
|
ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);",
|
||||||
defs["ImGuiSliderFlags"] = "int"
|
ImGuiSizeCallbackData="struct ImGuiSizeCallbackData",
|
||||||
defs["ImGuiStackLevelInfo"] = "struct ImGuiStackLevelInfo"
|
ImGuiSliderFlags="int",
|
||||||
defs["ImGuiStackSizes"] = "struct ImGuiStackSizes"
|
ImGuiStackLevelInfo="struct ImGuiStackLevelInfo",
|
||||||
defs["ImGuiStorage"] = "struct ImGuiStorage"
|
ImGuiStorage="struct ImGuiStorage",
|
||||||
defs["ImGuiStoragePair"] = "struct ImGuiStoragePair"
|
ImGuiStoragePair="struct ImGuiStoragePair",
|
||||||
defs["ImGuiStyle"] = "struct ImGuiStyle"
|
ImGuiStyle="struct ImGuiStyle",
|
||||||
defs["ImGuiStyleMod"] = "struct ImGuiStyleMod"
|
ImGuiStyleMod="struct ImGuiStyleMod",
|
||||||
defs["ImGuiStyleVar"] = "int"
|
ImGuiStyleVar="int",
|
||||||
defs["ImGuiTabBar"] = "struct ImGuiTabBar"
|
ImGuiStyleVarInfo="struct ImGuiStyleVarInfo",
|
||||||
defs["ImGuiTabBarFlags"] = "int"
|
ImGuiTabBar="struct ImGuiTabBar",
|
||||||
defs["ImGuiTabItem"] = "struct ImGuiTabItem"
|
ImGuiTabBarFlags="int",
|
||||||
defs["ImGuiTabItemFlags"] = "int"
|
ImGuiTabItem="struct ImGuiTabItem",
|
||||||
defs["ImGuiTable"] = "struct ImGuiTable"
|
ImGuiTabItemFlags="int",
|
||||||
defs["ImGuiTableBgTarget"] = "int"
|
ImGuiTable="struct ImGuiTable",
|
||||||
defs["ImGuiTableCellData"] = "struct ImGuiTableCellData"
|
ImGuiTableBgTarget="int",
|
||||||
defs["ImGuiTableColumn"] = "struct ImGuiTableColumn"
|
ImGuiTableCellData="struct ImGuiTableCellData",
|
||||||
defs["ImGuiTableColumnFlags"] = "int"
|
ImGuiTableColumn="struct ImGuiTableColumn",
|
||||||
defs["ImGuiTableColumnIdx"] = "ImS16"
|
ImGuiTableColumnFlags="int",
|
||||||
defs["ImGuiTableColumnSettings"] = "struct ImGuiTableColumnSettings"
|
ImGuiTableColumnIdx="ImS16",
|
||||||
defs["ImGuiTableColumnSortSpecs"] = "struct ImGuiTableColumnSortSpecs"
|
ImGuiTableColumnSettings="struct ImGuiTableColumnSettings",
|
||||||
defs["ImGuiTableColumnsSettings"] = "struct ImGuiTableColumnsSettings"
|
ImGuiTableColumnSortSpecs="struct ImGuiTableColumnSortSpecs",
|
||||||
defs["ImGuiTableDrawChannelIdx"] = "ImU16"
|
ImGuiTableColumnsSettings="struct ImGuiTableColumnsSettings",
|
||||||
defs["ImGuiTableFlags"] = "int"
|
ImGuiTableDrawChannelIdx="ImU16",
|
||||||
defs["ImGuiTableHeaderData"] = "struct ImGuiTableHeaderData"
|
ImGuiTableFlags="int",
|
||||||
defs["ImGuiTableInstanceData"] = "struct ImGuiTableInstanceData"
|
ImGuiTableHeaderData="struct ImGuiTableHeaderData",
|
||||||
defs["ImGuiTableRowFlags"] = "int"
|
ImGuiTableInstanceData="struct ImGuiTableInstanceData",
|
||||||
defs["ImGuiTableSettings"] = "struct ImGuiTableSettings"
|
ImGuiTableRowFlags="int",
|
||||||
defs["ImGuiTableSortSpecs"] = "struct ImGuiTableSortSpecs"
|
ImGuiTableSettings="struct ImGuiTableSettings",
|
||||||
defs["ImGuiTableTempData"] = "struct ImGuiTableTempData"
|
ImGuiTableSortSpecs="struct ImGuiTableSortSpecs",
|
||||||
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
|
ImGuiTableTempData="struct ImGuiTableTempData",
|
||||||
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
|
ImGuiTextBuffer="struct ImGuiTextBuffer",
|
||||||
defs["ImGuiTextFlags"] = "int"
|
ImGuiTextFilter="struct ImGuiTextFilter",
|
||||||
defs["ImGuiTextIndex"] = "struct ImGuiTextIndex"
|
ImGuiTextFlags="int",
|
||||||
defs["ImGuiTextRange"] = "struct ImGuiTextRange"
|
ImGuiTextIndex="struct ImGuiTextIndex",
|
||||||
defs["ImGuiTooltipFlags"] = "int"
|
ImGuiTextRange="struct ImGuiTextRange",
|
||||||
defs["ImGuiTreeNodeFlags"] = "int"
|
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"
|
ImGuiWindowFlags="int",
|
||||||
defs["ImGuiWindowRefreshFlags"] = "int"
|
ImGuiWindowRefreshFlags="int",
|
||||||
defs["ImGuiWindowSettings"] = "struct ImGuiWindowSettings"
|
ImGuiWindowSettings="struct ImGuiWindowSettings",
|
||||||
defs["ImGuiWindowStackData"] = "struct ImGuiWindowStackData"
|
ImGuiWindowStackData="struct ImGuiWindowStackData",
|
||||||
defs["ImGuiWindowTempData"] = "struct ImGuiWindowTempData"
|
ImGuiWindowTempData="struct ImGuiWindowTempData",
|
||||||
defs["ImPoolIdx"] = "int"
|
ImPoolIdx="int",
|
||||||
defs["ImRect"] = "struct ImRect"
|
ImRect="struct ImRect",
|
||||||
defs["ImS16"] = "signed short"
|
ImS16="signed short",
|
||||||
defs["ImS32"] = "signed int"
|
ImS32="signed int",
|
||||||
defs["ImS64"] = "signed long long"
|
ImS64="signed long long",
|
||||||
defs["ImS8"] = "signed char"
|
ImS8="signed char",
|
||||||
defs["ImTextureID"] = "void*"
|
ImStbTexteditState="ImStb::STB_TexteditState",
|
||||||
defs["ImU16"] = "unsigned short"
|
ImTextureID="ImU64",
|
||||||
defs["ImU32"] = "unsigned int"
|
ImU16="unsigned short",
|
||||||
defs["ImU64"] = "unsigned long long"
|
ImU32="unsigned int",
|
||||||
defs["ImU8"] = "unsigned char"
|
ImU64="unsigned long long",
|
||||||
defs["ImVec1"] = "struct ImVec1"
|
ImU8="unsigned char",
|
||||||
defs["ImVec2"] = "struct ImVec2"
|
ImVec1="struct ImVec1",
|
||||||
defs["ImVec2ih"] = "struct ImVec2ih"
|
ImVec2="struct ImVec2",
|
||||||
defs["ImVec4"] = "struct ImVec4"
|
ImVec2ih="struct ImVec2ih",
|
||||||
defs["ImWchar"] = "ImWchar16"
|
ImVec4="struct ImVec4",
|
||||||
defs["ImWchar16"] = "unsigned short"
|
ImWchar="ImWchar16",
|
||||||
defs["ImWchar32"] = "unsigned int"
|
ImWchar16="unsigned short",
|
||||||
defs["STB_TexteditState"] = "struct STB_TexteditState"
|
ImWchar32="unsigned int",
|
||||||
defs["StbTexteditRow"] = "struct StbTexteditRow"
|
STB_TexteditState="struct STB_TexteditState"}
|
||||||
defs["StbUndoRecord"] = "struct StbUndoRecord"
|
return t
|
||||||
defs["StbUndoState"] = "struct StbUndoState"
|
|
||||||
defs["const_iterator"] = "const value_type*"
|
|
||||||
defs["iterator"] = "value_type*"
|
|
||||||
defs["value_type"] = "T"
|
|
||||||
|
|
||||||
return defs
|
|
@@ -31,3 +31,7 @@
|
|||||||
#ifdef ImDrawCallback_ResetRenderState
|
#ifdef ImDrawCallback_ResetRenderState
|
||||||
#pragma message(CIMGUI_DEFSTRING(ImDrawCallback_ResetRenderState))
|
#pragma message(CIMGUI_DEFSTRING(ImDrawCallback_ResetRenderState))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IMGUI_HAS_TEXTURES
|
||||||
|
#pragma message(CIMGUI_DEFSTRING(IMGUI_HAS_TEXTURES))
|
||||||
|
#endif
|
2
imgui
2
imgui
Submodule imgui updated: 3369cbd277...97428e8ac9
Reference in New Issue
Block a user