Compare commits

...

250 Commits

Author SHA1 Message Date
sonoro1234
9bc279c4d8 pull imgui docking 1.91.7 and generate 2025-01-21 15:59:46 +01:00
sonoro1234
46c47d5703 generator.lua: change for Used4kPagesMap -> Used8kPagesMap 2025-01-21 10:50:30 +01:00
sonoro1234
e5facd9083 cpp2ffi: better functypedef parsing
Some checks failed
Build / build (ubuntu-latest) (push) Failing after 4s
Build / build (macOS-latest) (push) Has been cancelled
Build / build (windows-latest) (push) Has been cancelled
2025-01-17 17:08:30 +01:00
sonoro1234
7d50243c50 better ftemplates repair 2025-01-08 16:49:42 +01:00
sonoro1234
7715efaa41 cpp2ffi: constexpr -> static const and ftemplates repair 2025-01-08 15:54:31 +01:00
sonoro1234
9cc8f27f61 cpp2ffi: autodetect nonPOD 2025-01-08 12:41:00 +01:00
sonoro1234
df65595422 generation 2025-01-08 10:46:11 +01:00
sonoro1234
2a0af76f16 cpp2ffi: git diffs are line oriented so Lua serializer uses pretty 2025-01-08 10:45:47 +01:00
sonoro1234
1053d1584f cpp2ffi: final and operator keywords 2025-01-08 00:43:55 +01:00
sonoro1234
d83e8c5892 oops!! doing last commit complete (Always have to build before commiting) 2025-01-06 19:10:59 +01:00
sonoro1234
98b667f601 modify manual function for ImGuiTextBuffer issue #283 2025-01-06 18:19:54 +01:00
sonoro1234
d9982af929 generation with new lua serializer 2024-12-18 15:17:18 +01:00
sonoro1234
58763282f8 cpp2ffi: more compact lua serialization 2024-12-18 15:15:46 +01:00
sonoro1234
970c614802 pull imgui docking 1.91.6 and generate 2024-12-12 13:13:36 +01:00
sonoro1234
3d5b2e7650 dont break cimgui.h on comments generation 2024-11-19 07:54:41 +01:00
sonoro1234
4e89eac938 pull imgui docking 1.91.5 and generate 2024-11-18 18:20:25 +01:00
sonoro1234
bd2ea2acbb cpp2ffi: move typedefs_dict to gen_structs_and_enums_table 2024-11-06 16:36:29 +01:00
sonoro1234
69d3b29392 update README.md 2024-11-05 16:34:30 +01:00
sonoro1234
1c3d694f36 generator: _destroy functions get location
IMGUI_USE_FREETYPE and IMGUI_USE_WCHAR32 are build options now.
cmake takes IMGUI_FREETYPE and IMGUI_WCHAR32
2024-11-05 16:30:47 +01:00
sonoro1234
be19fd11eb cpp2ffi.lua, generator ... :get manual funcs args and ret 2024-11-01 13:47:14 +01:00
sonoro1234
fdd07821bb CMakeLists.txt: add cimconfig.h to #undef NDEBUG even in release mode https://github.com/ocornut/imgui/issues/8078 2024-10-21 09:59:59 +02:00
sonoro1234
7640b00d27 pull imgui docking 1.91.4 and generate 2024-10-19 11:48:14 +02:00
sonoro1234
90f2147dbe generator: add sdl3 and generate 2024-10-12 11:52:55 +02:00
sonoro1234
8268b6748b pull imgui 1.91.3 docking and generate 2024-10-05 10:59:13 +02:00
sonoro1234
652d4cbc89 pull imgui 1.91.2 and generate 2024-10-01 12:49:47 +02:00
sonoro1234
e50a65fd62 cpp2ffi: templates from classes name :: -> _ 2024-09-24 18:52:47 +02:00
sonoro1234
f276fd4ae1 cpp2ffi: initial changes for processing classes 2024-09-24 17:47:48 +02:00
sonoro1234
c06a46b0f2 cpp2ffi: get enum name from typedef enum ... 2024-09-23 10:53:32 +02:00
sonoro1234
a051fe287b constructors missed semicolon 2024-09-18 17:16:45 +02:00
sonoro1234
411924f104 script param "constructors" to add the _Construct version of constructors issue #278 2024-09-18 14:36:22 +02:00
sonoro1234
0c7f67607d cpp2ffi: get class name 2024-09-14 20:19:51 +02:00
sonoro1234
51197f420a cpp2ffi: clean namespace in typedefs issue #277 2024-09-11 11:39:05 +02:00
sonoro1234
ed017a0704 pull imgui 1.91.1 docking and generate 2024-09-06 16:56:46 +02:00
sonoro1234
c482a65118 cpp2ffi: drop (int) from enums 2024-09-06 16:55:13 +02:00
sonoro1234
35a4e8f893 pull imgui 1.91.0 and generate 2024-07-31 11:23:21 +02:00
sonoro1234
2b4d572704 cimgui_template: new -> IM_NEW issue #272 2024-07-31 11:16:41 +02:00
sonoro1234
f6fb347cf1 pull 1.90.9 docking and generate 2024-07-03 11:05:17 +02:00
sonoro1234
d8f958f680 example_glfw_opengl3/CMakeLists.txt: move definitions to avoid glfw compilation error. 2024-06-15 17:40:12 +02:00
sonoro1234
ee251eaafa cpp2ffi: only change type&name but not type &name 2024-06-14 18:51:00 +02:00
sonoro1234
00ecbb0ee2 backend_test: make glfw examples work with dynamic and static linking 2024-06-14 16:25:20 +02:00
sonoro1234
577f2b088a example_glfw_dx11/main.c: avoid compiler warning 2024-06-13 10:45:34 +02:00
sonoro1234
26152eac73 add backend_test/example_glfw_dx11 2024-06-13 09:51:41 +02:00
sonoro1234
7c16d31cdb pull imgui docking 1.90.8 and generate 2024-06-07 13:21:00 +02:00
sonoro1234
b3e02743f2 avoid type&name -> type& name 2024-06-07 13:18:13 +02:00
sonoro1234
155d5961dc add definitions to cimgui.h (issue #268) 2024-06-01 12:54:07 +02:00
sonoro1234
a01f163a81 pull imgui 1.90.7 dock and generate 2024-05-28 10:12:28 +02:00
sonoro1234
67cf8c96b7 pull imgui 1.90.6 and generate 2024-05-10 17:06:30 +02:00
sonoro1234
f055d73efc pull imgui 1.90.5 and generate 2024-04-19 10:48:53 +02:00
Victor Bombi
781edadf8d Merge pull request #265 from alfredbaudisch/add-raylib-cimgui
Added raylib-cimgui to the README
2024-04-08 11:40:40 +02:00
Alfred Reinold Baudisch
b6520c67a8 Added raylib-cimgui to the README 2024-04-07 18:07:33 +01:00
sonoro1234
eb0649acf3 pull ImDrawCallback_ResetRenderState to cimgui.h 2024-02-27 09:56:32 +01:00
sonoro1234
4486dace2a update readme 2024-02-24 13:05:48 +01:00
sonoro1234
bd0a584e56 pull imgui 1.90.4 and generate 2024-02-24 13:03:13 +01:00
sonoro1234
7ea55fbcea pull imgui 1.90.3 docking and generate 2024-02-16 11:31:30 +01:00
sonoro1234
53580da638 pull imgui 1.90.2 and generate 2024-02-14 11:11:46 +01:00
Victor Bombi
04961a999e Merge pull request #260 from Sirius902/zig-cc
Allow use of zig cc in generator.lua
2024-01-27 12:51:42 +01:00
Sirius902
b8ae217fd1 Allow use of zig cc in generator 2024-01-26 14:17:33 -08:00
sonoro1234
831f155f60 pull imgui 1.90.1 docking and generate 2024-01-12 11:21:08 +01:00
sonoro1234
6fd23e83ff README.md: update backends information 2023-11-21 11:19:50 +01:00
sonoro1234
21e7106aa1 print_defines.cpp: add IMGUI_VERSION_NUM 2023-11-17 11:18:17 +01:00
sonoro1234
0a31d9d923 update readme 2023-11-17 11:01:26 +01:00
sonoro1234
37f347e062 pull imgui 1.90 and generate 2023-11-17 11:00:07 +01:00
sonoro1234
86f59d7e9b cpp2ffi: more returns in name_overloadsAlgo 2023-11-17 10:57:34 +01:00
sonoro1234
4ca6b29166 CMakeLists.txt: allow using CMAKE_MSVC_RUNTIME_LIBRARY 2023-09-20 11:01:32 +02:00
sonoro1234
5140ea5c81 cpp2ffi: correct embeded_structs for untagged structs (ImNodes needs that) 2023-09-12 10:02:06 +02:00
sonoro1234
935ca882ec cpp2ffi: fix unamed nested struct and do string substitution (ImNodes needs it) 2023-09-11 18:38:07 +02:00
sonoro1234
925b29db67 cpp2ffi: take care of unamed nested structs and brace initializers (rokups/ImNodes needs that) 2023-09-06 17:29:41 +02:00
sonoro1234
44769f63d4 pull imgui 1.89.9 docking and generate 2023-09-04 18:53:07 +02:00
sonoro1234
a21e28e740 update readme 2023-08-02 17:50:11 +02:00
sonoro1234
35fc7d191e pull imgui 1.89.8 and generate 2023-08-02 17:45:25 +02:00
sonoro1234
6c31357d99 take care of pointers to templates 2023-08-02 17:44:18 +02:00
Victor Bombi
c62361059e Merge pull request #248 from KhankNyo/windows_makeclean
Makefile: clean target for windows
2023-07-27 11:26:55 +02:00
Khanh
dcad905f2e Merge branch 'windows_makeclean' of https://github.com/KhankNyo/cimgui into windows_makeclean
added checks in clean and fclean target to use Windows's "del" command
Windows does not have "rm"
2023-07-25 12:13:10 -07:00
Khanh
8fa77b6ad4 Makefile: clean target for windows 2023-07-25 12:11:37 -07:00
Khanh
a518ecc934 make clean target for windows 2023-07-25 12:06:08 -07:00
sonoro1234
b15f98a4c0 avoid deleting info for JSON and generate (issue #245) 2023-07-15 17:23:15 +02:00
sonoro1234
c8c5add506 pull imgui 1.89.7 docking and generate 2023-07-04 18:19:48 +02:00
Victor Bombi
dccbce96fb Merge pull request #243 from xEgoist/docking_inter
use "installed" directory for vcpkg instead of packages and explicitly install x64 target
2023-06-22 10:14:50 +02:00
xEgoist
705cd9d8a5 CI: use x64-windows target triplet for vcpkg
Since vcpkg is transitioning to the host triplet by default in
September 2023, this should help the CI mitigate this transition by
explicitly using x64-windows target triplet.
2023-06-22 02:13:41 -05:00
xEgoist
b8dcf08413 CI: use installed directory for vcpkg instead of packages 2023-06-22 01:51:25 -05:00
sonoro1234
5c09c391af try to make github actions happy again 2023-06-18 19:15:23 +02:00
sonoro1234
55c6f914a7 pull imgui 1.89.6 and generate 2023-06-18 18:57:27 +02:00
sonoro1234
a5f9979d90 clean debug output 2023-06-18 18:56:17 +02:00
sonoro1234
a65bf47a5f solve union with comments #241 2023-06-18 18:50:28 +02:00
sonoro1234
925d24572d cpp2ffi: sanitize_comments to clean curly braces from comments 2023-04-22 14:03:40 +02:00
sonoro1234
ffda7805d2 pull imgui 1.89.5 and generate 2023-04-18 10:35:57 +02:00
Victor Bombi
9ae8e827fa Merge pull request #238 from gucio321/sh-generator-pass-cmdline-args
Sh generator: pass cmdline args
2023-04-17 18:30:44 +02:00
gucio321
9ac8211a3d generator: add help page 2023-04-17 17:13:38 +02:00
M.Sz
0c22b34cb6 generator: set default values 2023-04-17 10:13:09 +00:00
M.Sz
e2093ffbc1 generator: remove unnecessary header comment 2023-04-17 07:15:34 +00:00
M.Sz
fa81118e09 generator: add -t/--tagret options 2023-04-17 07:13:26 +00:00
M.Sz
ff19d727b7 Revert "Revert "generattor: add --cflags command line flag""
This reverts commit 2ae35c8b46.
2023-04-17 07:06:29 +00:00
sonoro1234
a0d46db2f2 readme: generation customization instructions 2023-04-05 11:02:47 +02:00
Victor Bombi
aad088b954 Merge pull request #233 from gucio321/sh-generator-pass-cmdline-args
generator.sh (.bat): pass extra command-line arguments.
2023-04-05 10:52:56 +02:00
gucio321
9d1e63d306 generator.bat: pass cmd line arguments to luajit 2023-04-05 10:49:45 +02:00
gucio321
2ae35c8b46 Revert "generattor: add --cflags command line flag"
This reverts commit 4d19dd5e17.
2023-04-05 10:49:02 +02:00
gucio321
4d19dd5e17 generattor: add --cflags command line flag 2023-04-05 10:30:26 +02:00
sonoro1234
2b9eaf3eff readme: edit cflags 2023-04-05 09:27:19 +02:00
gucio321
27aedcd3c4 generator: pass command-line arguments to GCC 2023-04-05 09:26:19 +02:00
sonoro1234
e25f9f6844 add generator options "nochar" and "noimstrv" according to issue #186 2023-03-24 17:23:28 +01:00
sonoro1234
2c8eab86f7 pull imgui 1.89.4 and generate 2023-03-14 17:52:56 +01:00
sonoro1234
ce1015bb84 backends: CIMGUI_USE_SDL is now CIMGUI_USE_SDL2 2023-02-20 20:14:51 +01:00
sonoro1234
1187e22308 pull imgui 1.89.3 generate correct sdl2 backend inclusion 2023-02-15 09:55:35 +01:00
sonoro1234
5a857ee68d cpp2ffi: dont error on not loca 2023-01-09 09:57:43 +01:00
sonoro1234
18e5891710 generator.lua add table cimgui_skipped 2023-01-08 14:38:06 +01:00
sonoro1234
56fdbf845b pull imgui docking 1.89.2 and generate 2023-01-07 10:34:35 +01:00
sonoro1234
d159c2622d correction after merge?!! 2022-12-15 10:44:29 +01:00
Victor Bombi
56892a4e3a Merge pull request #227 from rokups/rk/fix-ci
Fix windows CI builds (#226)
2022-12-15 10:29:40 +01:00
Rokas Kupstys
0a953b7102 Fix CI builds. For some reason bash on windows no longer recognizes luajit without .exe suffix.
Fixes #226
2022-12-15 10:23:58 +02:00
sonoro1234
0348715500 pull imgui 1.89.1 and generate 2022-11-26 09:10:06 +01:00
sonoro1234
68483775b3 pull imgui 1.89.1 docking and generate 2022-11-26 08:32:02 +01:00
sonoro1234
0369ceb1b4 generator.lua: use IMGUI_VERSION_NUM 2022-11-25 10:27:13 +01:00
sonoro1234
4f089273b1 cpp2ffi.lua: changes to keep comments from struct and enums (from branch comments4000) 2022-11-16 17:13:33 +01:00
sonoro1234
b0649485e9 correcting errors on last merge: example_glfw_opengl3 2022-11-16 11:15:37 +01:00
Victor Bombi
a0a7ca3ca2 Merge pull request #224 from seafork/docking_inter
Adding an example for GLFW + OpenGL
2022-11-16 11:02:33 +01:00
seafork
3e823cd2ee fixed misspelt cmake file 2022-11-15 23:06:35 -05:00
seafork
6a2b18fa65 made glfw more portable 2022-11-15 22:59:36 -05:00
seafork
75ec483e75 fixed compilation error on windows. 2022-11-15 22:09:06 -05:00
seafork
08f24307b8 cleaned up a comment 2022-11-15 19:44:24 -05:00
seafork
a9a9fa4e9e add example for glfw3 and opengl3 2022-11-15 19:27:21 -05:00
sonoro1234
ce3b504e11 update readme version 2022-11-15 17:40:22 +01:00
sonoro1234
4230a5566e pull imgui 1.89 and generate 2022-11-15 17:38:24 +01:00
sonoro1234
9ce2c32dad add info about comments generation 2022-10-06 11:11:50 +02:00
sonoro1234
3d676ffb8b cpp2ffi: skip enum forward declarations 2022-09-27 12:58:11 +02:00
sonoro1234
b9ebd289e0 CleanImU32 not called when value is sizeof(ImU32) 2022-09-16 15:34:21 +02:00
sonoro1234
9da5c5fe7c repair_defaults from generator to cpp2ffi 2022-09-16 14:07:24 +02:00
sonoro1234
3d50615659 cpp2ffi: cleanStruct and parseStructLine comments correction 2022-09-09 15:44:51 +02:00
sonoro1234
938d146a41 cpp2ffi and generator: delete bad comments on functionD_re, repair split_comment 2022-09-09 12:00:01 +02:00
sonoro1234
7225c4ae3c generator.lua: prepare for comments 2022-09-08 13:46:03 +02:00
sonoro1234
feb7829edc cpp2ffi: prepare parser:parseItems for comments 2022-09-08 13:31:13 +02:00
sonoro1234
6eb85e7d5c generator: Clearly fail when parse fails; exclude obsolete fns for cl. Thanks to @idbrii 2022-09-01 19:06:19 +02:00
sonoro1234
068e91970d cpp2ffi: add custom generation machinery 2022-08-30 12:56:58 +02:00
sonoro1234
b5cce9f1a5 update .gitsubmodules 2022-08-08 11:03:54 +02:00
sonoro1234
ea5b077fbe vardef_re modified for = {} initialization 2022-08-05 14:49:26 +02:00
sonoro1234
a44ce77641 cpp2ffi: add clean_functypedef (cimplot needs it https://github.com/cimgui/cimplot/issues/11) 2022-07-25 13:11:24 +02:00
sonoro1234
15e4f5015d backend test sdl: add c++11 to CMakeLists.txt 2022-07-18 10:48:47 +02:00
sonoro1234
9b7d045962 Merge branch 'master' into docking_inter 2022-06-22 18:32:03 +02:00
sonoro1234
44b388121a generator: dont error if VULKAN_SDK==nil (because it is executed in no vulkan generation also) 2022-06-22 12:43:41 +02:00
sonoro1234
13c4f47172 generator: use VULKAN_SDK env variable to find vulkan 2022-06-22 12:33:46 +02:00
sonoro1234
d1f60f24e1 example_vulkan: add CIMGUI_USE_VULKAN and SDL 2022-06-22 12:18:03 +02:00
Victor Bombi
4c1fd9fc0a Merge pull request #204 from Sand3r-/example/sdl_vulkan
Add Vulkan example
2022-06-22 11:45:13 +02:00
sonoro1234
1616776d77 extraclean 2022-06-22 11:42:23 +02:00
Michal 'Sand3r-' Gallus
eccb961bc7 Add vulkan example info to README.md 2022-06-21 22:38:30 +02:00
Michal 'Sand3r-' Gallus
e3d115bce2 Add SDL2+Vulkan example 2022-06-21 22:38:27 +02:00
sonoro1234
82b8c66f59 extraclean 2022-06-21 22:21:25 +02:00
sonoro1234
08d5ad7f93 pull imgui 1.88 and generate 2022-06-21 20:03:54 +02:00
sonoro1234
8e625e95fd pull imgui docking and generate 2022-06-21 19:59:10 +02:00
sonoro1234
b5d0aba261 implementations generation 2022-06-21 19:54:13 +02:00
sonoro1234
0b8015191d Merge branch 'docking_inter' 2022-06-21 19:43:16 +02:00
sonoro1234
433cccd795 backend_test folder modification for several examples 2022-06-21 19:35:37 +02:00
sonoro1234
633fe954bf backend_test: modification for CIMGUI_USE 2022-06-21 19:23:41 +02:00
sonoro1234
a66528f9b1 generator.lua: impl generation now has guards CIMGUI_USE_ 2022-06-21 19:20:40 +02:00
sonoro1234
439bae8107 generation 2022-02-25 11:24:02 +01:00
sonoro1234
261250f88f generation 2022-02-25 11:22:51 +01:00
sonoro1234
069b850526 Merge branch 'master' into docking_inter 2022-02-25 11:20:45 +01:00
Victor Bombi
9a87a0d5f6 Merge pull request #197 from Xyene/Wstrict-prototypes
generator: generate `-Wstrict-prototypes`-compatible code
2022-02-25 11:13:54 +01:00
Tudor Brindus
987cf98e9c generator: generate -Wstrict-prototypes-compatible code 2022-02-24 21:23:39 -05:00
sonoro1234
618ca008ea Merge branch 'master' into docking_inter 2022-02-22 17:04:07 +01:00
Victor Bombi
881777a2fc Merge pull request #199 from rokups/rk/fix-ci
Use C++11 standard (required by Dear ImGui).
2022-02-22 16:47:04 +01:00
Rokas Kupstys
cf04541b41 Use C++11 standard (required by Dear ImGui).
Fixes #198.
2022-02-22 16:50:20 +02:00
sonoro1234
aef3787bb1 cpp2ffi: ignore constexpr 2022-02-21 16:26:54 +01:00
sonoro1234
94e632a253 cpp2ffi: ignore constexpr 2022-02-21 16:24:55 +01:00
sonoro1234
bd5a043957 pull imgui 1.87 and generate 2022-02-07 19:07:25 +01:00
sonoro1234
4492660bb9 pull imgui docking 1.87 and generate 2022-02-07 18:56:16 +01:00
sonoro1234
88e0bc9a9a Merge branch 'docking_inter' 2022-01-31 19:14:58 +01:00
sonoro1234
1afd93dd45 generation of 1.86dock with new generator 2022-01-31 17:59:15 +01:00
sonoro1234
dac713c763 generator: use gen_template_typedef_auto 2022-01-31 17:56:42 +01:00
sonoro1234
938f8ccf87 cpp2ffi: function_re changed to allow __attribute__ after function declaration, save and load cimgui_inherited, save preprocessed.h 2022-01-31 17:56:42 +01:00
sonoro1234
e6705a8522 cpp2ffi: add gen_template_typedef_auto so that user does not need to provide function 2022-01-31 17:56:42 +01:00
sonoro1234
fdc9511bd7 cpp2ffi: simplify gen_template_typedef 2022-01-31 17:56:42 +01:00
sonoro1234
fe4dff78bd cpp2ffi: clean_spaces: no spaces around >> operator 2022-01-31 17:56:42 +01:00
sonoro1234
07ceedf37b cpp2ffi: save templated structs 2022-01-31 17:56:42 +01:00
sonoro1234
0be2b20a16 cpp2ffi: check_template: dont add space between template and * 2022-01-29 16:14:28 +01:00
sonoro1234
b5f5a03851 newtypedefs generation3 2022-01-29 12:50:01 +01:00
sonoro1234
a51a8f7a86 newtypedefs generation2 2022-01-29 12:50:01 +01:00
sonoro1234
de25c00ddd generator and cpp2ffi: new typedefs generation 2022-01-29 12:50:01 +01:00
sonoro1234
678887ee99 cpp2ffi: parse_enum_value add - operator, when not loca take parent location, templates take full template string 2022-01-26 13:08:10 +01:00
sonoro1234
b0cfee6183 backend_test: no need for gl3w initialization (done by imgui opengl3 impl) 2022-01-15 20:08:58 +01:00
sonoro1234
d0bcf4551b backend_test: no need for gl3w initialization (done by imgui opengl3 impl) 2022-01-15 20:06:15 +01:00
Victor Bombi
49d45008e0 pull imgui 1.86docking and generate 2021-12-29 12:27:34 +01:00
Victor Bombi
ad929978e9 Merge pull request #192 from GrimMaple/master
Add SDL2 fallback in backend_test\CMakeLists.txt
2021-12-27 09:48:31 +01:00
Victor Bombi
b949d47c8b Merge branch 'docking_inter' 2021-12-27 09:41:02 +01:00
Victor Bombi
d359d907af generator: add IMGUI_ENABLE_FREETYPE on freetype generation 2021-12-27 09:36:31 +01:00
Grim Maple
52bbaf1117 Remove IMGUI_SDL_LIBRARY 2021-12-26 20:06:20 +03:00
Grim Maple
d5f713caa1 Add SDL2 fallback in backend_test\CMakeLists.txt
If SDL was installed using CMake, it normally goes to a location
Where it can be found by `find_package`. There is no need to force
`SDL_PATH` on users, and this commit allows building `backend_test`
Without having to specify it. Backwards compatible.
2021-12-25 22:35:30 +03:00
Victor Bombi
afce852875 Merge branch 'docking_inter' 2021-12-24 11:54:12 +01:00
Victor Bombi
a21aa1d613 pull imgui 1.86 and generate 2021-12-24 11:34:47 +01:00
Victor Bombi
e938d7e0f5 Merge branch 'docking_inter' 2021-12-06 19:41:17 +01:00
Victor Bombi
ff3bb81b34 cpp2ffi: allow __cdecl keyword in functype 2021-12-06 19:38:53 +01:00
Victor Bombi
05d7db048c Merge branch 'docking_inter' 2021-10-18 19:17:22 +02:00
Victor Bombi
ae00a9b604 pull imgui docking 1.85 and generate 2021-10-18 18:14:44 +02:00
Victor Bombi
b679737444 Merge branch 'docking_inter' 2021-09-13 11:43:10 +02:00
Victor Bombi
d9916720aa generation 2021-09-13 11:39:44 +02:00
Victor Bombi
66e28665da cpp2ffi: add struct keyword (needed when struct tag name equals member name) 2021-09-13 11:39:14 +02:00
N/A
9768b42785 Fix flag arguments parsed wrong due to a bug in compiler check 2021-09-10 11:10:15 +02:00
N/A
ec64ca94cc Disable unnecessary pragmas that break generator with the cl compiler 2021-09-10 11:10:15 +02:00
N/A
e1ccdc1764 Implement defines extraction with cl compiler 2021-09-10 11:10:15 +02:00
Victor Bombi
00946c45e4 Merge pull request #190 from THE-FYP/fix-cl
Fix generation with MSVC
2021-09-10 11:05:41 +02:00
N/A
9ac28a2d94 Fix flag arguments parsed wrong due to a bug in compiler check 2021-09-09 23:01:57 +03:00
N/A
d0e4aaa2c0 Disable unnecessary pragmas that break generator with the cl compiler 2021-09-09 22:55:55 +03:00
N/A
7362cca7ec Implement defines extraction with cl compiler 2021-09-09 22:49:28 +03:00
Victor Bombi
17ffa736d3 backend_test: use custom imgui gl3w 2021-08-22 13:50:21 +02:00
Victor Bombi
873c03c367 backend_test: use custom imgui gl3w 2021-08-22 13:48:02 +02:00
Victor Bombi
f16cdc74aa really pull imgui 2021-08-22 12:12:46 +02:00
Victor Bombi
27c328b506 pull imgui 1.84.1 and generate 2021-08-22 12:12:19 +02:00
Victor Bombi
42873df6e3 pull imgui docking 1.84.1 and generate 2021-08-22 12:07:03 +02:00
Victor Bombi
6a98f4bbed Merge branch 'docking_inter' 2021-04-07 16:48:35 +02:00
Victor Bombi
76d3b9f8b6 cpp2ffi: correct defaults for const char* version of ImStrv 2021-04-07 16:46:22 +02:00
Victor Bombi
9945968ac5 test: add igDebugCheckVersionAndDataLayout_Str 2021-04-07 16:46:22 +02:00
Victor Bombi
a6b16c6da5 Merge branch 'docking_inter' 2021-04-06 18:16:55 +02:00
Victor Bombi
6c5d782738 generation after underscore postfix 2021-04-06 18:01:41 +02:00
Victor Bombi
67dd6be572 tests: changes for overloads underscore postfix 2021-04-06 17:25:04 +02:00
Victor Bombi
39f9aba460 cpp2ffi: undercore before overloads postfix 2021-04-06 17:25:04 +02:00
Victor Bombi
e7ca10279a tests prepared for ImStrv 2021-04-06 17:25:04 +02:00
Victor Bombi
b918627f0b cpp2ffi: ADDIMSTR_S is called before name_overloadsAlgo 2021-04-06 17:25:04 +02:00
Victor Bombi
ea9720b412 Merge branch 'docking_inter' 2021-03-21 12:17:59 +01:00
Victor Bombi
01d3d13846 cimgui_template.h: drop sprintf_s on windows #185 2021-03-21 12:15:11 +01:00
Victor Bombi
2951194915 Merge branch 'docking_inter' 2021-03-21 09:48:38 +01:00
Victor Bombi
ab7578ed1f feature request #169: allowing to set IMGUI_PATH as an environment variable (defaults to ../imgui) 2021-03-21 09:47:15 +01:00
Victor Bombi
83f729b093 pull imgui master 1.82 2021-03-16 13:05:20 +01:00
Victor Bombi
34a48996e6 Merge branch 'docking_inter'
# Conflicts:
#	cimgui.cpp
#	cimgui.h
#	generator/output/definitions.json
#	generator/output/definitions.lua
#	generator/output/structs_and_enums.json
#	generator/output/structs_and_enums.lua
#	imgui
2021-03-16 13:00:24 +01:00
Victor Bombi
ccdae842e4 pull imgui docking 1.82 and generate 2021-03-16 12:45:48 +01:00
Victor Bombi
c401f71eea Merge branch 'docking_inter' 2021-03-04 13:33:42 +01:00
Victor Bombi
c22606a7f0 test and backend_test/main.c changes for compiling with ImStrv 2021-03-04 13:30:37 +01:00
Victor Bombi
6552b43aae cpp2ffi: ImStr -> ImStrv 2021-03-04 13:30:37 +01:00
Victor Bombi
3d4277be4d CMakeLists: win32 add imm32 library 2021-03-04 13:30:37 +01:00
Victor Bombi
1ffc9e53c5 Merge branch 'docking_inter' 2021-03-04 12:46:16 +01:00
Victor Bombi
13aac22a35 cpp2ffi: allow function typedefs (not only function pointer typedefs) 2021-03-04 12:44:49 +01:00
Victor Bombi
ceda975a5b Merge branch 'docking_inter' 2021-03-01 20:19:21 +01:00
Victor Bombi
aa0baa777c Makefile: add imgui_tables.cpp 2021-03-01 20:16:56 +01:00
Victor Bombi
25aa25bd83 Merge branch 'docking_inter' 2021-02-11 14:58:25 +01:00
Victor Bombi
41b397020a readme update 2021-02-11 14:50:09 +01:00
Victor Bombi
c1890d4c00 pull imgui docking 1.81 2021-02-11 10:32:01 +01:00
Victor Bombi
7756c4f53f pull imgui docking 1.81 and generate 2021-02-11 10:31:31 +01:00
Victor Bombi
ba9ec30e64 Merge branch 'docking_inter' 2021-02-05 18:12:21 +01:00
Victor Bombi
2638737f2c cpp2ffi: parse_enum_value drop outer () (ImGuizmo needed it) 2021-02-05 18:04:22 +01:00
Victor Bombi
6aa3f1decd cpp2ffi: const char* versions of ImStr take now a postfix _Strv 2021-02-05 16:06:10 +01:00
Victor Bombi
bc708a092d cpp2ffi: char* -> Str, ImStr -> STR for backward compability 2021-02-05 16:06:10 +01:00
Victor Bombi
9ac7cd93e1 test, backend_test adapt to new naming 2021-02-05 16:06:10 +01:00
Victor Bombi
2838c0317a cpp2ffi: changes for name prefixing the const char* versions of ImStr 2021-02-05 16:06:09 +01:00
Victor Bombi
c57efd953f cpp2ffi: dont expect const ImStr 2021-02-05 16:06:09 +01:00
Victor Bombi
a48009b062 test and backend_test modifications for IMGUI_HAS_IMSTR 2021-02-05 16:06:09 +01:00
Victor Bombi
383ebf3a7a cpp2ffi: ADDiMSTR_S before overload naming and copy defaults, overload_Algo improvement 2021-02-05 16:06:09 +01:00
Victor Bombi
afdbb6b799 test and backend_test prepared for IMGUI_HAS_IMSTR 2021-02-05 16:06:09 +01:00
Victor Bombi
a64de2e303 cpp2ffi: add ADDIMSTR_S function for making const char* versions of ImStr arguments 2021-02-05 16:06:09 +01:00
Victor Bombi
a9928295db generator: keep IMGUI_HAS_IMSTR definition 2021-02-05 16:06:09 +01:00
Victor Bombi
ce239ed53f cpp2ffi: overload naming char* -> Chpt (was Str) avoids clash with ImStr - > Str 2021-02-05 16:06:09 +01:00
Victor Bombi
6791a95f79 Merge branch 'docking_inter' 2021-01-27 10:54:09 +01:00
Victor Bombi
1bdfc0964e pull submodule imgui master 2021-01-24 13:15:57 +01:00
Victor Bombi
7b9f0c7499 pull imgui master and generate 2021-01-24 11:34:52 +01:00
39 changed files with 69680 additions and 42095 deletions

View File

@@ -29,7 +29,9 @@ jobs:
sudo apt-get install -y luajit
elif [ "$GITHUB_OS" == "windows-latest" ];
then
vcpkg install luajit
vcpkg install luajit:x64-windows
echo "/C/vcpkg/installed/x64-windows/tools/luajit" >> $GITHUB_PATH
echo "/C/vcpkg/installed/x64-windows/bin" >> $GITHUB_PATH
fi
- name: Download Submodules
@@ -47,7 +49,6 @@ jobs:
- name: Generate Bindings
shell: bash
run: |
export PATH=$PATH:/C/vcpkg/packages/luajit_x86-windows/tools/:/C/vcpkg/packages/luajit_x86-windows/bin/
cd ./generator
bash ./generator.sh

View File

@@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.15)
cmake_policy(SET CMP0091 NEW)
project(cimgui)
set (CMAKE_CXX_STANDARD 11)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_tables.cpp)
set(TABLES_SOURCE "imgui/imgui_tables.cpp")
else()
@@ -24,10 +26,10 @@ set(IMGUI_FREETYPE "no" CACHE STRING "Build with freetype library")
set(IMGUI_LIBRARIES )
if(IMGUI_FREETYPE)
message(STATUS "Building with freetype")
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE)
#add library and link
@@ -37,9 +39,20 @@ else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC)
if(IMGUI_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_STB_TRUETYPE)
endif(IMGUI_FREETYPE)
if(IMGUI_WCHAR32)
target_compile_definitions(cimgui PUBLIC IMGUI_USE_WCHAR32)
endif(IMGUI_WCHAR32)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
if (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))
list(APPEND IMGUI_LIBRARIES imm32)
else (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
endif (WIN32)

View File

@@ -6,6 +6,7 @@ OBJS = cimgui.o
OBJS += ./imgui/imgui.o
OBJS += ./imgui/imgui_draw.o
OBJS += ./imgui/imgui_demo.o
OBJS += ./imgui/imgui_tables.o
OBJS += ./imgui/imgui_widgets.o
CXXFLAGS=-O2 -fno-exceptions -fno-rtti
@@ -58,10 +59,18 @@ $(OUTPUTNAME):$(OBJS)
$(CXX) -o $(OUTPUTNAME) $(OBJS) $(CXXFLAGS) $(LINKFLAGS)
clean:
ifeq ($(OS),Windows_NT)
del /q $(subst /,\,$(OBJS))
else
rm -f $(OBJS)
endif
fclean: clean
ifeq ($(OS),Windows_NT)
del /q $(subst /,\,$(OUTPUTNAME))
else
rm -f $(OUTPUTNAME)
endif
re: fclean all

View File

@@ -11,7 +11,7 @@ History:
Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit)
Notes:
* currently this wrapper is based on version [1.80 of Dear ImGui with internal api]
* currently this wrapper is based on version [1.91.7 of Dear ImGui with internal api]
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
* if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project.
* All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty.
@@ -24,10 +24,11 @@ Notes:
* `git submodule update --init --recursive` (If already cloned)
* compile
* using makefile on linux/macOS/mingw (Or use CMake to generate project)
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location)
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) and IMGUI_WCHAR32
* or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master/build
For compiling with backends there is now an example with SDL2 and opengl3 in folder backend_test. It will generate a cimgui_sdl module and a test_sdl executable. You only need to provide SDL_PATH telling cmake where to look for SDL2 cmake installation.
For compiling with backends there are now examples with SDL2 and opengl3/vulkan in folder backend_test.
They'll generate a cimgui_sdl module and a test_sdl executable.
# using generator
@@ -36,13 +37,14 @@ Notes:
* you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download
* you need to use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC). (this repo was done with gcc)
* update `imgui` folder to the version you desire.
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not and Freetype2 is used or not.
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, opengl2 and opengl3 as backends.
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, comments are generated or not and if constructors are generated also with versions performing just initialization of structs provided by yourself (_Construct is added to the constructor names)
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, vulkan, opengl2 and opengl3 as backends.
* edit config_generator.lua for adding includes needed by your chosen backends (vulkan needs that).
* Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH.
* as a result some files are generated: `cimgui.cpp`, `cimgui.h` and `cimgui_impl.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the backends info.
* You can pass compiler flags to generator.sh or generator.bat at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
* You can pass compiler flags to generator.sh or generator.bat by editing them at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG)
* You are able to pass any extra argument to generator.sh (.bat) in the command-line.
* If you are using different options than cimgui repo and if you want to keep them after a cimgui update, you can keep them in a copy of generator.sh (.bat) outside of cimgui folder where `cd cimgui/generator` is used before luajit call. See https://github.com/cimgui/cimgui/issues/232#issuecomment-1497059497
# generate binding
* C interface is exposed by cimgui.h when you define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
* with your prefered language you can use the lua or json files generated as in:
@@ -93,7 +95,8 @@ Notes:
# usage with backends
* look at backend_test folder for a cmake module building with SDL and opengl3.
* look at backend_test folder for a cmake module building with SDL and opengl3, glfw and opengl3, SDL and Vulkan
* read [How can cimgui backends be used](https://github.com/cimgui/cimgui/issues/157)
# example bindings based on cimgui
@@ -115,3 +118,4 @@ Notes:
* [sdl2-cimgui-demo](https://github.com/haxpor/sdl2-cimgui-demo)
* [cimgui_c_sdl2_example](https://github.com/canoi12/cimgui_c_sdl2_example/)
* [cimgui-c-example](https://github.com/peko/cimgui-c-example) with GLFW
* [raylib-cimgui](https://github.com/alfredbaudisch/raylib-cimgui)

View File

@@ -1,11 +0,0 @@
#include "../imgui/imgui.h"
// GL3W/GLFW
#include <GL/gl3w.h> // This example is using gl3w to access OpenGL functions (because it is small). You may use glew/glad/glLoadGen/etc. whatever already works for you.
//making it accesible for luajit
#ifdef _WIN32
extern "C" __declspec( dllexport ) int Do_gl3wInit(void){ return gl3wInit();};
#else
extern "C" int Do_gl3wInit(void){ return gl3wInit();};
#endif

View File

@@ -1,8 +0,0 @@
//making it accesible for main
#ifdef _WIN32
__declspec( dllexport ) int Do_gl3wInit(void);
#else
int Do_gl3wInit(void);
#endif

View File

@@ -0,0 +1,110 @@
Project(cimgui_glfwdx11)
cmake_minimum_required(VERSION 3.11)
if(WIN32) # to mingw work as all the others
set(CMAKE_SHARED_LIBRARY_PREFIX "")
endif(WIN32)
#run in build dir
set (CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR})
set (CMAKE_CXX_STANDARD 11)
# general settings
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
set(BAKENDS_FOLDER "../../imgui/backends/")
else()
set(BAKENDS_FOLDER "../../imgui/examples/")
endif()
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
else()
set(TABLES_SOURCE "")
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)
set(IMGUI_SOURCES
../../cimgui.cpp
../../imgui/imgui.cpp
../../imgui/imgui_draw.cpp
../../imgui/imgui_demo.cpp
../../imgui/imgui_widgets.cpp
${TABLES_SOURCE}
)
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")
# optional adding freetype
option(IMGUI_FREETYPE "add Freetype2" OFF)
if(IMGUI_FREETYPE)
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES ../../imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE)
# dx11
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_dx11.cpp)
if(WIN32)
list(APPEND IMGUI_LIBRARIES opengl32)
else(WIN32) # Unix
list(APPEND IMGUI_LIBRARIES GL)
endif(WIN32)
# GLFW
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_glfw.cpp)
set(GLFW_VERSION 3.3.8)
include(FetchContent)
FetchContent_Declare(
glfw
URL https://github.com/glfw/glfw/archive/refs/tags/${GLFW_VERSION}.tar.gz)
FetchContent_GetProperties(glfw)
if (NOT glfw_POPULATED)
set(FETCHCONTENT_QUIET NO)
FetchContent_Populate(glfw)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
if (NOT STATIC_BUILD)
set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
endif()
add_subdirectory(${glfw_SOURCE_DIR} ${glfw_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
install(TARGETS glfw RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
)
#FIND_PACKAGE(glfw3 PATHS "C:/LuaGL/gitsources/BUILDS/GLFW/install")
if (NOT STATIC_BUILD)
add_library(cimgui SHARED ${IMGUI_SOURCES})
else()
add_library(cimgui STATIC ${IMGUI_SOURCES})
endif()
target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
# using library
include_directories(../../generator/output/)
add_executable(${PROJECT_NAME} main.c)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_DX11 -DCIMGUI_USE_GLFW)
target_link_libraries(${PROJECT_NAME} d3d11 d3dcompiler.lib cimgui)

View File

@@ -0,0 +1,6 @@
This example needs dx11 in generation before compile. (add dx11 to generator.bat(sh) and generate)
`STATIC_BUILD` is the cmake variable to do static linking
Only tested with VC nmake.

View File

@@ -0,0 +1,247 @@
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "cimgui.h"
#include "cimgui_impl.h"
#define D3D11_NO_HELPERS
#define CINTERFACE
#define COBJMACROS
#define WIN32_LEAN_AND_MEAN
#include <d3d11.h>
#include <GLFW/glfw3.h>
#define GLFW_EXPOSE_NATIVE_WIN32
#include <GLFW/glfw3native.h>
#include <stdio.h>
#ifdef _MSC_VER
#include <windows.h>
#endif
#pragma comment(lib, "dxguid.lib")
#ifdef IMGUI_HAS_IMSTR
#define igBegin igBegin_Str
#define igSliderFloat igSliderFloat_Str
#define igCheckbox igCheckbox_Str
#define igColorEdit3 igColorEdit3_Str
#define igButton igButton_Str
#endif
GLFWwindow *window;
// Data
static ID3D11Device* g_pd3dDevice = NULL;
static ID3D11DeviceContext* g_pd3dDeviceContext = NULL;
static IDXGISwapChain* g_pSwapChain = NULL;
static ID3D11RenderTargetView* g_mainRenderTargetView = NULL;
// Forward declarations of helper functions
bool CreateDeviceD3D(HWND hWnd);
void CleanupDeviceD3D();
void CreateRenderTarget();
void CleanupRenderTarget();
void window_size_callback(GLFWwindow* window, int width, int height)
{
CleanupRenderTarget();
IDXGISwapChain_ResizeBuffers(g_pSwapChain, 0, width, height, DXGI_FORMAT_UNKNOWN, 0);
CreateRenderTarget();
}
int main(int argc, char *argv[])
{
if (!glfwInit())
return -1;
// Decide GL+GLSL versions
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
// just an extra window hint for resize
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
window = glfwCreateWindow(1024, 768, "Hello World!", NULL, NULL);
if (!window)
{
printf("Failed to create window! Terminating!\n");
glfwTerminate();
return -1;
}
//
HWND hwnd = glfwGetWin32Window(window);
if (hwnd == NULL)
{
printf("Failed to get win32 window! Terminating!\n");
glfwTerminate();
return -1;
}
// Initialize Direct3D
if (!CreateDeviceD3D(hwnd))
{
CleanupDeviceD3D();
return 1;
}
glfwSetWindowSizeCallback(window, window_size_callback);
// setup imgui
igCreateContext(NULL);
// set docking
ImGuiIO *ioptr = igGetIO();
ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
//ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
#ifdef IMGUI_HAS_DOCK
ioptr->ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
ioptr->ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows
#endif
ImGui_ImplGlfw_InitForOther(window, true);
ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
igStyleColorsDark(NULL);
// ImFontAtlas_AddFontDefault(io.Fonts, NULL);
bool showDemoWindow = true;
bool showAnotherWindow = false;
ImVec4 clearColor;
clearColor.x = 0.45f;
clearColor.y = 0.55f;
clearColor.z = 0.60f;
clearColor.w = 1.00f;
// main event loop
bool quit = false;
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
// start imgui frame
ImGui_ImplDX11_NewFrame();
ImGui_ImplGlfw_NewFrame();
igNewFrame();
if (showDemoWindow)
igShowDemoWindow(&showDemoWindow);
// show a simple window that we created ourselves.
{
static float f = 0.0f;
static int counter = 0;
igBegin("Hello, world!", NULL, 0);
igText("This is some useful text");
igCheckbox("Demo window", &showDemoWindow);
igCheckbox("Another window", &showAnotherWindow);
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
igColorEdit3("clear color", (float *)&clearColor, 0);
ImVec2 buttonSize;
buttonSize.x = 0;
buttonSize.y = 0;
if (igButton("Button", buttonSize))
counter++;
igSameLine(0.0f, -1.0f);
igText("counter = %d", counter);
igText("Application average %.3f ms/frame (%.1f FPS)",
1000.0f / igGetIO()->Framerate, igGetIO()->Framerate);
igEnd();
}
if (showAnotherWindow)
{
igBegin("imgui Another Window", &showAnotherWindow, 0);
igText("Hello from imgui");
ImVec2 buttonSize;
buttonSize.x = 0;
buttonSize.y = 0;
if (igButton("Close me", buttonSize)) {
showAnotherWindow = false;
}
igEnd();
}
// render
igRender();
const float clear_color_with_alpha[4] = { clearColor.x * clearColor.w, clearColor.y * clearColor.w, clearColor.z * clearColor.w, clearColor.w };
ID3D11DeviceContext_OMSetRenderTargets(g_pd3dDeviceContext, 1, &g_mainRenderTargetView, NULL);
ID3D11DeviceContext_ClearRenderTargetView(g_pd3dDeviceContext, g_mainRenderTargetView, clear_color_with_alpha);
ImGui_ImplDX11_RenderDrawData(igGetDrawData());
#ifdef IMGUI_HAS_DOCK
if (ioptr->ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
{
igUpdatePlatformWindows();
igRenderPlatformWindowsDefault(NULL, NULL);
}
#endif
IDXGISwapChain_Present(g_pSwapChain,1, 0); // Present with vsync
//g_pSwapChain->Present(0, 0); // Present without vsync
}
// clean up
ImGui_ImplDX11_Shutdown();
ImGui_ImplGlfw_Shutdown();
igDestroyContext(NULL);
CleanupDeviceD3D();
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
// Helper functions to use DirectX11
bool CreateDeviceD3D(HWND hWnd)
{
// Setup swap chain
DXGI_SWAP_CHAIN_DESC sd;
ZeroMemory(&sd, sizeof(sd));
sd.BufferCount = 2;
sd.BufferDesc.Width = 0;
sd.BufferDesc.Height = 0;
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
sd.BufferDesc.RefreshRate.Numerator = 60;
sd.BufferDesc.RefreshRate.Denominator = 1;
sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
sd.OutputWindow = hWnd;
sd.SampleDesc.Count = 1;
sd.SampleDesc.Quality = 0;
sd.Windowed = TRUE;
sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
UINT createDeviceFlags = 0;
//createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
D3D_FEATURE_LEVEL featureLevel;
const D3D_FEATURE_LEVEL featureLevelArray[2] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_0, };
if (D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext) != S_OK)
return false;
CreateRenderTarget();
return true;
}
void CleanupDeviceD3D()
{
CleanupRenderTarget();
if (g_pSwapChain) { IDXGISwapChain_Release(g_pSwapChain); g_pSwapChain = NULL; }
if (g_pd3dDeviceContext) { ID3D11DeviceContext_Release(g_pd3dDeviceContext); g_pd3dDeviceContext = NULL; }
if (g_pd3dDevice) { ID3D11Device_Release(g_pd3dDevice); g_pd3dDevice = NULL; }
}
void CreateRenderTarget()
{
ID3D11Resource* pBackBuffer;
IDXGISwapChain_GetBuffer(g_pSwapChain, 0, &IID_ID3D11Texture2D, (void**)&pBackBuffer);
ID3D11Device_CreateRenderTargetView(g_pd3dDevice, pBackBuffer, NULL, &g_mainRenderTargetView);
ID3D11Texture2D_Release(pBackBuffer);
}
void CleanupRenderTarget()
{
if (g_mainRenderTargetView) { ID3D11RenderTargetView_Release(g_mainRenderTargetView); g_mainRenderTargetView = NULL; }
}

View File

@@ -0,0 +1,114 @@
Project(cimgui_glfw)
cmake_minimum_required(VERSION 3.11)
if(WIN32) # to mingw work as all the others
set(CMAKE_SHARED_LIBRARY_PREFIX "")
endif(WIN32)
#run in build dir
set (CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR})
set (CMAKE_CXX_STANDARD 11)
# general settings
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
set(BAKENDS_FOLDER "../../imgui/backends/")
else()
set(BAKENDS_FOLDER "../../imgui/examples/")
endif()
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
else()
set(TABLES_SOURCE "")
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)
set(IMGUI_SOURCES
../../cimgui.cpp
../../imgui/imgui.cpp
../../imgui/imgui_draw.cpp
../../imgui/imgui_demo.cpp
../../imgui/imgui_widgets.cpp
${TABLES_SOURCE}
)
set(IMGUI_LIBRARIES )
add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W")
# optional adding freetype
option(IMGUI_FREETYPE "add Freetype2" OFF)
if(IMGUI_FREETYPE)
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES ../../imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE)
# opengl3
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_opengl3.cpp)
include_directories(../../imgui/examples/libs/gl3w)
if(WIN32)
list(APPEND IMGUI_LIBRARIES opengl32)
else(WIN32) # Unix
list(APPEND IMGUI_LIBRARIES GL)
endif(WIN32)
# GLFW
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_glfw.cpp)
set(GLFW_VERSION 3.4)
include(FetchContent)
FetchContent_Declare(
glfw
URL https://github.com/glfw/glfw/archive/refs/tags/${GLFW_VERSION}.tar.gz)
#GIT_REPOSITORY https://github.com/glfw/glfw )
FetchContent_GetProperties(glfw)
if (NOT glfw_POPULATED)
set(FETCHCONTENT_QUIET NO)
FetchContent_Populate(glfw)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
if (NOT STATIC_BUILD)
set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
endif()
add_subdirectory(${glfw_SOURCE_DIR} ${glfw_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
#if dynamic glfw then install
install(TARGETS glfw RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
)
#FIND_PACKAGE(glfw3 PATHS "C:/LuaGL/gitsources/BUILDS/GLFW/install" REQUIRED)
if (NOT STATIC_BUILD)
add_library(cimgui SHARED ${IMGUI_SOURCES})
else()
add_library(cimgui STATIC ${IMGUI_SOURCES})
endif()
if (WIN32)
target_compile_definitions(cimgui PUBLIC "-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
target_compile_definitions(cimgui PUBLIC "-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
# using library
include_directories(../../generator/output/)
add_executable(${PROJECT_NAME} main.c)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_GLFW)
target_link_libraries(${PROJECT_NAME} cimgui)

View File

@@ -0,0 +1,4 @@
To build use `cmake path_to_example_glfw_opengl3` and then `make install`
`STATIC_BUILD` is a cmake variable if you want to do static linking.

View File

@@ -0,0 +1,169 @@
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "cimgui.h"
#include "cimgui_impl.h"
#include <GLFW/glfw3.h>
#include <stdio.h>
#ifdef _MSC_VER
#include <windows.h>
#endif
#include <GL/gl.h>
#ifdef IMGUI_HAS_IMSTR
#define igBegin igBegin_Str
#define igSliderFloat igSliderFloat_Str
#define igCheckbox igCheckbox_Str
#define igColorEdit3 igColorEdit3_Str
#define igButton igButton_Str
#endif
GLFWwindow *window;
int main(int argc, char *argv[])
{
if (!glfwInit())
return -1;
// Decide GL+GLSL versions
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
#if __APPLE__
// GL 3.2 Core + GLSL 150
const char *glsl_version = "#version 150";
#else
// GL 3.2 + GLSL 130
const char *glsl_version = "#version 130";
#endif
// just an extra window hint for resize
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
window = glfwCreateWindow(1024, 768, "Hello World!", NULL, NULL);
if (!window)
{
printf("Failed to create window! Terminating!\n");
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// enable vsync
glfwSwapInterval(1);
// check opengl version sdl uses
printf("opengl version: %s\n", (char *)glGetString(GL_VERSION));
// setup imgui
igCreateContext(NULL);
// set docking
ImGuiIO *ioptr = igGetIO();
ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
//ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
#ifdef IMGUI_HAS_DOCK
ioptr->ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
ioptr->ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows
#endif
ImGui_ImplGlfw_InitForOpenGL(window, true);
ImGui_ImplOpenGL3_Init(glsl_version);
igStyleColorsDark(NULL);
// ImFontAtlas_AddFontDefault(io.Fonts, NULL);
bool showDemoWindow = true;
bool showAnotherWindow = false;
ImVec4 clearColor;
clearColor.x = 0.45f;
clearColor.y = 0.55f;
clearColor.z = 0.60f;
clearColor.w = 1.00f;
// main event loop
bool quit = false;
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
// start imgui frame
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
igNewFrame();
if (showDemoWindow)
igShowDemoWindow(&showDemoWindow);
// show a simple window that we created ourselves.
{
static float f = 0.0f;
static int counter = 0;
igBegin("Hello, world!", NULL, 0);
igText("This is some useful text");
igCheckbox("Demo window", &showDemoWindow);
igCheckbox("Another window", &showAnotherWindow);
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
igColorEdit3("clear color", (float *)&clearColor, 0);
ImVec2 buttonSize;
buttonSize.x = 0;
buttonSize.y = 0;
if (igButton("Button", buttonSize))
counter++;
igSameLine(0.0f, -1.0f);
igText("counter = %d", counter);
igText("Application average %.3f ms/frame (%.1f FPS)",
1000.0f / igGetIO()->Framerate, igGetIO()->Framerate);
igEnd();
}
if (showAnotherWindow)
{
igBegin("imgui Another Window", &showAnotherWindow, 0);
igText("Hello from imgui");
ImVec2 buttonSize;
buttonSize.x = 0;
buttonSize.y = 0;
if (igButton("Close me", buttonSize)) {
showAnotherWindow = false;
}
igEnd();
}
// render
igRender();
glfwMakeContextCurrent(window);
glViewport(0, 0, (int)ioptr->DisplaySize.x, (int)ioptr->DisplaySize.y);
glClearColor(clearColor.x, clearColor.y, clearColor.z, clearColor.w);
glClear(GL_COLOR_BUFFER_BIT);
ImGui_ImplOpenGL3_RenderDrawData(igGetDrawData());
#ifdef IMGUI_HAS_DOCK
if (ioptr->ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
{
GLFWwindow *backup_current_window = glfwGetCurrentContext();
igUpdatePlatformWindows();
igRenderPlatformWindowsDefault(NULL, NULL);
glfwMakeContextCurrent(backup_current_window);
}
#endif
glfwSwapBuffers(window);
}
// clean up
ImGui_ImplOpenGL3_Shutdown();
ImGui_ImplGlfw_Shutdown();
igDestroyContext(NULL);
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}

View File

@@ -3,30 +3,35 @@ cmake_minimum_required(VERSION 2.8)
if(WIN32) #to mingw work as all the others
set(CMAKE_SHARED_LIBRARY_PREFIX "")
endif(WIN32)
set (CMAKE_CXX_STANDARD 11)
#general settings
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../imgui/backends)
set(BAKENDS_FOLDER "../imgui/backends/")
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
set(BAKENDS_FOLDER "../../imgui/backends/")
else()
set(BAKENDS_FOLDER "../imgui/examples/")
set(BAKENDS_FOLDER "../../imgui/examples/")
endif()
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../imgui/imgui_tables.cpp)
set(TABLES_SOURCE "../imgui/imgui_tables.cpp")
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
else()
set(TABLES_SOURCE "")
endif()
include_directories(../imgui)
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../)
set(IMGUI_SOURCES ../cimgui.cpp
../imgui/imgui.cpp
../imgui/imgui_draw.cpp
../imgui/imgui_demo.cpp
../imgui/imgui_widgets.cpp
include_directories(../../)
set(IMGUI_SOURCES
../../cimgui.cpp
../../imgui/imgui.cpp
../../imgui/imgui_draw.cpp
../../imgui/imgui_demo.cpp
../../imgui/imgui_widgets.cpp
${TABLES_SOURCE}
)
@@ -47,14 +52,13 @@ option(IMGUI_FREETYPE "add Freetype2" OFF)
if(IMGUI_FREETYPE)
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
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)
#opengl3
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_opengl3.cpp ../imgui/examples/libs/gl3w/GL/gl3w.c)
list(APPEND IMGUI_SOURCES ./cimgui_extras.cpp)
include_directories(../imgui/examples/libs/gl3w)
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_opengl3.cpp)
include_directories(../../imgui/examples/libs/gl3w)
if(WIN32)
list(APPEND IMGUI_LIBRARIES opengl32)
else(WIN32)#Unix
@@ -63,10 +67,16 @@ endif(WIN32)
#sdl2
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl.cpp)
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp)
if(DEFINED SDL_PATH)
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
FIND_PACKAGE(SDL2 REQUIRED PATHS ${SDL_PATH})
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)
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
@@ -80,17 +90,21 @@ if(DEFINED SDL_PATH)
set(SDL_MAIN SDL2::SDL2main)
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
endif()
else(DEFINED SDL_PATH)
message(STATUS "SDL_PATH not defined")
set(IMGUI_SDL_LIBRARY SDL2)
endif(DEFINED SDL_PATH)
else(SDL2_FOUND)
if(DEFINED SDL_PATH)
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})
#using library
include_directories(../generator/output/)
include_directories(../../generator/output/)
add_executable(test_sdl main.c)
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2)
if (MINGW)
target_link_options(test_sdl PRIVATE "-mconsole")
endif()

View File

@@ -1,6 +1,5 @@
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "cimgui.h"
#include "cimgui_extras.h"
#include "cimgui_impl.h"
#include <stdio.h>
#define SDL_MAIN_HANDLED
@@ -11,7 +10,13 @@
#include <GL/gl.h>
#include <GL/glu.h>
#ifdef IMGUI_HAS_IMSTR
#define igBegin igBegin_Str
#define igSliderFloat igSliderFloat_Str
#define igCheckbox igCheckbox_Str
#define igColorEdit3 igColorEdit3_Str
#define igButton igButton_Str
#endif
SDL_Window *window = NULL;
@@ -60,13 +65,6 @@ int main(int argc, char* argv[])
SDL_GLContext gl_context = SDL_GL_CreateContext(window);
SDL_GL_SetSwapInterval(1); // enable vsync
// Initialize OpenGL loader for cimgui_sdl
bool err = Do_gl3wInit() != 0;
if (err)
{
SDL_Log("Failed to initialize OpenGL loader for cimgui_sdl!");
return 1;
}
// check opengl version sdl uses
SDL_Log("opengl version: %s", (char*)glGetString(GL_VERSION));
@@ -116,7 +114,7 @@ int main(int argc, char* argv[])
// start imgui frame
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplSDL2_NewFrame(window);
ImGui_ImplSDL2_NewFrame();
igNewFrame();
if (showDemoWindow)

View File

@@ -0,0 +1,101 @@
Project(cimgui_sdl_vk)
cmake_minimum_required(VERSION 2.8)
if(WIN32) # to make mingw work as all the others
set(CMAKE_SHARED_LIBRARY_PREFIX "")
endif(WIN32)
# general settings
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
set(BACKENDS_FOLDER "../../imgui/backends/")
else()
set(BACKENDS_FOLDER "../../imgui/examples/")
endif()
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
else()
set(TABLES_SOURCE "")
endif()
include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../)
set(IMGUI_SOURCES ../../cimgui.cpp
../../imgui/imgui.cpp
../../imgui/imgui_draw.cpp
../../imgui/imgui_demo.cpp
../../imgui/imgui_widgets.cpp
${TABLES_SOURCE}
)
set(IMGUI_SOURCES_sdl)
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
option(IMGUI_FREETYPE "add Freetype2" OFF)
if(IMGUI_FREETYPE)
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES ../../imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE)
# vulkan
find_package(Vulkan REQUIRED FATAL_ERROR)
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp)
#sdl2
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl2.cpp)
if(DEFINED SDL_PATH)
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
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)
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS})
include_directories(${SDL2_INCLUDE_DIRS})
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
else()#use new one SDL2 config
include_directories(${SDL_INCLUDE})
set(IMGUI_SDL_LIBRARY SDL2::SDL2)
set(SDL_MAIN SDL2::SDL2main)
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
endif()
else(SDL2_FOUND)
if(DEFINED SDL_PATH)
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})
#using library
include_directories(../../generator/output/)
add_executable(test_sdl main.c)
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
if (MINGW)
target_link_options(test_sdl PRIVATE "-mconsole")
endif()
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl)

View File

@@ -0,0 +1,571 @@
#include <stdio.h>
#include <assert.h>
#define SDL_MAIN_HANDLED
#include <SDL.h>
#include <SDL_vulkan.h>
#include <vulkan/vulkan.h>
#ifdef _MSC_VER
#include <windows.h>
#endif
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "cimgui.h"
#include "cimgui_impl.h"
#ifdef IMGUI_HAS_IMSTR
#define igBegin igBegin_Str
#define igSliderFloat igSliderFloat_Str
#define igCheckbox igCheckbox_Str
#define igColorEdit3 igColorEdit3_Str
#define igButton igButton_Str
#endif
#define IM_UNUSED(_VAR) ((void)(_VAR))
#define IM_ASSERT(_EXPR) assert(_EXPR)
#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR) / sizeof(*(_ARR))))
static VkAllocationCallbacks* g_Allocator = NULL;
static VkInstance g_Instance = VK_NULL_HANDLE;
static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
static VkDevice g_Device = VK_NULL_HANDLE;
static uint32_t g_QueueFamily = (uint32_t)-1;
static VkQueue g_Queue = VK_NULL_HANDLE;
static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
static ImGui_ImplVulkanH_Window g_MainWindowData;
static uint32_t g_MinImageCount = 2;
static bool g_SwapChainRebuild = false;
static void check_vk_result(VkResult err)
{
if (err == 0)
return;
fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
if (err < 0)
abort();
}
#ifdef IMGUI_VULKAN_DEBUG_REPORT
static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location,
int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
{
(void)flags; (void)object; (void)location; (void)messageCode;
(void)pUserData; (void)pLayerPrefix; // Unused arguments
fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n",
objectType, pMessage);
return VK_FALSE;
}
#endif // IMGUI_VULKAN_DEBUG_REPORT
static void SetupVulkan(const char** extensions, uint32_t extensions_count)
{
VkResult err;
// Create Vulkan Instance
VkInstanceCreateInfo inst_create_info = {
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.enabledExtensionCount = extensions_count,
.ppEnabledExtensionNames = extensions,
};
#ifdef IMGUI_VULKAN_DEBUG_REPORT
// Enabling validation layers
const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
inst_create_info.enabledLayerCount = 1;
inst_create_info.ppEnabledLayerNames = layers;
// Enable debug report extension (we need additional storage, so we duplicate the user array to add our new extension to it)
const char** extensions_ext = (const char**)malloc(
sizeof(const char*) * (extensions_count + 1));
memcpy(extensions_ext, extensions, extensions_count * sizeof(const char*));
extensions_ext[extensions_count] = "VK_EXT_debug_report";
inst_create_info.enabledExtensionCount = extensions_count + 1;
inst_create_info.ppEnabledExtensionNames = extensions_ext;
// Create Vulkan Instance
err = vkCreateInstance(&inst_create_info, g_Allocator, &g_Instance);
check_vk_result(err);
free(extensions_ext);
// Get the function pointer (required for any extensions)
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT =
(PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance,
"vkCreateDebugReportCallbackEXT");
IM_ASSERT(vkCreateDebugReportCallbackEXT != NULL);
// Setup the debug report callback
VkDebugReportCallbackCreateInfoEXT debug_report_ci = {
.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT |
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
.pfnCallback = debug_report,
.pUserData = NULL,
};
err = vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator,
&g_DebugReport);
check_vk_result(err);
#else
// Create Vulkan Instance without any debug feature
err = vkCreateInstance(&inst_create_info, g_Allocator, &g_Instance);
check_vk_result(err);
IM_UNUSED(g_DebugReport);
#endif
// Select GPU
uint32_t gpu_count;
err = vkEnumeratePhysicalDevices(g_Instance, &gpu_count, NULL);
check_vk_result(err);
IM_ASSERT(gpu_count > 0);
VkPhysicalDevice* gpus = (VkPhysicalDevice*)malloc(sizeof(VkPhysicalDevice) * gpu_count);
err = vkEnumeratePhysicalDevices(g_Instance, &gpu_count, gpus);
check_vk_result(err);
// If a number >1 of GPUs got reported, find discrete GPU if present, or use first one available. This covers
// most common cases (multi-gpu/integrated+dedicated graphics). Handling more complicated setups (multiple
// dedicated GPUs) is out of scope of this sample.
int use_gpu = 0;
for (int i = 0; i < (int)gpu_count; i++)
{
VkPhysicalDeviceProperties properties;
vkGetPhysicalDeviceProperties(gpus[i], &properties);
if (properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
{
use_gpu = i;
break;
}
}
g_PhysicalDevice = gpus[use_gpu];
free(gpus);
// Select graphics queue family
uint32_t count;
vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, NULL);
VkQueueFamilyProperties* queues = (VkQueueFamilyProperties*)malloc(
sizeof(VkQueueFamilyProperties) * count);
vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, queues);
for (uint32_t i = 0; i < count; i++)
if (queues[i].queueFlags & VK_QUEUE_GRAPHICS_BIT)
{
g_QueueFamily = i;
break;
}
free(queues);
IM_ASSERT(g_QueueFamily != (uint32_t)-1);
// Create Logical Device (with 1 queue)
int device_extension_count = 1;
const char* device_extensions[] = { "VK_KHR_swapchain" };
const float queue_priority[] = { 1.0f };
VkDeviceQueueCreateInfo queue_info[1] = {
[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
[0].queueFamilyIndex = g_QueueFamily,
[0].queueCount = 1,
[0].pQueuePriorities = queue_priority,
};
VkDeviceCreateInfo create_info = {
.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]),
.pQueueCreateInfos = queue_info,
.enabledExtensionCount = device_extension_count,
.ppEnabledExtensionNames = device_extensions,
};
err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
check_vk_result(err);
vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
// Create Descriptor Pool
VkDescriptorPoolSize pool_sizes[] = {
{ VK_DESCRIPTOR_TYPE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000 }
};
VkDescriptorPoolCreateInfo pool_info = {
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
.maxSets = 1000 * IM_ARRAYSIZE(pool_sizes),
.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes),
.pPoolSizes = pool_sizes,
};
err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
check_vk_result(err);
}
// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
// Your real engine/app may not use them.
static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface,
int width, int height)
{
wd->Surface = surface;
// Check for WSI support
VkBool32 res;
vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
if (res != VK_TRUE)
{
fprintf(stderr, "Error no WSI support on physical device 0\n");
exit(-1);
}
// Select Surface Format
const VkFormat requestSurfaceImageFormat[] = {
VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM,
VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM
};
const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(
g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat,
(size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
// Select Present Mode
#ifdef IMGUI_UNLIMITED_FRAME_RATE
VkPresentModeKHR present_modes[] = {
VK_PRESENT_MODE_MAILBOX_KHR,VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR
};
#else
VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
#endif
wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(
g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
// Create SwapChain, RenderPass, Framebuffer, etc.
IM_ASSERT(g_MinImageCount >= 2);
ImGui_ImplVulkanH_CreateOrResizeWindow(
g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator,
width, height, g_MinImageCount);
}
static void CleanupVulkan()
{
vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
#ifdef IMGUI_VULKAN_DEBUG_REPORT
// Remove the debug report callback
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT =
(PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
#endif // IMGUI_VULKAN_DEBUG_REPORT
vkDestroyDevice(g_Device, g_Allocator);
vkDestroyInstance(g_Instance, g_Allocator);
}
static void CleanupVulkanWindow()
{
ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
}
static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
{
VkResult err;
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
{
g_SwapChainRebuild = true;
return;
}
check_vk_result(err);
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
check_vk_result(err);
err = vkResetFences(g_Device, 1, &fd->Fence);
check_vk_result(err);
err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
check_vk_result(err);
VkCommandBufferBeginInfo info = {
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
};
err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
check_vk_result(err);
VkRenderPassBeginInfo rp_info = {
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
.renderPass = wd->RenderPass,
.framebuffer = fd->Framebuffer,
.renderArea.extent.width = wd->Width,
.renderArea.extent.height = wd->Height,
.clearValueCount = 1,
.pClearValues = &wd->ClearValue,
};
vkCmdBeginRenderPass(fd->CommandBuffer, &rp_info, VK_SUBPASS_CONTENTS_INLINE);
// Record dear imgui primitives into command buffer
ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer, VK_NULL_HANDLE);
// Submit command buffer
vkCmdEndRenderPass(fd->CommandBuffer);
VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
VkSubmitInfo sub_info = {
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
.waitSemaphoreCount = 1,
.pWaitSemaphores = &image_acquired_semaphore,
.pWaitDstStageMask = &wait_stage,
.commandBufferCount = 1,
.pCommandBuffers = &fd->CommandBuffer,
.signalSemaphoreCount = 1,
.pSignalSemaphores = &render_complete_semaphore,
};
err = vkEndCommandBuffer(fd->CommandBuffer);
check_vk_result(err);
err = vkQueueSubmit(g_Queue, 1, &sub_info, fd->Fence);
check_vk_result(err);
}
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
{
if (g_SwapChainRebuild) return;
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
VkPresentInfoKHR info = {
.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
.waitSemaphoreCount = 1,
.pWaitSemaphores = &render_complete_semaphore,
.swapchainCount = 1,
.pSwapchains = &wd->Swapchain,
.pImageIndices = &wd->FrameIndex,
};
VkResult err = vkQueuePresentKHR(g_Queue, &info);
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
{
g_SwapChainRebuild = true;
return;
}
check_vk_result(err);
wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->ImageCount; // Now we can use the next set of semaphores
}
int main(int argc, char* argv[])
{
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_Log("failed to init: %s", SDL_GetError());
return -1;
}
/// Setup window
SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN |
SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
SDL_Window* window = SDL_CreateWindow("cImGui SDL2+Vulkan example",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, window_flags);
if (window == NULL) {
SDL_Log("Failed to create window: %s", SDL_GetError());
return -1;
}
// Setup Vulkan
uint32_t extensions_count = 0;
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, NULL);
const char** extensions = malloc(extensions_count * sizeof(const char*));
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions);
SetupVulkan(extensions, extensions_count);
free(extensions);
// Create Window Surface
VkSurfaceKHR surface;
VkResult err;
if (SDL_Vulkan_CreateSurface(window, g_Instance, &surface) == 0)
{
printf("Failed to create Vulkan surface.\n");
return 1;
}
// Create Framebuffers
int w, h;
SDL_GetWindowSize(window, &w, &h);
ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
SetupVulkanWindow(wd, surface, w, h);
// setup imgui
igCreateContext(NULL);
//set docking
ImGuiIO* ioptr = igGetIO();
ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
//ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
// Setup Platform/Renderer backends
ImGui_ImplSDL2_InitForVulkan(window);
ImGui_ImplVulkan_InitInfo init_info = {
.Instance = g_Instance,
.PhysicalDevice = g_PhysicalDevice,
.Device = g_Device,
.QueueFamily = g_QueueFamily,
.Queue = g_Queue,
.PipelineCache = g_PipelineCache,
.DescriptorPool = g_DescriptorPool,
.Subpass = 0,
.MinImageCount = g_MinImageCount,
.ImageCount = wd->ImageCount,
.MSAASamples = VK_SAMPLE_COUNT_1_BIT,
.Allocator = g_Allocator,
.CheckVkResultFn = check_vk_result
};
ImGui_ImplVulkan_Init(&init_info, wd->RenderPass);
igStyleColorsDark(NULL);
// Upload Fonts
// Use any command queue
VkCommandPool command_pool = wd->Frames[wd->FrameIndex].CommandPool;
VkCommandBuffer command_buffer = wd->Frames[wd->FrameIndex].CommandBuffer;
err = vkResetCommandPool(g_Device, command_pool, 0);
check_vk_result(err);
VkCommandBufferBeginInfo begin_info = {
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
};
err = vkBeginCommandBuffer(command_buffer, &begin_info);
check_vk_result(err);
ImGui_ImplVulkan_CreateFontsTexture(command_buffer);
VkSubmitInfo end_info = {
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
.commandBufferCount = 1,
.pCommandBuffers = &command_buffer,
};
err = vkEndCommandBuffer(command_buffer);
check_vk_result(err);
err = vkQueueSubmit(g_Queue, 1, &end_info, VK_NULL_HANDLE);
check_vk_result(err);
err = vkDeviceWaitIdle(g_Device);
check_vk_result(err);
ImGui_ImplVulkan_DestroyFontUploadObjects();
bool showDemoWindow = true;
bool showAnotherWindow = false;
ImVec4 clearColor;
clearColor.x = 0.45f;
clearColor.y = 0.55f;
clearColor.z = 0.60f;
clearColor.w = 1.00f;
bool quit = false;
while (!quit)
{
SDL_Event e;
// we need to call SDL_PollEvent to let window rendered, otherwise
// no window will be shown
while (SDL_PollEvent(&e) != 0)
{
ImGui_ImplSDL2_ProcessEvent(&e);
if (e.type == SDL_QUIT)
quit = true;
if (e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_CLOSE &&
e.window.windowID == SDL_GetWindowID(window))
quit = true;
}
// Resize swap chain
if (g_SwapChainRebuild)
{
int width, height;
SDL_GetWindowSize(window, &width, &height);
if (width > 0 && height > 0)
{
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
ImGui_ImplVulkanH_CreateOrResizeWindow(
g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData,
g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
g_MainWindowData.FrameIndex = 0;
g_SwapChainRebuild = false;
}
}
// start imgui frame
ImGui_ImplVulkan_NewFrame();
ImGui_ImplSDL2_NewFrame();
igNewFrame();
if (showDemoWindow)
igShowDemoWindow(&showDemoWindow);
// show a simple window that we created ourselves.
{
static float f = 0.0f;
static int counter = 0;
igBegin("Hello, world!", NULL, 0);
igText("This is some useful text");
igCheckbox("Demo window", &showDemoWindow);
igCheckbox("Another window", &showAnotherWindow);
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
igColorEdit3("clear color", (float*)&clearColor, 0);
ImVec2 buttonSize;
buttonSize.x = 0;
buttonSize.y = 0;
if (igButton("Button", buttonSize))
counter++;
igSameLine(0.0f, -1.0f);
igText("counter = %d", counter);
igText("Application average %.3f ms/frame (%.1f FPS)",
1000.0f / igGetIO()->Framerate, igGetIO()->Framerate);
igEnd();
}
if (showAnotherWindow)
{
igBegin("imgui Another Window", &showAnotherWindow, 0);
igText("Hello from imgui");
ImVec2 buttonSize;
buttonSize.x = 0; buttonSize.y = 0;
if (igButton("Close me", buttonSize))
{
showAnotherWindow = false;
}
igEnd();
}
// render
igRender();
ImDrawData* draw_data = igGetDrawData();
const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
if (!is_minimized)
{
wd->ClearValue.color.float32[0] = clearColor.x * clearColor.w;
wd->ClearValue.color.float32[1] = clearColor.y * clearColor.w;
wd->ClearValue.color.float32[2] = clearColor.z * clearColor.w;
wd->ClearValue.color.float32[3] = clearColor.w;
FrameRender(wd, draw_data);
FramePresent(wd);
}
}
// Cleanup
err = vkDeviceWaitIdle(g_Device);
check_vk_result(err);
ImGui_ImplVulkan_Shutdown();
ImGui_ImplSDL2_Shutdown();
igDestroyContext(NULL);
CleanupVulkanWindow();
CleanupVulkan();
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}

1
cimconfig.h Normal file
View File

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

2536
cimgui.cpp

File diff suppressed because it is too large Load Diff

4191
cimgui.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
#include "./imgui/imgui.h"
#ifdef CIMGUI_FREETYPE
#ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h"
#endif
#include "./imgui/imgui_internal.h"
@@ -12,7 +12,7 @@
/////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...)
CIMGUI_API void igLogText(const char *fmt, ...)
{
char buffer[256];
va_list args;
@@ -22,11 +22,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer);
}
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
buffer->appendfv(fmt, args);
self->appendfv(fmt, args);
va_end(args);
}
@@ -81,7 +81,7 @@ CimguiStorage& GetCimguiStorage()
ImGuiIO& io = ImGui::GetIO();
if (io.BackendLanguageUserData == NULL)
{
io.BackendLanguageUserData = new CimguiStorage();
io.BackendLanguageUserData = IM_NEW(CimguiStorage)();
}
return *(CimguiStorage*)io.BackendLanguageUserData;

View File

@@ -8,9 +8,6 @@
#else
#define API __declspec(dllexport)
#endif
#ifndef __GNUC__
#define snprintf sprintf_s
#endif
#else
#ifdef __GNUC__
#define API __attribute__((__visibility__("default")))
@@ -50,20 +47,24 @@ typedef union SDL_Event SDL_Event;
/////////////////////////hand written functions
//no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...);
CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
//for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX();
CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings
CIMGUI_API float igGET_FLT_MIN();
CIMGUI_API float igGET_FLT_MIN(void);
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create();
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(void);
CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self);
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);
#ifdef IMGUI_HAS_DOCK
CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowPos(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_pos));
CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowSize(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_size));
#endif
#endif //CIMGUI_INCLUDED

View File

@@ -1,3 +1,3 @@
return {
vulkan = {[[C:\VulkanSDK\1.1.130.0\Include]]}
}
vulkan = {(os.getenv("VULKAN_SDK") or "vulkan_SDK_not_found").."/Include"}, --{[[C:\VulkanSDK\1.3.216.0\Include]]}
}

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -7,13 +7,21 @@ assert(bit,"Must use LuaJIT")
local script_args = {...}
local COMPILER = script_args[1]
local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false
local FREETYPE_GENERATION = script_args[2]:match("freetype") and true or false
local FREETYPE_GENERATION = true --script_args[2]:match("freetype") and true or false
local COMMENTS_GENERATION = script_args[2]:match("comments") and true or false
local CONSTRUCTORS_GENERATION = script_args[2]:match("constructors") and true or false
local NOCHAR = script_args[2]:match("nochar") and true or false
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
local CFLAGS = ""
local CPRE,CTEST
--get implementations
local implementations = {}
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("^(.+)=(.+)$")
if key and value then
CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\"";
@@ -25,11 +33,15 @@ for i=3,#script_args do
end
end
if COMPILER == "gcc" or COMPILER == "clang" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
if FREETYPE_GENERATION then
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE" --both builders
end
if COMPILER == "gcc" or COMPILER == "clang" or COMPILER == "zig cc" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS
CTEST = COMPILER
else
print("Working without compiler ")
@@ -58,6 +70,9 @@ assert(HAVE_COMPILER,"gcc, clang or cl needed to run script")
print("HAVE_COMPILER",HAVE_COMPILER)
print("INTERNAL_GENERATION",INTERNAL_GENERATION)
print("FREETYPE_GENERATION",FREETYPE_GENERATION)
print("COMMENTS_GENERATION",COMMENTS_GENERATION)
print("CONSTRUCTORS_GENERATION",CONSTRUCTORS_GENERATION)
print("CPRE",CPRE)
--------------------------------------------------------------------------
--this table has the functions to be skipped in generation
--------------------------------------------------------------------------
@@ -67,6 +82,9 @@ local cimgui_manuals = {
--igColorConvertRGBtoHSV = true,
--igColorConvertHSVtoRGB = true
}
local cimgui_skipped = {
--igShowDemoWindow = true
}
--------------------------------------------------------------------------
--this table is a dictionary to force a naming of function overloading (instead of algorythmic generated)
--first level is cimguiname without postfix, second level is the signature of the function, value is the
@@ -115,7 +133,8 @@ local function func_header_impl_generate(FP)
else
if def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
local empty = def.args:match("^%(%)") --no args
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..(empty and "(void)" or def.args)..";"..addcoment.."\n")
else
cpp2ffi.prtable(def)
error("class function in implementations")
@@ -135,15 +154,19 @@ local func_implementation = cpp2ffi.func_implementation
-------------------functions for getting and setting defines
local function get_defines(t)
if COMPILER == "cl" then print"can't get defines with cl compiler"; return {} end
print(COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]] .. CFLAGS)
local pipe,err = io.popen(COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]] .. CFLAGS,"r")
local compiler_cmd = COMPILER == "cl"
and COMPILER..[[ /TP /nologo /c /Fo"NUL" /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS ]]..CFLAGS..[[ /I"]]..IMGUI_PATH..[[" print_defines.cpp]]
or COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]]..IMGUI_PATH..[[/imgui.h]]..CFLAGS
print(compiler_cmd)
local pipe,err = io.popen(compiler_cmd,"r")
local defines = {}
local compiler_output = {"There were fails in compilation."}
while true do
local line = pipe:read"*l"
if not line then break end
local key,value = line:match([[#define%s+(%S+)%s*(.*)]])
local key,value = line:match([[^#define%s+(%S+)%s*(.*)]])
if not key then --or not value then
table.insert(compiler_output, line)
--print(line)
else
defines[key]=value or ""
@@ -152,13 +175,13 @@ local function get_defines(t)
pipe:close()
--require"anima.utils"
--prtable(defines)
--FLT_MAX
assert(next(defines), table.concat(compiler_output, "\n"))
local ret = {}
for i,v in ipairs(t) do
local aa = defines[v]
while true do
local tmp = defines[aa]
if not tmp then
if not tmp then
break
else
aa = tmp
@@ -194,82 +217,28 @@ local function DefsByStruct(FP)
FP.defsBystruct = structs
end
-- function for repairing funcdefs default values
local function repair_defaults(defsT,str_and_enu)
local function deleteOuterPars(def)
local w = def:match("^%b()$")
if w then
w = w:gsub("^%((.+)%)$","%1")
return w
else
return def
end
end
local function CleanImU32(def)
def = def:gsub("%(ImU32%)","")
--quitar () de numeros
def = def:gsub("%((%d+)%)","%1")
def = deleteOuterPars(def)
local bb=cpp2ffi.strsplit(def,"|")
for i=1,#bb do
local val = deleteOuterPars(bb[i])
if val:match"<<" then
local v1,v2 = val:match("(%d+)%s*<<%s*(%d+)")
val = v1*2^v2
bb[i] = val
end
assert(type(bb[i])=="number")
end
local res = 0
for i=1,#bb do res = res + bb[i] end
return res
end
for k,defT in pairs(defsT) do
for i,def in ipairs(defT) do
for k,v in pairs(def.defaults) do
--do only if not a c string
local is_cstring = v:sub(1,1)=='"' and v:sub(-1,-1) =='"'
if not is_cstring then
def.defaults[k] = def.defaults[k]:gsub("%(%(void%s*%*%)0%)","NULL")
if def.defaults[k]:match"%(ImU32%)" then
def.defaults[k] = tostring(CleanImU32(def.defaults[k]))
end
end
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
]]
----------custom ImVector templates
local table_do_sorted = cpp2ffi.table_do_sorted
local function generate_templates(code,codeimpool,templates)
table.insert(code,"\n"..[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]].."\n")
table_do_sorted(templates , function (ttype, v)
if ttype == "ImVector" then
table_do_sorted(v, function(te,newte)
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
end)
elseif ttype == "ImPool" then
--declare ImGuiStorage
table_do_sorted(v, function(te, newte)
table.insert(codeimpool,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
table.insert(codeimpool,"typedef struct ImPool_"..newte.." {ImVector_"..te.." Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_"..newte..";\n")
end)
elseif ttype == "ImChunkStream" then
table_do_sorted(v, function(te,newte)
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
table.insert(code,"typedef struct ImChunkStream_"..newte.." {ImVector_"..te.." Buf;} ImChunkStream_"..newte..";\n")
end)
elseif ttype == "ImSpan" then
table_do_sorted(v, function(te,newte)
table.insert(code,"typedef struct ImSpan_"..newte.." {"..te.."* Data;" ..te.."* DataEnd;} ImSpan_"..newte..";\n")
end)
else
print("generate_templates ttype not done",ttype)
error"generate templates"
end
end)
end
--generate cimgui.cpp cimgui.h
local function cimgui_generation(parser)
@@ -300,62 +269,57 @@ local function cimgui_generation(parser)
cpp2ffi.prtable(parser.templates)
cpp2ffi.prtable(parser.typenames)
local outtab = {}
local outtabpool = {}
generate_templates(outtab, outtabpool, parser.templates)
--move outtabpool after ImGuiStorage definition
local outpost1, outpost2 = outpost:match("^(.+struct ImGuiStorage%s*\n%b{};\n)(.+)$")
outpost = outpost1..table.concat(outtabpool)..outpost2
local cstructsstr = outpre..table.concat(outtab,"")..outpost --..(extra or "")
local tdt = parser:generate_templates()
local cstructsstr = outpre..tdt..outpost
if gdefines.IMGUI_HAS_DOCK then
cstructsstr = cstructsstr.."\n#define IMGUI_HAS_DOCK 1\n"
end
if gdefines.ImDrawCallback_ResetRenderState then
cstructsstr = cstructsstr.."\n#define ImDrawCallback_ResetRenderState "..gdefines.ImDrawCallback_ResetRenderState.."\n"
end
if gdefines.IMGUI_HAS_IMSTR then
if not (NOCHAR or NOIMSTRV) then
cstructsstr = cstructsstr.."\n#define IMGUI_HAS_IMSTR 1\n"
end
end
cstructsstr = colapse_defines(cstructsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser)
cfuncsstr = colapse_defines(cfuncsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
--patch hstrfile for ImWchar
local num
hstrfile, num = hstrfile:gsub("typedef ImWchar16 ImWchar;", wchardefine)
assert(num == 1)
hstrfile, num = hstrfile:gsub("kPagesMap%[%(0xFFFF", "kPagesMap[(IM_UNICODE_CODEPOINT_MAX")
assert(num == 1, "kPagesMap[(IM_UNICODE_CODEPOINT_MAX not found or found more than once")
save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser)
cimplem = colapse_defines(cimplem, "IMGUI_ENABLE_FREETYPE")
local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
save_data("./output/cimgui.cpp",cimgui_header,hstrfile)
local ftdef = "" --FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or ""
save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile)
end
--------------------------------------------------------
-----------------------------do it----------------------
--------------------------------------------------------
--get imgui.h version and IMGUI_HAS_DOCK--------------------------
--get some defines wont work for cl ----------------
gdefines = get_defines{"IMGUI_VERSION","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK"}
--this will work for cl
local pipe,err = io.open("../imgui/imgui.h","r")
if not pipe then
error("could not open file:"..err)
end
local imgui_version,has_dock
while true do
local line = pipe:read"*l"
if not line then break end
if not imgui_version then
imgui_version = line:match([[#define%s+IMGUI_VERSION%s+(".+")]])
end
if not has_dock then
has_dock = line:match([[#define%s+IMGUI_HAS_DOCK]])--%s*(".+")]])
end
if imgui_version and has_dock then break end
end
pipe:close()
--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"}
--cpp2ffi.prtable(gdefines)
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 has_dock then gdefines.IMGUI_HAS_DOCK = true end
cimgui_header = cimgui_header:gsub("XXX",imgui_version)
cimgui_header = cimgui_header:gsub("XXX",gdefines.IMGUI_VERSION .. " "..(gdefines.IMGUI_VERSION_NUM or ""))
if INTERNAL_GENERATION then
cimgui_header = cimgui_header..[[//with imgui_internal.h api
]]
@@ -369,9 +333,27 @@ if gdefines.IMGUI_HAS_DOCK then
]]
end
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("NOCHAR",NOCHAR)
print("NOIMSTRV",NOIMSTRV)
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
print("IMGUI_VERSION",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
local function parseImGuiHeader(header,names)
@@ -383,9 +365,17 @@ local function parseImGuiHeader(header,names)
return pre..funcname
end
parser.cname_overloads = cimgui_overloads
parser.manuals = cimgui_manuals
--parser.manuals = cimgui_manuals
parser:set_manuals(cimgui_manuals, "cimgui")
parser.skipped = cimgui_skipped
parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"}
--parser.gen_template_typedef = gen_template_typedef --use auto
parser.COMMENTS_GENERATION = COMMENTS_GENERATION
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
parser.NOCHAR = NOCHAR
parser.NOIMSTRV = NOIMSTRV
parser.custom_function_post = custom_function_post
parser.header_text_insert = header_text_insert
local defines = parser:take_lines(CPRE..header,names,COMPILER)
return parser
@@ -393,41 +383,46 @@ end
--generation
print("------------------generation with "..COMPILER.."------------------------")
local parser1
local headers = [[#include "../imgui/imgui.h"
local headers = [[#include "]]..IMGUI_PATH..[[/imgui.h"
]]
local headersT = {[[imgui]]}
if INTERNAL_GENERATION then
headers = headers .. [[#include "../imgui/imgui_internal.h"
headers = headers .. [[#include "]]..IMGUI_PATH..[[/imgui_internal.h"
]]
headersT[#headersT + 1] = [[imgui_internal]]
headersT[#headersT + 1] = [[imstb_textedit]]
end
if FREETYPE_GENERATION then
headers = headers .. [[
#include "../imgui/misc/freetype/imgui_freetype.h"
#include "]]..IMGUI_PATH..[[/misc/freetype/imgui_freetype.h"
]]
headersT[#headersT + 1] = [[imgui_freetype]]
end
save_data("headers.h",headers)
local include_cmd = COMPILER=="cl" and [[ /I ]] or [[ -I ]]
local extra_includes = include_cmd.." ../imgui "
local extra_includes = include_cmd.." " ..IMGUI_PATH.." "
local parser1 = parseImGuiHeader(extra_includes .. [[headers.h]],headersT)
os.remove("headers.h")
parser1:do_parse()
--to debug items parsing
--save_data("./itemsarr2.txt",cpp2ffi.ToStr(parser1.itemsarr))
save_data("./output/overloads.txt",parser1.overloadstxt)
cimgui_generation(parser1)
----------save struct and enums lua table in structs_and_enums.lua for using in bindings
local structs_and_enums_table = parser1.structs_and_enums_table
structs_and_enums_table.templated_structs = parser1.templated_structs
structs_and_enums_table.typenames = parser1.typenames
structs_and_enums_table.templates_done = parser1.templates_done
save_data("./output/structs_and_enums.lua",serializeTableF(structs_and_enums_table))
save_data("./output/typedefs_dict.lua",serializeTableF(parser1.typedefs_dict))
----------save fundefs in definitions.lua for using in bindings
--DefsByStruct(pFP)
set_defines(parser1.defsT)
repair_defaults(parser1.defsT, structs_and_enums_table)
save_data("./output/definitions.lua",serializeTableF(parser1.defsT))
--check every function has ov_cimguiname
@@ -439,12 +434,12 @@ save_data("./output/definitions.lua",serializeTableF(parser1.defsT))
--=================================Now implementations
local backends_folder
local ff,err = io.open ("../imgui/examples/imgui_impl_glfw.h" ,"r")
local ff,err = io.open (IMGUI_PATH .. "/examples/imgui_impl_glfw.h" ,"r")
if ff then
backends_folder = "../imgui/examples/"
backends_folder = IMGUI_PATH .. "/examples/"
ff:close()
else
backends_folder = "../imgui/backends/"
backends_folder = IMGUI_PATH .. "/backends/"
end
local parser2
@@ -454,7 +449,7 @@ if #implementations > 0 then
parser2 = cpp2ffi.Parser()
local config = require"config_generator"
local impl_str = ""
for i,impl in ipairs(implementations) do
local source = backends_folder .. [[imgui_impl_]].. impl .. ".h "
local locati = [[imgui_impl_]].. impl
@@ -463,7 +458,7 @@ if #implementations > 0 then
local extra_defines = ""
if impl == "opengl3" then extra_defines = define_cmd .. "IMGUI_IMPL_OPENGL_LOADER_GL3W " end
local include_cmd = COMPILER=="cl" and [[ /I ]] or [[ -I ]]
local extra_includes = include_cmd.." ../imgui "
local extra_includes = include_cmd.." ".. IMGUI_PATH .." "
if config[impl] then
for j,inc in ipairs(config[impl]) do
extra_includes = extra_includes .. include_cmd .. inc .. " "
@@ -471,15 +466,22 @@ if #implementations > 0 then
end
local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
local parser3 = cpp2ffi.Parser()
parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
parser3:do_parse()
local cfuncsstr = func_header_impl_generate(parser3)
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"
end
parser2:do_parse()
-- save ./cimgui_impl.h
local cfuncsstr = func_header_impl_generate(parser2)
local cstructstr1,cstructstr2 = parser2.structs_and_enums[1], parser2.structs_and_enums[2]
save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
--local cfuncsstr = func_header_impl_generate(parser2)
--local cstructstr1,cstructstr2 = parser2.structs_and_enums[1], parser2.structs_and_enums[2]
--save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
save_data("./output/cimgui_impl.h",impl_str)
----------save fundefs in impl_definitions.lua for using in bindings
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
@@ -502,6 +504,10 @@ end
---[[
local json = require"json"
save_data("./output/definitions.json",json.encode(json_prepare(parser1.defsT),{dict_on_empty={defaults=true}}))
--delete extra info for json
--structs_and_enums_table.templated_structs = nil
--structs_and_enums_table.typenames = nil
--structs_and_enums_table.templates_done = nil
save_data("./output/structs_and_enums.json",json.encode(structs_and_enums_table))
save_data("./output/typedefs_dict.json",json.encode(parser1.typedefs_dict))
if parser2 then

View File

@@ -1,4 +1,4 @@
#!/usr/bin/sh
#!/bin/bash
# this script must be executed in this directory
# all the output goes to generator/output folder
@@ -13,7 +13,67 @@
#process files
# arg[1] compiler name gcc, clang, or cl
# arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation
# examples: "" "internal" "internal freetype"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
luajit ./generator.lua gcc "internal" glfw opengl3 opengl2 sdl
# arg[2] options as words in one string: internal for imgui_internal generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
# "constructors" adds the _Construct version of constructors
# examples: "" "internal" "comments internal"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG)
# -DIMGUI_USE_WCHAR32 should not be used as it is generated for both ImWchar
#
# parse command line arguments
# ref: https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash
POSITIONAL_ARGS=()
TARGETS="internal noimstrv"
CFLAGS="glfw opengl3 opengl2 sdl2 sdl3"
help() {
cat <<EOF
Usage of generator.sh:
-t --target specify which imgui features should be generated
(default: $TARGETS)
-c --cflags specify additional gcc flags
(default: $CFLAGS
-h --help show this message and exit
EOF
}
while [[ $# -gt 0 ]]; do
case $1 in
-c|--cflags)
CFLAGS="$2"
shift # past argument
shift # past value
;;
-t|--target)
TARGETS="$2"
shift # past argument
shift # past value
;;
-h|--help)
help
exit 0
;;
-*|--*)
echo "Unknown option $1"
help
exit 1
;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done
set -- "${POSITIONAL_ARGS[@]}" # restore positional parameters
# if [[ "$OSTYPE" == "cygwin" || "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]];
# then
# suffix='.exe'
# fi
echo "CFLAGS: " $CFLAGS
echo "TARGETS: " $TARGETS
luajit$suffix ./generator.lua gcc "$TARGETS" $CFLAGS

View File

@@ -1,40 +1,89 @@
typedef struct SDL_Window SDL_Window;
typedef struct GLFWmonitor GLFWmonitor;
#ifdef CIMGUI_USE_GLFW
typedef struct GLFWwindow GLFWwindow;
typedef struct GLFWmonitor GLFWmonitor;
struct GLFWwindow;
struct GLFWmonitor;
struct SDL_Window;
typedef union SDL_Event SDL_Event;CIMGUI_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window,bool install_callbacks);
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 void ImGui_ImplGlfw_Shutdown();
CIMGUI_API void ImGui_ImplGlfw_NewFrame();
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();
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame();
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();
CIMGUI_API void ImGui_ImplOpenGL3_DestroyFontsTexture();
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects();
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects();
CIMGUI_API bool ImGui_ImplOpenGL2_Init();
CIMGUI_API void ImGui_ImplOpenGL2_Shutdown();
CIMGUI_API void ImGui_ImplOpenGL2_NewFrame();
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();
CIMGUI_API void ImGui_ImplOpenGL2_DestroyFontsTexture();
CIMGUI_API bool ImGui_ImplOpenGL2_CreateDeviceObjects();
CIMGUI_API void ImGui_ImplOpenGL2_DestroyDeviceObjects();
CIMGUI_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
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 void ImGui_ImplSDL2_Shutdown();
CIMGUI_API void ImGui_ImplSDL2_NewFrame(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
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct SDL_Gamepad SDL_Gamepad;
struct SDL_Window;
struct SDL_Renderer;
struct SDL_Gamepad;
typedef union SDL_Event SDL_Event;
typedef enum { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }ImGui_ImplSDL3_GamepadMode;CIMGUI_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL3_Shutdown(void);
CIMGUI_API void ImGui_ImplSDL3_NewFrame(void);
CIMGUI_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
CIMGUI_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count);
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -17,13 +17,67 @@
"cimguiname": "ImGui_ImplGlfw_CharCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_CharCallback",
"location": "imgui_impl_glfw:40",
"location": "imgui_impl_glfw:61",
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
"ret": "void",
"signature": "(GLFWwindow*,unsigned int)",
"stname": ""
}
],
"ImGui_ImplGlfw_CursorEnterCallback": [
{
"args": "(GLFWwindow* window,int entered)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "entered",
"type": "int"
}
],
"argsoriginal": "(GLFWwindow* window,int entered)",
"call_args": "(window,entered)",
"cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_CursorEnterCallback",
"location": "imgui_impl_glfw:56",
"ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
"ret": "void",
"signature": "(GLFWwindow*,int)",
"stname": ""
}
],
"ImGui_ImplGlfw_CursorPosCallback": [
{
"args": "(GLFWwindow* window,double x,double y)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "x",
"type": "double"
},
{
"name": "y",
"type": "double"
}
],
"argsoriginal": "(GLFWwindow* window,double x,double y)",
"call_args": "(window,x,y)",
"cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_CursorPosCallback",
"location": "imgui_impl_glfw:57",
"ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
"ret": "void",
"signature": "(GLFWwindow*,double,double)",
"stname": ""
}
],
"ImGui_ImplGlfw_InitForOpenGL": [
{
"args": "(GLFWwindow* window,bool install_callbacks)",
@@ -42,13 +96,38 @@
"cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
"defaults": {},
"funcname": "ImGui_ImplGlfw_InitForOpenGL",
"location": "imgui_impl_glfw:29",
"location": "imgui_impl_glfw:32",
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
"ret": "bool",
"signature": "(GLFWwindow*,bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_InitForOther": [
{
"args": "(GLFWwindow* window,bool install_callbacks)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "install_callbacks",
"type": "bool"
}
],
"argsoriginal": "(GLFWwindow* window,bool install_callbacks)",
"call_args": "(window,install_callbacks)",
"cimguiname": "ImGui_ImplGlfw_InitForOther",
"defaults": {},
"funcname": "ImGui_ImplGlfw_InitForOther",
"location": "imgui_impl_glfw:34",
"ov_cimguiname": "ImGui_ImplGlfw_InitForOther",
"ret": "bool",
"signature": "(GLFWwindow*,bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_InitForVulkan": [
{
"args": "(GLFWwindow* window,bool install_callbacks)",
@@ -67,13 +146,34 @@
"cimguiname": "ImGui_ImplGlfw_InitForVulkan",
"defaults": {},
"funcname": "ImGui_ImplGlfw_InitForVulkan",
"location": "imgui_impl_glfw:30",
"location": "imgui_impl_glfw:33",
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
"ret": "bool",
"signature": "(GLFWwindow*,bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_InstallCallbacks": [
{
"args": "(GLFWwindow* window)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
}
],
"argsoriginal": "(GLFWwindow* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
"defaults": {},
"funcname": "ImGui_ImplGlfw_InstallCallbacks",
"location": "imgui_impl_glfw:47",
"ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
"ret": "void",
"signature": "(GLFWwindow*)",
"stname": ""
}
],
"ImGui_ImplGlfw_KeyCallback": [
{
"args": "(GLFWwindow* window,int key,int scancode,int action,int mods)",
@@ -104,7 +204,7 @@
"cimguiname": "ImGui_ImplGlfw_KeyCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_KeyCallback",
"location": "imgui_impl_glfw:39",
"location": "imgui_impl_glfw:60",
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
"ret": "void",
"signature": "(GLFWwindow*,int,int,int,int)",
@@ -129,7 +229,7 @@
"cimguiname": "ImGui_ImplGlfw_MonitorCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_MonitorCallback",
"location": "imgui_impl_glfw:41",
"location": "imgui_impl_glfw:62",
"ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback",
"ret": "void",
"signature": "(GLFWmonitor*,int)",
@@ -162,7 +262,7 @@
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_MouseButtonCallback",
"location": "imgui_impl_glfw:37",
"location": "imgui_impl_glfw:58",
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"ret": "void",
"signature": "(GLFWwindow*,int,int,int)",
@@ -178,13 +278,34 @@
"cimguiname": "ImGui_ImplGlfw_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplGlfw_NewFrame",
"location": "imgui_impl_glfw:32",
"location": "imgui_impl_glfw:36",
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplGlfw_RestoreCallbacks": [
{
"args": "(GLFWwindow* window)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
}
],
"argsoriginal": "(GLFWwindow* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
"defaults": {},
"funcname": "ImGui_ImplGlfw_RestoreCallbacks",
"location": "imgui_impl_glfw:48",
"ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
"ret": "void",
"signature": "(GLFWwindow*)",
"stname": ""
}
],
"ImGui_ImplGlfw_ScrollCallback": [
{
"args": "(GLFWwindow* window,double xoffset,double yoffset)",
@@ -207,13 +328,34 @@
"cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_ScrollCallback",
"location": "imgui_impl_glfw:38",
"location": "imgui_impl_glfw:59",
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"ret": "void",
"signature": "(GLFWwindow*,double,double)",
"stname": ""
}
],
"ImGui_ImplGlfw_SetCallbacksChainForAllWindows": [
{
"args": "(bool chain_for_all_windows)",
"argsT": [
{
"name": "chain_for_all_windows",
"type": "bool"
}
],
"argsoriginal": "(bool chain_for_all_windows)",
"call_args": "(chain_for_all_windows)",
"cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"defaults": {},
"funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"location": "imgui_impl_glfw:52",
"ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"ret": "void",
"signature": "(bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_Shutdown": [
{
"args": "()",
@@ -223,13 +365,59 @@
"cimguiname": "ImGui_ImplGlfw_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplGlfw_Shutdown",
"location": "imgui_impl_glfw:31",
"location": "imgui_impl_glfw:35",
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplGlfw_Sleep": [
{
"args": "(int milliseconds)",
"argsT": [
{
"name": "milliseconds",
"type": "int"
}
],
"argsoriginal": "(int milliseconds)",
"call_args": "(milliseconds)",
"cimguiname": "ImGui_ImplGlfw_Sleep",
"defaults": {},
"funcname": "ImGui_ImplGlfw_Sleep",
"location": "imgui_impl_glfw:65",
"ov_cimguiname": "ImGui_ImplGlfw_Sleep",
"ret": "void",
"signature": "(int)",
"stname": ""
}
],
"ImGui_ImplGlfw_WindowFocusCallback": [
{
"args": "(GLFWwindow* window,int focused)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "focused",
"type": "int"
}
],
"argsoriginal": "(GLFWwindow* window,int focused)",
"call_args": "(window,focused)",
"cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
"defaults": {},
"funcname": "ImGui_ImplGlfw_WindowFocusCallback",
"location": "imgui_impl_glfw:55",
"ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
"ret": "void",
"signature": "(GLFWwindow*,int)",
"stname": ""
}
],
"ImGui_ImplOpenGL2_CreateDeviceObjects": [
{
"args": "()",
@@ -239,7 +427,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"location": "imgui_impl_opengl2:31",
"location": "imgui_impl_opengl2:39",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ret": "bool",
"signature": "()",
@@ -255,7 +443,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"location": "imgui_impl_opengl2:29",
"location": "imgui_impl_opengl2:37",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ret": "bool",
"signature": "()",
@@ -271,7 +459,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"location": "imgui_impl_opengl2:32",
"location": "imgui_impl_opengl2:40",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ret": "void",
"signature": "()",
@@ -287,7 +475,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"location": "imgui_impl_opengl2:30",
"location": "imgui_impl_opengl2:38",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ret": "void",
"signature": "()",
@@ -303,7 +491,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Init",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_Init",
"location": "imgui_impl_opengl2:23",
"location": "imgui_impl_opengl2:31",
"ov_cimguiname": "ImGui_ImplOpenGL2_Init",
"ret": "bool",
"signature": "()",
@@ -319,7 +507,7 @@
"cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_NewFrame",
"location": "imgui_impl_opengl2:25",
"location": "imgui_impl_opengl2:33",
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"ret": "void",
"signature": "()",
@@ -340,7 +528,7 @@
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_RenderDrawData",
"location": "imgui_impl_opengl2:26",
"location": "imgui_impl_opengl2:34",
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*)",
@@ -356,7 +544,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplOpenGL2_Shutdown",
"location": "imgui_impl_opengl2:24",
"location": "imgui_impl_opengl2:32",
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"ret": "void",
"signature": "()",
@@ -372,7 +560,7 @@
"cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"location": "imgui_impl_opengl3:37",
"location": "imgui_impl_opengl3:42",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"ret": "bool",
"signature": "()",
@@ -388,7 +576,7 @@
"cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"location": "imgui_impl_opengl3:35",
"location": "imgui_impl_opengl3:40",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"ret": "bool",
"signature": "()",
@@ -404,7 +592,7 @@
"cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"location": "imgui_impl_opengl3:38",
"location": "imgui_impl_opengl3:43",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"ret": "void",
"signature": "()",
@@ -420,7 +608,7 @@
"cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"location": "imgui_impl_opengl3:36",
"location": "imgui_impl_opengl3:41",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"ret": "void",
"signature": "()",
@@ -436,14 +624,14 @@
"type": "const char*"
}
],
"argsoriginal": "(const char* glsl_version=((void*)0))",
"argsoriginal": "(const char* glsl_version=nullptr)",
"call_args": "(glsl_version)",
"cimguiname": "ImGui_ImplOpenGL3_Init",
"defaults": {
"glsl_version": "((void*)0)"
"glsl_version": "nullptr"
},
"funcname": "ImGui_ImplOpenGL3_Init",
"location": "imgui_impl_opengl3:29",
"location": "imgui_impl_opengl3:34",
"ov_cimguiname": "ImGui_ImplOpenGL3_Init",
"ret": "bool",
"signature": "(const char*)",
@@ -459,7 +647,7 @@
"cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_NewFrame",
"location": "imgui_impl_opengl3:31",
"location": "imgui_impl_opengl3:36",
"ov_cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"ret": "void",
"signature": "()",
@@ -480,7 +668,7 @@
"cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_RenderDrawData",
"location": "imgui_impl_opengl3:32",
"location": "imgui_impl_opengl3:37",
"ov_cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*)",
@@ -496,7 +684,7 @@
"cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplOpenGL3_Shutdown",
"location": "imgui_impl_opengl3:30",
"location": "imgui_impl_opengl3:35",
"ov_cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"ret": "void",
"signature": "()",
@@ -517,7 +705,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForD3D",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForD3D",
"location": "imgui_impl_sdl:27",
"location": "imgui_impl_sdl2:37",
"ov_cimguiname": "ImGui_ImplSDL2_InitForD3D",
"ret": "bool",
"signature": "(SDL_Window*)",
@@ -538,7 +726,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForMetal",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForMetal",
"location": "imgui_impl_sdl:28",
"location": "imgui_impl_sdl2:38",
"ov_cimguiname": "ImGui_ImplSDL2_InitForMetal",
"ret": "bool",
"signature": "(SDL_Window*)",
@@ -563,13 +751,59 @@
"cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForOpenGL",
"location": "imgui_impl_sdl:25",
"location": "imgui_impl_sdl2:35",
"ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
"ret": "bool",
"signature": "(SDL_Window*,void*)",
"stname": ""
}
],
"ImGui_ImplSDL2_InitForOther": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL2_InitForOther",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForOther",
"location": "imgui_impl_sdl2:40",
"ov_cimguiname": "ImGui_ImplSDL2_InitForOther",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL2_InitForSDLRenderer": [
{
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "renderer",
"type": "SDL_Renderer*"
}
],
"argsoriginal": "(SDL_Window* window,SDL_Renderer* renderer)",
"call_args": "(window,renderer)",
"cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForSDLRenderer",
"location": "imgui_impl_sdl2:39",
"ov_cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
"ret": "bool",
"signature": "(SDL_Window*,SDL_Renderer*)",
"stname": ""
}
],
"ImGui_ImplSDL2_InitForVulkan": [
{
"args": "(SDL_Window* window)",
@@ -584,7 +818,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"defaults": {},
"funcname": "ImGui_ImplSDL2_InitForVulkan",
"location": "imgui_impl_sdl:26",
"location": "imgui_impl_sdl2:36",
"ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"ret": "bool",
"signature": "(SDL_Window*)",
@@ -593,22 +827,17 @@
],
"ImGui_ImplSDL2_NewFrame": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL2_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplSDL2_NewFrame",
"location": "imgui_impl_sdl:30",
"location": "imgui_impl_sdl2:42",
"ov_cimguiname": "ImGui_ImplSDL2_NewFrame",
"ret": "void",
"signature": "(SDL_Window*)",
"signature": "()",
"stname": ""
}
],
@@ -626,13 +855,45 @@
"cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"defaults": {},
"funcname": "ImGui_ImplSDL2_ProcessEvent",
"location": "imgui_impl_sdl:31",
"location": "imgui_impl_sdl2:43",
"ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"ret": "bool",
"signature": "(const SDL_Event*)",
"stname": ""
}
],
"ImGui_ImplSDL2_SetGamepadMode": [
{
"args": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count)",
"argsT": [
{
"name": "mode",
"type": "ImGui_ImplSDL2_GamepadMode"
},
{
"name": "manual_gamepads_array",
"type": "struct _SDL_GameController**"
},
{
"name": "manual_gamepads_count",
"type": "int"
}
],
"argsoriginal": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"defaults": {
"manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1"
},
"funcname": "ImGui_ImplSDL2_SetGamepadMode",
"location": "imgui_impl_sdl2:48",
"ov_cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"ret": "void",
"signature": "(ImGui_ImplSDL2_GamepadMode,struct _SDL_GameController**,int)",
"stname": ""
}
],
"ImGui_ImplSDL2_Shutdown": [
{
"args": "()",
@@ -642,11 +903,251 @@
"cimguiname": "ImGui_ImplSDL2_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplSDL2_Shutdown",
"location": "imgui_impl_sdl:29",
"location": "imgui_impl_sdl2:41",
"ov_cimguiname": "ImGui_ImplSDL2_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForD3D": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForD3D",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForD3D",
"location": "imgui_impl_sdl3:38",
"ov_cimguiname": "ImGui_ImplSDL3_InitForD3D",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForMetal": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForMetal",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForMetal",
"location": "imgui_impl_sdl3:39",
"ov_cimguiname": "ImGui_ImplSDL3_InitForMetal",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOpenGL": [
{
"args": "(SDL_Window* window,void* sdl_gl_context)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "sdl_gl_context",
"type": "void*"
}
],
"argsoriginal": "(SDL_Window* window,void* sdl_gl_context)",
"call_args": "(window,sdl_gl_context)",
"cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOpenGL",
"location": "imgui_impl_sdl3:36",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"ret": "bool",
"signature": "(SDL_Window*,void*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOther": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForOther",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOther",
"location": "imgui_impl_sdl3:42",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOther",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLGPU": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLGPU",
"location": "imgui_impl_sdl3:41",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLRenderer": [
{
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "renderer",
"type": "SDL_Renderer*"
}
],
"argsoriginal": "(SDL_Window* window,SDL_Renderer* renderer)",
"call_args": "(window,renderer)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLRenderer",
"location": "imgui_impl_sdl3:40",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"ret": "bool",
"signature": "(SDL_Window*,SDL_Renderer*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForVulkan": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForVulkan",
"location": "imgui_impl_sdl3:37",
"ov_cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplSDL3_NewFrame",
"location": "imgui_impl_sdl3:44",
"ov_cimguiname": "ImGui_ImplSDL3_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL3_ProcessEvent": [
{
"args": "(const SDL_Event* event)",
"argsT": [
{
"name": "event",
"type": "const SDL_Event*"
}
],
"argsoriginal": "(const SDL_Event* event)",
"call_args": "(event)",
"cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"defaults": {},
"funcname": "ImGui_ImplSDL3_ProcessEvent",
"location": "imgui_impl_sdl3:45",
"ov_cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"ret": "bool",
"signature": "(const SDL_Event*)",
"stname": ""
}
],
"ImGui_ImplSDL3_SetGamepadMode": [
{
"args": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count)",
"argsT": [
{
"name": "mode",
"type": "ImGui_ImplSDL3_GamepadMode"
},
{
"name": "manual_gamepads_array",
"type": "SDL_Gamepad**"
},
{
"name": "manual_gamepads_count",
"type": "int"
}
],
"argsoriginal": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"defaults": {
"manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1"
},
"funcname": "ImGui_ImplSDL3_SetGamepadMode",
"location": "imgui_impl_sdl3:50",
"ov_cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"ret": "void",
"signature": "(ImGui_ImplSDL3_GamepadMode,SDL_Gamepad**,int)",
"stname": ""
}
],
"ImGui_ImplSDL3_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplSDL3_Shutdown",
"location": "imgui_impl_sdl3:43",
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,251 +1,296 @@
----------------overloadings---------------------------
ImColor_ImColor 5
1 nil ImColor_ImColorNil ()
2 nil ImColor_ImColorInt (int,int,int,int)
3 nil ImColor_ImColorU32 (ImU32)
4 nil ImColor_ImColorFloat (float,float,float,float)
5 nil ImColor_ImColorVec4 (const ImVec4)
1 nil ImColor_ImColor_Nil ()
2 nil ImColor_ImColor_Float (float,float,float,float)
3 nil ImColor_ImColor_Vec4 (const ImVec4)
4 nil ImColor_ImColor_Int (int,int,int,int)
5 nil ImColor_ImColor_U32 (ImU32)
ImDrawList_AddText 2
1 void ImDrawList_AddTextVec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddTextFontPtr (const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddText_FontPtr (ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
ImGuiPtrOrIndex_ImGuiPtrOrIndex 2
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndexInt (int)
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int)
ImGuiStoragePair_ImGuiStoragePair 3
1 nil ImGuiStoragePair_ImGuiStoragePairInt (ImGuiID,int)
2 nil ImGuiStoragePair_ImGuiStoragePairFloat (ImGuiID,float)
3 nil ImGuiStoragePair_ImGuiStoragePairPtr (ImGuiID,void*)
1 nil ImGuiStoragePair_ImGuiStoragePair_Int (ImGuiID,int)
2 nil ImGuiStoragePair_ImGuiStoragePair_Float (ImGuiID,float)
3 nil ImGuiStoragePair_ImGuiStoragePair_Ptr (ImGuiID,void*)
ImGuiStyleMod_ImGuiStyleMod 3
1 nil ImGuiStyleMod_ImGuiStyleModInt (ImGuiStyleVar,int)
2 nil ImGuiStyleMod_ImGuiStyleModFloat (ImGuiStyleVar,float)
3 nil ImGuiStyleMod_ImGuiStyleModVec2 (ImGuiStyleVar,ImVec2)
1 nil ImGuiStyleMod_ImGuiStyleMod_Int (ImGuiStyleVar,int)
2 nil ImGuiStyleMod_ImGuiStyleMod_Float (ImGuiStyleVar,float)
3 nil ImGuiStyleMod_ImGuiStyleMod_Vec2 (ImGuiStyleVar,ImVec2)
ImGuiTextRange_ImGuiTextRange 2
1 nil ImGuiTextRange_ImGuiTextRangeNil ()
2 nil ImGuiTextRange_ImGuiTextRangeStr (const char*,const char*)
1 nil ImGuiTextRange_ImGuiTextRange_Nil ()
2 nil ImGuiTextRange_ImGuiTextRange_Str (const char*,const char*)
ImGuiWindow_GetID 3
1 ImGuiID ImGuiWindow_GetIDStr (const char*,const char*)
2 ImGuiID ImGuiWindow_GetIDPtr (const void*)
3 ImGuiID ImGuiWindow_GetIDInt (int)
ImGuiWindow_GetIDNoKeepAlive 3
1 ImGuiID ImGuiWindow_GetIDNoKeepAliveStr (const char*,const char*)
2 ImGuiID ImGuiWindow_GetIDNoKeepAlivePtr (const void*)
3 ImGuiID ImGuiWindow_GetIDNoKeepAliveInt (int)
1 ImGuiID ImGuiWindow_GetID_Str (const char*,const char*)
2 ImGuiID ImGuiWindow_GetID_Ptr (const void*)
3 ImGuiID ImGuiWindow_GetID_Int (int)
ImPool_Remove 2
1 void ImPool_RemoveTPtr (ImGuiID,const T*)
2 void ImPool_RemovePoolIdx (ImGuiID,ImPoolIdx)
1 void ImPool_Remove_TPtr (ImGuiID,const T*)
2 void ImPool_Remove_PoolIdx (ImGuiID,ImPoolIdx)
ImRect_Add 2
1 void ImRect_AddVec2 (const ImVec2)
2 void ImRect_AddRect (const ImRect)
1 void ImRect_Add_Vec2 (const ImVec2)
2 void ImRect_Add_Rect (const ImRect)
ImRect_Contains 2
1 bool ImRect_ContainsVec2 (const ImVec2)const
2 bool ImRect_ContainsRect (const ImRect)const
1 bool ImRect_Contains_Vec2 (const ImVec2)const
2 bool ImRect_Contains_Rect (const ImRect)const
ImRect_Expand 2
1 void ImRect_ExpandFloat (const float)
2 void ImRect_ExpandVec2 (const ImVec2)
1 void ImRect_Expand_Float (const float)
2 void ImRect_Expand_Vec2 (const ImVec2)
ImRect_ImRect 4
1 nil ImRect_ImRectNil ()
2 nil ImRect_ImRectVec2 (const ImVec2,const ImVec2)
3 nil ImRect_ImRectVec4 (const ImVec4)
4 nil ImRect_ImRectFloat (float,float,float,float)
1 nil ImRect_ImRect_Nil ()
2 nil ImRect_ImRect_Vec2 (const ImVec2,const ImVec2)
3 nil ImRect_ImRect_Vec4 (const ImVec4)
4 nil ImRect_ImRect_Float (float,float,float,float)
ImSpan_ImSpan 3
1 nil ImSpan_ImSpanNil ()
2 nil ImSpan_ImSpanTPtrInt (T*,int)
3 nil ImSpan_ImSpanTPtrTPtr (T*,T*)
1 nil ImSpan_ImSpan_Nil ()
2 nil ImSpan_ImSpan_TPtrInt (T*,int)
3 nil ImSpan_ImSpan_TPtrTPtr (T*,T*)
ImSpan_begin 2
1 T* ImSpan_beginNil ()
2 const T* ImSpan_begin_const ()const
1 T* ImSpan_begin_Nil ()
2 const T* ImSpan_begin__const ()const
ImSpan_end 2
1 T* ImSpan_endNil ()
2 const T* ImSpan_end_const ()const
1 T* ImSpan_end_Nil ()
2 const T* ImSpan_end__const ()const
ImSpan_set 2
1 void ImSpan_setInt (T*,int)
2 void ImSpan_setTPtr (T*,T*)
1 void ImSpan_set_Int (T*,int)
2 void ImSpan_set_TPtr (T*,T*)
ImVec1_ImVec1 2
1 nil ImVec1_ImVec1Nil ()
2 nil ImVec1_ImVec1Float (float)
1 nil ImVec1_ImVec1_Nil ()
2 nil ImVec1_ImVec1_Float (float)
ImVec2_ImVec2 2
1 nil ImVec2_ImVec2Nil ()
2 nil ImVec2_ImVec2Float (float,float)
1 nil ImVec2_ImVec2_Nil ()
2 nil ImVec2_ImVec2_Float (float,float)
ImVec2ih_ImVec2ih 3
1 nil ImVec2ih_ImVec2ihNil ()
2 nil ImVec2ih_ImVec2ihshort (short,short)
3 nil ImVec2ih_ImVec2ihVec2 (const ImVec2)
1 nil ImVec2ih_ImVec2ih_Nil ()
2 nil ImVec2ih_ImVec2ih_short (short,short)
3 nil ImVec2ih_ImVec2ih_Vec2 (const ImVec2)
ImVec4_ImVec4 2
1 nil ImVec4_ImVec4Nil ()
2 nil ImVec4_ImVec4Float (float,float,float,float)
1 nil ImVec4_ImVec4_Nil ()
2 nil ImVec4_ImVec4_Float (float,float,float,float)
ImVector_ImVector 2
1 nil ImVector_ImVectorNil ()
2 nil ImVector_ImVectorVector (const ImVector)
1 nil ImVector_ImVector_Nil ()
2 nil ImVector_ImVector_Vector_T_ (const ImVector_T )
ImVector_back 2
1 T* ImVector_backNil ()
2 const T* ImVector_back_const ()const
1 T* ImVector_back_Nil ()
2 const T* ImVector_back__const ()const
ImVector_begin 2
1 T* ImVector_beginNil ()
2 const T* ImVector_begin_const ()const
1 T* ImVector_begin_Nil ()
2 const T* ImVector_begin__const ()const
ImVector_end 2
1 T* ImVector_endNil ()
2 const T* ImVector_end_const ()const
1 T* ImVector_end_Nil ()
2 const T* ImVector_end__const ()const
ImVector_erase 2
1 T* ImVector_eraseNil (const T*)
2 T* ImVector_eraseTPtr (const T*,const T*)
1 T* ImVector_erase_Nil (const T*)
2 T* ImVector_erase_TPtr (const T*,const T*)
ImVector_find 2
1 T* ImVector_findNil (const T)
2 const T* ImVector_find_const (const T)const
1 T* ImVector_find_Nil (const T)
2 const T* ImVector_find__const (const T)const
ImVector_front 2
1 T* ImVector_frontNil ()
2 const T* ImVector_front_const ()const
1 T* ImVector_front_Nil ()
2 const T* ImVector_front__const ()const
ImVector_resize 2
1 void ImVector_resizeNil (int)
2 void ImVector_resizeT (int,const T)
1 void ImVector_resize_Nil (int)
2 void ImVector_resize_T (int,const T)
igBeginChild 2
1 bool igBeginChildStr (const char*,const ImVec2,bool,ImGuiWindowFlags)
2 bool igBeginChildID (ImGuiID,const ImVec2,bool,ImGuiWindowFlags)
1 bool igBeginChild_Str (const char*,const ImVec2,ImGuiChildFlags,ImGuiWindowFlags)
2 bool igBeginChild_ID (ImGuiID,const ImVec2,ImGuiChildFlags,ImGuiWindowFlags)
igCheckboxFlags 4
1 bool igCheckboxFlagsIntPtr (const char*,int*,int)
2 bool igCheckboxFlagsUintPtr (const char*,unsigned int*,unsigned int)
3 bool igCheckboxFlagsS64Ptr (const char*,ImS64*,ImS64)
4 bool igCheckboxFlagsU64Ptr (const char*,ImU64*,ImU64)
1 bool igCheckboxFlags_IntPtr (const char*,int*,int)
2 bool igCheckboxFlags_UintPtr (const char*,unsigned int*,unsigned int)
3 bool igCheckboxFlags_S64Ptr (const char*,ImS64*,ImS64)
4 bool igCheckboxFlags_U64Ptr (const char*,ImU64*,ImU64)
igCollapsingHeader 2
1 bool igCollapsingHeaderTreeNodeFlags (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeaderBoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
1 bool igCollapsingHeader_TreeNodeFlags (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeader_BoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
igCombo 3
1 bool igComboStr_arr (const char*,int*,const char* const[],int,int)
2 bool igComboStr (const char*,int*,const char*,int)
3 bool igComboFnBoolPtr (const char*,int*,bool(*)(void*,int,const char**),void*,int,int)
igGetBackgroundDrawList 2
1 ImDrawList* igGetBackgroundDrawListNil ()
2 ImDrawList* igGetBackgroundDrawListViewportPtr (ImGuiViewport*)
1 bool igCombo_Str_arr (const char*,int*,const char* const[],int,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)
igGetColorU32 3
1 ImU32 igGetColorU32Col (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
igGetForegroundDrawList 3
1 ImDrawList* igGetForegroundDrawListNil ()
2 ImDrawList* igGetForegroundDrawListViewportPtr (ImGuiViewport*)
3 ImDrawList* igGetForegroundDrawListWindowPtr (ImGuiWindow*)
igGetID 3
1 ImGuiID igGetIDStr (const char*)
2 ImGuiID igGetIDStrStr (const char*,const char*)
3 ImGuiID igGetIDPtr (const void*)
igImAbs 2
1 float igImAbsFloat (float)
2 double igImAbsdouble (double)
1 ImU32 igGetColorU32_Col (ImGuiCol,float)
2 ImU32 igGetColorU32_Vec4 (const ImVec4)
3 ImU32 igGetColorU32_U32 (ImU32,float)
igGetForegroundDrawList 2
1 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
igGetID 4
1 ImGuiID igGetID_Str (const char*)
2 ImGuiID igGetID_StrStr (const char*,const char*)
3 ImGuiID igGetID_Ptr (const void*)
4 ImGuiID igGetID_Int (int)
igGetIDWithSeed 2
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
igGetKeyData 2
1 ImGuiKeyData* igGetKeyData_ContextPtr (ImGuiContext*,ImGuiKey)
2 ImGuiKeyData* igGetKeyData_Key (ImGuiKey)
igImAbs 3
1 int igImAbs_Int (int)
2 float igImAbs_Float (float)
3 double igImAbs_double (double)
igImFloor 2
1 float igImFloorFloat (float)
2 ImVec2 igImFloorVec2 (const ImVec2)
1 float igImFloor_Float (float)
2 ImVec2 igImFloor_Vec2 (const ImVec2)
igImIsPowerOfTwo 2
1 bool igImIsPowerOfTwoInt (int)
2 bool igImIsPowerOfTwoU64 (ImU64)
1 bool igImIsPowerOfTwo_Int (int)
2 bool igImIsPowerOfTwo_U64 (ImU64)
igImLengthSqr 2
1 float igImLengthSqrVec2 (const ImVec2)
2 float igImLengthSqrVec4 (const ImVec4)
1 float igImLengthSqr_Vec2 (const ImVec2)
2 float igImLengthSqr_Vec4 (const ImVec4)
igImLerp 3
1 ImVec2 igImLerpVec2Float (const ImVec2,const ImVec2,float)
2 ImVec2 igImLerpVec2Vec2 (const ImVec2,const ImVec2,const ImVec2)
3 ImVec4 igImLerpVec4 (const ImVec4,const ImVec4,float)
1 ImVec2 igImLerp_Vec2Float (const ImVec2,const ImVec2,float)
2 ImVec2 igImLerp_Vec2Vec2 (const ImVec2,const ImVec2,const ImVec2)
3 ImVec4 igImLerp_Vec4 (const ImVec4,const ImVec4,float)
igImLog 2
1 float igImLogFloat (float)
2 double igImLogdouble (double)
1 float igImLog_Float (float)
2 double igImLog_double (double)
igImPow 2
1 float igImPowFloat (float,float)
2 double igImPowdouble (double,double)
1 float igImPow_Float (float,float)
2 double igImPow_double (double,double)
igImRsqrt 2
1 float igImRsqrt_Float (float)
2 double igImRsqrt_double (double)
igImSign 2
1 float igImSignFloat (float)
2 double igImSigndouble (double)
1 float igImSign_Float (float)
2 double igImSign_double (double)
igImTrunc 2
1 float igImTrunc_Float (float)
2 ImVec2 igImTrunc_Vec2 (const ImVec2)
igIsKeyChordPressed 2
1 bool igIsKeyChordPressed_Nil (ImGuiKeyChord)
2 bool igIsKeyChordPressed_InputFlags (ImGuiKeyChord,ImGuiInputFlags,ImGuiID)
igIsKeyDown 2
1 bool igIsKeyDown_Nil (ImGuiKey)
2 bool igIsKeyDown_ID (ImGuiKey,ImGuiID)
igIsKeyPressed 2
1 bool igIsKeyPressed_Bool (ImGuiKey,bool)
2 bool igIsKeyPressed_InputFlags (ImGuiKey,ImGuiInputFlags,ImGuiID)
igIsKeyReleased 2
1 bool igIsKeyReleased_Nil (ImGuiKey)
2 bool igIsKeyReleased_ID (ImGuiKey,ImGuiID)
igIsMouseClicked 2
1 bool igIsMouseClicked_Bool (ImGuiMouseButton,bool)
2 bool igIsMouseClicked_InputFlags (ImGuiMouseButton,ImGuiInputFlags,ImGuiID)
igIsMouseDoubleClicked 2
1 bool igIsMouseDoubleClicked_Nil (ImGuiMouseButton)
2 bool igIsMouseDoubleClicked_ID (ImGuiMouseButton,ImGuiID)
igIsMouseDown 2
1 bool igIsMouseDown_Nil (ImGuiMouseButton)
2 bool igIsMouseDown_ID (ImGuiMouseButton,ImGuiID)
igIsMouseReleased 2
1 bool igIsMouseReleased_Nil (ImGuiMouseButton)
2 bool igIsMouseReleased_ID (ImGuiMouseButton,ImGuiID)
igIsPopupOpen 2
1 bool igIsPopupOpenStr (const char*,ImGuiPopupFlags)
2 bool igIsPopupOpenID (ImGuiID,ImGuiPopupFlags)
1 bool igIsPopupOpen_Str (const char*,ImGuiPopupFlags)
2 bool igIsPopupOpen_ID (ImGuiID,ImGuiPopupFlags)
igIsRectVisible 2
1 bool igIsRectVisibleNil (const ImVec2)
2 bool igIsRectVisibleVec2 (const ImVec2,const ImVec2)
1 bool igIsRectVisible_Nil (const ImVec2)
2 bool igIsRectVisible_Vec2 (const ImVec2,const ImVec2)
igItemSize 2
1 void igItemSizeVec2 (const ImVec2,float)
2 void igItemSizeRect (const ImRect,float)
1 void igItemSize_Vec2 (const ImVec2,float)
2 void igItemSize_Rect (const ImRect,float)
igListBox 2
1 bool igListBoxStr_arr (const char*,int*,const char* const[],int,int)
2 bool igListBoxFnBoolPtr (const char*,int*,bool(*)(void*,int,const char**),void*,int,int)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
1 bool igListBox_Str_arr (const char*,int*,const char* const[],int,int)
2 bool igListBox_FnStrPtr (const char*,int*,const char*(*)(void*,int),void*,int,int)
igMarkIniSettingsDirty 2
1 void igMarkIniSettingsDirtyNil ()
2 void igMarkIniSettingsDirtyWindowPtr (ImGuiWindow*)
1 void igMarkIniSettingsDirty_Nil ()
2 void igMarkIniSettingsDirty_WindowPtr (ImGuiWindow*)
igMenuItem 2
1 bool igMenuItemBool (const char*,const char*,bool,bool)
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
1 bool igMenuItem_Bool (const char*,const char*,bool,bool)
2 bool igMenuItem_BoolPtr (const char*,const char*,bool*,bool)
igOpenPopup 2
1 void igOpenPopup_Str (const char*,ImGuiPopupFlags)
2 void igOpenPopup_ID (ImGuiID,ImGuiPopupFlags)
igPlotHistogram 2
1 void igPlotHistogramFloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotHistogramFnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
1 void igPlotHistogram_FloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotHistogram_FnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
igPlotLines 2
1 void igPlotLinesFloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotLinesFnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
1 void igPlotLines_FloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotLines_FnFloatPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
igPushID 4
1 void igPushIDStr (const char*)
2 void igPushIDStrStr (const char*,const char*)
3 void igPushIDPtr (const void*)
4 void igPushIDInt (int)
1 void igPushID_Str (const char*)
2 void igPushID_StrStr (const char*,const char*)
3 void igPushID_Ptr (const void*)
4 void igPushID_Int (int)
igPushStyleColor 2
1 void igPushStyleColorU32 (ImGuiCol,ImU32)
2 void igPushStyleColorVec4 (ImGuiCol,const ImVec4)
1 void igPushStyleColor_U32 (ImGuiCol,ImU32)
2 void igPushStyleColor_Vec4 (ImGuiCol,const ImVec4)
igPushStyleVar 2
1 void igPushStyleVarFloat (ImGuiStyleVar,float)
2 void igPushStyleVarVec2 (ImGuiStyleVar,const ImVec2)
1 void igPushStyleVar_Float (ImGuiStyleVar,float)
2 void igPushStyleVar_Vec2 (ImGuiStyleVar,const ImVec2)
igRadioButton 2
1 bool igRadioButtonBool (const char*,bool)
2 bool igRadioButtonIntPtr (const char*,int*,int)
1 bool igRadioButton_Bool (const char*,bool)
2 bool igRadioButton_IntPtr (const char*,int*,int)
igSelectable 2
1 bool igSelectableBool (const char*,bool,ImGuiSelectableFlags,const ImVec2)
2 bool igSelectableBoolPtr (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)
igSetItemKeyOwner 2
1 void igSetItemKeyOwner_Nil (ImGuiKey)
2 void igSetItemKeyOwner_InputFlags (ImGuiKey,ImGuiInputFlags)
igSetScrollFromPosX 2
1 void igSetScrollFromPosXFloat (float,float)
2 void igSetScrollFromPosXWindowPtr (ImGuiWindow*,float,float)
1 void igSetScrollFromPosX_Float (float,float)
2 void igSetScrollFromPosX_WindowPtr (ImGuiWindow*,float,float)
igSetScrollFromPosY 2
1 void igSetScrollFromPosYFloat (float,float)
2 void igSetScrollFromPosYWindowPtr (ImGuiWindow*,float,float)
1 void igSetScrollFromPosY_Float (float,float)
2 void igSetScrollFromPosY_WindowPtr (ImGuiWindow*,float,float)
igSetScrollX 2
1 void igSetScrollXFloat (float)
2 void igSetScrollXWindowPtr (ImGuiWindow*,float)
1 void igSetScrollX_Float (float)
2 void igSetScrollX_WindowPtr (ImGuiWindow*,float)
igSetScrollY 2
1 void igSetScrollYFloat (float)
2 void igSetScrollYWindowPtr (ImGuiWindow*,float)
1 void igSetScrollY_Float (float)
2 void igSetScrollY_WindowPtr (ImGuiWindow*,float)
igSetWindowCollapsed 3
1 void igSetWindowCollapsedBool (bool,ImGuiCond)
2 void igSetWindowCollapsedStr (const char*,bool,ImGuiCond)
3 void igSetWindowCollapsedWindowPtr (ImGuiWindow*,bool,ImGuiCond)
1 void igSetWindowCollapsed_Bool (bool,ImGuiCond)
2 void igSetWindowCollapsed_Str (const char*,bool,ImGuiCond)
3 void igSetWindowCollapsed_WindowPtr (ImGuiWindow*,bool,ImGuiCond)
igSetWindowFocus 2
1 void igSetWindowFocusNil ()
2 void igSetWindowFocusStr (const char*)
1 void igSetWindowFocus_Nil ()
2 void igSetWindowFocus_Str (const char*)
igSetWindowPos 3
1 void igSetWindowPosVec2 (const ImVec2,ImGuiCond)
2 void igSetWindowPosStr (const char*,const ImVec2,ImGuiCond)
3 void igSetWindowPosWindowPtr (ImGuiWindow*,const ImVec2,ImGuiCond)
1 void igSetWindowPos_Vec2 (const ImVec2,ImGuiCond)
2 void igSetWindowPos_Str (const char*,const ImVec2,ImGuiCond)
3 void igSetWindowPos_WindowPtr (ImGuiWindow*,const ImVec2,ImGuiCond)
igSetWindowSize 3
1 void igSetWindowSizeVec2 (const ImVec2,ImGuiCond)
2 void igSetWindowSizeStr (const char*,const ImVec2,ImGuiCond)
3 void igSetWindowSizeWindowPtr (ImGuiWindow*,const ImVec2,ImGuiCond)
1 void igSetWindowSize_Vec2 (const ImVec2,ImGuiCond)
2 void igSetWindowSize_Str (const char*,const ImVec2,ImGuiCond)
3 void igSetWindowSize_WindowPtr (ImGuiWindow*,const ImVec2,ImGuiCond)
igShortcut 2
1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags)
2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID)
igTabBarQueueFocus 2
1 void igTabBarQueueFocus_TabItemPtr (ImGuiTabBar*,ImGuiTabItem*)
2 void igTabBarQueueFocus_Str (ImGuiTabBar*,const char*)
igTabItemCalcSize 2
1 ImVec2 igTabItemCalcSize_Str (const char*,bool)
2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*)
igTableGcCompactTransientBuffers 2
1 void igTableGcCompactTransientBuffers_TablePtr (ImGuiTable*)
2 void igTableGcCompactTransientBuffers_TableTempDataPtr (ImGuiTableTempData*)
igTableGetColumnName 2
1 const char* igTableGetColumnNameInt (int)
2 const char* igTableGetColumnNameTablePtr (const ImGuiTable*,int)
1 const char* igTableGetColumnName_Int (int)
2 const char* igTableGetColumnName_TablePtr (const ImGuiTable*,int)
igTreeNode 3
1 bool igTreeNodeStr (const char*)
2 bool igTreeNodeStrStr (const char*,const char*,...)
3 bool igTreeNodePtr (const void*,const char*,...)
1 bool igTreeNode_Str (const char*)
2 bool igTreeNode_StrStr (const char*,const char*,...)
3 bool igTreeNode_Ptr (const void*,const char*,...)
igTreeNodeEx 3
1 bool igTreeNodeExStr (const char*,ImGuiTreeNodeFlags)
2 bool igTreeNodeExStrStr (const char*,ImGuiTreeNodeFlags,const char*,...)
3 bool igTreeNodeExPtr (const void*,ImGuiTreeNodeFlags,const char*,...)
1 bool igTreeNodeEx_Str (const char*,ImGuiTreeNodeFlags)
2 bool igTreeNodeEx_StrStr (const char*,ImGuiTreeNodeFlags,const char*,...)
3 bool igTreeNodeEx_Ptr (const void*,ImGuiTreeNodeFlags,const char*,...)
igTreeNodeExV 2
1 bool igTreeNodeExVStr (const char*,ImGuiTreeNodeFlags,const char*,va_list)
2 bool igTreeNodeExVPtr (const void*,ImGuiTreeNodeFlags,const char*,va_list)
1 bool igTreeNodeExV_Str (const char*,ImGuiTreeNodeFlags,const char*,va_list)
2 bool igTreeNodeExV_Ptr (const void*,ImGuiTreeNodeFlags,const char*,va_list)
igTreeNodeV 2
1 bool igTreeNodeVStr (const char*,const char*,va_list)
2 bool igTreeNodeVPtr (const void*,const char*,va_list)
1 bool igTreeNodeV_Str (const char*,const char*,va_list)
2 bool igTreeNodeV_Ptr (const void*,const char*,va_list)
igTreePush 2
1 void igTreePushStr (const char*)
2 void igTreePushPtr (const void*)
1 void igTreePush_Str (const char*)
2 void igTreePush_Ptr (const void*)
igValue 4
1 void igValueBool (const char*,bool)
2 void igValueInt (const char*,int)
3 void igValueUint (const char*,unsigned int)
4 void igValueFloat (const char*,float,const char*)
175 overloaded
1 void igValue_Bool (const char*,bool)
2 void igValue_Int (const char*,int)
3 void igValue_Uint (const char*,unsigned int)
4 void igValue_Float (const char*,float,const char*)
205 overloaded

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,15 @@
{
"ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
"ImBitArrayPtr": "ImU32*",
"ImBitVector": "struct ImBitVector",
"ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);",
"ImDrawCallback": "void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel",
"ImDrawCmd": "struct ImDrawCmd",
"ImDrawCmdHeader": "struct ImDrawCmdHeader",
"ImDrawCornerFlags": "int",
"ImDrawData": "struct ImDrawData",
"ImDrawDataBuilder": "struct ImDrawDataBuilder",
"ImDrawFlags": "int",
"ImDrawIdx": "unsigned short",
"ImDrawList": "struct ImDrawList",
"ImDrawListFlags": "int",
@@ -19,57 +21,93 @@
"ImFontAtlas": "struct ImFontAtlas",
"ImFontAtlasCustomRect": "struct ImFontAtlasCustomRect",
"ImFontAtlasFlags": "int",
"ImFontBuilderIO": "struct ImFontBuilderIO",
"ImFontConfig": "struct ImFontConfig",
"ImFontGlyph": "struct ImFontGlyph",
"ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder",
"ImGuiActivateFlags": "int",
"ImGuiBackendFlags": "int",
"ImGuiBoxSelectState": "struct ImGuiBoxSelectState",
"ImGuiButtonFlags": "int",
"ImGuiChildFlags": "int",
"ImGuiCol": "int",
"ImGuiColorEditFlags": "int",
"ImGuiColorMod": "struct ImGuiColorMod",
"ImGuiComboFlags": "int",
"ImGuiComboPreviewData": "struct ImGuiComboPreviewData",
"ImGuiCond": "int",
"ImGuiConfigFlags": "int",
"ImGuiContext": "struct ImGuiContext",
"ImGuiContextHook": "struct ImGuiContextHook",
"ImGuiContextHookCallback": "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);",
"ImGuiContextHookCallback": "void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
"ImGuiDataAuthority": "int",
"ImGuiDataType": "int",
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
"ImGuiDataTypeTempStorage": "struct ImGuiDataTypeTempStorage",
"ImGuiDir": "int",
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
"ImGuiDebugLogFlags": "int",
"ImGuiDockContext": "struct ImGuiDockContext",
"ImGuiDockNode": "struct ImGuiDockNode",
"ImGuiDockNodeFlags": "int",
"ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings",
"ImGuiDockRequest": "struct ImGuiDockRequest",
"ImGuiDragDropFlags": "int",
"ImGuiErrorLogCallback": "void(*)(void* user_data,const char* fmt,...);",
"ImGuiErrorCallback": "void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
"ImGuiErrorRecoveryState": "struct ImGuiErrorRecoveryState",
"ImGuiFocusRequestFlags": "int",
"ImGuiFocusScopeData": "struct ImGuiFocusScopeData",
"ImGuiFocusedFlags": "int",
"ImGuiGroupData": "struct ImGuiGroupData",
"ImGuiHoveredFlags": "int",
"ImGuiID": "unsigned int",
"ImGuiIDStackTool": "struct ImGuiIDStackTool",
"ImGuiIO": "struct ImGuiIO",
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputEvent": "struct ImGuiInputEvent",
"ImGuiInputEventAppFocused": "struct ImGuiInputEventAppFocused",
"ImGuiInputEventKey": "struct ImGuiInputEventKey",
"ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton",
"ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos",
"ImGuiInputEventMouseViewport": "struct ImGuiInputEventMouseViewport",
"ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel",
"ImGuiInputEventText": "struct ImGuiInputEventText",
"ImGuiInputFlags": "int",
"ImGuiInputTextCallback": "int (*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
"ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData",
"ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState",
"ImGuiInputTextFlags": "int",
"ImGuiInputTextState": "struct ImGuiInputTextState",
"ImGuiItemFlags": "int",
"ImGuiItemStatusFlags": "int",
"ImGuiKey": "int",
"ImGuiKeyModFlags": "int",
"ImGuiLastItemDataBackup": "struct ImGuiLastItemDataBackup",
"ImGuiKeyChord": "int",
"ImGuiKeyData": "struct ImGuiKeyData",
"ImGuiKeyOwnerData": "struct ImGuiKeyOwnerData",
"ImGuiKeyRoutingData": "struct ImGuiKeyRoutingData",
"ImGuiKeyRoutingIndex": "ImS16",
"ImGuiKeyRoutingTable": "struct ImGuiKeyRoutingTable",
"ImGuiLastItemData": "struct ImGuiLastItemData",
"ImGuiLayoutType": "int",
"ImGuiListClipper": "struct ImGuiListClipper",
"ImGuiListClipperData": "struct ImGuiListClipperData",
"ImGuiListClipperRange": "struct ImGuiListClipperRange",
"ImGuiLocEntry": "struct ImGuiLocEntry",
"ImGuiLogFlags": "int",
"ImGuiMemAllocFunc": "void* (*)(size_t sz, void* user_data);",
"ImGuiMemFreeFunc": "void (*)(void* ptr, void* user_data);",
"ImGuiMenuColumns": "struct ImGuiMenuColumns",
"ImGuiMetricsConfig": "struct ImGuiMetricsConfig",
"ImGuiMouseButton": "int",
"ImGuiMouseCursor": "int",
"ImGuiNavDirSourceFlags": "int",
"ImGuiNavHighlightFlags": "int",
"ImGuiNavInput": "int",
"ImGuiMultiSelectFlags": "int",
"ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO",
"ImGuiMultiSelectState": "struct ImGuiMultiSelectState",
"ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData",
"ImGuiNavItemData": "struct ImGuiNavItemData",
"ImGuiNavMoveFlags": "int",
"ImGuiNavMoveResult": "struct ImGuiNavMoveResult",
"ImGuiNavRenderCursorFlags": "int",
"ImGuiNextItemData": "struct ImGuiNextItemData",
"ImGuiNextItemDataFlags": "int",
"ImGuiNextWindowData": "struct ImGuiNextWindowData",
@@ -80,19 +118,24 @@
"ImGuiOnceUponAFrame": "struct ImGuiOnceUponAFrame",
"ImGuiPayload": "struct ImGuiPayload",
"ImGuiPlatformIO": "struct ImGuiPlatformIO",
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
"ImGuiPlatformMonitor": "struct ImGuiPlatformMonitor",
"ImGuiPopupData": "struct ImGuiPopupData",
"ImGuiPopupFlags": "int",
"ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex",
"ImGuiScrollFlags": "int",
"ImGuiSelectableFlags": "int",
"ImGuiSelectionBasicStorage": "struct ImGuiSelectionBasicStorage",
"ImGuiSelectionExternalStorage": "struct ImGuiSelectionExternalStorage",
"ImGuiSelectionRequest": "struct ImGuiSelectionRequest",
"ImGuiSelectionUserData": "ImS64",
"ImGuiSeparatorFlags": "int",
"ImGuiSettingsHandler": "struct ImGuiSettingsHandler",
"ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem",
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiSliderFlags": "int",
"ImGuiSortDirection": "int",
"ImGuiStackSizes": "struct ImGuiStackSizes",
"ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo",
"ImGuiStorage": "struct ImGuiStorage",
"ImGuiStoragePair": "struct ImGuiStoragePair",
"ImGuiStyle": "struct ImGuiStyle",
@@ -107,21 +150,29 @@
"ImGuiTableCellData": "struct ImGuiTableCellData",
"ImGuiTableColumn": "struct ImGuiTableColumn",
"ImGuiTableColumnFlags": "int",
"ImGuiTableColumnIdx": "ImS8",
"ImGuiTableColumnIdx": "ImS16",
"ImGuiTableColumnSettings": "struct ImGuiTableColumnSettings",
"ImGuiTableColumnSortSpecs": "struct ImGuiTableColumnSortSpecs",
"ImGuiTableColumnsSettings": "struct ImGuiTableColumnsSettings",
"ImGuiTableDrawChannelIdx": "ImU8",
"ImGuiTableDrawChannelIdx": "ImU16",
"ImGuiTableFlags": "int",
"ImGuiTableHeaderData": "struct ImGuiTableHeaderData",
"ImGuiTableInstanceData": "struct ImGuiTableInstanceData",
"ImGuiTableRowFlags": "int",
"ImGuiTableSettings": "struct ImGuiTableSettings",
"ImGuiTableSortSpecs": "struct ImGuiTableSortSpecs",
"ImGuiTableTempData": "struct ImGuiTableTempData",
"ImGuiTextBuffer": "struct ImGuiTextBuffer",
"ImGuiTextFilter": "struct ImGuiTextFilter",
"ImGuiTextFlags": "int",
"ImGuiTextIndex": "struct ImGuiTextIndex",
"ImGuiTextRange": "struct ImGuiTextRange",
"ImGuiTooltipFlags": "int",
"ImGuiTreeNodeFlags": "int",
"ImGuiTreeNodeStackData": "struct ImGuiTreeNodeStackData",
"ImGuiTypingSelectFlags": "int",
"ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest",
"ImGuiTypingSelectState": "struct ImGuiTypingSelectState",
"ImGuiViewport": "struct ImGuiViewport",
"ImGuiViewportFlags": "int",
"ImGuiViewportP": "struct ImGuiViewportP",
@@ -129,18 +180,21 @@
"ImGuiWindowClass": "struct ImGuiWindowClass",
"ImGuiWindowDockStyle": "struct ImGuiWindowDockStyle",
"ImGuiWindowFlags": "int",
"ImGuiWindowRefreshFlags": "int",
"ImGuiWindowSettings": "struct ImGuiWindowSettings",
"ImGuiWindowStackData": "struct ImGuiWindowStackData",
"ImGuiWindowTempData": "struct ImGuiWindowTempData",
"ImPoolIdx": "int",
"ImRect": "struct ImRect",
"ImS16": "signed short",
"ImS32": "signed int",
"ImS64": "int64_t",
"ImS64": "signed long long",
"ImS8": "signed char",
"ImTextureID": "void*",
"ImStbTexteditState": "ImStb::STB_TexteditState",
"ImTextureID": "ImU64",
"ImU16": "unsigned short",
"ImU32": "unsigned int",
"ImU64": "uint64_t",
"ImU64": "unsigned long long",
"ImU8": "unsigned char",
"ImVec1": "struct ImVec1",
"ImVec2": "struct ImVec2",
@@ -149,11 +203,5 @@
"ImWchar": "ImWchar16",
"ImWchar16": "unsigned short",
"ImWchar32": "unsigned int",
"STB_TexteditState": "struct STB_TexteditState",
"StbTexteditRow": "struct StbTexteditRow",
"StbUndoRecord": "struct StbUndoRecord",
"StbUndoState": "struct StbUndoState",
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"
"STB_TexteditState": "struct STB_TexteditState"
}

View File

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

View File

@@ -0,0 +1,33 @@
#include "imgui.h"
#define CIMGUI_STRINGIZE_(x) #x
#define CIMGUI_STRINGIZE(x) CIMGUI_STRINGIZE_(x)
#define CIMGUI_DEFSTRING(x) "#define " #x " " CIMGUI_STRINGIZE(x)
#ifdef IMGUI_VERSION
#pragma message(CIMGUI_DEFSTRING(IMGUI_VERSION))
#endif
#ifdef IMGUI_VERSION_NUM
#pragma message(CIMGUI_DEFSTRING(IMGUI_VERSION_NUM))
#endif
#ifdef IMGUI_HAS_DOCK
#pragma message(CIMGUI_DEFSTRING(IMGUI_HAS_DOCK))
#endif
#ifdef IMGUI_HAS_IMSTR
#pragma message(CIMGUI_DEFSTRING(IMGUI_HAS_IMSTR))
#endif
#ifdef FLT_MIN
#pragma message(CIMGUI_DEFSTRING(FLT_MIN))
#endif
#ifdef FLT_MAX
#pragma message(CIMGUI_DEFSTRING(FLT_MAX))
#endif
#ifdef ImDrawCallback_ResetRenderState
#pragma message(CIMGUI_DEFSTRING(ImDrawCallback_ResetRenderState))
#endif

2
imgui

Submodule imgui updated: bb26751b94...c0ae3258f9

View File

@@ -2,6 +2,15 @@
#include <assert.h>
#include "../cimgui.h"
#ifdef IMGUI_HAS_IMSTR
#define igBegin igBegin_Str
#define igSliderFloat igSliderFloat_Str
#define igCheckbox igCheckbox_Str
#define igColorEdit3 igColorEdit3_Str
#define igButton igButton_Str
#define igDebugCheckVersionAndDataLayout igDebugCheckVersionAndDataLayout_Str
#endif
int main(void)
{
assert(igDebugCheckVersionAndDataLayout(igGetVersion(), sizeof(ImGuiIO), sizeof(ImGuiStyle),