Compare commits

...

232 Commits
v1.50 ... 1.71

Author SHA1 Message Date
sonoro1234
2b03f434d4 one day I wont forget readme 2019-06-12 19:47:52 +02:00
sonoro1234
37c52332f4 pull imgui 1.71 and generate 2019-06-12 19:45:37 +02:00
sonoro1234
84932b4830 update README.md 2019-05-07 15:56:11 +02:00
sonoro1234
022f60320f add characters | < to defaults parsing 2019-05-06 16:41:40 +02:00
sonoro1234
1aeb9ad132 pull imgui 1.70 and generate 2019-05-06 15:59:27 +02:00
sonoro1234
648cf587c9 README.md update for 1.69 2019-04-29 11:45:37 +02:00
Victor Bombi
aa99302d24 Merge pull request #94 from nihuynh/Makefile_fix
fixing makefile
2019-04-16 12:45:18 +02:00
Nicolas Huynh
4fca16eada fixing makefile 2019-04-16 02:15:52 +02:00
sonoro1234
ff404142f4 readme : use generator before compilation 2019-04-03 13:50:49 +02:00
sonoro1234
4be0522d9f pull imgui 1.69 and generate 2019-03-13 17:05:22 +01:00
sonoro1234
bc6f6e664e readme use generator2.bat 2019-03-06 11:00:21 +01:00
sonoro1234
343a8e4ea5 update README.md 2019-02-19 13:18:20 +01:00
Victor Bombi
0d4fa8b8bc Merge pull request #91 from cimgui/ImVector
Im vector
2019-02-19 13:13:02 +01:00
sonoro1234
666a687e0f pull imgui 1.68 2019-02-19 13:11:06 +01:00
sonoro1234
806ff124a1 build test -Wall std=99 -Wpedantic 2019-02-18 12:33:12 +01:00
sonoro1234
186ebd8f06 drop comments and update README.md for top level functions 2019-02-15 16:54:23 +01:00
sonoro1234
d331453422 correct issue #88 (Pair union member) 2019-02-15 12:24:06 +01:00
sonoro1234
e125f405e3 more README.md update 2019-02-15 12:10:52 +01:00
sonoro1234
498f9802d1 update README.md 2019-02-15 11:17:51 +01:00
sonoro1234
6c9a018705 drop ImVector:contains() for not applicable types 2019-02-14 20:15:33 +01:00
sonoro1234
347d8d58b0 with templated structs generated 2019-02-14 13:05:49 +01:00
sonoro1234
161385607d not templated structs generated 2019-02-12 19:59:39 +01:00
sonoro1234
23f2a1f026 get template typenames generated 2019-02-12 19:40:00 +01:00
sonoro1234
490effa341 get template typenames 2019-02-12 18:52:00 +01:00
sonoro1234
0d864f94bd ImVector functions inclusion 2019-02-12 12:16:21 +01:00
sonoro1234
55f1afa2db update readme 2019-01-27 22:51:31 +01:00
sonoro1234
71a9410ce6 cpp2ffi take care or type and name separated by * without spaces 2019-01-27 17:20:07 +01:00
Victor Bombi
036d2c1f9e Merge pull request #86 from mellinoe/update-to-1.67
Update imgui submodule to 1.67 and re-generate.
2019-01-17 16:43:00 +01:00
Eric Mellino
b5c7ed5862 Update imgui submodule to 1.67 and re-generate. 2019-01-14 18:42:10 -08:00
sonoro1234
d2ee8fc7dd improve functionD_re 2018-12-24 12:28:37 +01:00
sonoro1234
593867e320 generator2 files 2018-12-23 19:53:14 +01:00
sonoro1234
907c2fddce generator.lua take care of type and name separated by * without spaces 2018-12-21 11:59:35 +01:00
sonoro1234
67f3b097a5 pull imgui 1.66b 2018-12-03 16:46:17 +01:00
sonoro1234
fd0199809d json: TAB 2 spaces solves #82? 2018-12-03 10:02:33 +01:00
sonoro1234
d174a02a0f indented json files 2018-12-02 18:37:52 +01:00
sonoro1234
291922f72c alphabetical sorted json files 2018-12-02 11:15:17 +01:00
Victor Bombi
7d963113c9 Merge pull request #84 from dos1/static
cmake: add an option to build as a static library
2018-11-28 19:37:05 +01:00
Sebastian Krzyszkowiak
8cbdca3344 cmake: add an option to build as a static library
Useful when including cimgui as a subproject in another CMake project.
2018-11-28 18:19:52 +01:00
sonoro1234
204f2828bb add folder testbuildc 2018-11-27 12:09:03 +01:00
sonoro1234
2c10d47b9a remove static char EmptyString lines 2018-11-27 12:07:56 +01:00
sonoro1234
df00156746 output json files with newline 2018-11-26 17:54:36 +01:00
sonoro1234
553364f7d8 add cimgui.h include guards 2018-11-26 15:57:19 +01:00
sonoro1234
14cd6715d2 remove static from structs 2018-11-23 10:22:48 +01:00
sonoro1234
76935a7d83 manually removed static 2018-11-22 20:46:49 +01:00
sonoro1234
4397e9a3f1 update README.md 2018-11-22 20:18:11 +01:00
Victor Bombi
d44c05cbbd Merge pull request #81 from mellinoe/update-to-1.66
Update to v1.66
2018-11-22 20:14:49 +01:00
Eric Mellino
ed6212bb34 Update to v1.66. 2018-11-22 11:06:40 -08:00
sonoro1234
8911a5a992 avoid ImNewDummy issue #80 for MSVC 2018-11-13 18:17:59 +01:00
sonoro1234
4397288459 some generator.lua cleaning 2018-10-23 11:56:02 +02:00
sonoro1234
354f316b89 CIMGUI_DEFINE_ENUMS_AND_STRUCTS in README.md 2018-10-21 13:18:36 +02:00
sonoro1234
f6fdec9d98 do check of bad overloading 2018-10-21 11:39:23 +02:00
sonoro1234
3da4350671 readme hard coded overloaded names 2018-10-20 19:42:33 +02:00
sonoro1234
fe1d9d081b more readme update 2018-10-20 19:36:46 +02:00
Victor Bombi
f531be148d Merge pull request #76 from cimgui/master_refactor
Master refactor
2018-10-20 18:17:33 +02:00
sonoro1234
eac028b1f3 delete screenshot.png 2018-10-20 17:51:01 +02:00
sonoro1234
eb81995978 update README.md 2018-10-20 17:32:22 +02:00
sonoro1234
b600ea9fab structs and enums show C ImVector type 2018-10-20 17:32:03 +02:00
sonoro1234
5656bf7c73 simplify generation and modify order saved 2018-10-20 13:54:59 +02:00
sonoro1234
d33da701aa simplify function generation 2018-10-20 12:50:55 +02:00
sonoro1234
95d65fdf49 saved ordered tables 2018-10-20 12:37:42 +02:00
sonoro1234
0b7bd49de5 save in an ordered way 2018-10-20 12:32:41 +02:00
sonoro1234
1643bbf284 tabs to spaces 2018-10-19 20:10:24 +02:00
sonoro1234
80f82b6ed8 add destructors for no simple constructors 2018-10-19 20:06:51 +02:00
sonoro1234
f4df31de6e correct ImVector typedefs 2018-10-18 20:20:23 +02:00
Victor Bombi
1789ec81fe Merge pull request #74 from sonoro1234/ImVector_templates
add ImVector template types
2018-10-18 13:07:28 +02:00
sonoro1234
aca412fe7a add ImVector template types 2018-10-18 13:05:57 +02:00
sonoro1234
7a54d1276d drop ImFontConfig_DefaultConstructor (already automated) 2018-10-18 09:34:33 +02:00
Victor Bombi
97113ef7ad Merge pull request #73 from sonoro1234/GlyphRanges
Glyph ranges
2018-10-17 20:11:39 +02:00
sonoro1234
2a4dcaf2a2 add constructors and destructor 2018-10-17 20:08:40 +02:00
sonoro1234
5a9a20d139 GlyphRanges test 2018-10-17 12:14:22 +02:00
sonoro1234
7ee838ae2d include stdint.h 2018-10-16 11:56:31 +02:00
sonoro1234
3091435042 explain template_type 2018-10-14 17:51:10 +02:00
sonoro1234
804acdcecd add template_type for ImVector templates in structs_and_enums 2018-10-14 17:47:38 +02:00
sonoro1234
51f02dca4d add igGetIDRange to overloads table 2018-10-14 10:09:04 +02:00
sonoro1234
84a9656889 dont assert in virtual preprocessor, just warn 2018-10-13 19:13:52 +02:00
sonoro1234
553df3da32 type error 2018-10-13 13:56:11 +02:00
sonoro1234
04d4a19beb update link to odin-imgui 2018-10-13 13:08:30 +02:00
sonoro1234
3b9c53b2a2 more robust nocompiler option, can assert on unknown preprocesor conditions 2018-10-13 11:56:35 +02:00
sonoro1234
6f9e3db1d1 structs and enums in README.md 2018-10-10 14:23:41 +02:00
sonoro1234
d3eb876266 definitions in README.md 2018-10-10 14:05:08 +02:00
sonoro1234
3efb1001aa explain this repo option for generating 2018-10-10 11:16:01 +02:00
Victor Bombi
a91c611bca Merge pull request #70 from sonoro1234/noprepro_master
be able to generate without precompiler
2018-10-10 11:04:29 +02:00
sonoro1234
5b7abe8b4d be able to generate without precompiler 2018-10-10 10:59:51 +02:00
sonoro1234
812af400f1 allow cl compiler (MSVC) to work as preprocessor 2018-10-09 20:13:56 +02:00
sonoro1234
2d3cf59b21 clang information in README.md 2018-10-09 15:09:52 +02:00
sonoro1234
e7eb9c511b nopreprocess version without comments to enable easy comparation 2018-10-09 13:58:46 +02:00
sonoro1234
2759a8ed4d allow gcc or clang compiler 2018-10-09 11:03:49 +02:00
sonoro1234
073f438467 dont warn not const reference argument if it is manual 2018-10-09 10:39:49 +02:00
Victor Bombi
f7856b27b0 Merge pull request #69 from mellinoe/no-lib-prefix
Remove the "lib" prefix in CMakeLists.txt.
2018-10-09 10:14:55 +02:00
Eric Mellino
99c7d7cfdf Remove the "lib" prefix in CMakeLists.txt. 2018-10-09 00:48:03 -07:00
sonoro1234
31871f9975 still more README.md updates 2018-10-08 13:54:58 +02:00
sonoro1234
c487b0266e more README.md updates 2018-10-08 13:44:43 +02:00
sonoro1234
3b386799e4 add mellinoe autogeneration 2018-10-08 13:28:50 +02:00
sonoro1234
52a693a96c Makefile with optimization 2018-10-08 12:53:56 +02:00
sonoro1234
a0cb8aff23 update README not allowing Lua5.1 (has no bit package) 2018-10-08 12:37:10 +02:00
sonoro1234
d704b33196 update README.md 2018-10-08 12:32:09 +02:00
sonoro1234
9738a5816e let FLT_MAX be a string in definitions.lua to use after igGET_FLT_MAX to get compiler value 2018-10-08 12:12:15 +02:00
sonoro1234
327e3236ae rename generated folder to output folder 2018-10-08 11:56:49 +02:00
sonoro1234
259dc4afc8 let copy files happen from lua script 2018-10-08 11:37:20 +02:00
sonoro1234
54118273ff update README.md 2018-10-08 11:36:10 +02:00
sonoro1234
e8ac6079b5 Luajit and gcc info 2018-10-06 15:51:53 +02:00
sonoro1234
a2c1665e31 header in files with version information 2018-10-05 18:54:55 +02:00
sonoro1234
bba07596a6 rename cimgui_auto to cimgui and cimgui to cimgui_nopreprocess 2018-10-05 18:04:58 +02:00
sonoro1234
e99f8dc918 compact lines from preprocessor 2018-10-05 12:56:02 +02:00
sonoro1234
6ceba86ff6 add * to bad arg detection check 2018-10-04 17:52:43 +02:00
Victor Bombi
2023d29fc9 Merge pull request #64 from sonoro1234/argdetection_failure
Argdetection failure
2018-10-04 17:43:12 +02:00
sonoro1234
552a5f5cf2 check arg detection failures2 2018-10-04 17:40:31 +02:00
sonoro1234
f1b55d57e5 check arg detection failures 2018-10-04 17:27:20 +02:00
sonoro1234
d7e8b142d0 show arg detection failure2 2018-10-04 16:32:44 +02:00
sonoro1234
9ae5a207f6 show arg detection failures 2018-10-04 16:27:49 +02:00
Victor Bombi
9846ee640f Merge pull request #63 from waywardmonkeys/some-readme-improvements
Improve README.
2018-10-04 14:25:21 +02:00
Bruce Mitchener
1bf9256998 Improve README.
This called Dear ImGui by its correct name, and notes that it is
an immediate mode GUI library rather than intermediate GUI library.

It also uses more Markdown syntax to improve readability and correctly
names the generated files. Also, it corrects the path for running
the generator script.
2018-10-04 19:11:20 +07:00
Victor Bombi
c8ff56e0b0 Merge pull request #62 from waywardmonkeys/fix-typos
Fix typos.
2018-10-04 12:22:58 +02:00
Victor Bombi
1c88ef9c37 Merge pull request #57 from waywardmonkeys/use-macos-name
Refer to macOS rather than osx/Mac OS X.
2018-10-04 12:22:36 +02:00
Bruce Mitchener
cf82b3a356 Fix typos. 2018-10-04 17:16:34 +07:00
Bruce Mitchener
56d6cbfd38 Refer to macOS rather than osx/Mac OS X. 2018-10-04 17:10:57 +07:00
Victor Bombi
d863cbe3b4 Merge pull request #61 from sonoro1234/colorconvertHSV
ColorConvertHSVtoRGB and ColorConvertRGBtoHSV to manuals
2018-10-04 11:24:29 +02:00
sonoro1234
4a0e927c23 ColorConvertHSVtoRGB and ColorConvertRGBtoHSV to manuals 2018-10-04 11:22:00 +02:00
Victor Bombi
3d232c5369 Merge pull request #60 from sonoro1234/readmechanges
update README.md after moving to cimgui/cimgui
2018-10-03 19:58:50 +02:00
sonoro1234
e721909a97 update README.md after moving to cimgui/cimgui 2018-10-03 19:56:38 +02:00
Stephan Dilly
15c711e4f4 Merge pull request #59 from sonoro1234/badmaster
* update imgui submodule
* correct definitions in 1.60
* struct ImGuiIO changes
* more changes
* more enum changes
* update imgui to tag 1.60
* automatically generate imgui_structs.h from imgui.h with lua
* generator using tabs in structs
* respect original spaces
* start branch master_auto
* some work
* even some more work
* adapt Makefile to cimgui_auto
* generator in folder
* simplify file generation
* some function renaming
* gen with comments
* cimgui.h with comments
* comments to 10 multiples in structs and typedefs to begining
* comments between lines of code and preserving empty lines
* without gcc parsing
* some more additions
* overload names for Selectable and BeginChild according to cimgui standard
* having GCC and NOGCC in same script
* update to imgui 1.62wip
* cimgui with glfw and opengl3 implementations
* some cosmetics and PushStyleColor overload name
* update README.md and imgui
* generate structs_and_enums.lua file to help in bindings.
* update README.md
* pull imgui submodule
* generator dont wont IMGUI_IMPL_API and generated from imgui1.60WIP
* add opengl2 implementation
* add sdl implementation
* update README.md
* add json saving
* apply ocornut suggested cimgui structure
* correct error without preprocess
* delete menus-api.gif
* all output to generated folder and test HAVE_GCC.
cimgui and cimgui_auto versions
* really add generated folder
* add generated files
* use cimgui_auto instead of cimgui
* prepare 1.62.0-beta
* update README.md
* avoid excesive typedefs
* bad replacement string
* check Lua version
* post issues in https://github.com/Extrawurst/cimgui
* add + to default definition characters
* add typedefs_dict
* add typedef struct any any;
* add argsT to definitions
* add size to struct members and calc_value to enums
* take care of return in vararg functions
* add CMake
* adapt Makefile
* add support for UDT returning functions
* some more explanations in README.md
* README.md correction
* update imguics link
* update to v1.63 imgui
* update readme for 1.63
* take care of space before brackets in function
* move to imgui 1.64
* use include from root
* add xxxx_nonUDT2 functions returning UDT_Simple

* move the ToSimple conversion functions out of CIMGUI_DEFINE_ENUMS_AND_STRUCTS

* move to imgui 1.65

* let post issues in sonoro1234/cimgui

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* try to make travis happy

* show travis in README.md

* change no args to void arg in prototypes

* calc enum value acording to previous enum value

* Revert "Master160 (#50)"

This reverts commit 7f688bf409.

* Revert "Update README.md"

This reverts commit 1a5e261a8e.
2018-10-03 17:54:47 +02:00
Victor Bombi
96f24d52a5 Merge pull request #6 from sonoro1234/latest_cimgui_auto
sonoro1234/latest_cimgui_auto to cimgui/master modified
2018-10-03 11:43:52 +02:00
sonoro1234
f0dd5bc5f8 Revert "Update README.md"
This reverts commit 1a5e261a8e.
2018-10-03 11:37:33 +02:00
sonoro1234
c06facb80a Revert "Master160 (#50)"
This reverts commit 7f688bf409.
2018-10-03 11:34:05 +02:00
sonoro1234
9e6f792b74 calc enum value acording to previous enum value 2018-09-24 19:01:37 +02:00
Victor Bombi
f323beede6 Merge pull request #5 from sonoro1234/void_arg
change no args to void arg in prototypes
2018-09-15 17:37:51 +02:00
sonoro1234
8508f7b0ff change no args to void arg in prototypes 2018-09-15 11:05:49 +02:00
sonoro1234
23b51b499a show travis in README.md 2018-09-12 12:43:18 +02:00
sonoro1234
60b7ab90ff Merge branch 'latest_cimgui_auto' of https://github.com/sonoro1234/cimgui into latest_cimgui_auto 2018-09-12 12:36:36 +02:00
sonoro1234
69ac20dd7c try to make travis happy 2018-09-12 12:35:10 +02:00
Victor Bombi
44d1d8c190 Update .travis.yml 2018-09-12 12:22:46 +02:00
Victor Bombi
006fc575fa Update .travis.yml 2018-09-12 12:20:31 +02:00
Victor Bombi
c0a30cff81 Update .travis.yml 2018-09-12 12:17:58 +02:00
Victor Bombi
cd98bfd9b4 Update .travis.yml 2018-09-12 12:15:25 +02:00
Victor Bombi
5f9a7b58bf Update .travis.yml 2018-09-12 12:09:38 +02:00
Victor Bombi
1bb1d061be Update .travis.yml 2018-09-12 12:04:14 +02:00
sonoro1234
6bce915abb let post issues in sonoro1234/cimgui 2018-09-11 17:50:14 +02:00
sonoro1234
a0eab2686f move to imgui 1.65 2018-09-10 13:23:49 +02:00
sonoro1234
d45f3594ce move the ToSimple conversion functions out of CIMGUI_DEFINE_ENUMS_AND_STRUCTS 2018-09-05 13:59:51 +02:00
sonoro1234
7afdf07cbb add xxxx_nonUDT2 functions returning UDT_Simple 2018-09-05 13:45:16 +02:00
sonoro1234
d47cbcb44a use include from root 2018-09-02 17:20:46 +02:00
sonoro1234
fc01fa6486 move to imgui 1.64 2018-08-31 20:08:47 +02:00
sonoro1234
b5150cc1ac take care of space before brackets in function 2018-08-31 09:53:25 +02:00
sonoro1234
07d6c6897a update readme for 1.63 2018-08-31 09:22:43 +02:00
sonoro1234
444b30c2cb update to v1.63 imgui 2018-08-31 09:19:32 +02:00
sonoro1234
a190ec10f4 update imguics link 2018-08-31 09:09:17 +02:00
sonoro1234
f4a4369392 README.md correction 2018-08-24 18:56:52 +02:00
sonoro1234
395ab5108e some more explanations in README.md 2018-08-24 18:54:46 +02:00
sonoro1234
af67beb082 add support for UDT returning functions 2018-08-22 17:42:16 +02:00
sonoro1234
4b1ae5a6c5 adapt Makefile 2018-08-20 16:21:02 +02:00
sonoro1234
1a5752271c add CMake 2018-08-20 11:33:33 +02:00
sonoro1234
960c4daa70 take care of return in vararg functions 2018-08-19 10:31:07 +02:00
sonoro1234
031bfe5dcc add size to struct members and calc_value to enums 2018-07-20 15:39:02 +02:00
sonoro1234
963e5fcf82 add argsT to definitions 2018-07-20 13:47:27 +02:00
sonoro1234
edf209e09e add typedef struct any any; 2018-07-19 13:07:46 +02:00
sonoro1234
ac4a2f13c0 add typedefs_dict 2018-07-19 11:14:26 +02:00
sonoro1234
1c61237dbf add + to default definition characters 2018-07-19 08:49:52 +02:00
sonoro1234
726816cb6a post issues in https://github.com/Extrawurst/cimgui 2018-07-10 12:03:34 +02:00
sonoro1234
ed4e178a85 check Lua version 2018-07-07 10:01:27 +02:00
sonoro1234
70eb52f582 bad replacement string 2018-07-07 09:55:47 +02:00
sonoro1234
9694c710b7 avoid excesive typedefs 2018-07-06 12:02:04 +02:00
sonoro1234
ce4ac9dfcf update README.md 2018-06-30 10:21:52 +02:00
sonoro1234
d2d0688883 prepare 1.62.0-beta 2018-06-30 10:03:55 +02:00
sonoro1234
56f84c1859 use cimgui_auto instead of cimgui 2018-06-28 19:46:17 +02:00
sonoro1234
3da315ea5c add generated files 2018-06-27 17:41:00 +02:00
sonoro1234
91363f465a really add generated folder 2018-06-27 15:31:13 +02:00
sonoro1234
1e5ce71257 all output to generated folder and test HAVE_GCC.
cimgui and cimgui_auto versions
2018-06-27 15:21:48 +02:00
sonoro1234
1ee766c0e1 delete menus-api.gif 2018-06-26 11:52:22 +02:00
sonoro1234
d2304cdab9 correct error without preprocess 2018-06-26 11:27:43 +02:00
sonoro1234
73a6da9451 apply ocornut suggested cimgui structure 2018-06-26 10:51:55 +02:00
sonoro1234
ac0aaba306 add json saving 2018-06-25 16:47:01 +02:00
sonoro1234
eec9519bfd update README.md 2018-06-25 16:08:21 +02:00
sonoro1234
213eb53557 add sdl implementation 2018-06-25 15:52:55 +02:00
sonoro1234
532feb55ff add opengl2 implementation 2018-06-21 17:06:31 +02:00
sonoro1234
686e062749 generator dont wont IMGUI_IMPL_API and generated from imgui1.60WIP 2018-06-21 12:38:29 +02:00
sonoro1234
f3f2370918 pull imgui submodule 2018-06-21 12:28:04 +02:00
sonoro1234
2a422f797c update README.md 2018-06-20 20:12:49 +02:00
sonoro1234
5df4f3a42a generate structs_and_enums.lua file to help in bindings. 2018-06-20 19:49:09 +02:00
sonoro1234
4be6a54634 update README.md and imgui 2018-06-20 15:52:33 +02:00
sonoro1234
77cf5fc1e3 some cosmetics and PushStyleColor overload name 2018-06-20 11:42:19 +02:00
sonoro1234
a4b061f8c7 cimgui with glfw and opengl3 implementations 2018-06-19 18:46:09 +02:00
sonoro1234
83390d92b8 update to imgui 1.62wip 2018-06-18 19:49:02 +02:00
sonoro1234
41e975cf55 having GCC and NOGCC in same script 2018-06-17 12:26:40 +02:00
sonoro1234
946a568a99 overload names for Selectable and BeginChild according to cimgui standard 2018-06-16 21:04:15 +02:00
sonoro1234
567261806c some more additions 2018-06-16 17:49:16 +02:00
sonoro1234
edafa5eea8 without gcc parsing 2018-06-15 20:07:20 +02:00
sonoro1234
fc79a88b35 comments between lines of code and preserving empty lines 2018-06-15 18:36:46 +02:00
sonoro1234
33489bbd79 comments to 10 multiples in structs and typedefs to begining 2018-06-15 17:54:19 +02:00
sonoro1234
102fb84147 cimgui.h with comments 2018-06-15 14:44:27 +02:00
sonoro1234
017b935afd gen with comments 2018-06-15 14:24:25 +02:00
sonoro1234
fa5d113cdb some function renaming 2018-05-18 18:08:21 +02:00
sonoro1234
e559e1eab8 simplify file generation 2018-05-07 10:27:55 +02:00
sonoro1234
a6fdb24ff5 generator in folder 2018-05-04 12:00:01 +02:00
sonoro1234
78b1813461 adapt Makefile to cimgui_auto 2018-05-04 09:38:50 +02:00
sonoro1234
1761822733 even some more work 2018-05-04 09:32:01 +02:00
sonoro1234
7b03588b3a some work 2018-05-03 16:38:32 +02:00
sonoro1234
06a5331b9c start branch master_auto 2018-05-02 19:58:33 +02:00
sonoro1234
ceb93fdbb5 respect original spaces 2018-04-29 16:49:47 +02:00
sonoro1234
851df218da generator using tabs in structs 2018-04-27 17:50:27 +02:00
sonoro1234
c735efe55a automatically generate imgui_structs.h from imgui.h with lua 2018-04-26 19:51:47 +02:00
Victor Bombi
7f688bf409 Master160 (#50)
* update imgui submodule
* correct definitions in 1.60
* struct ImGuiIO changes
* more changes
* more enum changes
* update imgui to tag 1.60
2018-04-25 12:21:16 +02:00
sonoro1234
e773ab146a update imgui to tag 1.60 2018-04-24 20:00:26 +02:00
Leonardo Taglialegne
423fc1c532 Build optimized binaries 2018-04-19 14:13:09 +02:00
Stephan Dilly
1a5e261a8e Update README.md 2018-03-01 13:39:13 +01:00
sonoro1234
488125ed14 more enum changes 2018-02-27 19:41:29 +01:00
sonoro1234
49a6430ee2 more changes 2018-02-27 15:58:44 +01:00
sonoro1234
fedd6ae495 struct ImGuiIO changes 2018-02-27 11:58:07 +01:00
sonoro1234
527fc6a7be correct definitions in 1.60 2018-02-26 21:09:52 +01:00
sonoro1234
9b0b571506 update imgui submodule 2018-02-26 19:27:21 +01:00
sonoro1234
baebcfcfaf use igIsWindowHovered flags 2018-02-26 15:01:48 +01:00
Brandon Haffen
90f62f1fc9 Fixed for LuaJIT C definition parser
The parser was indicating there was an error because "struct" was missing
2018-02-02 17:31:29 +01:00
Stephan Dilly
b0cc7a2275 Update README.md 2018-01-16 00:04:54 +01:00
Cory McWilliams
0781f92135 Make struct ImFontConfig match imgui's.
Fixes problems using custom fonts.
2018-01-02 22:07:50 +01:00
Stephan Dilly
3f0014b569 update readme 2017-12-27 16:25:11 +01:00
Stephan Dilly
49d62d30cf update to imgui 1.53 2017-12-27 16:24:15 +01:00
Stephan Dilly
2ea2b91ee1 auto format 2017-12-27 14:15:22 +01:00
Stephan Dilly
e75eaa7239 auto format 2017-12-27 14:14:46 +01:00
yosikawa
fa1b93bea9 revert missing ImFontConfig_DefaultConstructor, fix fn name ImFont_GetFallbackAdvanceX 2017-11-16 09:58:35 +01:00
Stephan Dilly
511218914b Update README.md 2017-11-12 00:23:46 +01:00
Stephan Dilly
f60eb9a510 Update README.md 2017-11-12 00:18:57 +01:00
Mikkel Hjortshøj
9e52e73e9b Update to imgui v1.52 (#42)
* Update to imgui v1.52
* Fixed missing ig prefix and struct identifier
* missing struct identifier
* Removed obsolete functions
* Possible fix
* Removed wild ImFont::Glyph
* Noticed out of order Color enum value
2017-11-12 00:16:30 +01:00
Joonas Javanainen
6a31578c1e Pass default_filter properly to ImGuiTextFilter constructor 2017-11-05 20:36:18 +01:00
Joonas Javanainen
50bce34b67 Pass ref_col parameter correctly to ColorPicker4 2017-11-03 13:33:48 +01:00
fmdkdd
14b2c5cc58 Check on Travis that cimgui.h builds on a plain C compiler 2017-10-22 09:48:17 +02:00
fmdkdd
f12e74c20f Allow cimgui.h to be included in a plain C project
Add `struct` keywords where required.  The messy part is the ImFont::Glyph inner
struct, which needs to match the implementation in fontAtlas.cpp when building
the library, but the namespace syntax is invalid C, so we have to use a macro to
satisfy both use cases.
2017-10-22 09:48:17 +02:00
yosikawa
01578cb1bd add functions to support D-lang version of imgui_demo.cpp
1. add access functions for ImFontAtlas, ImFont
2. support ImGuiTextFilter, ImGuiTextBuffer
3. change the name igPushIdXXX => igPushIDXXX
4. bug fixes
2017-10-02 09:24:25 +02:00
okuoku
33679d6957 Fix Cygwin build 2017-09-04 10:05:18 +02:00
Stephan Dilly
b9cd7f2d83 Update README.md 2017-08-31 17:10:30 +02:00
Armored Dragon
1df319b232 Update to imgui 1.51 (#34)
* Updated imgui submodule to v1.51 tag

* Updated API to imgui 1.51

* Fix all compiler and linker errors
2017-08-31 17:08:29 +02:00
Unknown
516547dcd9 Introduce CIMGUI_NO_EXPORT to stop exporting symbols
Useful when static linking in a library to avoid collisions
2017-08-06 22:18:50 +02:00
Merwan Achibet
dbbac62a84 Add ImGuilistClipper struct under CIMGUI_DEFINE_ENUMS_AND_STRUCTS 2017-06-08 19:45:16 +02:00
Merwan Achibet
389c1f1ad1 Add another batch of missing struct keywords, Add definition for ImDrawVert (#28)
* Add missing struct keywords for ImVec2 and ImGuiListClipper arguments
* Add another batch of missing struct keywords
* Add missing definition for ImDrawVert under CIMGUI_DEFINE_ENUMS_AND_STRUCTS
2017-06-06 15:40:29 +02:00
42 changed files with 73391 additions and 3237 deletions

View File

@@ -7,5 +7,5 @@ compiler:
- gcc
- clang
script:
- make -C cimgui
script:
make

36
CMakeLists.txt Normal file
View File

@@ -0,0 +1,36 @@
Project(cimgui)
cmake_minimum_required(VERSION 2.8)
#general settings
include_directories(imgui)
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)
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)
set(IMGUI_STATIC "no" CACHE STRING "Build as a static library")
#add library and link
if (IMGUI_STATIC)
add_library(cimgui STATIC ${IMGUI_SOURCES})
else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC)
target_link_libraries(cimgui ${IMGUI_LIBRARIES})
set_target_properties(cimgui PROPERTIES PREFIX "")
#install
install(TARGETS cimgui
RUNTIME DESTINATION .
LIBRARY DESTINATION .
ARCHIVE DESTINATION .
)

View File

@@ -1,15 +1,14 @@
#
# Cross Platform Makefile
# Compatible with Ubuntu 14.04.1 and Mac OS X
# Compatible with Ubuntu 14.04.1 and macOS
OBJS = cimgui.o
OBJS += fontAtlas.o
OBJS += drawList.o
OBJS += listClipper.o
#OBJS += test.o
OBJS += ../imgui/imgui.o
OBJS += ../imgui/imgui_draw.o
OBJS += ../imgui/imgui_demo.o
OBJS += ./imgui/imgui.o
OBJS += ./imgui/imgui_draw.o
OBJS += ./imgui/imgui_demo.o
OBJS += ./imgui/imgui_widgets.o
CXXFLAGS=-O2
UNAME_S := $(shell uname -s)
@@ -17,17 +16,17 @@ ifeq ($(UNAME_S), Linux) #LINUX
ECHO_MESSAGE = "Linux"
OUTPUTNAME = cimgui.so
CXXFLAGS = -I../../
CXXFLAGS += -I./imgui/
CXXFLAGS += -Wall
CXXFLAGS += -shared -fPIC
CFLAGS = $(CXXFLAGS)
endif
ifeq ($(UNAME_S), Darwin) #APPLE
ECHO_MESSAGE = "Mac OS X"
ECHO_MESSAGE = "macOS"
OUTPUTNAME = cimgui.dylib
CXXFLAGS = -I/usr/local/include
CXXFLAGS += -I/usr/local/include
CXXFLAGS += -Wall
LINKFLAGS = -dynamiclib
CFLAGS = $(CXXFLAGS)
@@ -37,7 +36,7 @@ ifeq ($(OS), Windows_NT)
ECHO_MESSAGE = "Windows"
OUTPUTNAME = cimgui.dll
CXXFLAGS = -I../../
CXXFLAGS += -I./imgui/
CXXFLAGS += -Wall
CXXFLAGS += -shared
LINKFLAGS = -limm32
@@ -47,11 +46,18 @@ endif
.cpp.o:
$(CXX) $(CXXFLAGS) -c -o $@ $<
all:imgui_example
all:$(OUTPUTNAME)
@echo Build complete for $(ECHO_MESSAGE)
imgui_example:$(OBJS)
$(OUTPUTNAME):$(OBJS)
$(CXX) -o $(OUTPUTNAME) $(OBJS) $(CXXFLAGS) $(LINKFLAGS)
clean:
rm $(OBJS)
rm -f $(OBJS)
fclean: clean
rm -f $(OUTPUTNAME)
re: fclean all
.PHONY: all clean fclean re

View File

@@ -1,25 +1,87 @@
# cimgui [![Build Status](https://travis-ci.org/Extrawurst/cimgui.svg)](https://travis-ci.org/Extrawurst/cimgui)
# cimgui [![Build Status](https://travis-ci.org/sonoro1234/cimgui.svg?branch=master)](https://travis-ci.org/sonoro1234/cimgui)
![sample](screenshot.png)
This is a thin c-api wrapper for the excellent C++ intermediate gui [imgui](https://github.com/ocornut/imgui).
Most of the functions have wrapper counterparts now, missing stuff is added on a as-needed basis (PR welcome).
This library is intended as a intermediate layer to be able to use imgui from other languages that can interface with C (like D - see [D-binding](https://github.com/Extrawurst/DerelictImgui))
This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui [Dear ImGui](https://github.com/ocornut/imgui).
All imgui.h functions are programmatically wrapped.
Generated files are: `cimgui.cpp`, `cimgui.h` for C compilation. Also for helping in bindings creation, `definitions.lua` with function definition information and `structs_and_enums.lua`.
This library is intended as a intermediate layer to be able to use Dear ImGui from other languages that can interface with C (like D - see [D-binding](https://github.com/Extrawurst/DerelictImgui))
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.50 of imgui](https://github.com/ocornut/imgui/releases/tag/v1.50)
* does not compile with pure C compiler yet (for writing bindings in languages that are able to use C-ABI it is enough though, see D-bindings)
* currently this wrapper is based on version [1.71 of Dear ImGui]
* only functions, structs and enums from imgui.h are wrapped.
* if you are interested in imgui implementations you should look LuaJIT-ImGui project.
* overloaded function names try to be the most compatible with traditional cimgui names. So all naming is algorithmic except for those names that were in conflict with widely used cimgui names and were thus coded in a table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L58). Current overloaded function names can be found in (https://github.com/cimgui/cimgui/blob/master/generator/output/overloads.txt)
# compilation
* clone
* git clone --recursive https://github.com/cimgui/cimgui.git
* git submodule update
* compile
* using makefile on linux/macOS/mingw (Or use CMake to generate project)
* or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master_auto_implementations/build
# using generator
* this is only needed (before compilation) if you want an imgui version different from the one provided, otherwise generation is already done.
* 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 can use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC) or not use a compiler (experimental nocompiler option) at all. (this repo was done with gcc)
* update `imgui` folder to the version you desire.
* edit `generator/generator2.bat` (or make a .sh version and please PR) to choose between gcc, clang, cl or nocompiler. Run it with gcc, clang or cl and LuaJIT on your PATH.
* as a result some files are generated: `cimgui.cpp` and `cimgui.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 implementations info.
# 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:
* https://github.com/sonoro1234/LuaJIT-ImGui/blob/master_auto_implementations/lua/build.bat (with lua code generation in https://github.com/sonoro1234/LuaJIT-ImGui/blob/master_auto_implementations/lua/class_gen.lua)
* https://github.com/mellinoe/ImGui.NET/tree/autogen/src/CodeGenerator
### definitions description
* It is a collection in which key is the cimgui name that would result without overloadings and the value is an array of overloadings (may be only one overloading)
* Each overloading is a collection. Some relevant keys and values are:
* stname : the name of the struct the function belongs to (will be "" if it is top level in ImGui namespace)
* ov_cimguiname : the overloaded cimgui name (if absent it would be taken from cimguiname)
* cimguiname : the name without overloading (this should be used if there is not ov_cimguiname)
* ret : the return type
* retref : is setted if original return type is a reference. (will be a pointer in cimgui)
* argsT : an array of collections (each one with type: argument type and name: the argument name)
* args : a string of argsT concatenated and separated by commas
* call_args : a string with the argument names separated by commas for calling imgui function
* defaults : a collection in which key is argument name and value is the default value.
* manual : will be true if this function is hand-written (not generated)
* isvararg : is setted if some argument is a vararg
* constructor : is setted if the function is a constructor for a class
* destructor : is setted if the function is a destructor for a class
* templated : is setted if the function belongs to a templated class (ImVector)
* templatedgen: is setted if the function belongs to a struct generated from template (ImVector_ImWchar)
* nonUDT : if present can be 1 or 2 (explained meaning in usage) if return type was a user defined type
### structs_and_enums description
* Is is a collection with two items:
* under key enums we get the enums collection in which each key is the enum tagname and the value is an array of the ordered values represented as a collection with keys
* name : the name of this enum value
* value : the C string
* calc_value : the numeric value corresponding to value
* under key structs we get the structs collection in which the key is the struct name and the value is an array of the struct members. Each one given as a collection with keys
* type : the type of the struct member
* template_type : if type has a template argument (as ImVector) here will be
* name : the name of the struct member
# usage
* clone
* make using makefile on linux/osx
* use whatever method is in ImGui c++ namespace in the original [imgui.h](https://github.com/ocornut/imgui/blob/master/imgui.h) by prepending `ig`
* methods have the same parameter list and return values (where possible)
* functions that belong to a struct have an extra first argument with a pointer to the struct.
* where a function returns UDT (user defined type) by value some compilers complain so another function with the name `function_name_nonUDT` is generated accepting a pointer to the UDT type as the first argument.
* also is generated `function_name_nonUDT2` which instead of returning the UDT type returns a simple version (without functions) called `UDTType_Simple` (`ImVec2_Simple` for `ImVec2`)
# example bindings based on cimgui
* [DerelictImgui](https://github.com/Extrawurst/DerelictImgui)
* [ImGui.NET](https://github.com/mellinoe/ImGui.NET)
* [ImGuiCS](https://github.com/conatuscreative/ImGuiCS)
* [imgui-rs](https://github.com/Gekkio/imgui-rs)
* [imgui-pas](https://github.com/dpethes/imgui-pas)
* [imgui-pas](https://github.com/dpethes/imgui-pas)
* [odin-imgui](https://github.com/ThisDrunkDane/odin-imgui)
* [LuaJIT-imgui](https://github.com/sonoro1234/LuaJIT-ImGui)

4518
cimgui.cpp Normal file

File diff suppressed because it is too large Load Diff

2051
cimgui.h Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +0,0 @@
// Place your settings in this file to overwrite default and user settings.
{
"editor.formatOnSave": false,
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,866 +0,0 @@
#include <stdio.h>
#if defined _WIN32 || defined __CYGWIN__
#define API __declspec(dllexport)
#ifndef __GNUC__
#define snprintf sprintf_s
#endif
#else
#define API
#endif
#if defined __cplusplus
#define EXTERN extern "C"
#else
#include <stdarg.h>
#include <stdbool.h>
#define EXTERN extern
#endif
#define CIMGUI_API EXTERN API
#define CONST const
struct ImGuiIO;
struct ImGuiStyle;
struct ImDrawData;
struct ImVec2;
struct ImVec4;
struct ImGuiTextEditCallbackData;
struct ImGuiSizeConstraintCallbackData;
struct ImDrawList;
struct ImGuiStorage;
struct ImFont;
struct ImFontConfig;
struct ImFontAtlas;
struct ImDrawCmd;
struct ImGuiListClipper;
struct ImGuiTextFilter;
typedef unsigned short ImDrawIdx;
typedef unsigned int ImU32;
typedef unsigned short ImWchar;
typedef void* ImTextureID;
typedef ImU32 ImGuiID;
typedef int ImGuiCol;
typedef int ImGuiStyleVar;
typedef int ImGuiKey;
typedef int ImGuiColorEditMode;
typedef int ImGuiMouseCursor;
typedef int ImGuiWindowFlags;
typedef int ImGuiSetCond;
typedef int ImGuiInputTextFlags;
typedef int ImGuiSelectableFlags;
typedef int ImGuiTreeNodeFlags;
typedef int (*ImGuiTextEditCallback)(struct ImGuiTextEditCallbackData *data);
typedef void (*ImGuiSizeConstraintCallback)(struct ImGuiSizeConstraintCallbackData* data);
typedef void (*ImDrawCallback)(CONST struct ImDrawList* parent_list, CONST struct ImDrawCmd* cmd);
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
struct ImVec2 {
float x, y;
};
struct ImVec4 {
float x, y, z, w;
};
enum {
ImGuiWindowFlags_NoTitleBar = 1 << 0,
ImGuiWindowFlags_NoResize = 1 << 1,
ImGuiWindowFlags_NoMove = 1 << 2,
ImGuiWindowFlags_NoScrollbar = 1 << 3,
ImGuiWindowFlags_NoScrollWithMouse = 1 << 4,
ImGuiWindowFlags_NoCollapse = 1 << 5,
ImGuiWindowFlags_AlwaysAutoResize = 1 << 6,
ImGuiWindowFlags_ShowBorders = 1 << 7,
ImGuiWindowFlags_NoSavedSettings = 1 << 8,
ImGuiWindowFlags_NoInputs = 1 << 9,
ImGuiWindowFlags_MenuBar = 1 << 10,
ImGuiWindowFlags_HorizontalScrollbar = 1 << 11,
ImGuiWindowFlags_NoFocusOnAppearing = 1 << 12,
ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13,
ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 << 14,
ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1 << 15,
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16
};
enum {
ImGuiInputTextFlags_CharsDecimal = 1 << 0,
ImGuiInputTextFlags_CharsHexadecimal = 1 << 1,
ImGuiInputTextFlags_CharsUppercase = 1 << 2,
ImGuiInputTextFlags_CharsNoBlank = 1 << 3,
ImGuiInputTextFlags_AutoSelectAll = 1 << 4,
ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5,
ImGuiInputTextFlags_CallbackCompletion = 1 << 6,
ImGuiInputTextFlags_CallbackHistory = 1 << 7,
ImGuiInputTextFlags_CallbackAlways = 1 << 8,
ImGuiInputTextFlags_CallbackCharFilter = 1 << 9,
ImGuiInputTextFlags_AllowTabInput = 1 << 10,
ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11,
ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12,
ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13,
ImGuiInputTextFlags_ReadOnly = 1 << 14,
ImGuiInputTextFlags_Password = 1 << 15
};
enum {
ImGuiTreeNodeFlags_Selected = 1 << 0,
ImGuiTreeNodeFlags_Framed = 1 << 1,
ImGuiTreeNodeFlags_AllowOverlapMode = 1 << 2,
ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3,
ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4,
ImGuiTreeNodeFlags_DefaultOpen = 1 << 5,
ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 << 6,
ImGuiTreeNodeFlags_OpenOnArrow = 1 << 7,
ImGuiTreeNodeFlags_Leaf = 1 << 8,
ImGuiTreeNodeFlags_Bullet = 1 << 9,
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoAutoOpenOnLog
};
enum {
ImGuiSelectableFlags_DontClosePopups = 1 << 0,
ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2
};
enum {
ImGuiKey_Tab,
ImGuiKey_LeftArrow,
ImGuiKey_RightArrow,
ImGuiKey_UpArrow,
ImGuiKey_DownArrow,
ImGuiKey_PageUp,
ImGuiKey_PageDown,
ImGuiKey_Home,
ImGuiKey_End,
ImGuiKey_Delete,
ImGuiKey_Backspace,
ImGuiKey_Enter,
ImGuiKey_Escape,
ImGuiKey_A,
ImGuiKey_C,
ImGuiKey_V,
ImGuiKey_X,
ImGuiKey_Y,
ImGuiKey_Z,
ImGuiKey_COUNT
};
enum {
ImGuiCol_Text,
ImGuiCol_TextDisabled,
ImGuiCol_WindowBg,
ImGuiCol_ChildWindowBg,
ImGuiCol_PopupBg,
ImGuiCol_Border,
ImGuiCol_BorderShadow,
ImGuiCol_FrameBg,
ImGuiCol_FrameBgHovered,
ImGuiCol_FrameBgActive,
ImGuiCol_TitleBg,
ImGuiCol_TitleBgCollapsed,
ImGuiCol_TitleBgActive,
ImGuiCol_MenuBarBg,
ImGuiCol_ScrollbarBg,
ImGuiCol_ScrollbarGrab,
ImGuiCol_ScrollbarGrabHovered,
ImGuiCol_ScrollbarGrabActive,
ImGuiCol_ComboBg,
ImGuiCol_CheckMark,
ImGuiCol_SliderGrab,
ImGuiCol_SliderGrabActive,
ImGuiCol_Button,
ImGuiCol_ButtonHovered,
ImGuiCol_ButtonActive,
ImGuiCol_Header,
ImGuiCol_HeaderHovered,
ImGuiCol_HeaderActive,
ImGuiCol_Column,
ImGuiCol_ColumnHovered,
ImGuiCol_ColumnActive,
ImGuiCol_ResizeGrip,
ImGuiCol_ResizeGripHovered,
ImGuiCol_ResizeGripActive,
ImGuiCol_CloseButton,
ImGuiCol_CloseButtonHovered,
ImGuiCol_CloseButtonActive,
ImGuiCol_PlotLines,
ImGuiCol_PlotLinesHovered,
ImGuiCol_PlotHistogram,
ImGuiCol_PlotHistogramHovered,
ImGuiCol_TextSelectedBg,
ImGuiCol_ModalWindowDarkening,
ImGuiCol_COUNT
};
enum {
ImGuiStyleVar_Alpha,
ImGuiStyleVar_WindowPadding,
ImGuiStyleVar_WindowRounding,
ImGuiStyleVar_WindowMinSize,
ImGuiStyleVar_ChildWindowRounding,
ImGuiStyleVar_FramePadding,
ImGuiStyleVar_FrameRounding,
ImGuiStyleVar_ItemSpacing,
ImGuiStyleVar_ItemInnerSpacing,
ImGuiStyleVar_IndentSpacing,
ImGuiStyleVar_GrabMinSize,
ImGuiStyleVar_ButtonTextAlign,
ImGuiStyleVar_Count_
};
enum {
ImGuiColorEditMode_UserSelect = -2,
ImGuiColorEditMode_UserSelectShowButton = -1,
ImGuiColorEditMode_RGB = 0,
ImGuiColorEditMode_HSV = 1,
ImGuiColorEditMode_HEX = 2
};
enum {
ImGuiMouseCursor_None = -1,
ImGuiMouseCursor_Arrow = 0,
ImGuiMouseCursor_TextInput,
ImGuiMouseCursor_Move,
ImGuiMouseCursor_ResizeNS,
ImGuiMouseCursor_ResizeEW,
ImGuiMouseCursor_ResizeNESW,
ImGuiMouseCursor_ResizeNWSE,
ImGuiMouseCursor_Count_
};
enum {
ImGuiSetCond_Always = 1 << 0,
ImGuiSetCond_Once = 1 << 1,
ImGuiSetCond_FirstUseEver = 1 << 2,
ImGuiSetCond_Appearing = 1 << 3
};
struct ImGuiStyle {
float Alpha;
struct ImVec2 WindowPadding;
struct ImVec2 WindowMinSize;
float WindowRounding;
ImVec2 WindowTitleAlign;
float ChildWindowRounding;
struct ImVec2 FramePadding;
float FrameRounding;
struct ImVec2 ItemSpacing;
struct ImVec2 ItemInnerSpacing;
struct ImVec2 TouchExtraPadding;
float IndentSpacing;
float ColumnsMinSpacing;
float ScrollbarSize;
float ScrollbarRounding;
float GrabMinSize;
float GrabRounding;
ImVec2 ButtonTextAlign;
struct ImVec2 DisplayWindowPadding;
struct ImVec2 DisplaySafeAreaPadding;
bool AntiAliasedLines;
bool AntiAliasedShapes;
float CurveTessellationTol;
struct ImVec4 Colors[ImGuiCol_COUNT];
};
struct ImGuiIO {
struct ImVec2 DisplaySize;
float DeltaTime;
float IniSavingRate;
const char* IniFilename;
const char* LogFilename;
float MouseDoubleClickTime;
float MouseDoubleClickMaxDist;
float MouseDragThreshold;
int KeyMap[ImGuiKey_COUNT];
float KeyRepeatDelay;
float KeyRepeatRate;
void* UserData;
struct ImFontAtlas* Fonts;
float FontGlobalScale;
bool FontAllowUserScaling;
ImFont* FontDefault;
struct ImVec2 DisplayFramebufferScale;
struct ImVec2 DisplayVisibleMin;
struct ImVec2 DisplayVisibleMax;
bool OSXBehaviors;
void (*RenderDrawListsFn)(struct ImDrawData* data);
const char* (*GetClipboardTextFn)(void* user_data);
void (*SetClipboardTextFn)(void* user_data, const char* text);
void* ClipboardUserData;
void* (*MemAllocFn)(size_t sz);
void (*MemFreeFn)(void* ptr);
void (*ImeSetInputScreenPosFn)(int x, int y);
void* ImeWindowHandle;
struct ImVec2 MousePos;
bool MouseDown[5];
float MouseWheel;
bool MouseDrawCursor;
bool KeyCtrl;
bool KeyShift;
bool KeyAlt;
bool KeySuper;
bool KeysDown[512];
ImWchar InputCharacters[16 + 1];
bool WantCaptureMouse;
bool WantCaptureKeyboard;
bool WantTextInput;
float Framerate;
int MetricsAllocs;
int MetricsRenderVertices;
int MetricsRenderIndices;
int MetricsActiveWindows;
ImVec2 MouseDelta;
struct ImVec2 MousePosPrev;
bool MouseClicked[5];
struct ImVec2 MouseClickedPos[5];
float MouseClickedTime[5];
bool MouseDoubleClicked[5];
bool MouseReleased[5];
bool MouseDownOwned[5];
float MouseDownDuration[5];
float MouseDownDurationPrev[5];
float MouseDragMaxDistanceSqr[5];
float KeysDownDuration[512];
float KeysDownDurationPrev[512];
};
struct ImGuiTextEditCallbackData {
ImGuiInputTextFlags EventFlag;
ImGuiInputTextFlags Flags;
void* UserData;
bool ReadOnly;
ImWchar EventChar;
ImGuiKey EventKey;
char* Buf;
int BufTextLen;
int BufSize;
bool BufDirty;
int CursorPos;
int SelectionStart;
int SelectionEnd;
};
struct ImGuiSizeConstraintCallbackData {
void* UserData;
struct ImVec2 Pos;
struct ImVec2 CurrentSize;
struct ImVec2 DesiredSize;
};
struct ImDrawCmd {
unsigned int ElemCount;
struct ImVec4 ClipRect;
ImTextureID TextureId;
ImDrawCallback UserCallback;
void* UserCallbackData;
};
struct ImDrawData {
bool Valid;
struct ImDrawList** CmdLists;
int CmdListsCount;
int TotalVtxCount;
int TotalIdxCount;
};
struct ImFontConfig {
void* FontData;
int FontDataSize;
bool FontDataOwnedByAtlas;
int FontNo;
float SizePixels;
int OversampleH, OversampleV;
bool PixelSnapH;
struct ImVec2 GlyphExtraSpacing;
ImVec2 GlyphOffset;
const ImWchar* GlyphRanges;
bool MergeMode;
char Name[32];
struct ImFont* DstFont;
};
#endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API struct ImGuiIO* igGetIO();
CIMGUI_API struct ImGuiStyle* igGetStyle();
CIMGUI_API struct ImDrawData* igGetDrawData();
CIMGUI_API void igNewFrame();
CIMGUI_API void igRender();
CIMGUI_API void igShutdown();
CIMGUI_API void igShowUserGuide();
CIMGUI_API void igShowStyleEditor(struct ImGuiStyle* ref);
CIMGUI_API void igShowTestWindow(bool* opened);
CIMGUI_API void igShowMetricsWindow(bool* opened);
// Window
CIMGUI_API bool igBegin(CONST char* name, bool* p_open, ImGuiWindowFlags flags);
CIMGUI_API bool igBegin2(CONST char* name, bool* p_open, CONST struct ImVec2 size_on_first_use, float bg_alpha, ImGuiWindowFlags flags);
CIMGUI_API void igEnd();
CIMGUI_API bool igBeginChild(CONST char* str_id, CONST struct ImVec2 size, bool border, ImGuiWindowFlags extra_flags);
CIMGUI_API bool igBeginChildEx(ImGuiID id, CONST struct ImVec2 size, bool border, ImGuiWindowFlags extra_flags);
CIMGUI_API void igEndChild();
CIMGUI_API void igGetContentRegionMax(struct ImVec2* out);
CIMGUI_API void igGetContentRegionAvail(struct ImVec2* out);
CIMGUI_API float igGetContentRegionAvailWidth();
CIMGUI_API void igGetWindowContentRegionMin(struct ImVec2* out);
CIMGUI_API void igGetWindowContentRegionMax(struct ImVec2* out);
CIMGUI_API float igGetWindowContentRegionWidth();
CIMGUI_API struct ImDrawList* igGetWindowDrawList();
CIMGUI_API void igGetWindowPos(struct ImVec2* out);
CIMGUI_API void igGetWindowSize(struct ImVec2* out);
CIMGUI_API float igGetWindowWidth();
CIMGUI_API float igGetWindowHeight();
CIMGUI_API bool igIsWindowCollapsed();
CIMGUI_API void igSetWindowFontScale(float scale);
CIMGUI_API void igSetNextWindowPos(CONST struct ImVec2 pos, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowPosCenter(ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowSize(CONST struct ImVec2 size, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowSizeConstraints(CONST struct ImVec2 size_min, CONST struct ImVec2 size_max, ImGuiSizeConstraintCallback custom_callback, void* custom_callback_data);
CIMGUI_API void igSetNextWindowContentSize(CONST struct ImVec2 size);
CIMGUI_API void igSetNextWindowContentWidth(float width);
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowFocus();
CIMGUI_API void igSetWindowPos(CONST struct ImVec2 pos, ImGuiSetCond cond);
CIMGUI_API void igSetWindowSize(CONST struct ImVec2 size, ImGuiSetCond cond);
CIMGUI_API void igSetWindowCollapsed(bool collapsed, ImGuiSetCond cond);
CIMGUI_API void igSetWindowFocus();
CIMGUI_API void igSetWindowPosByName(CONST char* name, CONST struct ImVec2 pos, ImGuiSetCond cond);
CIMGUI_API void igSetWindowSize2(CONST char* name, CONST struct ImVec2 size, ImGuiSetCond cond);
CIMGUI_API void igSetWindowCollapsed2(CONST char* name, bool collapsed, ImGuiSetCond cond);
CIMGUI_API void igSetWindowFocus2(CONST char* name);
CIMGUI_API float igGetScrollX();
CIMGUI_API float igGetScrollY();
CIMGUI_API float igGetScrollMaxX();
CIMGUI_API float igGetScrollMaxY();
CIMGUI_API void igSetScrollX(float scroll_x);
CIMGUI_API void igSetScrollY(float scroll_y);
CIMGUI_API void igSetScrollHere(float center_y_ratio);
CIMGUI_API void igSetScrollFromPosY(float pos_y, float center_y_ratio);
CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API void igSetStateStorage(struct ImGuiStorage* tree);
CIMGUI_API struct ImGuiStorage* igGetStateStorage();
// Parameters stacks (shared)
CIMGUI_API void igPushFont(struct ImFont* font);
CIMGUI_API void igPopFont();
CIMGUI_API void igPushStyleColor(ImGuiCol idx, CONST struct ImVec4 col);
CIMGUI_API void igPopStyleColor(int count);
CIMGUI_API void igPushStyleVar(ImGuiStyleVar idx, float val);
CIMGUI_API void igPushStyleVarVec(ImGuiStyleVar idx, CONST struct ImVec2 val);
CIMGUI_API void igPopStyleVar(int count);
CIMGUI_API struct ImFont* igGetFont();
CIMGUI_API float igGetFontSize();
CIMGUI_API void igGetFontTexUvWhitePixel(struct ImVec2* pOut);
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx, float alpha_mul);
CIMGUI_API ImU32 igGetColorU32Vec(CONST struct ImVec4* col);
// Parameters stacks (current window)
CIMGUI_API void igPushItemWidth(float item_width);
CIMGUI_API void igPopItemWidth();
CIMGUI_API float igCalcItemWidth();
CIMGUI_API void igPushTextWrapPos(float wrap_pos_x);
CIMGUI_API void igPopTextWrapPos();
CIMGUI_API void igPushAllowKeyboardFocus(bool v);
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPushButtonRepeat(bool repeat);
CIMGUI_API void igPopButtonRepeat();
// Layout
CIMGUI_API void igSeparator();
CIMGUI_API void igSameLine(float pos_x, float spacing_w);
CIMGUI_API void igNewLine();
CIMGUI_API void igSpacing();
CIMGUI_API void igDummy(CONST struct ImVec2* size);
CIMGUI_API void igIndent(float indent_w);
CIMGUI_API void igUnindent(float indent_w);
CIMGUI_API void igBeginGroup();
CIMGUI_API void igEndGroup();
CIMGUI_API void igGetCursorPos(struct ImVec2* pOut);
CIMGUI_API float igGetCursorPosX();
CIMGUI_API float igGetCursorPosY();
CIMGUI_API void igSetCursorPos(CONST struct ImVec2 local_pos);
CIMGUI_API void igSetCursorPosX(float x);
CIMGUI_API void igSetCursorPosY(float y);
CIMGUI_API void igGetCursorStartPos(struct ImVec2* pOut);
CIMGUI_API void igGetCursorScreenPos(struct ImVec2* pOut);
CIMGUI_API void igSetCursorScreenPos(CONST struct ImVec2 pos);
CIMGUI_API void igAlignFirstTextHeightToWidgets();
CIMGUI_API float igGetTextLineHeight();
CIMGUI_API float igGetTextLineHeightWithSpacing();
CIMGUI_API float igGetItemsLineHeightWithSpacing();
//Columns
CIMGUI_API void igColumns(int count, CONST char* id, bool border);
CIMGUI_API void igNextColumn();
CIMGUI_API int igGetColumnIndex();
CIMGUI_API float igGetColumnOffset(int column_index);
CIMGUI_API void igSetColumnOffset(int column_index, float offset_x);
CIMGUI_API float igGetColumnWidth(int column_index);
CIMGUI_API int igGetColumnsCount();
// ID scopes
// If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them
// You can also use "##extra" within your widget name to distinguish them from each others (see 'Programmer Guide')
CIMGUI_API void igPushIdStr(CONST char* str_id);
CIMGUI_API void igPushIdStrRange(CONST char* str_begin, CONST char* str_end);
CIMGUI_API void igPushIdPtr(CONST void* ptr_id);
CIMGUI_API void igPushIdInt(int int_id);
CIMGUI_API void igPopId();
CIMGUI_API ImGuiID igGetIdStr(CONST char* str_id);
CIMGUI_API ImGuiID igGetIdStrRange(CONST char* str_begin,CONST char* str_end);
CIMGUI_API ImGuiID igGetIdPtr(CONST void* ptr_id);
// Widgets
CIMGUI_API void igText(CONST char* fmt, ...);
CIMGUI_API void igTextV(CONST char* fmt, va_list args);
CIMGUI_API void igTextColored(CONST struct ImVec4 col, CONST char* fmt, ...);
CIMGUI_API void igTextColoredV(CONST struct ImVec4 col, CONST char* fmt, va_list args);
CIMGUI_API void igTextDisabled(CONST char* fmt, ...);
CIMGUI_API void igTextDisabledV(CONST char* fmt, va_list args);
CIMGUI_API void igTextWrapped(CONST char* fmt, ...);
CIMGUI_API void igTextWrappedV(CONST char* fmt, va_list args);
CIMGUI_API void igTextUnformatted(CONST char* text, CONST char* text_end);
CIMGUI_API void igLabelText(CONST char* label, CONST char* fmt, ...);
CIMGUI_API void igLabelTextV(CONST char* label, CONST char* fmt, va_list args);
CIMGUI_API void igBullet();
CIMGUI_API void igBulletText(CONST char* fmt, ...);
CIMGUI_API void igBulletTextV(CONST char* fmt, va_list args);
CIMGUI_API bool igButton(CONST char* label, CONST struct ImVec2 size);
CIMGUI_API bool igSmallButton(CONST char* label);
CIMGUI_API bool igInvisibleButton(CONST char* str_id, CONST struct ImVec2 size);
CIMGUI_API void igImage(ImTextureID user_texture_id, CONST struct ImVec2 size, CONST struct ImVec2 uv0, CONST struct ImVec2 uv1, CONST struct ImVec4 tint_col, CONST struct ImVec4 border_col);
CIMGUI_API bool igImageButton(ImTextureID user_texture_id, CONST struct ImVec2 size, CONST struct ImVec2 uv0, CONST struct ImVec2 uv1, int frame_padding, CONST struct ImVec4 bg_col, CONST struct ImVec4 tint_col);
CIMGUI_API bool igCheckbox(CONST char* label, bool* v);
CIMGUI_API bool igCheckboxFlags(CONST char* label, unsigned int* flags, unsigned int flags_value);
CIMGUI_API bool igRadioButtonBool(CONST char* label, bool active);
CIMGUI_API bool igRadioButton(CONST char* label, int* v, int v_button);
CIMGUI_API bool igCombo(CONST char* label, int* current_item, CONST char* CONST* items, int items_count, int height_in_items);
CIMGUI_API bool igCombo2(CONST char* label, int* current_item, CONST char* items_separated_by_zeros, int height_in_items);
CIMGUI_API bool igCombo3(CONST char* label, int* current_item, bool(*items_getter)(void* data, int idx, CONST char** out_text), void* data, int items_count, int height_in_items);
CIMGUI_API bool igColorButton(CONST struct ImVec4 col, bool small_height, bool outline_border);
CIMGUI_API bool igColorEdit3(CONST char* label, float col[3]);
CIMGUI_API bool igColorEdit4(CONST char* label, float col[4], bool show_alpha);
CIMGUI_API void igColorEditMode(ImGuiColorEditMode mode);
CIMGUI_API void igPlotLines(CONST char* label, CONST float* values, int values_count, int values_offset, CONST char* overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride);
CIMGUI_API void igPlotLines2(CONST char* label, float(*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, CONST char* overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size);
CIMGUI_API void igPlotHistogram(CONST char* label, CONST float* values, int values_count, int values_offset, CONST char* overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride);
CIMGUI_API void igPlotHistogram2(CONST char* label, float(*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, CONST char* overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size);
CIMGUI_API void igProgressBar(float fraction, CONST struct ImVec2* size_arg, CONST char* overlay);
// Widgets: Sliders (tip: ctrl+click on a slider to input text)
CIMGUI_API bool igSliderFloat(CONST char* label, float* v, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igSliderFloat2(CONST char* label, float v[2], float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igSliderFloat3(CONST char* label, float v[3], float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igSliderFloat4(CONST char* label, float v[4], float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igSliderAngle(CONST char* label, float* v_rad, float v_degrees_min, float v_degrees_max);
CIMGUI_API bool igSliderInt(CONST char* label, int* v, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igSliderInt2(CONST char* label, int v[2], int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igSliderInt3(CONST char* label, int v[3], int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igSliderInt4(CONST char* label, int v[4], int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igVSliderFloat(CONST char* label, CONST struct ImVec2 size, float* v, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igVSliderInt(CONST char* label, CONST struct ImVec2 size, int* v, int v_min, int v_max, CONST char* display_format);
// Widgets: Drags (tip: ctrl+click on a drag box to input text)
CIMGUI_API bool igDragFloat(CONST char* label, float* v, float v_speed, float v_min, float v_max, CONST char* display_format, float power); // If v_max >= v_max we have no bound
CIMGUI_API bool igDragFloat2(CONST char* label, float v[2], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloat3(CONST char* label, float v[3], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloat4(CONST char* label, float v[4], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloatRange2(CONST char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, CONST char* display_format, CONST char* display_format_max, float power);
CIMGUI_API bool igDragInt(CONST char* label, int* v, float v_speed, int v_min, int v_max, CONST char* display_format); // If v_max >= v_max we have no bound
CIMGUI_API bool igDragInt2(CONST char* label, int v[2], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragInt3(CONST char* label, int v[3], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragInt4(CONST char* label, int v[4], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragIntRange2(CONST char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, CONST char* display_format, CONST char* display_format_max);
// Widgets: Input
CIMGUI_API bool igInputText(CONST char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data);
CIMGUI_API bool igInputTextMultiline(CONST char* label, char* buf, size_t buf_size, CONST struct ImVec2 size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data);
CIMGUI_API bool igInputFloat(CONST char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(CONST char* label, float v[2], int decimal_precision, ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(CONST char* label, float v[3], int decimal_precision, ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(CONST char* label, float v[4], int decimal_precision, ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(CONST char* label, int* v, int step, int step_fast, ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(CONST char* label, int v[2], ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(CONST char* label, int v[3], ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(CONST char* label, int v[4], ImGuiInputTextFlags extra_flags);
// Widgets: Trees
CIMGUI_API bool igTreeNode(CONST char* label);
CIMGUI_API bool igTreeNodeStr(CONST char* str_id, CONST char* fmt, ...);
CIMGUI_API bool igTreeNodePtr(CONST void* ptr_id, CONST char* fmt, ...);
CIMGUI_API bool igTreeNodeStrV(CONST char* str_id, CONST char* fmt, va_list args);
CIMGUI_API bool igTreeNodePtrV(CONST void* ptr_id, CONST char* fmt, va_list args);
CIMGUI_API bool igTreeNodeEx(CONST char* label, ImGuiTreeNodeFlags flags);
CIMGUI_API bool igTreeNodeExStr(CONST char* str_id, ImGuiTreeNodeFlags flags, CONST char* fmt, ...);
CIMGUI_API bool igTreeNodeExPtr(CONST void* ptr_id, ImGuiTreeNodeFlags flags, CONST char* fmt, ...);
CIMGUI_API bool igTreeNodeExV(CONST char* str_id, ImGuiTreeNodeFlags flags, CONST char* fmt, va_list args);
CIMGUI_API bool igTreeNodeExVPtr(CONST void* ptr_id, ImGuiTreeNodeFlags flags, CONST char* fmt, va_list args);
CIMGUI_API void igTreePushStr(CONST char* str_id);
CIMGUI_API void igTreePushPtr(CONST void* ptr_id);
CIMGUI_API void igTreePop();
CIMGUI_API void igTreeAdvanceToLabelPos();
CIMGUI_API float igGetTreeNodeToLabelSpacing();
CIMGUI_API void igSetNextTreeNodeOpen(bool opened, ImGuiSetCond cond);
CIMGUI_API bool igCollapsingHeader(CONST char* label, ImGuiTreeNodeFlags flags);
CIMGUI_API bool igCollapsingHeaderEx(CONST char* label, bool* p_open, ImGuiTreeNodeFlags flags);
// Widgets: Selectable / Lists
CIMGUI_API bool igSelectable(CONST char* label, bool selected, ImGuiSelectableFlags flags, CONST struct ImVec2 size);
CIMGUI_API bool igSelectableEx(CONST char* label, bool* p_selected, ImGuiSelectableFlags flags, CONST struct ImVec2 size);
CIMGUI_API bool igListBox(CONST char* label, int* current_item, CONST char* CONST* items, int items_count, int height_in_items);
CIMGUI_API bool igListBox2(CONST char* label, int* current_item, bool(*items_getter)(void* data, int idx, CONST char** out_text), void* data, int items_count, int height_in_items);
CIMGUI_API bool igListBoxHeader(CONST char* label, CONST struct ImVec2 size);
CIMGUI_API bool igListBoxHeader2(CONST char* label, int items_count, int height_in_items);
CIMGUI_API void igListBoxFooter();
// Widgets: Value() Helpers. Output single value in "name: value" format (tip: freely declare your own within the ImGui namespace!)
CIMGUI_API void igValueBool(CONST char* prefix, bool b);
CIMGUI_API void igValueInt(CONST char* prefix, int v);
CIMGUI_API void igValueUInt(CONST char* prefix, unsigned int v);
CIMGUI_API void igValueFloat(CONST char* prefix, float v, CONST char* float_format);
CIMGUI_API void igValueColor(CONST char* prefix, CONST struct ImVec4 v);
CIMGUI_API void igValueColor2(CONST char* prefix, ImU32 v);
// Tooltip
CIMGUI_API void igSetTooltip(CONST char* fmt, ...);
CIMGUI_API void igSetTooltipV(CONST char* fmt, va_list args);
CIMGUI_API void igBeginTooltip();
CIMGUI_API void igEndTooltip();
// Widgets: Menus
CIMGUI_API bool igBeginMainMenuBar();
CIMGUI_API void igEndMainMenuBar();
CIMGUI_API bool igBeginMenuBar();
CIMGUI_API void igEndMenuBar();
CIMGUI_API bool igBeginMenu(CONST char* label, bool enabled);
CIMGUI_API void igEndMenu();
CIMGUI_API bool igMenuItem(CONST char* label, CONST char* shortcut, bool selected, bool enabled);
CIMGUI_API bool igMenuItemPtr(CONST char* label, CONST char* shortcut, bool* p_selected, bool enabled);
// Popup
CIMGUI_API void igOpenPopup(CONST char* str_id);
CIMGUI_API bool igBeginPopup(CONST char* str_id);
CIMGUI_API bool igBeginPopupModal(CONST char* name, bool* p_open, ImGuiWindowFlags extra_flags);
CIMGUI_API bool igBeginPopupContextItem(CONST char* str_id, int mouse_button);
CIMGUI_API bool igBeginPopupContextWindow(bool also_over_items, CONST char* str_id, int mouse_button);
CIMGUI_API bool igBeginPopupContextVoid(CONST char* str_id, int mouse_button);
CIMGUI_API void igEndPopup();
CIMGUI_API void igCloseCurrentPopup();
// Logging: all text output from interface is redirected to tty/file/clipboard. Tree nodes are automatically opened.
CIMGUI_API void igLogToTTY(int max_depth);
CIMGUI_API void igLogToFile(int max_depth, CONST char* filename);
CIMGUI_API void igLogToClipboard(int max_depth);
CIMGUI_API void igLogFinish();
CIMGUI_API void igLogButtons();
CIMGUI_API void igLogText(CONST char* fmt, ...);
// Clipping
CIMGUI_API void igPushClipRect(CONST struct ImVec2 clip_rect_min, CONST struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect);
CIMGUI_API void igPopClipRect();
// Utilities
CIMGUI_API bool igIsItemHovered();
CIMGUI_API bool igIsItemHoveredRect();
CIMGUI_API bool igIsItemActive();
CIMGUI_API bool igIsItemClicked(int mouse_button);
CIMGUI_API bool igIsItemVisible();
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API void igGetItemRectMin(struct ImVec2* pOut);
CIMGUI_API void igGetItemRectMax(struct ImVec2* pOut);
CIMGUI_API void igGetItemRectSize(struct ImVec2* pOut);
CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsWindowHovered();
CIMGUI_API bool igIsWindowFocused();
CIMGUI_API bool igIsRootWindowFocused();
CIMGUI_API bool igIsRootWindowOrAnyChildFocused();
CIMGUI_API bool igIsRootWindowOrAnyChildHovered();
CIMGUI_API bool igIsRectVisible(CONST struct ImVec2 item_size);
CIMGUI_API bool igIsRectVisible2(CONST struct ImVec2* rect_min, CONST struct ImVec2* rect_max);
CIMGUI_API bool igIsPosHoveringAnyWindow(CONST struct ImVec2 pos);
CIMGUI_API float igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API CONST char* igGetStyleColName(ImGuiCol idx);
CIMGUI_API void igCalcItemRectClosestPoint(struct ImVec2* pOut, CONST struct ImVec2 pos, bool on_edge, float outward);
CIMGUI_API void igCalcTextSize(struct ImVec2* pOut, CONST char* text, CONST char* text_end, bool hide_text_after_double_hash, float wrap_width);
CIMGUI_API void igCalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);
CIMGUI_API bool igBeginChildFrame(ImGuiID id, CONST struct ImVec2 size, ImGuiWindowFlags extra_flags);
CIMGUI_API void igEndChildFrame();
CIMGUI_API void igColorConvertU32ToFloat4(struct ImVec4* pOut, ImU32 in);
CIMGUI_API ImU32 igColorConvertFloat4ToU32(CONST struct ImVec4 in);
CIMGUI_API void igColorConvertRGBtoHSV(float r, float g, float b, float* out_h, float* out_s, float* out_v);
CIMGUI_API void igColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b);
CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key);
CIMGUI_API bool igIsKeyDown(int user_key_index);
CIMGUI_API bool igIsKeyPressed(int user_key_index, bool repeat);
CIMGUI_API bool igIsKeyReleased(int user_key_index);
CIMGUI_API bool igIsMouseDown(int button);
CIMGUI_API bool igIsMouseClicked(int button, bool repeat);
CIMGUI_API bool igIsMouseDoubleClicked(int button);
CIMGUI_API bool igIsMouseReleased(int button);
CIMGUI_API bool igIsMouseHoveringWindow();
CIMGUI_API bool igIsMouseHoveringAnyWindow();
CIMGUI_API bool igIsMouseHoveringRect(CONST struct ImVec2 r_min, CONST struct ImVec2 r_max, bool clip);
CIMGUI_API bool igIsMouseDragging(int button, float lock_threshold);
CIMGUI_API void igGetMousePos(struct ImVec2* pOut);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(struct ImVec2* pOut);
CIMGUI_API void igGetMouseDragDelta(struct ImVec2* pOut, int button, float lock_threshold);
CIMGUI_API void igResetMouseDragDelta(int button);
CIMGUI_API ImGuiMouseCursor igGetMouseCursor();
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type);
CIMGUI_API void igCaptureKeyboardFromApp(bool capture);
CIMGUI_API void igCaptureMouseFromApp(bool capture);
// Helpers functions to access functions pointers in ImGui::GetIO()
CIMGUI_API void* igMemAlloc(size_t sz);
CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API CONST char* igGetClipboardText();
CIMGUI_API void igSetClipboardText(CONST char* text);
// Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself
CIMGUI_API CONST char* igGetVersion();
CIMGUI_API struct ImGuiContext* igCreateContext(void* (*malloc_fn)(size_t), void (*free_fn)(void*));
CIMGUI_API void igDestroyContext(struct ImGuiContext* ctx);
CIMGUI_API struct ImGuiContext* igGetCurrentContext();
CIMGUI_API void igSetCurrentContext(struct ImGuiContext* ctx);
CIMGUI_API void ImFontConfig_DefaultConstructor(struct ImFontConfig* config);
CIMGUI_API void ImFontAtlas_GetTexDataAsRGBA32(struct ImFontAtlas* atlas, unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(struct ImFontAtlas* atlas, unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
CIMGUI_API void ImFontAtlas_SetTexID(struct ImFontAtlas* atlas, ImTextureID id);
CIMGUI_API struct ImFont* ImFontAtlas_AddFont(struct ImFontAtlas* atlas, CONST struct ImFontConfig* font_cfg);
CIMGUI_API struct ImFont* ImFontAtlas_AddFontDefault(struct ImFontAtlas* atlas, CONST struct ImFontConfig* font_cfg);
CIMGUI_API struct ImFont* ImFontAtlas_AddFontFromFileTTF(struct ImFontAtlas* atlas, CONST char* filename, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges);
CIMGUI_API struct ImFont* ImFontAtlas_AddFontFromMemoryTTF(struct ImFontAtlas* atlas, void* ttf_data, int ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges);
CIMGUI_API struct ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(struct ImFontAtlas* atlas, CONST void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges);
CIMGUI_API struct ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(struct ImFontAtlas* atlas, CONST char* compressed_ttf_data_base85, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges);
CIMGUI_API void ImFontAtlas_ClearTexData(struct ImFontAtlas* atlas);
CIMGUI_API void ImFontAtlas_Clear(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesDefault(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesKorean(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesJapanese(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesChinese(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(struct ImFontAtlas* atlas);
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesThai(struct ImFontAtlas* atlas);
CIMGUI_API void ImGuiIO_AddInputCharacter(unsigned short c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(CONST char* utf8_chars);
CIMGUI_API void ImGuiIO_ClearInputCharacters();
//ImDrawData
CIMGUI_API void ImDrawData_DeIndexAllBuffers(struct ImDrawData* drawData);
CIMGUI_API void ImDrawData_ScaleClipRects(struct ImDrawData* drawData, struct ImVec2 sc);
//ImDrawList
CIMGUI_API int ImDrawList_GetVertexBufferSize(struct ImDrawList* list);
CIMGUI_API struct ImDrawVert* ImDrawList_GetVertexPtr(struct ImDrawList* list, int n);
CIMGUI_API int ImDrawList_GetIndexBufferSize(struct ImDrawList* list);
CIMGUI_API ImDrawIdx* ImDrawList_GetIndexPtr(struct ImDrawList* list, int n);
CIMGUI_API int ImDrawList_GetCmdSize(struct ImDrawList* list);
CIMGUI_API struct ImDrawCmd* ImDrawList_GetCmdPtr(struct ImDrawList* list, int n);
CIMGUI_API void ImDrawList_Clear(struct ImDrawList* list);
CIMGUI_API void ImDrawList_ClearFreeMemory(struct ImDrawList* list);
CIMGUI_API void ImDrawList_PushClipRect(struct ImDrawList* list, struct ImVec2 clip_rect_min, struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect);
CIMGUI_API void ImDrawList_PushClipRectFullScreen(struct ImDrawList* list);
CIMGUI_API void ImDrawList_PopClipRect(struct ImDrawList* list);
CIMGUI_API void ImDrawList_PushTextureID(struct ImDrawList* list, CONST ImTextureID texture_id);
CIMGUI_API void ImDrawList_PopTextureID(struct ImDrawList* list);
// Primitives
CIMGUI_API void ImDrawList_AddLine(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float thickness);
CIMGUI_API void ImDrawList_AddRect(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners_flags, float thickness);
CIMGUI_API void ImDrawList_AddRectFilled(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners_flags);
CIMGUI_API void ImDrawList_AddRectFilledMultiColor(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left);
CIMGUI_API void ImDrawList_AddQuad(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, ImU32 col, float thickness);
CIMGUI_API void ImDrawList_AddQuadFilled(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, ImU32 col);
CIMGUI_API void ImDrawList_AddTriangle(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col, float thickness);
CIMGUI_API void ImDrawList_AddTriangleFilled(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col);
CIMGUI_API void ImDrawList_AddCircle(struct ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments, float thickness);
CIMGUI_API void ImDrawList_AddCircleFilled(struct ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments);
CIMGUI_API void ImDrawList_AddText(struct ImDrawList* list, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end);
CIMGUI_API void ImDrawList_AddTextExt(struct ImDrawList* list, CONST struct ImFont* font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end, float wrap_width, CONST struct ImVec4* cpu_fine_clip_rect);
CIMGUI_API void ImDrawList_AddImage(struct ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col);
CIMGUI_API void ImDrawList_AddImageQuad(struct ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, CONST struct ImVec2 uv_c, CONST struct ImVec2 uv_d, ImU32 col);
CIMGUI_API void ImDrawList_AddPolyline(struct ImDrawList* list, CONST struct ImVec2* points, CONST int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased);
CIMGUI_API void ImDrawList_AddConvexPolyFilled(struct ImDrawList* list, CONST struct ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased);
CIMGUI_API void ImDrawList_AddBezierCurve(struct ImDrawList* list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments);
// Stateful path API, add points then finish with PathFill() or PathStroke()
CIMGUI_API void ImDrawList_PathClear(struct ImDrawList* list);
CIMGUI_API void ImDrawList_PathLineTo(struct ImDrawList* list, CONST struct ImVec2 pos);
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(struct ImDrawList* list, CONST struct ImVec2 pos);
CIMGUI_API void ImDrawList_PathFillConvex(struct ImDrawList* list, ImU32 col);
CIMGUI_API void ImDrawList_PathStroke(struct ImDrawList* list, ImU32 col, bool closed, float thickness);
CIMGUI_API void ImDrawList_PathArcTo(struct ImDrawList* list, CONST struct ImVec2 centre, float radius, float a_min, float a_max, int num_segments);
CIMGUI_API void ImDrawList_PathArcToFast(struct ImDrawList* list, CONST struct ImVec2 centre, float radius, int a_min_of_12, int a_max_of_12); // Use precomputed angles for a 12 steps circle
CIMGUI_API void ImDrawList_PathBezierCurveTo(struct ImDrawList* list, CONST struct ImVec2 p1, CONST struct ImVec2 p2, CONST struct ImVec2 p3, int num_segments);
CIMGUI_API void ImDrawList_PathRect(struct ImDrawList* list, CONST struct ImVec2 rect_min, CONST struct ImVec2 rect_max, float rounding, int rounding_corners_flags);
// Channels
CIMGUI_API void ImDrawList_ChannelsSplit(struct ImDrawList* list, int channels_count);
CIMGUI_API void ImDrawList_ChannelsMerge(struct ImDrawList* list);
CIMGUI_API void ImDrawList_ChannelsSetCurrent(struct ImDrawList* list, int channel_index);
// Advanced
CIMGUI_API void ImDrawList_AddCallback(struct ImDrawList* list, ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles.
CIMGUI_API void ImDrawList_AddDrawCmd(struct ImDrawList* list); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible
// Internal helpers
CIMGUI_API void ImDrawList_PrimReserve(struct ImDrawList* list, int idx_count, int vtx_count);
CIMGUI_API void ImDrawList_PrimRect(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col);
CIMGUI_API void ImDrawList_PrimRectUV(struct ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col);
CIMGUI_API void ImDrawList_PrimQuadUV(struct ImDrawList* list,CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, CONST struct ImVec2 uv_c, CONST struct ImVec2 uv_d, ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteVtx(struct ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteIdx(struct ImDrawList* list, ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(struct ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(struct ImDrawList* list);
CIMGUI_API void ImDrawList_UpdateTextureID(struct ImDrawList* list);
// ImGuiListClipper
CIMGUI_API void ImGuiListClipper_Begin(struct ImGuiListClipper* clipper, int count, float items_height);
CIMGUI_API void ImGuiListClipper_End(struct ImGuiListClipper* clipper);
CIMGUI_API bool ImGuiListClipper_Step(struct ImGuiListClipper* clipper);
CIMGUI_API int ImGuiListClipper_GetDisplayStart(struct ImGuiListClipper* clipper);
CIMGUI_API int ImGuiListClipper_GetDisplayEnd(struct ImGuiListClipper* clipper);
// ImGuiTextFilter
CIMGUI_API void ImGuiTextFilter_Init(struct ImGuiTextFilter* filter, const char* default_filter);
CIMGUI_API void ImGuiTextFilter_Clear(struct ImGuiTextFilter* filter);
CIMGUI_API bool ImGuiTextFilter_Draw(struct ImGuiTextFilter* filter, const char* label, float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(struct ImGuiTextFilter* filter, const char* text, const char* text_end);
CIMGUI_API bool ImGuiTextFilter_IsActive(struct ImGuiTextFilter* filter);
CIMGUI_API void ImGuiTextFilter_Build(struct ImGuiTextFilter* filter);
// ImGuiTextEditCallbackData
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(struct ImGuiTextEditCallbackData* data, int pos, int bytes_count);
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(struct ImGuiTextEditCallbackData* data, int pos, const char* text, const char* text_end);
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(struct ImGuiTextEditCallbackData* data);
// ImGuiStorage
CIMGUI_API void ImGuiStorage_Init(struct ImGuiStorage* storage);
CIMGUI_API void ImGuiStorage_Clear(struct ImGuiStorage* storage);
CIMGUI_API int ImGuiStorage_GetInt(struct ImGuiStorage* storage, ImGuiID key, int default_val);
CIMGUI_API void ImGuiStorage_SetInt(struct ImGuiStorage* storage, ImGuiID key, int val);
CIMGUI_API bool ImGuiStorage_GetBool(struct ImGuiStorage* storage, ImGuiID key, bool default_val);
CIMGUI_API void ImGuiStorage_SetBool(struct ImGuiStorage* storage, ImGuiID key, bool val);
CIMGUI_API float ImGuiStorage_GetFloat(struct ImGuiStorage* storage, ImGuiID key, float default_val);
CIMGUI_API void ImGuiStorage_SetFloat(struct ImGuiStorage* storage, ImGuiID key, float val);
CIMGUI_API void* ImGuiStorage_GetVoidPtr(struct ImGuiStorage* storage, ImGuiID key);
CIMGUI_API void ImGuiStorage_SetVoidPtr(struct ImGuiStorage* storage, ImGuiID key, void* val);
CIMGUI_API int* ImGuiStorage_GetIntRef(struct ImGuiStorage* storage, ImGuiID key, int default_val);
CIMGUI_API bool* ImGuiStorage_GetBoolRef(struct ImGuiStorage* storage, ImGuiID key, bool default_val);
CIMGUI_API float* ImGuiStorage_GetFloatRef(struct ImGuiStorage* storage, ImGuiID key, float default_val);
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(struct ImGuiStorage* storage, ImGuiID key, void* default_val);
CIMGUI_API void ImGuiStorage_SetAllInt(struct ImGuiStorage* storage, int val);

View File

@@ -1,28 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cimgui", "cimgui.vcxproj", "{EDE48926-0595-4488-B1A0-32CA71397271}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EDE48926-0595-4488-B1A0-32CA71397271}.Debug|Win32.ActiveCfg = Debug|Win32
{EDE48926-0595-4488-B1A0-32CA71397271}.Debug|Win32.Build.0 = Debug|Win32
{EDE48926-0595-4488-B1A0-32CA71397271}.Debug|x64.ActiveCfg = Debug|x64
{EDE48926-0595-4488-B1A0-32CA71397271}.Debug|x64.Build.0 = Debug|x64
{EDE48926-0595-4488-B1A0-32CA71397271}.Release|Win32.ActiveCfg = Release|Win32
{EDE48926-0595-4488-B1A0-32CA71397271}.Release|Win32.Build.0 = Release|Win32
{EDE48926-0595-4488-B1A0-32CA71397271}.Release|x64.ActiveCfg = Release|x64
{EDE48926-0595-4488-B1A0-32CA71397271}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -1,161 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{EDE48926-0595-4488-B1A0-32CA71397271}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>cimgui</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;CIMGUI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;CIMGUI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CIMGUI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CIMGUI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\imgui\imgui.cpp" />
<ClCompile Include="..\imgui\imgui_demo.cpp" />
<ClCompile Include="..\imgui\imgui_draw.cpp" />
<ClCompile Include="cimgui.cpp" />
<ClCompile Include="drawList.cpp" />
<ClCompile Include="fontAtlas.cpp" />
<ClCompile Include="listClipper.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\imgui\imgui_internal.h" />
<ClInclude Include="cimgui.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="cimgui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\imgui\imgui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="fontAtlas.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="drawList.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\imgui\imgui_draw.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\imgui\imgui_demo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="listClipper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="cimgui.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="..\imgui\imgui_internal.h">
<Filter>Source Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -1,278 +0,0 @@
#include "../imgui/imgui.h"
#include "cimgui.h"
CIMGUI_API int ImDrawList_GetVertexBufferSize(ImDrawList* list)
{
return list->VtxBuffer.size();
}
CIMGUI_API ImDrawVert* ImDrawList_GetVertexPtr(ImDrawList* list, int n)
{
return &list->VtxBuffer[n];
}
CIMGUI_API int ImDrawList_GetIndexBufferSize(ImDrawList* list)
{
return list->IdxBuffer.size();
}
CIMGUI_API ImDrawIdx* ImDrawList_GetIndexPtr(ImDrawList* list, int n)
{
return &list->IdxBuffer[n];
}
CIMGUI_API int ImDrawList_GetCmdSize(ImDrawList* list)
{
return list->CmdBuffer.size();
}
CIMGUI_API ImDrawCmd* ImDrawList_GetCmdPtr(ImDrawList* list, int n)
{
return &list->CmdBuffer[n];
}
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* drawData)
{
return drawData->DeIndexAllBuffers();
}
CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* drawData, struct ImVec2 sc)
{
return drawData->ScaleClipRects(sc);
}
CIMGUI_API void ImDrawList_Clear(ImDrawList* list)
{
return list->Clear();
}
CIMGUI_API void ImDrawList_ClearFreeMemory(ImDrawList* list)
{
return list->ClearFreeMemory();
}
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* list, struct ImVec2 clip_rect_min, struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect)
{
return list->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect);
}
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* list)
{
return list->PushClipRectFullScreen();
}
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* list)
{
return list->PopClipRect();
}
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* list, CONST ImTextureID texture_id)
{
return list->PushTextureID(texture_id);
}
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* list)
{
return list->PopTextureID();
}
CIMGUI_API void ImDrawList_AddLine(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float thickness)
{
return list->AddLine(a, b, col, thickness);
}
CIMGUI_API void ImDrawList_AddRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners_flags, float thickness)
{
return list->AddRect(a, b, col, rounding, rounding_corners_flags, thickness);
}
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners_flags)
{
return list->AddRectFilled(a, b, col, rounding, rounding_corners_flags);
}
CIMGUI_API void ImDrawList_AddRectFilledMultiColor(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left)
{
return list->AddRectFilledMultiColor(a, b, col_upr_left, col_upr_right, col_bot_right, col_bot_left);
}
CIMGUI_API void ImDrawList_AddQuad(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, ImU32 col, float thickness)
{
return list->AddQuad(a, b, c, d, col, thickness);
}
CIMGUI_API void ImDrawList_AddQuadFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, ImU32 col)
{
return list->AddQuadFilled(a, b, c, d, col);
}
CIMGUI_API void ImDrawList_AddTriangle(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col, float thickness)
{
return list->AddTriangle(a,b,c,col,thickness);
}
CIMGUI_API void ImDrawList_AddTriangleFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col)
{
return list->AddTriangleFilled(a, b, c, col);
}
CIMGUI_API void ImDrawList_AddCircle(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments, float thickness)
{
return list->AddCircle(centre, radius, col, num_segments, thickness);
}
CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments)
{
return list->AddCircleFilled(centre, radius, col, num_segments);
}
CIMGUI_API void ImDrawList_AddText(ImDrawList* list, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end)
{
return list->AddText(pos, col, text_begin, text_end);
}
CIMGUI_API void ImDrawList_AddTextExt(ImDrawList* list, CONST ImFont* font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end, float wrap_width, CONST ImVec4* cpu_fine_clip_rect)
{
return list->AddText(font, font_size, pos, col, text_begin, text_end, wrap_width, cpu_fine_clip_rect);
}
CIMGUI_API void ImDrawList_AddImage(ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col)
{
return list->AddImage(user_texture_id, a, b, uv_a, uv_b, col);
}
CIMGUI_API void ImDrawList_AddImageQuad(struct ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST ImVec2 b, CONST ImVec2 c, CONST ImVec2 d, CONST ImVec2 uv_a, CONST ImVec2 uv_b, CONST ImVec2 uv_c, CONST ImVec2 uv_d, ImU32 col)
{
return list->AddImageQuad(user_texture_id, a, b, c, d, uv_a, uv_b, uv_c, uv_d, col);
}
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased)
{
return list->AddPolyline(points, num_points, col, closed, thickness, anti_aliased);
}
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased)
{
return list->AddConvexPolyFilled(points, num_points, col, anti_aliased);
}
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments)
{
return list->AddBezierCurve(pos0, cp0, cp1, pos1, col, thickness, num_segments);
}
CIMGUI_API void ImDrawList_PathClear(ImDrawList* list)
{
return list->PathClear();
}
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* list, CONST struct ImVec2 pos)
{
return list->PathLineTo(pos);
}
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* list, CONST struct ImVec2 pos)
{
return list->PathLineToMergeDuplicate(pos);
}
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* list, ImU32 col)
{
return list->PathFillConvex(col);
}
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* list, ImU32 col, bool closed, float thickness)
{
return list->PathStroke(col, closed, thickness);
}
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* list, CONST struct ImVec2 centre, float radius, float a_min, float a_max, int num_segments)
{
return list->PathArcTo(centre, radius, a_min, a_max, num_segments);
}
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* list, CONST struct ImVec2 centre, float radius, int a_min_of_12, int a_max_of_12)
{
return list->PathArcToFast(centre, radius, a_min_of_12, a_max_of_12);
}
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* list, CONST struct ImVec2 p1, CONST struct ImVec2 p2, CONST struct ImVec2 p3, int num_segments)
{
return list->PathBezierCurveTo(p1, p2, p3, num_segments);
}
CIMGUI_API void ImDrawList_PathRect(ImDrawList* list, CONST struct ImVec2 rect_min, CONST struct ImVec2 rect_max, float rounding, int rounding_corners_flags)
{
return list->PathRect(rect_min, rect_max, rounding, rounding_corners_flags);
}
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* list, int channels_count)
{
return list->ChannelsSplit(channels_count);
}
CIMGUI_API void ImDrawList_ChannelsMerge(ImDrawList* list)
{
return list->ChannelsMerge();
}
CIMGUI_API void ImDrawList_ChannelsSetCurrent(ImDrawList* list, int channel_index)
{
return list->ChannelsSetCurrent(channel_index);
}
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* list, ImDrawCallback callback, void* callback_data)
{
return list->AddCallback(callback, callback_data);
}
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* list)
{
return list->AddDrawCmd();
}
CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* list, int idx_count, int vtx_count)
{
return list->PrimReserve(idx_count, vtx_count);
}
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col)
{
return list->PrimRect(a, b, col);
}
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col)
{
return list->PrimRectUV(a, b, uv_a, uv_b, col);
}
CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* list,CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, CONST struct ImVec2 uv_c, CONST struct ImVec2 uv_d, ImU32 col)
{
return list->PrimQuadUV(a,b,c,d,uv_a,uv_b,uv_c,uv_d,col);
}
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col)
{
return list->PrimVtx(pos, uv, col);
}
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col)
{
return list->PrimWriteVtx(pos, uv, col);
}
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* list, ImDrawIdx idx)
{
return list->PrimWriteIdx(idx);
}
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* list)
{
return list->UpdateClipRect();
}
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* list)
{
return list->UpdateTextureID();
}

View File

@@ -1,93 +0,0 @@
#include "../imgui/imgui.h"
#include "cimgui.h"
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig* config)
{
*config = ImFontConfig();
}
CIMGUI_API void ImFontAtlas_GetTexDataAsRGBA32(ImFontAtlas* atlas, unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel)
{
atlas->GetTexDataAsRGBA32(out_pixels, out_width, out_height, out_bytes_per_pixel);
}
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* atlas, unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel)
{
atlas->GetTexDataAsAlpha8(out_pixels, out_width, out_height, out_bytes_per_pixel);
}
CIMGUI_API void ImFontAtlas_SetTexID(ImFontAtlas* atlas, ImTextureID id)
{
atlas->TexID = id;
}
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* atlas, CONST ImFontConfig* font_cfg)
{
return atlas->AddFont(font_cfg);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* atlas, CONST ImFontConfig* font_cfg)
{
return atlas->AddFontDefault(font_cfg);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* atlas,CONST char* filename, float size_pixels, CONST ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges)
{
return atlas->AddFontFromFileTTF(filename, size_pixels, font_cfg, glyph_ranges);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* atlas, void* ttf_data, int ttf_size, float size_pixels, CONST ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges)
{
return atlas->AddFontFromMemoryTTF(ttf_data, ttf_size, size_pixels, font_cfg, glyph_ranges);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* atlas, CONST void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, CONST ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges)
{
return atlas->AddFontFromMemoryCompressedTTF(compressed_ttf_data, compressed_ttf_size, size_pixels, font_cfg, glyph_ranges);
}
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* atlas, CONST char* compressed_ttf_data_base85, float size_pixels, CONST ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges)
{
return atlas->AddFontFromMemoryCompressedBase85TTF(compressed_ttf_data_base85, size_pixels, font_cfg, glyph_ranges);
}
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* atlas)
{
return atlas->ClearTexData();
}
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* atlas)
{
return atlas->Clear();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesDefault(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesDefault();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesKorean(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesKorean();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesJapanese(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesJapanese();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesChinese(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesChinese();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesCyrillic();
}
CIMGUI_API CONST ImWchar* ImFontAtlas_GetGlyphRangesThai(struct ImFontAtlas* atlas)
{
return atlas->GetGlyphRangesThai();
}

View File

@@ -1,27 +0,0 @@
#include "../imgui/imgui.h"
#include "cimgui.h"
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* clipper, int count, float items_height)
{
clipper->Begin(count, items_height);
}
CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* clipper)
{
clipper->End();
}
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* clipper)
{
return clipper->Step();
}
CIMGUI_API int ImGuiListClipper_GetDisplayStart(ImGuiListClipper* clipper)
{
return clipper->DisplayStart;
}
CIMGUI_API int ImGuiListClipper_GetDisplayEnd(ImGuiListClipper* clipper)
{
return clipper->DisplayEnd;
}

View File

@@ -1,2 +0,0 @@
#include "cimgui.h"

View File

@@ -0,0 +1,55 @@
#include "./imgui/imgui.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
#include "auto_funcs.cpp"
/////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...)
{
char buffer[256];
va_list args;
va_start(args, fmt);
vsnprintf(buffer, 256, fmt, args);
va_end(args);
ImGui::LogText("%s", buffer);
}
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
buffer->appendfv(fmt, args);
va_end(args);
}
CIMGUI_API float igGET_FLT_MAX()
{
return FLT_MAX;
}
CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v)
{
ImGui::ColorConvertRGBtoHSV(r,g,b,*out_h,*out_s,*out_v);
}
CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b)
{
ImGui::ColorConvertHSVtoRGB(h,s,v,*out_r,*out_g,*out_b);
}
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create()
{
return IM_NEW(ImVector<ImWchar>) ();
}
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p)
{
IM_PLACEMENT_NEW(p) ImVector<ImWchar>();
}
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p)
{
p->~ImVector<ImWchar>();
}

View File

@@ -0,0 +1,92 @@
#ifndef CIMGUI_INCLUDED
#define CIMGUI_INCLUDED
#include <stdio.h>
#include <stdint.h>
#if defined _WIN32 || defined __CYGWIN__
#ifdef CIMGUI_NO_EXPORT
#define API
#else
#define API __declspec(dllexport)
#endif
#ifndef __GNUC__
#define snprintf sprintf_s
#endif
#else
#define API
#endif
#if defined __cplusplus
#define EXTERN extern "C"
#else
#include <stdarg.h>
#include <stdbool.h>
#define EXTERN extern
#endif
#define CIMGUI_API EXTERN API
#define CONST const
#ifdef _MSC_VER
typedef unsigned __int64 ImU64;
#else
//typedef unsigned long long ImU64;
#endif
//UDT stuff
typedef struct ImVec2_Simple { float x; float y; } ImVec2_Simple;
typedef struct ImVec4_Simple { float x; float y; float z; float w;} ImVec4_Simple;
typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "imgui_structs.h"
#else
struct GLFWwindow;
struct SDL_Window;
typedef union SDL_Event SDL_Event;
inline ImVec2_Simple ImVec2ToSimple(ImVec2 vec)
{
ImVec2_Simple result;
result.x = vec.x;
result.y = vec.y;
return result;
}
inline ImVec4_Simple ImVec4ToSimple(ImVec4 vec)
{
ImVec4_Simple result;
result.x = vec.x;
result.y = vec.y;
result.z = vec.z;
result.w = vec.w;
return result;
}
inline ImColor_Simple ImColorToSimple(ImColor col)
{
ImColor_Simple result;
result.Value = ImVec4ToSimple(col.Value);
return result;
}
#endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include "auto_funcs.h"
/////////////////////////hand written functions
//no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
//for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX();
//not const args from & to *
CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v);
CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b);
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create();
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);
#endif //CIMGUI_INCLUDED

1320
generator/cpp2ffi.lua Normal file

File diff suppressed because it is too large Load Diff

23
generator/generator.bat Normal file
View File

@@ -0,0 +1,23 @@
:: this script must be executed in this directory
:: all the output goes to generator/output folder
:: .cpp and .h files:
:: cimgui.h and cimgui.cpp with gcc preprocess
:: cimgui_nopreprocess.h and cimgui_nopreprocess.cpp generated without preprocess
:: cimgui_impl.h with implementation function cdefs
:: lua and json files:
:: definitions.lua for function definitions
:: structs_and_enums.lua with struct and enum information-definitions
:: impl_definitions.lua for implementation function definitions
:: set your PATH if necessary for LuaJIT or Lua5.1 or luajit with: (for example)
set PATH=%PATH%;C:\luaGL;C:\mingw32\bin;
:: set PATH=%PATH%;C:\luaGL;C:\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\mingw32\bin;
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
::process files
:: arg[1] compiler name gcc, clang, cl or nocompiler
:: arg[2..n] name of implementations to generate
luajit ./generator.lua gcc glfw opengl3 opengl2 sdl
::leave console open
cmd /k

1682
generator/generator.lua Normal file

File diff suppressed because it is too large Load Diff

23
generator/generator2.bat Normal file
View File

@@ -0,0 +1,23 @@
:: this script must be executed in this directory
:: all the output goes to generator/output folder
:: .cpp and .h files:
:: cimgui.h and cimgui.cpp with gcc preprocess
:: cimgui_nopreprocess.h and cimgui_nopreprocess.cpp generated without preprocess
:: cimgui_impl.h with implementation function cdefs
:: lua and json files:
:: definitions.lua for function definitions
:: structs_and_enums.lua with struct and enum information-definitions
:: impl_definitions.lua for implementation function definitions
:: set your PATH if necessary for LuaJIT or Lua5.1 or luajit with: (for example)
set PATH=%PATH%;C:\luaGL;C:\mingw32\bin;
:: set PATH=%PATH%;C:\luaGL;C:\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\mingw32\bin;
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
::process files
:: arg[1] compiler name gcc, clang, cl or nocompiler
:: arg[2..n] name of implementations to generate
luajit ./generator2.lua gcc glfw opengl3 opengl2 sdl
::leave console open
cmd /k

646
generator/generator2.lua Normal file
View File

@@ -0,0 +1,646 @@
--------------------------------------------------------------------------
--script for auto_funcs.h and auto_funcs.cpp generation
--expects LuaJIT
--------------------------------------------------------------------------
assert(_VERSION=='Lua 5.1',"Must use LuaJIT")
assert(bit,"Must use LuaJIT")
local script_args = {...}
local COMPILER = script_args[1]
local CPRE,CTEST
if COMPILER == "gcc" or COMPILER == "clang" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]]
CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_API="" /DIMGUI_IMPL_API="" ]]
CTEST = COMPILER
else
print("Working without compiler ")
end
--test compiler present
local HAVE_COMPILER = false
if CTEST then
local pipe,err = io.popen(CTEST,"r")
if pipe then
local str = pipe:read"*a"
print(str)
pipe:close()
if str=="" then
HAVE_COMPILER = false
else
HAVE_COMPILER = true
end
else
HAVE_COMPILER = false
print(err)
end
assert(HAVE_COMPILER,"gcc, clang or cl needed to run script")
end --CTEST
print("HAVE_COMPILER",HAVE_COMPILER)
--get implementations
local implementations = {}
for i=2,#script_args do table.insert(implementations,script_args[i]) end
--------------------------------------------------------------------------
--this table has the functions to be skipped in generation
--------------------------------------------------------------------------
local cimgui_manuals = {
igLogText = true,
ImGuiTextBuffer_appendf = true,
igColorConvertRGBtoHSV = true,
igColorConvertHSVtoRGB = 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
--desired name
---------------------------------------------------------------------------
local cimgui_overloads = {
igPushID = {
--["(const char*)"] = "igPushIDStr",
["(const char*,const char*)"] = "igPushIDRange",
--["(const void*)"] = "igPushIDPtr",
--["(int)"] = "igPushIDInt"
},
igGetID = {
["(const char*,const char*)"] = "igGetIDRange",
},
ImDrawList_AddText = {
["(const ImVec2,ImU32,const char*,const char*)"] = "ImDrawList_AddText",
},
igGetColorU32 = {
["(ImGuiCol,float)"] = "igGetColorU32",
},
igCollapsingHeader = {
["(const char*,ImGuiTreeNodeFlags)"] = "igCollapsingHeader",
},
igCombo = {
["(const char*,int*,const char* const[],int,int)"] = "igCombo",
},
igPlotLines = {
["(const char*,const float*,int,int,const char*,float,float,ImVec2,int)"] = "igPlotLines",
},
igBeginChild = {
["(const char*,const ImVec2,bool,ImGuiWindowFlags)"] = "igBeginChild",
},
igSelectable = {
["(const char*,bool,ImGuiSelectableFlags,const ImVec2)"] = "igSelectable"
},
igPushStyleColor = {
["(ImGuiCol,const ImVec4)"] = "igPushStyleColor"
}
}
--------------------------header definitions
local cimgui_header =
[[//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version XXX from Dear ImGui https://github.com/ocornut/imgui
]]
local gdefines = {} --for FLT_MAX and others
--------------------------------------------------------------------------
--helper functions
---------------------------minimal preprocessor without compiler for ImGui.h
local function filelines(file,locats)
local split_comment = require"cpp2ffi".split_comment
local iflevels = {}
--generated known prepros
local prepro = {
["#if"]={
[ "defined(__clang__) || defined(__GNUC__)" ]=false,
[ "defined(__clang__)" ]=false,
[ "defined(_MSC_VER) && !defined(__clang__)" ]=false,
[ "!defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H)" ]=false,
[ "!defined(IMGUI_IMPL_OPENGL_LOADER_GL3W) \\" ]=false,
},
["#elif"]={
[ "defined(__GNUC__) && __GNUC__ >= 8" ]=false,
[ "(defined(__clang__) || defined(__GNUC__)) && (__cplusplus < 201100)" ]=false,
},
["#ifdef"]={
[ "IM_VEC4_CLASS_EXTRA" ]=false,
[ "IMGUI_USER_CONFIG" ]=false,
[ "IMGUI_INCLUDE_IMGUI_USER_H" ]=false,
[ "IMGUI_USE_BGRA_PACKED_COLOR" ]=false,
[ "IM_VEC2_CLASS_EXTRA" ]=false,
},
["#ifndef"]={
[ "IMGUI_API" ]=false,
[ "IMGUI_IMPL_API" ]=false,
[ "IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT" ]=true,
[ "IM_ASSERT" ]=false,
[ "ImTextureID" ]=true,
[ "ImDrawIdx" ]=true,
[ "IMGUI_DISABLE_OBSOLETE_FUNCTIONS" ]=false,
},
}
local function prepro_boolif(pre,cond)
local conds = prepro[pre]
assert(conds,pre.." has no conds-----------------------------")
local res = conds[cond]
--assert(type(res)~="nil",cond.." not found")
if type(res)=="nil" then
print(pre,cond,"not found in precompiler database, returning false.")
res = false
end
return res
end
local function location_it()
repeat
local line = file:read"*l"
if not line then return nil end
line,_ = split_comment(line)
--if line:sub(1,1) == "#" then
if line:match("^%s*#") then
local pre,cond = line:match("^%s*(#%S*)%s+(.*)%s*$")
if line:match("#if") then
iflevels[#iflevels +1 ] = prepro_boolif(pre,cond)
elseif line:match("#endif") then
iflevels[#iflevels] = nil
elseif line:match("#elif") then
if not iflevels[#iflevels] then
iflevels[#iflevels] = prepro_boolif(pre,cond)
else --was true
iflevels[#iflevels] = false
end
elseif line:match("#else") then
iflevels[#iflevels] = not iflevels[#iflevels]
else
if not (pre:match("#define") or pre:match"#include" or pre:match"#pragma") then
print("not expected preprocessor directive ",pre)
end
end
-- skip
elseif #iflevels == 0 or iflevels[#iflevels] then
-- drop IMGUI_APIX
line = line:gsub("IMGUI_IMPL_API","")
-- drop IMGUI_API
line = line:gsub("IMGUI_API","")
return line,locats[1]
end
until false
end
return location_it
end
--------------------------------functions for C generation
local function func_header_impl_generate(FP)
local outtab = {}
for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
if def.ret then --not constructor
local addcoment = def.comment or ""
if def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else
error("class function in implementations")
end
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end
end
local cfuncsstr = table.concat(outtab)
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr
end
local function func_header_generate(FP)
local outtab = {}
table.insert(outtab,"#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for k,v in pairs(FP.embeded_structs) do
table.insert(outtab,"typedef "..v.." "..k..";\n")
end
for ttype,v in pairs(FP.templates) do
for ttypein,_ in pairs(v) do
local te = ttypein:gsub("%s","_")
te = te:gsub("%*","Ptr")
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n")
end
end
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
assert(def,t.signature..t.cimguiname)
local manual = FP.get_manuals(def)
if not manual and not def.templated then
local addcoment = def.comment or ""
local empty = def.args:match("^%(%)") --no args
if def.constructor then
assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
elseif def.destructor then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else --not constructor
if def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API "..def.ret.." ".. def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
else
table.insert(outtab,"CIMGUI_API "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
end
end
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end
end
local cfuncsstr = table.concat(outtab)
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr
end
local function ImGui_f_implementation(outtab,def)
local ptret = def.retref and "&" or ""
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n")
if def.isvararg then
local call_args = def.call_args:gsub("%.%.%.","args")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = ImGui::"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," ImGui::"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
elseif def.nonUDT then
if def.nonUDT == 1 then
table.insert(outtab," *pOut = ImGui::"..def.funcname..def.call_args..";\n")
else --nonUDT==2
table.insert(outtab," "..def.retorig.." ret = ImGui::"..def.funcname..def.call_args..";\n")
table.insert(outtab," "..def.ret.." ret2 = "..def.retorig.."ToSimple(ret);\n")
table.insert(outtab," return ret2;\n")
end
else --standard ImGui
table.insert(outtab," return "..ptret.."ImGui::"..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
end
local function struct_f_implementation(outtab,def)
local empty = def.args:match("^%(%)") --no args
local ptret = def.retref and "&" or ""
local imgui_stname = def.stname
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n")
if def.isvararg then
local call_args = def.call_args:gsub("%.%.%.","args")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = self->"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," self->"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
elseif def.nonUDT then
if def.nonUDT == 1 then
table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
else --nonUDT==2
table.insert(outtab," "..def.retorig.." ret = self->"..def.funcname..def.call_args..";\n")
table.insert(outtab," "..def.ret.." ret2 = "..def.retorig.."ToSimple(ret);\n")
table.insert(outtab," return ret2;\n")
end
else --standard struct
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
end
local function func_implementation(FP)
local outtab = {}
for _,t in ipairs(FP.funcdefs) do
repeat -- continue simulation
if not t.cimguiname then break end
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
assert(def)
local manual = FP.get_manuals(def)
if not manual and not def.templated then
if def.constructor then
assert(def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(outtab,"{\n")
table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(outtab,"}\n")
elseif def.destructor then
local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," IM_DELETE(self);\n")
table.insert(outtab,"}\n")
elseif def.stname == "" then
ImGui_f_implementation(outtab,def)
else -- stname
struct_f_implementation(outtab,def)
end
end
until true
end
return table.concat(outtab)
end
-------------------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
local pipe,err = io.popen(COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]],"r")
local defines = {}
while true do
local line = pipe:read"*l"
if not line then break end
local key,value = line:match([[#define%s+(%S+)%s+(.+)]])
if not key or not value then
--print(line)
else
defines[key]=value
end
end
pipe:close()
--require"anima.utils"
--prtable(defines)
--FLT_MAX
local ret = {}
for i,v in ipairs(t) do
local aa = defines[v]
while true do
local tmp = defines[aa]
if not tmp then
break
else
aa = tmp
end
end
ret[v] = aa
end
return ret
end
--subtitution of FLT_MAX value for FLT_MAX
local function set_defines(fdefs)
for k,defT in pairs(fdefs) do
for i,def in ipairs(defT) do
for name,default in pairs(def.defaults) do
if default == gdefines.FLT_MAX then
def.defaults[name] = "FLT_MAX"
end
end
end
end
end
--this creates defsBystruct in case you need to list by struct container
local function DefsByStruct(FP)
local structs = {}
for fun,defs in pairs(FP.defsT) do
local stname = defs[1].stname
structs[stname] = structs[stname] or {}
table.insert(structs[stname],defs)--fun)
end
FP.defsBystruct = structs
end
--load parser module
local cpp2ffi = require"cpp2ffi"
local read_data = cpp2ffi.read_data
local save_data = cpp2ffi.save_data
local copyfile = cpp2ffi.copyfile
local serializeTableF = cpp2ffi.serializeTableF
----------custom ImVector templates
local function generate_templates(code,templates)
table.insert(code,[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]].."\n")
for ttype,v in pairs(templates) do
--local te = k:gsub("%s","_")
--te = te:gsub("%*","Ptr")
if ttype == "ImVector" then
for te,newte in pairs(v) do
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
end
end
end
end
--generate cimgui.cpp cimgui.h
local function cimgui_generation(parser)
cpp2ffi.prtable(parser.templates)
cpp2ffi.prtable(parser.typenames)
-- clean ImVector:contains() for not applicable types
local clean_f = {}
for k,v in pairs(parser.defsT) do
if k:match"ImVector" and k:match"contains" then
--cpp2ffi.prtable(k,v)
local stname = v[1].stname
if not(stname:match"float" or stname:match"int" or stname:match"char") then
parser.defsT[k] = nil
--delete also from funcdefs
for i,t in ipairs(parser.funcdefs) do
if t.cimguiname == k then
table.remove(parser.funcdefs, i)
break
end
end
end
end
end
--------------------------------------------------
local hstrfile = read_data"./cimgui_template.h"
local outpre,outpost = parser:gen_structs_and_enums()
--parser.templates get completely defined here
--cpp2ffi.prtable(parser.templates)
local outtab = {}
generate_templates(outtab,parser.templates)
local cstructsstr = outpre..table.concat(outtab,"")..outpost
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser)
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser)
local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
save_data("./output/cimgui.cpp",cimgui_header,hstrfile)
end
--------------------------------------------------------
-----------------------------do it----------------------
--------------------------------------------------------
--get imgui.h version--------------------------
local pipe,err = io.open("../imgui/imgui.h","r")
if not pipe then
error("could not open file:"..err)
end
local imgui_version
while true do
local line = pipe:read"*l"
imgui_version = line:match([[#define%s+IMGUI_VERSION%s+(".+")]])
if imgui_version then break end
end
pipe:close()
cimgui_header = cimgui_header:gsub("XXX",imgui_version)
print("IMGUI_VERSION",imgui_version)
--get some defines----------------------------
if HAVE_COMPILER then
gdefines = get_defines{"IMGUI_VERSION","FLT_MAX"}
end
--generation
print("------------------generation with "..COMPILER.."------------------------")
local typedefs_dict2
--prepare parser
local parser1 = cpp2ffi.Parser()
parser1.getCname = function(stname,funcname)
local pre = (stname == "") and "ig" or stname.."_"
return pre..funcname
end
parser1.cname_overloads = cimgui_overloads
parser1.manuals = cimgui_manuals
parser1.UDTs = {"ImVec2","ImVec4","ImColor"}
local pipe,err
if HAVE_COMPILER then
pipe,err = io.popen(CPRE..[[../imgui/imgui.h]],"r")
else
pipe,err = io.open([[../imgui/imgui.h]],"r")
end
if not pipe then
error("could not execute gcc "..err)
end
--local file,err = io.open("output_compiler.txt","w")
--if not file then error(err) end
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
for line in iterator(pipe,{"imgui"},{}) do
parser1:insert(line)
--file:write(line)
end
--file:close()
pipe:close()
parser1:do_parse()
--table.sort(parser1.funcdefs, function(a,b) return a.cimguiname < b.cimguiname end)
--parser1:dump_alltypes()
--parser1:printItems()
save_data("./output/overloads.txt",parser1.overloadstxt)
cimgui_generation(parser1)
----------save fundefs in definitions.lua for using in bindings
--DefsByStruct(pFP)
set_defines(parser1.defsT)
save_data("./output/definitions.lua",serializeTableF(parser1.defsT))
----------save struct and enums lua table in structs_and_enums.lua for using in bindings
local structs_and_enums_table = parser1:gen_structs_and_enums_table()
--correct Pair union member
structs_and_enums_table["structs"]["Pair"][2]["name"] = ""
structs_and_enums_table["structs"]["Pair"][2]["type"] = structs_and_enums_table["structs"]["Pair"][2]["type"] .. "}"
-----------------------
save_data("./output/structs_and_enums.lua",serializeTableF(structs_and_enums_table))
save_data("./output/typedefs_dict.lua",serializeTableF(parser1.typedefs_dict))
--check every function has ov_cimguiname
-- for k,v in pairs(parser1.defsT) do
-- for _,def in ipairs(v) do
-- assert(def.ov_cimguiname)
-- end
-- end
--=================================Now implementations
local parser2
if #implementations > 0 then
parser2 = cpp2ffi.Parser()
for i,impl in ipairs(implementations) do
local source = [[../imgui/examples/imgui_impl_]].. impl .. ".h "
local locati = [[imgui_impl_]].. impl
local pipe,err
if HAVE_COMPILER then
pipe,err = io.popen(CPRE..source,"r")
else
pipe,err = io.open(source,"r")
end
if not pipe then
error("could not get file: "..err)
end
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
for line,locat in iterator(pipe,{locati},{}) do
--local line, comment = split_comment(line)
parser2:insert(line)
end
pipe:close()
end
parser2:do_parse()
-- save ./cimgui_impl.h
local cfuncsstr = func_header_impl_generate(parser2)
local cstructstr1,cstructstr2 = parser2:gen_structs_and_enums()
save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
----------save fundefs in impl_definitions.lua for using in bindings
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
end -- #implementations > 0 then
-------------------------------json saving
--avoid mixed tables (with string and integer keys)
local function json_prepare(defs)
--delete signatures in function
for k,def in pairs(defs) do
for k2,v in pairs(def) do
if type(k2)=="string" then
def[k2] = nil
end
end
end
return defs
end
---[[
local json = require"json"
save_data("./output/definitions.json",json.encode(json_prepare(parser1.defsT)))
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
save_data("./output/impl_definitions.json",json.encode(json_prepare(parser2.defsT)))
end
--]]
-------------------copy C files to repo root
copyfile("./output/cimgui.h", "../cimgui.h")
copyfile("./output/cimgui.cpp", "../cimgui.cpp")
print"all done!!"

416
generator/json.lua Normal file
View File

@@ -0,0 +1,416 @@
--
-- json.lua
--
-- Copyright (c) 2018 rxi
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy of
-- this software and associated documentation files (the "Software"), to deal in
-- the Software without restriction, including without limitation the rights to
-- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-- of the Software, and to permit persons to whom the Software is furnished to do
-- so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in all
-- copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
--
local json = { _version = "0.1.1" }
-------------------------------------------------------------------------------
-- Encode
-------------------------------------------------------------------------------
local TAB = " "
local rep = string.rep
local encode
local escape_char_map = {
[ "\\" ] = "\\\\",
[ "\"" ] = "\\\"",
[ "\b" ] = "\\b",
[ "\f" ] = "\\f",
[ "\n" ] = "\\n",
[ "\r" ] = "\\r",
[ "\t" ] = "\\t",
}
local escape_char_map_inv = { [ "\\/" ] = "/" }
for k, v in pairs(escape_char_map) do
escape_char_map_inv[v] = k
end
local function escape_char(c)
return escape_char_map[c] or string.format("\\u%04x", c:byte())
end
local function encode_nil(val)
return "null"
end
local function encode_table(val, stack,level,isvalue)
local res = {}
stack = stack or {}
level = level or 0
-- Circular reference?
if stack[val] then error("circular reference") end
stack[val] = true
if val[1] ~= nil or next(val) == nil then
-- Treat as array -- check keys are valid and it is not sparse
local n = 0
for k in pairs(val) do
if type(k) ~= "number" then
error("invalid table: mixed or invalid key types")
end
n = n + 1
end
if n ~= #val then
error("invalid table: sparse array")
end
-- Encode
for i, v in ipairs(val) do
table.insert(res, encode(v, stack,level+1))
end
stack[val] = nil
local inner = table.concat(res, ",\n")
if #inner > 0 then inner = "\n"..inner.."\n"..rep(TAB,level) end
return rep(isvalue and "" or TAB,level).."[" .. inner .. "]"
else
---[[
local ordered_keys = {}
for k,v in pairs(val) do
table.insert(ordered_keys,k)
end
table.sort(ordered_keys)
-- Treat as an object
for _,k in ipairs(ordered_keys) do
local v = val[k]
--]]
--for k, v in pairs(val) do
if type(k) ~= "string" then
error("invalid table: mixed or invalid key types")
end
table.insert(res, encode(k, stack,level+1) .. ": " .. encode(v, stack,level+1,true))
end
stack[val] = nil
local inner = table.concat(res, ",\n")
if #inner > 0 then inner = "\n"..inner.."\n"..rep(TAB,level) end
return rep(isvalue and "" or TAB,level).."{" .. inner .. "}"
end
end
local function encode_string(val,stack,level,isvalue)
return rep(isvalue and "" or TAB,level)..'"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
end
local function encode_number(val,stack,level,isvalue)
-- Check for NaN, -inf and inf
if val ~= val or val <= -math.huge or val >= math.huge then
error("unexpected number value '" .. tostring(val) .. "'")
end
return rep(isvalue and "" or TAB,level)..string.format("%.14g", val)
end
local type_func_map = {
[ "nil" ] = encode_nil,
[ "table" ] = encode_table,
[ "string" ] = encode_string,
[ "number" ] = encode_number,
[ "boolean" ] = tostring,
}
encode = function(val, stack,level,isvalue)
local t = type(val)
local f = type_func_map[t]
if f then
return f(val, stack,level,isvalue)
end
error("unexpected type '" .. t .. "'")
end
function json.encode(val)
return ( encode(val) )
end
-------------------------------------------------------------------------------
-- Decode
-------------------------------------------------------------------------------
local parse
local function create_set(...)
local res = {}
for i = 1, select("#", ...) do
res[ select(i, ...) ] = true
end
return res
end
local space_chars = create_set(" ", "\t", "\r", "\n")
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
local literals = create_set("true", "false", "null")
local literal_map = {
[ "true" ] = true,
[ "false" ] = false,
[ "null" ] = nil,
}
local function next_char(str, idx, set, negate)
for i = idx, #str do
if set[str:sub(i, i)] ~= negate then
return i
end
end
return #str + 1
end
local function decode_error(str, idx, msg)
local line_count = 1
local col_count = 1
for i = 1, idx - 1 do
col_count = col_count + 1
if str:sub(i, i) == "\n" then
line_count = line_count + 1
col_count = 1
end
end
error( string.format("%s at line %d col %d", msg, line_count, col_count) )
end
local function codepoint_to_utf8(n)
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
local f = math.floor
if n <= 0x7f then
return string.char(n)
elseif n <= 0x7ff then
return string.char(f(n / 64) + 192, n % 64 + 128)
elseif n <= 0xffff then
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
elseif n <= 0x10ffff then
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
f(n % 4096 / 64) + 128, n % 64 + 128)
end
error( string.format("invalid unicode codepoint '%x'", n) )
end
local function parse_unicode_escape(s)
local n1 = tonumber( s:sub(3, 6), 16 )
local n2 = tonumber( s:sub(9, 12), 16 )
-- Surrogate pair?
if n2 then
return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
else
return codepoint_to_utf8(n1)
end
end
local function parse_string(str, i)
local has_unicode_escape = false
local has_surrogate_escape = false
local has_escape = false
local last
for j = i + 1, #str do
local x = str:byte(j)
if x < 32 then
decode_error(str, j, "control character in string")
end
if last == 92 then -- "\\" (escape char)
if x == 117 then -- "u" (unicode escape sequence)
local hex = str:sub(j + 1, j + 5)
if not hex:find("%x%x%x%x") then
decode_error(str, j, "invalid unicode escape in string")
end
if hex:find("^[dD][89aAbB]") then
has_surrogate_escape = true
else
has_unicode_escape = true
end
else
local c = string.char(x)
if not escape_chars[c] then
decode_error(str, j, "invalid escape char '" .. c .. "' in string")
end
has_escape = true
end
last = nil
elseif x == 34 then -- '"' (end of string)
local s = str:sub(i + 1, j - 1)
if has_surrogate_escape then
s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
end
if has_unicode_escape then
s = s:gsub("\\u....", parse_unicode_escape)
end
if has_escape then
s = s:gsub("\\.", escape_char_map_inv)
end
return s, j + 1
else
last = x
end
end
decode_error(str, i, "expected closing quote for string")
end
local function parse_number(str, i)
local x = next_char(str, i, delim_chars)
local s = str:sub(i, x - 1)
local n = tonumber(s)
if not n then
decode_error(str, i, "invalid number '" .. s .. "'")
end
return n, x
end
local function parse_literal(str, i)
local x = next_char(str, i, delim_chars)
local word = str:sub(i, x - 1)
if not literals[word] then
decode_error(str, i, "invalid literal '" .. word .. "'")
end
return literal_map[word], x
end
local function parse_array(str, i)
local res = {}
local n = 1
i = i + 1
while 1 do
local x
i = next_char(str, i, space_chars, true)
-- Empty / end of array?
if str:sub(i, i) == "]" then
i = i + 1
break
end
-- Read token
x, i = parse(str, i)
res[n] = x
n = n + 1
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "]" then break end
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
end
return res, i
end
local function parse_object(str, i)
local res = {}
i = i + 1
while 1 do
local key, val
i = next_char(str, i, space_chars, true)
-- Empty / end of object?
if str:sub(i, i) == "}" then
i = i + 1
break
end
-- Read key
if str:sub(i, i) ~= '"' then
decode_error(str, i, "expected string for key")
end
key, i = parse(str, i)
-- Read ':' delimiter
i = next_char(str, i, space_chars, true)
if str:sub(i, i) ~= ":" then
decode_error(str, i, "expected ':' after key")
end
i = next_char(str, i + 1, space_chars, true)
-- Read value
val, i = parse(str, i)
-- Set
res[key] = val
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "}" then break end
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
end
return res, i
end
local char_func_map = {
[ '"' ] = parse_string,
[ "0" ] = parse_number,
[ "1" ] = parse_number,
[ "2" ] = parse_number,
[ "3" ] = parse_number,
[ "4" ] = parse_number,
[ "5" ] = parse_number,
[ "6" ] = parse_number,
[ "7" ] = parse_number,
[ "8" ] = parse_number,
[ "9" ] = parse_number,
[ "-" ] = parse_number,
[ "t" ] = parse_literal,
[ "f" ] = parse_literal,
[ "n" ] = parse_literal,
[ "[" ] = parse_array,
[ "{" ] = parse_object,
}
parse = function(str, idx)
local chr = str:sub(idx, idx)
local f = char_func_map[chr]
if f then
return f(str, idx)
end
decode_error(str, idx, "unexpected character '" .. chr .. "'")
end
function json.decode(str)
if type(str) ~= "string" then
error("expected argument of type string, got " .. type(str))
end
local res, idx = parse(str, next_char(str, 1, space_chars, true))
idx = next_char(str, idx, space_chars, true)
if idx <= #str then
decode_error(str, idx, "trailing garbage")
end
return res
end
return json

4518
generator/output/cimgui.cpp Normal file

File diff suppressed because it is too large Load Diff

2051
generator/output/cimgui.h Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
typedef struct SDL_Window SDL_Window;
typedef struct GLFWwindow GLFWwindow;
struct GLFWwindow;
struct SDL_Window;
typedef union SDL_Event SDL_Event;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 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 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_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 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_ImplSDL2_InitForVulkan(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL2_Shutdown();
CIMGUI_API void ImGui_ImplSDL2_NewFrame(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,556 @@
{
"ImGui_ImplGlfw_CharCallback": [
{
"args": "(GLFWwindow* window,unsigned int c)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "c",
"type": "unsigned int"
}
],
"argsoriginal": "(GLFWwindow* window,unsigned int c)",
"call_args": "(window,c)",
"cimguiname": "ImGui_ImplGlfw_CharCallback",
"defaults": [],
"funcname": "ImGui_ImplGlfw_CharCallback",
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
"ret": "void",
"signature": "(GLFWwindow*,unsigned int)",
"stname": ""
}
],
"ImGui_ImplGlfw_InitForOpenGL": [
{
"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_InitForOpenGL",
"defaults": [],
"funcname": "ImGui_ImplGlfw_InitForOpenGL",
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
"ret": "bool",
"signature": "(GLFWwindow*,bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_InitForVulkan": [
{
"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_InitForVulkan",
"defaults": [],
"funcname": "ImGui_ImplGlfw_InitForVulkan",
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
"ret": "bool",
"signature": "(GLFWwindow*,bool)",
"stname": ""
}
],
"ImGui_ImplGlfw_KeyCallback": [
{
"args": "(GLFWwindow* window,int key,int scancode,int action,int mods)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "key",
"type": "int"
},
{
"name": "scancode",
"type": "int"
},
{
"name": "action",
"type": "int"
},
{
"name": "mods",
"type": "int"
}
],
"argsoriginal": "(GLFWwindow* window,int key,int scancode,int action,int mods)",
"call_args": "(window,key,scancode,action,mods)",
"cimguiname": "ImGui_ImplGlfw_KeyCallback",
"defaults": [],
"funcname": "ImGui_ImplGlfw_KeyCallback",
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
"ret": "void",
"signature": "(GLFWwindow*,int,int,int,int)",
"stname": ""
}
],
"ImGui_ImplGlfw_MouseButtonCallback": [
{
"args": "(GLFWwindow* window,int button,int action,int mods)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "button",
"type": "int"
},
{
"name": "action",
"type": "int"
},
{
"name": "mods",
"type": "int"
}
],
"argsoriginal": "(GLFWwindow* window,int button,int action,int mods)",
"call_args": "(window,button,action,mods)",
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"defaults": [],
"funcname": "ImGui_ImplGlfw_MouseButtonCallback",
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"ret": "void",
"signature": "(GLFWwindow*,int,int,int)",
"stname": ""
}
],
"ImGui_ImplGlfw_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplGlfw_NewFrame",
"defaults": [],
"funcname": "ImGui_ImplGlfw_NewFrame",
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplGlfw_ScrollCallback": [
{
"args": "(GLFWwindow* window,double xoffset,double yoffset)",
"argsT": [
{
"name": "window",
"type": "GLFWwindow*"
},
{
"name": "xoffset",
"type": "double"
},
{
"name": "yoffset",
"type": "double"
}
],
"argsoriginal": "(GLFWwindow* window,double xoffset,double yoffset)",
"call_args": "(window,xoffset,yoffset)",
"cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"defaults": [],
"funcname": "ImGui_ImplGlfw_ScrollCallback",
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"ret": "void",
"signature": "(GLFWwindow*,double,double)",
"stname": ""
}
],
"ImGui_ImplGlfw_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplGlfw_Shutdown",
"defaults": [],
"funcname": "ImGui_ImplGlfw_Shutdown",
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_CreateDeviceObjects": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_CreateFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_DestroyDeviceObjects": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_DestroyFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_Init": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_Init",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_Init",
"ov_cimguiname": "ImGui_ImplOpenGL2_Init",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_NewFrame",
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL2_RenderDrawData": [
{
"args": "(ImDrawData* draw_data)",
"argsT": [
{
"name": "draw_data",
"type": "ImDrawData*"
}
],
"argsoriginal": "(ImDrawData* draw_data)",
"call_args": "(draw_data)",
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_RenderDrawData",
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*)",
"stname": ""
}
],
"ImGui_ImplOpenGL2_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"defaults": [],
"funcname": "ImGui_ImplOpenGL2_Shutdown",
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_CreateDeviceObjects": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_CreateFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"ret": "bool",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_DestroyDeviceObjects": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_DestroyFontsTexture": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_Init": [
{
"args": "(const char* glsl_version)",
"argsT": [
{
"name": "glsl_version",
"type": "const char*"
}
],
"argsoriginal": "(const char* glsl_version=NULL)",
"call_args": "(glsl_version)",
"cimguiname": "ImGui_ImplOpenGL3_Init",
"defaults": {
"glsl_version": "NULL"
},
"funcname": "ImGui_ImplOpenGL3_Init",
"ov_cimguiname": "ImGui_ImplOpenGL3_Init",
"ret": "bool",
"signature": "(const char*)",
"stname": ""
}
],
"ImGui_ImplOpenGL3_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_NewFrame",
"ov_cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplOpenGL3_RenderDrawData": [
{
"args": "(ImDrawData* draw_data)",
"argsT": [
{
"name": "draw_data",
"type": "ImDrawData*"
}
],
"argsoriginal": "(ImDrawData* draw_data)",
"call_args": "(draw_data)",
"cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_RenderDrawData",
"ov_cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"ret": "void",
"signature": "(ImDrawData*)",
"stname": ""
}
],
"ImGui_ImplOpenGL3_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"defaults": [],
"funcname": "ImGui_ImplOpenGL3_Shutdown",
"ov_cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL2_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_ImplSDL2_InitForOpenGL",
"defaults": [],
"funcname": "ImGui_ImplSDL2_InitForOpenGL",
"ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
"ret": "bool",
"signature": "(SDL_Window*,void*)",
"stname": ""
}
],
"ImGui_ImplSDL2_InitForVulkan": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"defaults": [],
"funcname": "ImGui_ImplSDL2_InitForVulkan",
"ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL2_NewFrame": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL2_NewFrame",
"defaults": [],
"funcname": "ImGui_ImplSDL2_NewFrame",
"ov_cimguiname": "ImGui_ImplSDL2_NewFrame",
"ret": "void",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL2_ProcessEvent": [
{
"args": "(const SDL_Event* event)",
"argsT": [
{
"name": "event",
"type": "const SDL_Event*"
}
],
"argsoriginal": "(const SDL_Event* event)",
"call_args": "(event)",
"cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"defaults": [],
"funcname": "ImGui_ImplSDL2_ProcessEvent",
"ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"ret": "bool",
"signature": "(const SDL_Event*)",
"stname": ""
}
],
"ImGui_ImplSDL2_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL2_Shutdown",
"defaults": [],
"funcname": "ImGui_ImplSDL2_Shutdown",
"ov_cimguiname": "ImGui_ImplSDL2_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
]
}

View File

@@ -0,0 +1,488 @@
local defs = {}
defs["ImGui_ImplGlfw_CharCallback"] = {}
defs["ImGui_ImplGlfw_CharCallback"][1] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["args"] = "(GLFWwindow* window,unsigned int c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2]["name"] = "c"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2]["type"] = "unsigned int"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsoriginal"] = "(GLFWwindow* window,unsigned int c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["call_args"] = "(window,c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_CharCallback"
defs["ImGui_ImplGlfw_CharCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["funcname"] = "ImGui_ImplGlfw_CharCallback"
defs["ImGui_ImplGlfw_CharCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_CharCallback"
defs["ImGui_ImplGlfw_CharCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_CharCallback"][1]["signature"] = "(GLFWwindow*,unsigned int)"
defs["ImGui_ImplGlfw_CharCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_CharCallback"]["(GLFWwindow*,unsigned int)"] = defs["ImGui_ImplGlfw_CharCallback"][1]
defs["ImGui_ImplGlfw_InitForOpenGL"] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["args"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2]["name"] = "install_callbacks"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2]["type"] = "bool"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsoriginal"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["call_args"] = "(window,install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["cimguiname"] = "ImGui_ImplGlfw_InitForOpenGL"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["funcname"] = "ImGui_ImplGlfw_InitForOpenGL"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InitForOpenGL"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["ret"] = "bool"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["signature"] = "(GLFWwindow*,bool)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["stname"] = ""
defs["ImGui_ImplGlfw_InitForOpenGL"]["(GLFWwindow*,bool)"] = defs["ImGui_ImplGlfw_InitForOpenGL"][1]
defs["ImGui_ImplGlfw_InitForVulkan"] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["args"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2]["name"] = "install_callbacks"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2]["type"] = "bool"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsoriginal"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["call_args"] = "(window,install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["cimguiname"] = "ImGui_ImplGlfw_InitForVulkan"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["funcname"] = "ImGui_ImplGlfw_InitForVulkan"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InitForVulkan"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["ret"] = "bool"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["signature"] = "(GLFWwindow*,bool)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["stname"] = ""
defs["ImGui_ImplGlfw_InitForVulkan"]["(GLFWwindow*,bool)"] = defs["ImGui_ImplGlfw_InitForVulkan"][1]
defs["ImGui_ImplGlfw_KeyCallback"] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["args"] = "(GLFWwindow* window,int key,int scancode,int action,int mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2]["name"] = "key"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3]["name"] = "scancode"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4]["name"] = "action"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5]["name"] = "mods"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsoriginal"] = "(GLFWwindow* window,int key,int scancode,int action,int mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["call_args"] = "(window,key,scancode,action,mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_KeyCallback"
defs["ImGui_ImplGlfw_KeyCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["funcname"] = "ImGui_ImplGlfw_KeyCallback"
defs["ImGui_ImplGlfw_KeyCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_KeyCallback"
defs["ImGui_ImplGlfw_KeyCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_KeyCallback"][1]["signature"] = "(GLFWwindow*,int,int,int,int)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_KeyCallback"]["(GLFWwindow*,int,int,int,int)"] = defs["ImGui_ImplGlfw_KeyCallback"][1]
defs["ImGui_ImplGlfw_MouseButtonCallback"] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["args"] = "(GLFWwindow* window,int button,int action,int mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2]["name"] = "button"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3]["name"] = "action"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4]["name"] = "mods"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsoriginal"] = "(GLFWwindow* window,int button,int action,int mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["call_args"] = "(window,button,action,mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_MouseButtonCallback"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["funcname"] = "ImGui_ImplGlfw_MouseButtonCallback"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_MouseButtonCallback"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["signature"] = "(GLFWwindow*,int,int,int)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_MouseButtonCallback"]["(GLFWwindow*,int,int,int)"] = defs["ImGui_ImplGlfw_MouseButtonCallback"][1]
defs["ImGui_ImplGlfw_NewFrame"] = {}
defs["ImGui_ImplGlfw_NewFrame"][1] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["cimguiname"] = "ImGui_ImplGlfw_NewFrame"
defs["ImGui_ImplGlfw_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["funcname"] = "ImGui_ImplGlfw_NewFrame"
defs["ImGui_ImplGlfw_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_NewFrame"
defs["ImGui_ImplGlfw_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_NewFrame"][1]["signature"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplGlfw_NewFrame"]["()"] = defs["ImGui_ImplGlfw_NewFrame"][1]
defs["ImGui_ImplGlfw_ScrollCallback"] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["args"] = "(GLFWwindow* window,double xoffset,double yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2]["name"] = "xoffset"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2]["type"] = "double"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3]["name"] = "yoffset"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3]["type"] = "double"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsoriginal"] = "(GLFWwindow* window,double xoffset,double yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["call_args"] = "(window,xoffset,yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_ScrollCallback"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["funcname"] = "ImGui_ImplGlfw_ScrollCallback"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_ScrollCallback"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["signature"] = "(GLFWwindow*,double,double)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_ScrollCallback"]["(GLFWwindow*,double,double)"] = defs["ImGui_ImplGlfw_ScrollCallback"][1]
defs["ImGui_ImplGlfw_Shutdown"] = {}
defs["ImGui_ImplGlfw_Shutdown"][1] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["cimguiname"] = "ImGui_ImplGlfw_Shutdown"
defs["ImGui_ImplGlfw_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["funcname"] = "ImGui_ImplGlfw_Shutdown"
defs["ImGui_ImplGlfw_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_Shutdown"
defs["ImGui_ImplGlfw_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_Shutdown"][1]["signature"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplGlfw_Shutdown"]["()"] = defs["ImGui_ImplGlfw_Shutdown"][1]
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"]["()"] = defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]
defs["ImGui_ImplOpenGL2_CreateFontsTexture"] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_CreateFontsTexture"]["()"] = defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"]["()"] = defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"]["()"] = defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]
defs["ImGui_ImplOpenGL2_Init"] = {}
defs["ImGui_ImplOpenGL2_Init"][1] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["cimguiname"] = "ImGui_ImplOpenGL2_Init"
defs["ImGui_ImplOpenGL2_Init"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["funcname"] = "ImGui_ImplOpenGL2_Init"
defs["ImGui_ImplOpenGL2_Init"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_Init"
defs["ImGui_ImplOpenGL2_Init"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_Init"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_Init"]["()"] = defs["ImGui_ImplOpenGL2_Init"][1]
defs["ImGui_ImplOpenGL2_NewFrame"] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["cimguiname"] = "ImGui_ImplOpenGL2_NewFrame"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL2_NewFrame"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_NewFrame"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_NewFrame"]["()"] = defs["ImGui_ImplOpenGL2_NewFrame"][1]
defs["ImGui_ImplOpenGL2_RenderDrawData"] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["args"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1]["name"] = "draw_data"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1]["type"] = "ImDrawData*"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsoriginal"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["call_args"] = "(draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["cimguiname"] = "ImGui_ImplOpenGL2_RenderDrawData"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL2_RenderDrawData"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_RenderDrawData"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_RenderDrawData"]["(ImDrawData*)"] = defs["ImGui_ImplOpenGL2_RenderDrawData"][1]
defs["ImGui_ImplOpenGL2_Shutdown"] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["cimguiname"] = "ImGui_ImplOpenGL2_Shutdown"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL2_Shutdown"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_Shutdown"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_Shutdown"]["()"] = defs["ImGui_ImplOpenGL2_Shutdown"][1]
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"]["()"] = defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]
defs["ImGui_ImplOpenGL3_CreateFontsTexture"] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_CreateFontsTexture"]["()"] = defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"]["()"] = defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"]["()"] = defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]
defs["ImGui_ImplOpenGL3_Init"] = {}
defs["ImGui_ImplOpenGL3_Init"][1] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["args"] = "(const char* glsl_version)"
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["name"] = "glsl_version"
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["type"] = "const char*"
defs["ImGui_ImplOpenGL3_Init"][1]["argsoriginal"] = "(const char* glsl_version=NULL)"
defs["ImGui_ImplOpenGL3_Init"][1]["call_args"] = "(glsl_version)"
defs["ImGui_ImplOpenGL3_Init"][1]["cimguiname"] = "ImGui_ImplOpenGL3_Init"
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"]["glsl_version"] = "NULL"
defs["ImGui_ImplOpenGL3_Init"][1]["funcname"] = "ImGui_ImplOpenGL3_Init"
defs["ImGui_ImplOpenGL3_Init"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_Init"
defs["ImGui_ImplOpenGL3_Init"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_Init"][1]["signature"] = "(const char*)"
defs["ImGui_ImplOpenGL3_Init"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Init"]["(const char*)"] = defs["ImGui_ImplOpenGL3_Init"][1]
defs["ImGui_ImplOpenGL3_NewFrame"] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["cimguiname"] = "ImGui_ImplOpenGL3_NewFrame"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL3_NewFrame"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_NewFrame"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_NewFrame"]["()"] = defs["ImGui_ImplOpenGL3_NewFrame"][1]
defs["ImGui_ImplOpenGL3_RenderDrawData"] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["args"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1]["name"] = "draw_data"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1]["type"] = "ImDrawData*"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsoriginal"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["call_args"] = "(draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["cimguiname"] = "ImGui_ImplOpenGL3_RenderDrawData"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL3_RenderDrawData"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_RenderDrawData"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_RenderDrawData"]["(ImDrawData*)"] = defs["ImGui_ImplOpenGL3_RenderDrawData"][1]
defs["ImGui_ImplOpenGL3_Shutdown"] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["cimguiname"] = "ImGui_ImplOpenGL3_Shutdown"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL3_Shutdown"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_Shutdown"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Shutdown"]["()"] = defs["ImGui_ImplOpenGL3_Shutdown"][1]
defs["ImGui_ImplSDL2_InitForOpenGL"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["args"] = "(SDL_Window* window,void* sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2]["name"] = "sdl_gl_context"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2]["type"] = "void*"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsoriginal"] = "(SDL_Window* window,void* sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["call_args"] = "(window,sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForOpenGL"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["funcname"] = "ImGui_ImplSDL2_InitForOpenGL"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForOpenGL"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["signature"] = "(SDL_Window*,void*)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["stname"] = ""
defs["ImGui_ImplSDL2_InitForOpenGL"]["(SDL_Window*,void*)"] = defs["ImGui_ImplSDL2_InitForOpenGL"][1]
defs["ImGui_ImplSDL2_InitForVulkan"] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["args"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsoriginal"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["call_args"] = "(window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForVulkan"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["funcname"] = "ImGui_ImplSDL2_InitForVulkan"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForVulkan"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["signature"] = "(SDL_Window*)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["stname"] = ""
defs["ImGui_ImplSDL2_InitForVulkan"]["(SDL_Window*)"] = defs["ImGui_ImplSDL2_InitForVulkan"][1]
defs["ImGui_ImplSDL2_NewFrame"] = {}
defs["ImGui_ImplSDL2_NewFrame"][1] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["args"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_NewFrame"][1]["argsoriginal"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["call_args"] = "(window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["cimguiname"] = "ImGui_ImplSDL2_NewFrame"
defs["ImGui_ImplSDL2_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["funcname"] = "ImGui_ImplSDL2_NewFrame"
defs["ImGui_ImplSDL2_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_NewFrame"
defs["ImGui_ImplSDL2_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplSDL2_NewFrame"][1]["signature"] = "(SDL_Window*)"
defs["ImGui_ImplSDL2_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplSDL2_NewFrame"]["(SDL_Window*)"] = defs["ImGui_ImplSDL2_NewFrame"][1]
defs["ImGui_ImplSDL2_ProcessEvent"] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["args"] = "(const SDL_Event* event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1]["name"] = "event"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1]["type"] = "const SDL_Event*"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsoriginal"] = "(const SDL_Event* event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["call_args"] = "(event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["cimguiname"] = "ImGui_ImplSDL2_ProcessEvent"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["funcname"] = "ImGui_ImplSDL2_ProcessEvent"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_ProcessEvent"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["signature"] = "(const SDL_Event*)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["stname"] = ""
defs["ImGui_ImplSDL2_ProcessEvent"]["(const SDL_Event*)"] = defs["ImGui_ImplSDL2_ProcessEvent"][1]
defs["ImGui_ImplSDL2_Shutdown"] = {}
defs["ImGui_ImplSDL2_Shutdown"][1] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["cimguiname"] = "ImGui_ImplSDL2_Shutdown"
defs["ImGui_ImplSDL2_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["funcname"] = "ImGui_ImplSDL2_Shutdown"
defs["ImGui_ImplSDL2_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_Shutdown"
defs["ImGui_ImplSDL2_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplSDL2_Shutdown"][1]["signature"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplSDL2_Shutdown"]["()"] = defs["ImGui_ImplSDL2_Shutdown"][1]
return defs

View File

@@ -0,0 +1,132 @@
----------------overloadings---------------------------
ImVector_resize 2
1 void ImVector_resize (int)
2 void ImVector_resizeT (int,const T)
ImVec4_ImVec4 2
1 nil ImVec4_ImVec4 ()
2 nil ImVec4_ImVec4Float (float,float,float,float)
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*)
igIsRectVisible 2
1 bool igIsRectVisible (const ImVec2)
2 bool igIsRectVisibleVec2 (const ImVec2,const ImVec2)
igRadioButton 2
1 bool igRadioButtonBool (const char*,bool)
2 bool igRadioButtonIntPtr (const char*,int*,int)
ImVec2_ImVec2 2
1 nil ImVec2_ImVec2 ()
2 nil ImVec2_ImVec2Float (float,float)
ImVector_back 2
1 T* ImVector_back ()
2 const T* ImVector_back_const ()const
igPlotHistogram 2
1 void igPlotHistogramFloatPtr (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotHistogramFnPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
igGetID 3
1 ImGuiID igGetIDStr (const char*)
2 ImGuiID igGetIDRange (const char*,const char*)
3 ImGuiID igGetIDPtr (const void*)
igSetWindowPos 2
1 void igSetWindowPosVec2 (const ImVec2,ImGuiCond)
2 void igSetWindowPosStr (const char*,const ImVec2,ImGuiCond)
igBeginChild 2
1 bool igBeginChild (const char*,const ImVec2,bool,ImGuiWindowFlags)
2 bool igBeginChildID (ImGuiID,const ImVec2,bool,ImGuiWindowFlags)
igPushID 4
1 void igPushIDStr (const char*)
2 void igPushIDRange (const char*,const char*)
3 void igPushIDPtr (const void*)
4 void igPushIDInt (int)
Pair_Pair 3
1 nil Pair_PairInt (ImGuiID,int)
2 nil Pair_PairFloat (ImGuiID,float)
3 nil Pair_PairPtr (ImGuiID,void*)
TextRange_TextRange 2
1 nil TextRange_TextRange ()
2 nil TextRange_TextRangeStr (const char*,const char*)
igGetColorU32 3
1 ImU32 igGetColorU32 (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
igTreeNode 3
1 bool igTreeNodeStr (const char*)
2 bool igTreeNodeStrStr (const char*,const char*,...)
3 bool igTreeNodePtr (const void*,const char*,...)
igCombo 3
1 bool igCombo (const char*,int*,const char* const[],int,int)
2 bool igComboStr (const char*,int*,const char*,int)
3 bool igComboFnPtr (const char*,int*,bool(*)(void*,int,const char**),void*,int,int)
ImVector_erase 2
1 T* ImVector_erase (const T*)
2 T* ImVector_eraseTPtr (const T*,const T*)
ImDrawList_AddText 2
1 void ImDrawList_AddText (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddTextFontPtr (const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
igPushStyleVar 2
1 void igPushStyleVarFloat (ImGuiStyleVar,float)
2 void igPushStyleVarVec2 (ImGuiStyleVar,const ImVec2)
igSetWindowFocus 2
1 void igSetWindowFocus ()
2 void igSetWindowFocusStr (const char*)
ImVector_end 2
1 T* ImVector_end ()
2 const T* ImVector_end_const ()const
igSetWindowSize 2
1 void igSetWindowSizeVec2 (const ImVec2,ImGuiCond)
2 void igSetWindowSizeStr (const char*,const ImVec2,ImGuiCond)
ImVector_ImVector 2
1 nil ImVector_ImVector ()
2 nil ImVector_ImVectorVector (const ImVector)
igSetWindowCollapsed 2
1 void igSetWindowCollapsedBool (bool,ImGuiCond)
2 void igSetWindowCollapsedStr (const char*,bool,ImGuiCond)
igPlotLines 2
1 void igPlotLines (const char*,const float*,int,int,const char*,float,float,ImVec2,int)
2 void igPlotLinesFnPtr (const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)
igPushStyleColor 2
1 void igPushStyleColorU32 (ImGuiCol,ImU32)
2 void igPushStyleColor (ImGuiCol,const ImVec4)
igTreeNodeExV 2
1 bool igTreeNodeExVStr (const char*,ImGuiTreeNodeFlags,const char*,va_list)
2 bool igTreeNodeExVPtr (const void*,ImGuiTreeNodeFlags,const char*,va_list)
igListBox 2
1 bool igListBoxStr_arr (const char*,int*,const char* const[],int,int)
2 bool igListBoxFnPtr (const char*,int*,bool(*)(void*,int,const char**),void*,int,int)
igTreePush 2
1 void igTreePushStr (const char*)
2 void igTreePushPtr (const void*)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
igTreeNodeEx 3
1 bool igTreeNodeExStr (const char*,ImGuiTreeNodeFlags)
2 bool igTreeNodeExStrStr (const char*,ImGuiTreeNodeFlags,const char*,...)
3 bool igTreeNodeExPtr (const void*,ImGuiTreeNodeFlags,const char*,...)
ImVector_front 2
1 T* ImVector_front ()
2 const T* ImVector_front_const ()const
ImColor_ImColor 5
1 nil ImColor_ImColor ()
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)
igCollapsingHeader 2
1 bool igCollapsingHeader (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeaderBoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
ImVector_begin 2
1 T* ImVector_begin ()
2 const T* ImVector_begin_const ()const
igSelectable 2
1 bool igSelectable (const char*,bool,ImGuiSelectableFlags,const ImVec2)
2 bool igSelectableBoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2)
igMenuItem 2
1 bool igMenuItemBool (const char*,const char*,bool,bool)
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
igTreeNodeV 2
1 bool igTreeNodeVStr (const char*,const char*,va_list)
2 bool igTreeNodeVPtr (const void*,const char*,va_list)
91 overloaded

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
{
"CustomRect": "struct CustomRect",
"ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel",
"ImDrawCmd": "struct ImDrawCmd",
"ImDrawCornerFlags": "int",
"ImDrawData": "struct ImDrawData",
"ImDrawIdx": "unsigned short",
"ImDrawList": "struct ImDrawList",
"ImDrawListFlags": "int",
"ImDrawListSharedData": "struct ImDrawListSharedData",
"ImDrawListSplitter": "struct ImDrawListSplitter",
"ImDrawVert": "struct ImDrawVert",
"ImFont": "struct ImFont",
"ImFontAtlas": "struct ImFontAtlas",
"ImFontAtlasFlags": "int",
"ImFontConfig": "struct ImFontConfig",
"ImFontGlyph": "struct ImFontGlyph",
"ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder",
"ImGuiBackendFlags": "int",
"ImGuiCol": "int",
"ImGuiColorEditFlags": "int",
"ImGuiColumnsFlags": "int",
"ImGuiComboFlags": "int",
"ImGuiCond": "int",
"ImGuiConfigFlags": "int",
"ImGuiContext": "struct ImGuiContext",
"ImGuiDataType": "int",
"ImGuiDir": "int",
"ImGuiDragDropFlags": "int",
"ImGuiFocusedFlags": "int",
"ImGuiHoveredFlags": "int",
"ImGuiID": "unsigned int",
"ImGuiIO": "struct ImGuiIO",
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData *data);",
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
"ImGuiInputTextFlags": "int",
"ImGuiKey": "int",
"ImGuiListClipper": "struct ImGuiListClipper",
"ImGuiMouseCursor": "int",
"ImGuiNavInput": "int",
"ImGuiOnceUponAFrame": "struct ImGuiOnceUponAFrame",
"ImGuiPayload": "struct ImGuiPayload",
"ImGuiSelectableFlags": "int",
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiStorage": "struct ImGuiStorage",
"ImGuiStyle": "struct ImGuiStyle",
"ImGuiStyleVar": "int",
"ImGuiTabBarFlags": "int",
"ImGuiTabItemFlags": "int",
"ImGuiTextBuffer": "struct ImGuiTextBuffer",
"ImGuiTextFilter": "struct ImGuiTextFilter",
"ImGuiTreeNodeFlags": "int",
"ImGuiWindowFlags": "int",
"ImS16": "signed short",
"ImS32": "signed int",
"ImS64": "int64_t",
"ImS8": "signed char",
"ImTextureID": "void*",
"ImU16": "unsigned short",
"ImU32": "unsigned int",
"ImU64": "uint64_t",
"ImU8": "unsigned char",
"ImVec2": "struct ImVec2",
"ImVec4": "struct ImVec4",
"ImWchar": "unsigned short",
"Pair": "struct Pair",
"TextRange": "struct TextRange",
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"
}

View File

@@ -0,0 +1,75 @@
local defs = {}
defs["CustomRect"] = "struct CustomRect"
defs["ImColor"] = "struct ImColor"
defs["ImDrawCallback"] = "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);"
defs["ImDrawChannel"] = "struct ImDrawChannel"
defs["ImDrawCmd"] = "struct ImDrawCmd"
defs["ImDrawCornerFlags"] = "int"
defs["ImDrawData"] = "struct ImDrawData"
defs["ImDrawIdx"] = "unsigned short"
defs["ImDrawList"] = "struct ImDrawList"
defs["ImDrawListFlags"] = "int"
defs["ImDrawListSharedData"] = "struct ImDrawListSharedData"
defs["ImDrawListSplitter"] = "struct ImDrawListSplitter"
defs["ImDrawVert"] = "struct ImDrawVert"
defs["ImFont"] = "struct ImFont"
defs["ImFontAtlas"] = "struct ImFontAtlas"
defs["ImFontAtlasFlags"] = "int"
defs["ImFontConfig"] = "struct ImFontConfig"
defs["ImFontGlyph"] = "struct ImFontGlyph"
defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder"
defs["ImGuiBackendFlags"] = "int"
defs["ImGuiCol"] = "int"
defs["ImGuiColorEditFlags"] = "int"
defs["ImGuiColumnsFlags"] = "int"
defs["ImGuiComboFlags"] = "int"
defs["ImGuiCond"] = "int"
defs["ImGuiConfigFlags"] = "int"
defs["ImGuiContext"] = "struct ImGuiContext"
defs["ImGuiDataType"] = "int"
defs["ImGuiDir"] = "int"
defs["ImGuiDragDropFlags"] = "int"
defs["ImGuiFocusedFlags"] = "int"
defs["ImGuiHoveredFlags"] = "int"
defs["ImGuiID"] = "unsigned int"
defs["ImGuiIO"] = "struct ImGuiIO"
defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData *data);"
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData"
defs["ImGuiInputTextFlags"] = "int"
defs["ImGuiKey"] = "int"
defs["ImGuiListClipper"] = "struct ImGuiListClipper"
defs["ImGuiMouseCursor"] = "int"
defs["ImGuiNavInput"] = "int"
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame"
defs["ImGuiPayload"] = "struct ImGuiPayload"
defs["ImGuiSelectableFlags"] = "int"
defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);"
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData"
defs["ImGuiStorage"] = "struct ImGuiStorage"
defs["ImGuiStyle"] = "struct ImGuiStyle"
defs["ImGuiStyleVar"] = "int"
defs["ImGuiTabBarFlags"] = "int"
defs["ImGuiTabItemFlags"] = "int"
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
defs["ImGuiTreeNodeFlags"] = "int"
defs["ImGuiWindowFlags"] = "int"
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["ImVec2"] = "struct ImVec2"
defs["ImVec4"] = "struct ImVec4"
defs["ImWchar"] = "unsigned short"
defs["Pair"] = "struct Pair"
defs["TextRange"] = "struct TextRange"
defs["const_iterator"] = "const value_type*"
defs["iterator"] = "value_type*"
defs["value_type"] = "T"
return defs

2
imgui

Submodule imgui updated: 5e1caaaef3...2da1c66d15

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

6
testbuildc/build.bat Normal file
View File

@@ -0,0 +1,6 @@
:: set PATH=%PATH%;C:\mingw32\bin;
set PATH=%PATH%;C:\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\mingw32\bin;
::gcc -std=c99 -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimgui.h
::gcc -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimgui.h
gcc -std=c99 -Wall -Wpedantic -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimguitest.c
cmd /k

6
testbuildc/cimguitest.c Normal file
View File

@@ -0,0 +1,6 @@
#include "../cimgui.h"
int main(void)
{
return 0;
}

13
testbuildc/testcl.bat Normal file
View File

@@ -0,0 +1,13 @@
::set PATH=%PATH%;C:\luaGL;C:\mingw32\bin;
::gcc -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h > 11.txt
::set PATH=%PATH%;C:\luaGL;
::set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64;
::ejecutar en cmd esto
::"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
::cl /P /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_API="" /DIMGUI_IMPL_API="" ../imgui/imgui.h
:: > clout.txt
cl /P /DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimguitest.c
cmd /k