Compare commits

...

76 Commits

Author SHA1 Message Date
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
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
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
25 changed files with 1580 additions and 4342 deletions

View File

@@ -8,5 +8,4 @@ compiler:
- clang
script:
- make -C cimgui
- $CC cimgui.h # Make sure we can include in a plain C compiler
make

View File

@@ -6,7 +6,7 @@ include_directories(imgui)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(.)
set(IMGUI_SOURCES ./cimgui_auto.cpp ./imgui/imgui.cpp ./imgui/imgui_draw.cpp ./imgui/imgui_demo.cpp ./imgui/imgui_widgets.cpp)
set(IMGUI_SOURCES ./cimgui.cpp ./imgui/imgui.cpp ./imgui/imgui_draw.cpp ./imgui/imgui_demo.cpp ./imgui/imgui_widgets.cpp)
set(IMGUI_LIBRARIES )
@@ -20,10 +20,11 @@ endif(WIN32)
#add library and link
add_library(cimgui SHARED ${IMGUI_SOURCES})
target_link_libraries(cimgui ${IMGUI_LIBRARIES})
set_target_properties(cimgui PROPERTIES PREFIX "")
#install
install(TARGETS cimgui
RUNTIME DESTINATION .
LIBRARY DESTINATION .
#ARCHIVE DESTINATION lib
)
)

View File

@@ -1,30 +1,32 @@
#
# Cross Platform Makefile
# Compatible with Ubuntu 14.04.1 and Mac OS X
# Compatible with Ubuntu 14.04.1 and macOS
OBJS = cimgui_auto.o
OBJS = cimgui.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)
ifeq ($(UNAME_S), Linux) #LINUX
ECHO_MESSAGE = "Linux"
OUTPUTNAME = cimgui.so
CXXFLAGS = -I./imgui/
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)
@@ -34,7 +36,7 @@ ifeq ($(OS), Windows_NT)
ECHO_MESSAGE = "Windows"
OUTPUTNAME = cimgui.dll
CXXFLAGS = -I./imgui/
CXXFLAGS += -I./imgui/
CXXFLAGS += -Wall
CXXFLAGS += -shared
LINKFLAGS = -limm32

View File

@@ -1,38 +1,71 @@
# cimgui [![Build Status](https://travis-ci.org/Extrawurst/cimgui.svg)](https://travis-ci.org/Extrawurst/cimgui)
Please post issues in https://github.com/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 programmatically generated for the excellent C++ intermediate gui [imgui](https://github.com/ocornut/imgui).
All functions are programmatically wrapped except contructors, destructors and ImVector.(Unless someone find a use case for them)
Generated files are: cimgui.cpp, cimgui.h for C compilation. Also for helping in bindings creation, definitions.lua with function definitions information and structs_and_enums.lua.
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 functions are programmatically wrapped except constructors, destructors and `ImVector`. (Unless someone find a use case for them)
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.65 of imgui]
* 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/sonoro1234/cimgui/blob/Branch_v1.62.0/generator/generator.lua#L40). Until the comunity finish with defining this table tag will be 1.62beta. Current overloaded function names can be found in (https://github.com/sonoro1234/cimgui/tree/Branch_v1.62.0/generator/generated/overloads.txt)
* currently this wrapper is based on version [1.65 of Dear ImGui]
* 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#L40). Current overloaded function names can be found in (https://github.com/cimgui/cimgui/blob/master/generator/output/overloads.txt)
# compilation
* clone
* make using makefile on linux/osx/mingw (Or use CMake to generate project)
* 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
# auto binding generation
# using generator
* update imgui folder to the version you desire.
* run imgui/generator/generator.bat (or make a .sh version and please PR) with gcc and LuaJIT or Lua5.1 on your PATH.
* as a result some files are generated: cimgui_auto.cpp and cimgui_auto.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 funtions from the implementations info.
* build as shown in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master_auto_implementations/build
* generate binding as done in https://github.com/sonoro1234/LuaJIT-ImGui/blob/master_auto_implementations/lua/build.bat
* 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/generator.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
* 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 (may be ImGui 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)
* call_args : a string with the argument names separated by commas
* args : the same as above but with types
* ret : the return type
* argsT : an array of collections (each one with type: argument type and name: the argument name)
* 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)
* 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
* 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 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. (or second argument if it is a struct function)
* 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)
* 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. (or second argument if it is a struct function)
* 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
@@ -41,5 +74,5 @@ Notes:
* [ImGuiCS](https://github.com/conatuscreative/ImGuiCS)
* [imgui-rs](https://github.com/Gekkio/imgui-rs)
* [imgui-pas](https://github.com/dpethes/imgui-pas)
* [odin-dear_imgui](https://github.com/ThisDrunkDane/odin-dear_imgui)
* [odin-imgui](https://github.com/ThisDrunkDane/odin-imgui)
* [LuaJIT-imgui](https://github.com/sonoro1234/LuaJIT-ImGui)

View File

@@ -1,9 +1,34 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.65" from Dear ImGui https://github.com/ocornut/imgui
#include "./imgui/imgui.h"
#include "cimgui_auto.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
CIMGUI_API ImVec2* ImVec2_ImVec2(void)
{
return IM_NEW(ImVec2)();
}
CIMGUI_API void ImVec2_destroy(ImVec2* self)
{
IM_DELETE(self);
}
CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y)
{
return IM_NEW(ImVec2)(_x,_y);
}
CIMGUI_API ImVec4* ImVec4_ImVec4(void)
{
return IM_NEW(ImVec4)();
}
CIMGUI_API void ImVec4_destroy(ImVec4* self)
{
IM_DELETE(self);
}
CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w)
{
return IM_NEW(ImVec4)(_x,_y,_z,_w);
}
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas)
{
return ImGui::CreateContext(shared_font_atlas);
@@ -476,7 +501,7 @@ CIMGUI_API ImGuiID igGetIDStr(const char* str_id)
{
return ImGui::GetID(str_id);
}
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end)
CIMGUI_API ImGuiID igGetIDRange(const char* str_id_begin,const char* str_id_end)
{
return ImGui::GetID(str_id_begin,str_id_end);
}
@@ -1253,14 +1278,6 @@ CIMGUI_API ImU32 igColorConvertFloat4ToU32(const ImVec4 in)
{
return ImGui::ColorConvertFloat4ToU32(in);
}
CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float out_h,float out_s,float out_v)
{
return 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)
{
return ImGui::ColorConvertHSVtoRGB(h,s,v,out_r,out_g,out_b);
}
CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key)
{
return ImGui::GetKeyIndex(imgui_key);
@@ -1381,6 +1398,14 @@ CIMGUI_API void igMemFree(void* ptr)
{
return ImGui::MemFree(ptr);
}
CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void)
{
return IM_NEW(ImGuiStyle)();
}
CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor)
{
return self->ScaleAllSizes(scale_factor);
@@ -1397,6 +1422,26 @@ CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
return self->ClearInputCharacters();
}
CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void)
{
return IM_NEW(ImGuiIO)();
}
CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void)
{
return IM_NEW(ImGuiOnceUponAFrame)();
}
CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter)
{
return IM_NEW(ImGuiTextFilter)(default_filter);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
return self->Draw(label,width);
@@ -1417,6 +1462,18 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
return self->IsActive();
}
CIMGUI_API TextRange* TextRange_TextRange(void)
{
return IM_NEW(TextRange)();
}
CIMGUI_API void TextRange_destroy(TextRange* self)
{
IM_DELETE(self);
}
CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e)
{
return IM_NEW(TextRange)(_b,_e);
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
@@ -1433,6 +1490,14 @@ CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRang
{
return self->split(separator,out);
}
CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void)
{
return IM_NEW(ImGuiTextBuffer)();
}
CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self)
{
IM_DELETE(self);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
return self->begin();
@@ -1465,6 +1530,18 @@ CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,v
{
return self->appendfv(fmt,args);
}
CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i)
{
return IM_NEW(Pair)(_key,_val_i);
}
CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f)
{
return IM_NEW(Pair)(_key,_val_f);
}
CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p)
{
return IM_NEW(Pair)(_key,_val_p);
}
CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self)
{
return self->Clear();
@@ -1525,6 +1602,14 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
return self->BuildSortByKey();
}
CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void)
{
return IM_NEW(ImGuiInputTextCallbackData)();
}
CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
return self->DeleteChars(pos,bytes_count);
@@ -1537,6 +1622,14 @@ CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackDa
{
return self->HasSelection();
}
CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void)
{
return IM_NEW(ImGuiPayload)();
}
CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self)
{
return self->Clear();
@@ -1553,6 +1646,30 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
return self->IsDelivery();
}
CIMGUI_API ImColor* ImColor_ImColor(void)
{
return IM_NEW(ImColor)();
}
CIMGUI_API void ImColor_destroy(ImColor* self)
{
IM_DELETE(self);
}
CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a)
{
return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba)
{
return IM_NEW(ImColor)(rgba);
}
CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a)
{
return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col)
{
return IM_NEW(ImColor)(col);
}
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
return self->SetHSV(h,s,v,a);
@@ -1561,6 +1678,10 @@ CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a)
{
return self->HSV(h,s,v,a);
}
CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height)
{
return IM_NEW(ImGuiListClipper)(items_count,items_height);
}
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self)
{
return self->Step();
@@ -1573,6 +1694,18 @@ CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self)
{
return self->End();
}
CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void)
{
return IM_NEW(ImDrawCmd)();
}
CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self)
{
IM_DELETE(self);
}
CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data)
{
return IM_NEW(ImDrawList)(shared_data);
}
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect)
{
return self->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect);
@@ -1777,6 +1910,14 @@ CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self)
{
return self->UpdateTextureID();
}
CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void)
{
return IM_NEW(ImDrawData)();
}
CIMGUI_API void ImDrawData_destroy(ImDrawData* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImDrawData_Clear(ImDrawData* self)
{
return self->Clear();
@@ -1789,6 +1930,22 @@ CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc)
{
return self->ScaleClipRects(sc);
}
CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void)
{
return IM_NEW(ImFontConfig)();
}
CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self)
{
IM_DELETE(self);
}
CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void)
{
return IM_NEW(ImFontAtlas)();
}
CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self)
{
IM_DELETE(self);
}
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg)
{
return self->AddFont(font_cfg);
@@ -1877,6 +2034,14 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self)
{
return self->GetGlyphRangesThai();
}
CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void)
{
return IM_NEW(GlyphRangesBuilder)();
}
CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self)
{
IM_DELETE(self);
}
CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n)
{
return self->GetBit(n);
@@ -1901,6 +2066,14 @@ CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector
{
return self->BuildRanges(out_ranges);
}
CIMGUI_API CustomRect* CustomRect_CustomRect(void)
{
return IM_NEW(CustomRect)();
}
CIMGUI_API void CustomRect_destroy(CustomRect* self)
{
IM_DELETE(self);
}
CIMGUI_API bool CustomRect_IsPacked(CustomRect* self)
{
return self->IsPacked();
@@ -1925,6 +2098,14 @@ CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCu
{
return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill);
}
CIMGUI_API ImFont* ImFont_ImFont(void)
{
return IM_NEW(ImFont)();
}
CIMGUI_API void ImFont_destroy(ImFont* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImFont_ClearOutputData(ImFont* self)
{
return self->ClearOutputData();
@@ -2226,11 +2407,34 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
buffer->appendfv(fmt, args);
va_end(args);
}
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config)
{
*config = ImFontConfig();
}
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_destroy(ImVector_ImWchar* p)
{
IM_DELETE(p);
}
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

@@ -1,6 +1,7 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.65" from Dear ImGui https://github.com/ocornut/imgui
#include <stdio.h>
#include <stdint.h>
#if defined _WIN32 || defined __CYGWIN__
#ifdef CIMGUI_NO_EXPORT
#define API
@@ -29,7 +30,7 @@
#ifdef _MSC_VER
typedef unsigned __int64 ImU64;
#else
typedef unsigned long long ImU64;
//typedef unsigned long long ImU64;
#endif
//UDT stuff
@@ -39,12 +40,30 @@ typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
typedef unsigned short ImDrawIdx;;
typedef struct Pair Pair;
typedef struct TextRange TextRange;
typedef struct ImVector_ImVec2 ImVector_ImVec2;
typedef struct ImVector_ImDrawIdx ImVector_ImDrawIdx;
typedef struct ImVector_ImVec4 ImVector_ImVec4;
typedef struct ImVector_TextRange ImVector_TextRange;
typedef struct ImVector_ImFontPtr ImVector_ImFontPtr;
typedef struct ImVector_ImDrawCmd ImVector_ImDrawCmd;
typedef struct ImVector_ImDrawVert ImVector_ImDrawVert;
typedef struct ImVector_unsigned_short ImVector_unsigned_short;
typedef struct ImVector_ImTextureID ImVector_ImTextureID;
typedef struct ImVector_char ImVector_char;
typedef struct ImVector_ImDrawChannel ImVector_ImDrawChannel;
typedef struct ImVector_CustomRect ImVector_CustomRect;
typedef struct ImVector_Pair ImVector_Pair;
typedef struct ImVector_unsigned_char ImVector_unsigned_char;
typedef struct ImVector_ImFontGlyph ImVector_ImFontGlyph;
typedef struct ImVector_ImFontConfig ImVector_ImFontConfig;
typedef struct ImVector_ImWchar ImVector_ImWchar;
typedef struct ImVector_float ImVector_float;
typedef struct ImVec4 ImVec4;
typedef struct ImVec2 ImVec2;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
@@ -568,13 +587,25 @@ struct ImGuiIO
float NavInputsDownDuration[ImGuiNavInput_COUNT];
float NavInputsDownDurationPrev[ImGuiNavInput_COUNT];
};
struct ImVector
{
int Size;
int Capacity;
void* Data;
};
typedef struct ImVector ImVector;
typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;
struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
struct ImVector_ImWchar {int Size;int Capacity;ImWchar* Data;} ImVector_ImWchar;
struct ImVector_ImFontConfig {int Size;int Capacity;ImFontConfig* Data;} ImVector_ImFontConfig;
struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
struct ImVector_unsigned_char {int Size;int Capacity;unsigned char* Data;} ImVector_unsigned_char;
struct ImVector_Pair {int Size;int Capacity;Pair* Data;} ImVector_Pair;
struct ImVector_CustomRect {int Size;int Capacity;CustomRect* Data;} ImVector_CustomRect;
struct ImVector_ImDrawChannel {int Size;int Capacity;ImDrawChannel* Data;} ImVector_ImDrawChannel;
struct ImVector_char {int Size;int Capacity;char* Data;} ImVector_char;
struct ImVector_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID;
struct ImVector_unsigned_short {int Size;int Capacity;unsigned short* Data;} ImVector_unsigned_short;
struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert;
struct ImVector_ImDrawCmd {int Size;int Capacity;ImDrawCmd* Data;} ImVector_ImDrawCmd;
struct ImVector_ImFontPtr {int Size;int Capacity;ImFont** Data;} ImVector_ImFontPtr;
struct ImVector_TextRange {int Size;int Capacity;TextRange* Data;} ImVector_TextRange;
struct ImVector_ImVec4 {int Size;int Capacity;ImVec4* Data;} ImVector_ImVec4;
struct ImVector_ImDrawIdx {int Size;int Capacity;ImDrawIdx* Data;} ImVector_ImDrawIdx;
struct ImVector_ImVec2 {int Size;int Capacity;ImVec2* Data;} ImVector_ImVec2;
struct ImNewDummy {};
struct ImGuiOnceUponAFrame
{
@@ -583,16 +614,16 @@ struct ImGuiOnceUponAFrame
struct ImGuiTextFilter
{
char InputBuf[256];
ImVector/*<TextRange>*/ Filters;
ImVector_TextRange Filters;
int CountGrep;
};
struct ImGuiTextBuffer
{
ImVector/*<char>*/ Buf;
ImVector_char Buf;
};
struct ImGuiStorage
{
ImVector/*<Pair>*/ Data;
ImVector_Pair Data;
};
struct ImGuiInputTextCallbackData
{
@@ -646,7 +677,6 @@ struct ImDrawCmd
ImDrawCallback UserCallback;
void* UserCallbackData;
};
typedef unsigned short ImDrawIdx;
struct ImDrawVert
{
ImVec2 pos;
@@ -655,8 +685,8 @@ struct ImDrawVert
};
struct ImDrawChannel
{
ImVector/*<ImDrawCmd>*/ CmdBuffer;
ImVector/*<ImDrawIdx>*/ IdxBuffer;
ImVector_ImDrawCmd CmdBuffer;
ImVector_ImDrawIdx IdxBuffer;
};
enum ImDrawCornerFlags_
{
@@ -677,21 +707,21 @@ enum ImDrawListFlags_
};
struct ImDrawList
{
ImVector/*<ImDrawCmd>*/ CmdBuffer;
ImVector/*<ImDrawIdx>*/ IdxBuffer;
ImVector/*<ImDrawVert>*/ VtxBuffer;
ImVector_ImDrawCmd CmdBuffer;
ImVector_ImDrawIdx IdxBuffer;
ImVector_ImDrawVert VtxBuffer;
ImDrawListFlags Flags;
const ImDrawListSharedData* _Data;
const char* _OwnerName;
unsigned int _VtxCurrentIdx;
ImDrawVert* _VtxWritePtr;
ImDrawIdx* _IdxWritePtr;
ImVector/*<ImVec4>*/ _ClipRectStack;
ImVector/*<ImTextureID>*/ _TextureIdStack;
ImVector/*<ImVec2>*/ _Path;
ImVector_ImVec4 _ClipRectStack;
ImVector_ImTextureID _TextureIdStack;
ImVector_ImVec2 _Path;
int _ChannelsCurrent;
int _ChannelsCount;
ImVector/*<ImDrawChannel>*/ _Channels;
ImVector_ImDrawChannel _Channels;
};
struct ImDrawData
{
@@ -750,9 +780,9 @@ struct ImFontAtlas
int TexHeight;
ImVec2 TexUvScale;
ImVec2 TexUvWhitePixel;
ImVector/*<ImFont*>*/ Fonts;
ImVector/*<CustomRect>*/ CustomRects;
ImVector/*<ImFontConfig>*/ ConfigData;
ImVector_ImFontPtr Fonts;
ImVector_CustomRect CustomRects;
ImVector_ImFontConfig ConfigData;
int CustomRectIds[1];
};
struct ImFont
@@ -760,9 +790,9 @@ struct ImFont
float FontSize;
float Scale;
ImVec2 DisplayOffset;
ImVector/*<ImFontGlyph>*/ Glyphs;
ImVector/*<float>*/ IndexAdvanceX;
ImVector/*<unsigned short>*/ IndexLookup;
ImVector_ImFontGlyph Glyphs;
ImVector_float IndexAdvanceX;
ImVector_unsigned_short IndexLookup;
const ImFontGlyph* FallbackGlyph;
float FallbackAdvanceX;
ImWchar FallbackChar;
@@ -775,7 +805,7 @@ struct ImFont
};
struct GlyphRangesBuilder
{
ImVector/*<unsigned char>*/ UsedChars;
ImVector_unsigned_char UsedChars;
};
struct CustomRect
{
@@ -832,77 +862,80 @@ typedef ImGuiTextFilter::TextRange TextRange;
typedef ImGuiStorage::Pair Pair;
typedef ImVector<TextRange> ImVector_TextRange;
typedef ImVector<ImWchar> ImVector_ImWchar;
#else //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef ImVector ImVector_TextRange;
typedef ImVector ImVector_ImWchar;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API ImVec2* ImVec2_ImVec2(void);
CIMGUI_API void ImVec2_destroy(ImVec2* self);
CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y);
CIMGUI_API ImVec4* ImVec4_ImVec4(void);
CIMGUI_API void ImVec4_destroy(ImVec4* self);
CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w);
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas);
CIMGUI_API void igDestroyContext(ImGuiContext* ctx);
CIMGUI_API ImGuiContext* igGetCurrentContext();
CIMGUI_API ImGuiContext* igGetCurrentContext(void);
CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx);
CIMGUI_API bool igDebugCheckVersionAndDataLayout(const char* version_str,size_t sz_io,size_t sz_style,size_t sz_vec2,size_t sz_vec4,size_t sz_drawvert);
CIMGUI_API ImGuiIO* igGetIO();
CIMGUI_API ImGuiStyle* igGetStyle();
CIMGUI_API void igNewFrame();
CIMGUI_API void igEndFrame();
CIMGUI_API void igRender();
CIMGUI_API ImDrawData* igGetDrawData();
CIMGUI_API ImGuiIO* igGetIO(void);
CIMGUI_API ImGuiStyle* igGetStyle(void);
CIMGUI_API void igNewFrame(void);
CIMGUI_API void igEndFrame(void);
CIMGUI_API void igRender(void);
CIMGUI_API ImDrawData* igGetDrawData(void);
CIMGUI_API void igShowDemoWindow(bool* p_open);
CIMGUI_API void igShowMetricsWindow(bool* p_open);
CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref);
CIMGUI_API bool igShowStyleSelector(const char* label);
CIMGUI_API void igShowFontSelector(const char* label);
CIMGUI_API void igShowUserGuide();
CIMGUI_API const char* igGetVersion();
CIMGUI_API void igShowUserGuide(void);
CIMGUI_API const char* igGetVersion(void);
CIMGUI_API void igStyleColorsDark(ImGuiStyle* dst);
CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst);
CIMGUI_API void igStyleColorsLight(ImGuiStyle* dst);
CIMGUI_API bool igBegin(const char* name,bool* p_open,ImGuiWindowFlags flags);
CIMGUI_API void igEnd();
CIMGUI_API void igEnd(void);
CIMGUI_API bool igBeginChild(const char* str_id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
CIMGUI_API bool igBeginChildID(ImGuiID id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
CIMGUI_API void igEndChild();
CIMGUI_API bool igIsWindowAppearing();
CIMGUI_API bool igIsWindowCollapsed();
CIMGUI_API void igEndChild(void);
CIMGUI_API bool igIsWindowAppearing(void);
CIMGUI_API bool igIsWindowCollapsed(void);
CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags);
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags flags);
CIMGUI_API ImDrawList* igGetWindowDrawList();
CIMGUI_API ImVec2 igGetWindowPos();
CIMGUI_API ImVec2 igGetWindowSize();
CIMGUI_API float igGetWindowWidth();
CIMGUI_API float igGetWindowHeight();
CIMGUI_API ImVec2 igGetContentRegionMax();
CIMGUI_API ImVec2 igGetContentRegionAvail();
CIMGUI_API float igGetContentRegionAvailWidth();
CIMGUI_API ImVec2 igGetWindowContentRegionMin();
CIMGUI_API ImVec2 igGetWindowContentRegionMax();
CIMGUI_API float igGetWindowContentRegionWidth();
CIMGUI_API ImDrawList* igGetWindowDrawList(void);
CIMGUI_API ImVec2 igGetWindowPos(void);
CIMGUI_API ImVec2 igGetWindowSize(void);
CIMGUI_API float igGetWindowWidth(void);
CIMGUI_API float igGetWindowHeight(void);
CIMGUI_API ImVec2 igGetContentRegionMax(void);
CIMGUI_API ImVec2 igGetContentRegionAvail(void);
CIMGUI_API float igGetContentRegionAvailWidth(void);
CIMGUI_API ImVec2 igGetWindowContentRegionMin(void);
CIMGUI_API ImVec2 igGetWindowContentRegionMax(void);
CIMGUI_API float igGetWindowContentRegionWidth(void);
CIMGUI_API void igSetNextWindowPos(const ImVec2 pos,ImGuiCond cond,const ImVec2 pivot);
CIMGUI_API void igSetNextWindowSize(const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetNextWindowSizeConstraints(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,void* custom_callback_data);
CIMGUI_API void igSetNextWindowContentSize(const ImVec2 size);
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetNextWindowFocus();
CIMGUI_API void igSetNextWindowFocus(void);
CIMGUI_API void igSetNextWindowBgAlpha(float alpha);
CIMGUI_API void igSetWindowPosVec2(const ImVec2 pos,ImGuiCond cond);
CIMGUI_API void igSetWindowSizeVec2(const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetWindowCollapsedBool(bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetWindowFocus();
CIMGUI_API void igSetWindowFocus(void);
CIMGUI_API void igSetWindowFontScale(float scale);
CIMGUI_API void igSetWindowPosStr(const char* name,const ImVec2 pos,ImGuiCond cond);
CIMGUI_API void igSetWindowSizeStr(const char* name,const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetWindowCollapsedStr(const char* name,bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetWindowFocusStr(const char* name);
CIMGUI_API float igGetScrollX();
CIMGUI_API float igGetScrollY();
CIMGUI_API float igGetScrollMaxX();
CIMGUI_API float igGetScrollMaxY();
CIMGUI_API float igGetScrollX(void);
CIMGUI_API float igGetScrollY(void);
CIMGUI_API float igGetScrollMaxX(void);
CIMGUI_API float igGetScrollMaxY(void);
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 igPushFont(ImFont* font);
CIMGUI_API void igPopFont();
CIMGUI_API void igPopFont(void);
CIMGUI_API void igPushStyleColorU32(ImGuiCol idx,ImU32 col);
CIMGUI_API void igPushStyleColor(ImGuiCol idx,const ImVec4 col);
CIMGUI_API void igPopStyleColor(int count);
@@ -910,51 +943,51 @@ CIMGUI_API void igPushStyleVarFloat(ImGuiStyleVar idx,float val);
CIMGUI_API void igPushStyleVarVec2(ImGuiStyleVar idx,const ImVec2 val);
CIMGUI_API void igPopStyleVar(int count);
CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx);
CIMGUI_API ImFont* igGetFont();
CIMGUI_API float igGetFontSize();
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel();
CIMGUI_API ImFont* igGetFont(void);
CIMGUI_API float igGetFontSize(void);
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel(void);
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx,float alpha_mul);
CIMGUI_API ImU32 igGetColorU32Vec4(const ImVec4 col);
CIMGUI_API ImU32 igGetColorU32U32(ImU32 col);
CIMGUI_API void igPushItemWidth(float item_width);
CIMGUI_API void igPopItemWidth();
CIMGUI_API float igCalcItemWidth();
CIMGUI_API void igPopItemWidth(void);
CIMGUI_API float igCalcItemWidth(void);
CIMGUI_API void igPushTextWrapPos(float wrap_pos_x);
CIMGUI_API void igPopTextWrapPos();
CIMGUI_API void igPopTextWrapPos(void);
CIMGUI_API void igPushAllowKeyboardFocus(bool allow_keyboard_focus);
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPopAllowKeyboardFocus(void);
CIMGUI_API void igPushButtonRepeat(bool repeat);
CIMGUI_API void igPopButtonRepeat();
CIMGUI_API void igSeparator();
CIMGUI_API void igPopButtonRepeat(void);
CIMGUI_API void igSeparator(void);
CIMGUI_API void igSameLine(float pos_x,float spacing_w);
CIMGUI_API void igNewLine();
CIMGUI_API void igSpacing();
CIMGUI_API void igNewLine(void);
CIMGUI_API void igSpacing(void);
CIMGUI_API void igDummy(const 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 ImVec2 igGetCursorPos();
CIMGUI_API float igGetCursorPosX();
CIMGUI_API float igGetCursorPosY();
CIMGUI_API void igBeginGroup(void);
CIMGUI_API void igEndGroup(void);
CIMGUI_API ImVec2 igGetCursorPos(void);
CIMGUI_API float igGetCursorPosX(void);
CIMGUI_API float igGetCursorPosY(void);
CIMGUI_API void igSetCursorPos(const ImVec2 local_pos);
CIMGUI_API void igSetCursorPosX(float x);
CIMGUI_API void igSetCursorPosY(float y);
CIMGUI_API ImVec2 igGetCursorStartPos();
CIMGUI_API ImVec2 igGetCursorScreenPos();
CIMGUI_API ImVec2 igGetCursorStartPos(void);
CIMGUI_API ImVec2 igGetCursorScreenPos(void);
CIMGUI_API void igSetCursorScreenPos(const ImVec2 screen_pos);
CIMGUI_API void igAlignTextToFramePadding();
CIMGUI_API float igGetTextLineHeight();
CIMGUI_API float igGetTextLineHeightWithSpacing();
CIMGUI_API float igGetFrameHeight();
CIMGUI_API float igGetFrameHeightWithSpacing();
CIMGUI_API void igAlignTextToFramePadding(void);
CIMGUI_API float igGetTextLineHeight(void);
CIMGUI_API float igGetTextLineHeightWithSpacing(void);
CIMGUI_API float igGetFrameHeight(void);
CIMGUI_API float igGetFrameHeightWithSpacing(void);
CIMGUI_API void igPushIDStr(const char* str_id);
CIMGUI_API void igPushIDRange(const char* str_id_begin,const char* str_id_end);
CIMGUI_API void igPushIDPtr(const void* ptr_id);
CIMGUI_API void igPushIDInt(int int_id);
CIMGUI_API void igPopID();
CIMGUI_API void igPopID(void);
CIMGUI_API ImGuiID igGetIDStr(const char* str_id);
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end);
CIMGUI_API ImGuiID igGetIDRange(const char* str_id_begin,const char* str_id_end);
CIMGUI_API ImGuiID igGetIDPtr(const void* ptr_id);
CIMGUI_API void igTextUnformatted(const char* text,const char* text_end);
CIMGUI_API void igText(const char* fmt,...);
@@ -980,9 +1013,9 @@ CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned i
CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
CIMGUI_API void igBullet();
CIMGUI_API void igBullet(void);
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
CIMGUI_API void igEndCombo();
CIMGUI_API void igEndCombo(void);
CIMGUI_API bool igCombo(const char* label,int* current_item,const char* const items[],int items_count,int popup_max_height_in_items);
CIMGUI_API bool igComboStr(const char* label,int* current_item,const char* items_separated_by_zeros,int popup_max_height_in_items);
CIMGUI_API bool igComboFnPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int popup_max_height_in_items);
@@ -1043,9 +1076,9 @@ CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,con
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 igTreePop(void);
CIMGUI_API void igTreeAdvanceToLabelPos(void);
CIMGUI_API float igGetTreeNodeToLabelSpacing(void);
CIMGUI_API void igSetNextTreeNodeOpen(bool is_open,ImGuiCond cond);
CIMGUI_API bool igCollapsingHeader(const char* label,ImGuiTreeNodeFlags flags);
CIMGUI_API bool igCollapsingHeaderBoolPtr(const char* label,bool* p_open,ImGuiTreeNodeFlags flags);
@@ -1055,7 +1088,7 @@ CIMGUI_API bool igListBoxStr_arr(const char* label,int* current_item,const char*
CIMGUI_API bool igListBoxFnPtr(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 igListBoxHeaderVec2(const char* label,const ImVec2 size);
CIMGUI_API bool igListBoxHeaderInt(const char* label,int items_count,int height_in_items);
CIMGUI_API void igListBoxFooter();
CIMGUI_API void igListBoxFooter(void);
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,ImVec2 graph_size,int stride);
CIMGUI_API void igPlotLinesFnPtr(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,ImVec2 graph_size);
CIMGUI_API void igPlotHistogramFloatPtr(const char* label,const float* values,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size,int stride);
@@ -1064,16 +1097,16 @@ 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 bool igBeginMainMenuBar();
CIMGUI_API void igEndMainMenuBar();
CIMGUI_API bool igBeginMenuBar();
CIMGUI_API void igEndMenuBar();
CIMGUI_API bool igBeginMainMenuBar(void);
CIMGUI_API void igEndMainMenuBar(void);
CIMGUI_API bool igBeginMenuBar(void);
CIMGUI_API void igEndMenuBar(void);
CIMGUI_API bool igBeginMenu(const char* label,bool enabled);
CIMGUI_API void igEndMenu();
CIMGUI_API void igEndMenu(void);
CIMGUI_API bool igMenuItemBool(const char* label,const char* shortcut,bool selected,bool enabled);
CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p_selected,bool enabled);
CIMGUI_API void igBeginTooltip();
CIMGUI_API void igEndTooltip();
CIMGUI_API void igBeginTooltip(void);
CIMGUI_API void igEndTooltip(void);
CIMGUI_API void igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API void igOpenPopup(const char* str_id);
@@ -1082,87 +1115,85 @@ CIMGUI_API bool igBeginPopupContextItem(const char* str_id,int mouse_button);
CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,int mouse_button,bool also_over_items);
CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,int mouse_button);
CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags);
CIMGUI_API void igEndPopup();
CIMGUI_API void igEndPopup(void);
CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,int mouse_button);
CIMGUI_API bool igIsPopupOpen(const char* str_id);
CIMGUI_API void igCloseCurrentPopup();
CIMGUI_API void igCloseCurrentPopup(void);
CIMGUI_API void igColumns(int count,const char* id,bool border);
CIMGUI_API void igNextColumn();
CIMGUI_API int igGetColumnIndex();
CIMGUI_API void igNextColumn(void);
CIMGUI_API int igGetColumnIndex(void);
CIMGUI_API float igGetColumnWidth(int column_index);
CIMGUI_API void igSetColumnWidth(int column_index,float width);
CIMGUI_API float igGetColumnOffset(int column_index);
CIMGUI_API void igSetColumnOffset(int column_index,float offset_x);
CIMGUI_API int igGetColumnsCount();
CIMGUI_API int igGetColumnsCount(void);
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 igLogFinish(void);
CIMGUI_API void igLogButtons(void);
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags);
CIMGUI_API bool igSetDragDropPayload(const char* type,const void* data,size_t size,ImGuiCond cond);
CIMGUI_API void igEndDragDropSource();
CIMGUI_API bool igBeginDragDropTarget();
CIMGUI_API void igEndDragDropSource(void);
CIMGUI_API bool igBeginDragDropTarget(void);
CIMGUI_API const ImGuiPayload* igAcceptDragDropPayload(const char* type,ImGuiDragDropFlags flags);
CIMGUI_API void igEndDragDropTarget();
CIMGUI_API void igEndDragDropTarget(void);
CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
CIMGUI_API void igPopClipRect();
CIMGUI_API void igSetItemDefaultFocus();
CIMGUI_API void igPopClipRect(void);
CIMGUI_API void igSetItemDefaultFocus(void);
CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
CIMGUI_API bool igIsItemActive();
CIMGUI_API bool igIsItemFocused();
CIMGUI_API bool igIsItemActive(void);
CIMGUI_API bool igIsItemFocused(void);
CIMGUI_API bool igIsItemClicked(int mouse_button);
CIMGUI_API bool igIsItemVisible();
CIMGUI_API bool igIsItemEdited();
CIMGUI_API bool igIsItemDeactivated();
CIMGUI_API bool igIsItemDeactivatedAfterEdit();
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API bool igIsAnyItemFocused();
CIMGUI_API ImVec2 igGetItemRectMin();
CIMGUI_API ImVec2 igGetItemRectMax();
CIMGUI_API ImVec2 igGetItemRectSize();
CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsItemVisible(void);
CIMGUI_API bool igIsItemEdited(void);
CIMGUI_API bool igIsItemDeactivated(void);
CIMGUI_API bool igIsItemDeactivatedAfterEdit(void);
CIMGUI_API bool igIsAnyItemHovered(void);
CIMGUI_API bool igIsAnyItemActive(void);
CIMGUI_API bool igIsAnyItemFocused(void);
CIMGUI_API ImVec2 igGetItemRectMin(void);
CIMGUI_API ImVec2 igGetItemRectMax(void);
CIMGUI_API ImVec2 igGetItemRectSize(void);
CIMGUI_API void igSetItemAllowOverlap(void);
CIMGUI_API bool igIsRectVisible(const ImVec2 size);
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max);
CIMGUI_API double igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API ImDrawList* igGetOverlayDrawList();
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData();
CIMGUI_API double igGetTime(void);
CIMGUI_API int igGetFrameCount(void);
CIMGUI_API ImDrawList* igGetOverlayDrawList(void);
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void);
CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx);
CIMGUI_API void igSetStateStorage(ImGuiStorage* storage);
CIMGUI_API ImGuiStorage* igGetStateStorage();
CIMGUI_API ImGuiStorage* igGetStateStorage(void);
CIMGUI_API ImVec2 igCalcTextSize(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 ImVec2 size,ImGuiWindowFlags flags);
CIMGUI_API void igEndChildFrame();
CIMGUI_API void igEndChildFrame(void);
CIMGUI_API ImVec4 igColorConvertU32ToFloat4(ImU32 in);
CIMGUI_API ImU32 igColorConvertFloat4ToU32(const 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 int igGetKeyPressedAmount(int key_index,float repeat_delay,float rate);
CIMGUI_API bool igIsMouseDown(int button);
CIMGUI_API bool igIsAnyMouseDown();
CIMGUI_API bool igIsAnyMouseDown(void);
CIMGUI_API bool igIsMouseClicked(int button,bool repeat);
CIMGUI_API bool igIsMouseDoubleClicked(int button);
CIMGUI_API bool igIsMouseReleased(int button);
CIMGUI_API bool igIsMouseDragging(int button,float lock_threshold);
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
CIMGUI_API ImVec2 igGetMousePos();
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup();
CIMGUI_API ImVec2 igGetMousePos(void);
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup(void);
CIMGUI_API ImVec2 igGetMouseDragDelta(int button,float lock_threshold);
CIMGUI_API void igResetMouseDragDelta(int button);
CIMGUI_API ImGuiMouseCursor igGetMouseCursor();
CIMGUI_API ImGuiMouseCursor igGetMouseCursor(void);
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type);
CIMGUI_API void igCaptureKeyboardFromApp(bool capture);
CIMGUI_API void igCaptureMouseFromApp(bool capture);
CIMGUI_API const char* igGetClipboardText();
CIMGUI_API const char* igGetClipboardText(void);
CIMGUI_API void igSetClipboardText(const char* text);
CIMGUI_API void igLoadIniSettingsFromDisk(const char* ini_filename);
CIMGUI_API void igLoadIniSettingsFromMemory(const char* ini_data,size_t ini_size);
@@ -1171,19 +1202,31 @@ CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size);
CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
CIMGUI_API void* igMemAlloc(size_t size);
CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void);
CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self);
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars);
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void);
CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self);
CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void);
CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self);
CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter);
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
CIMGUI_API TextRange* TextRange_TextRange(void);
CIMGUI_API void TextRange_destroy(TextRange* self);
CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out);
CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void);
CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
@@ -1192,6 +1235,9 @@ CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity);
CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args);
CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i);
CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f);
CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p);
CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self);
CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val);
CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val);
@@ -1207,18 +1253,32 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val);
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void);
CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self);
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void);
CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self);
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
CIMGUI_API ImColor* ImColor_ImColor(void);
CIMGUI_API void ImColor_destroy(ImColor* self);
CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a);
CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba);
CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a);
CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col);
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height);
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self);
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height);
CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self);
CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void);
CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self);
CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data);
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
@@ -1270,9 +1330,15 @@ CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void);
CIMGUI_API void ImDrawData_destroy(ImDrawData* self);
CIMGUI_API void ImDrawData_Clear(ImDrawData* self);
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self);
CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc);
CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void);
CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self);
CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void);
CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self);
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
@@ -1295,18 +1361,24 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* sel
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self);
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self);
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self);
CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void);
CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self);
CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n);
CIMGUI_API void GlyphRangesBuilder_SetBit(GlyphRangesBuilder* self,int n);
CIMGUI_API void GlyphRangesBuilder_AddChar(GlyphRangesBuilder* self,ImWchar c);
CIMGUI_API void GlyphRangesBuilder_AddText(GlyphRangesBuilder* self,const char* text,const char* text_end);
CIMGUI_API void GlyphRangesBuilder_AddRanges(GlyphRangesBuilder* self,const ImWchar* ranges);
CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector_ImWchar* out_ranges);
CIMGUI_API CustomRect* CustomRect_CustomRect(void);
CIMGUI_API void CustomRect_destroy(CustomRect* self);
CIMGUI_API bool CustomRect_IsPacked(CustomRect* self);
CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,unsigned int id,int width,int height);
CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset);
CIMGUI_API const CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index);
CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const CustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max);
CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]);
CIMGUI_API ImFont* ImFont_ImFont(void);
CIMGUI_API void ImFont_destroy(ImFont* self);
CIMGUI_API void ImFont_ClearOutputData(ImFont* self);
CIMGUI_API void ImFont_BuildLookupTable(ImFont* self);
CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c);
@@ -1323,39 +1395,39 @@ CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size);
CIMGUI_API void ImFont_AddGlyph(ImFont* self,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x);
CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst);
CIMGUI_API void igGetWindowPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowPos_nonUDT2(void);
CIMGUI_API void igGetWindowSize_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowSize_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowSize_nonUDT2(void);
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetContentRegionMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetContentRegionMax_nonUDT2(void);
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetContentRegionAvail_nonUDT2();
CIMGUI_API ImVec2_Simple igGetContentRegionAvail_nonUDT2(void);
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMin_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMin_nonUDT2(void);
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMax_nonUDT2(void);
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2();
CIMGUI_API ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2(void);
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorPos_nonUDT2(void);
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorStartPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorStartPos_nonUDT2(void);
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorScreenPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorScreenPos_nonUDT2(void);
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectMin_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectMin_nonUDT2(void);
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectMax_nonUDT2(void);
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectSize_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectSize_nonUDT2(void);
CIMGUI_API void igCalcTextSize_nonUDT(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
CIMGUI_API ImVec2_Simple igCalcTextSize_nonUDT2(const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
CIMGUI_API void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in);
CIMGUI_API ImVec4_Simple igColorConvertU32ToFloat4_nonUDT2(ImU32 in);
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetMousePos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetMousePos_nonUDT2(void);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2();
CIMGUI_API ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2(void);
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold);
CIMGUI_API ImVec2_Simple igGetMouseDragDelta_nonUDT2(int button,float lock_threshold);
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a);
@@ -1373,8 +1445,17 @@ CIMGUI_API ImVec2_Simple ImFont_CalcTextSizeA_nonUDT2(ImFont* self,float size,fl
CIMGUI_API void igLogText(CONST char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config);
//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_destroy(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);

View File

@@ -25,11 +25,34 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
buffer->appendfv(fmt, args);
va_end(args);
}
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config)
{
*config = ImFontConfig();
}
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_destroy(ImVector_ImWchar* p)
{
IM_DELETE(p);
}
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

@@ -1,6 +1,6 @@
#include <stdio.h>
#include <stdint.h>
#if defined _WIN32 || defined __CYGWIN__
#ifdef CIMGUI_NO_EXPORT
#define API
@@ -29,7 +29,7 @@
#ifdef _MSC_VER
typedef unsigned __int64 ImU64;
#else
typedef unsigned long long ImU64;
//typedef unsigned long long ImU64;
#endif
//UDT stuff
@@ -75,8 +75,17 @@ inline ImColor_Simple ImColorToSimple(ImColor col)
CIMGUI_API void igLogText(CONST char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config);
//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_destroy(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
:: this script must be executed in this directory
:: all the output goes to generated folder
:: all the output goes to generator/output folder
:: .cpp and .h files:
:: cimgui.h and cimgui.cpp generated without preprocess
:: cimgui_auto.h and cimgui_auto.cpp with gcc preprocess
:: 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
@@ -10,15 +10,13 @@
:: 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:\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..n] name of implementations to generate
luajit.exe ./generator.lua glfw opengl3 opengl2 sdl
::copy cimgui.h and cimgui.cpp
copy .\generated\cimgui_auto.h ..\cimgui_auto.h
copy .\generated\cimgui_auto.cpp ..\cimgui_auto.cpp
:: 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

View File

@@ -2,29 +2,44 @@
--script for auto_funcs.h and auto_funcs.cpp generation
--expects Lua 5.1 or luajit
--------------------------------------------------------------------------
assert(_VERSION=='Lua 5.1',"Must use LuaJIT or Lua5.1")
assert(_VERSION=='Lua 5.1',"Must use LuaJIT")
assert(bit,"Must use LuaJIT")
local script_args = {...}
--test gcc present
local HAVE_GCC
local pipe,err = io.popen("gcc --version","r")
if pipe then
local str = pipe:read"*a"
print(str)
pipe:close()
if str=="" then
HAVE_GCC = false
else
HAVE_GCC = true
end
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
HAVE_GCC = false
print(err)
print("Working without compiler ")
end
print("HAVE_GCC",HAVE_GCC)
--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=1,#script_args do table.insert(implementations,script_args[i]) end
for i=2,#script_args do table.insert(implementations,script_args[i]) end
--------------------------------------------------------------------------
--this table has the functions to be skipped in generation
@@ -32,6 +47,8 @@ for i=1,#script_args do table.insert(implementations,script_args[i]) end
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)
@@ -45,6 +62,9 @@ local cimgui_overloads = {
--["(const void*)"] = "igPushIDPtr",
--["(int)"] = "igPushIDInt"
},
igGetID = {
["(const char*,const char*)"] = "igGetIDRange",
},
ImDrawList_AddText = {
["(const ImVec2,ImU32,const char*,const char*)"] = "ImDrawList_AddText",
},
@@ -70,67 +90,188 @@ local cimgui_overloads = {
["(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
--------------------------------------------------------------------------
--iterates lines from a .h file and discards between #if.. and #endif
local function filelines(file)
local function split_comment(line)
local comment = line:match("(%s*//.*)") or ""
line = line:gsub("%s*//.*","")
line = line:gsub("%s*$","")
return line,comment
end
--minimal preprocessor
local function filelines(file,locats)
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,
},
}
--only one case is true
local function prepro_boolifBAK(line)
local ma = line:match("#ifndef%s+IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT") or line:match("#ifndef%s+ImTextureID")
return not (ma==nil)
end
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
if line:sub(1,1) == "#" then
--if line:sub(1,1) == "#" then
if line:match("^%s*#") then
line,_ = split_comment(line)
local pre,cond = line:match("^%s*(#%S*)%s+(.*)%s*$")
if line:match("#if") then
iflevels[#iflevels +1 ] = true
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 then
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
return line,locats[1]
end
until false
end
return location_it
end
--iterates lines from a gcc -E in a specific location
--iterates lines from a gcc/clang -E in a specific location
local function location(file,locpathT)
local location_re = '^# %d+ "([^"]*)"'
local location_re
if COMPILER == "cl" then
location_re = '^#line (%d+) "([^"]*)"'
else --gcc, clang
location_re = '^# (%d+) "([^"]*)"'
end
local path_reT = {}
for i,locpath in ipairs(locpathT) do
table.insert(path_reT,'^(.*[\\/])('..locpath..')%.h$')
end
local in_location = false
local which_location = ""
local loc_num
local loc_num_incr
local lineold = ""
local which_locationold,loc_num_realold
local lastdumped = false
local function location_it()
repeat
local line = file:read"*l"
if not line then return nil end
if line:sub(1,1) == "#" then
if not line then
if not lastdumped then
lastdumped = true
return lineold, which_locationold,loc_num_realold
else
return nil
end
end
if #line==0 then --nothing on emptyline
elseif not line:match("%S") then --nothing if only spaces
elseif line:sub(1,1) == "#" then
-- Is this a location pragma?
local location_match = line:match(location_re)
local loc_num_t,location_match = line:match(location_re)
if location_match then
in_location = false
for i,path_re in ipairs(path_reT) do
if location_match:match(path_re) then
in_location = true;
loc_num = loc_num_t
loc_num_incr = 0
which_location = locpathT[i]
break
end
end
end
elseif in_location then
return line, which_location
local loc_num_real = loc_num + loc_num_incr
loc_num_incr = loc_num_incr + 1
if loc_num_realold and loc_num_realold < loc_num_real then
--old line complete
local lineR,which_locationR,loc_num_realR = lineold, which_locationold,loc_num_realold
lineold, which_locationold,loc_num_realold = line,which_location,loc_num_real
return lineR,which_locationR,loc_num_realR
else
lineold=lineold..line
which_locationold,loc_num_realold = which_location,loc_num_real
--return line,loc_num_real, which_location
end
end
until false
until false --forever
end
return location_it
end
local function copyfile(src,dst,blocksize)
blocksize = blocksize or 1024*4
print( "copyfile", src, dst)
local srcf, err = io.open(src,"rb")
if not srcf then error(err) end
local dstf, err = io.open(dst,"wb")
if not dstf then error(err) end
while true do
local data = srcf:read(blocksize)
if not data then break end
dstf:write(data)
end
srcf:close()
dstf:close()
end
------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
local function serializeTable(name, value, saved)
@@ -215,10 +356,6 @@ local function clean_spaces(cad)
cad = cad:gsub("%s*([%(%),=])%s*","%1") --not spaces with ( , )
return cad
end
local function split_comment(line)
local comment = line:match("(%s*//.*)") or ""
return line:gsub("%s*//.*",""),comment
end
local function get_manuals(def)
return cimgui_manuals[def.ov_cimguiname] or cimgui_manuals[def.cimguiname]
end
@@ -239,14 +376,16 @@ end
local function struct_parser()
local function_re = "(%a*%w+%s*%b())" --"(%a*%w+%b())" --"(%a*%w+%s+%w+%b())"
local function_closing_re = "}"
local function_closed_re = "[;}]$"
local function_closed_re = "[;}]%s*$"
local operator_re = "operator.-%b()"
local functype_re = "(%(%*)[%w_]+(%)%([^%(%)]*%))"
local initial_comment_re = [[^%s*//.*]]
local in_functionst = false
local structcdefs = {}
local ImVector_templates = {}
local STP = {}
STP.ImVector_templates = ImVector_templates
STP.lines = structcdefs
function STP.insert(line,comment)
@@ -258,6 +397,7 @@ local function struct_parser()
--if in_function discard
if in_functionst then
--table.insert(structcdefs,"en function:"..line) --debug
if line:match(function_closing_re) then
in_functionst = false
--print("in function:",line)
@@ -265,25 +405,29 @@ local function struct_parser()
return
end
if (line:match(function_re) or line:match(operator_re)) and not line:match("typedef.*%b().*%b().*")
and not line:match(functype_re) then
--table.insert(structcdefs,"function test2:"..line) --debug
if not line:match(function_closed_re) then
--print("match:",line)
in_functionst = true
end
--else
--table.insert(structcdefs,linecommented)
elseif line:match("template") then
--nothing
elseif line:match("public:") then
--nothing
else
local linea = line:gsub("%S+",{class="struct",mutable=""})
linea = linea:gsub("(%b<>)","/*%1*/") --comment template parameters
local template = linea:match("ImVector<(.+)>")
if template then
local te = template:gsub("%s","_")
te = te:gsub("%*","Ptr")
ImVector_templates[template] = true
linea = linea:gsub("(%b<>)","_"..te) --comment template parameters
end
--linea = linea:gsub("(%b<>)","/*%1*/") --comment template parameters
--linea = linea:gsub("<([%w_]+)>","_%1") --ImVector expand templates
table.insert(structcdefs,linea..comment)
end
return
end
@@ -366,7 +510,8 @@ end
local function func_parser()
local function_closing_re = "}"
local function_re = "(%a*%w+%b())" --"(%a*%w+%s+%w+%b())"
--local function_re = "(%a*%w+%b())" --"(%a*%w+%s+%w+%b())"
local function_re = "(%a*[%w%[%]]+%s*%b())"
local function_closed_re = "[;}]$"
local namespace_re = "namespace ([^%s]+)"
local namespace_closing_re = "^}"
@@ -376,6 +521,7 @@ local function func_parser()
local functype_re = "^%s*[%w%s]+(%(%*)[%w_]+(%)%([^%(%)]*%))"
local in_function = false
local line_in_function
local in_namespace = false
local cdefs = {}
local structnames = {}
@@ -392,7 +538,7 @@ local function func_parser()
FP.ImVector_templates = ImVector_templates
function FP.insert(line,comment,locat)
local lineorig = line
if line:match"template" then return end
line = line:gsub("%S+",{class="struct",mutable="",inline=""}) --class -> struct
line = clean_spaces(line)
@@ -406,6 +552,7 @@ local function func_parser()
if line:match(function_re) and not line:match("typedef.*%b().*%b().*") then
if not line:match(function_closed_re) then
in_function = true
line_in_function = lineorig
end
end
if line:match(namespace_re) then
@@ -459,16 +606,18 @@ local function func_parser()
-- end
--argscsinpars = argscsinpars:gsub("&","")
local template = argscsinpars:match("ImVector<([%w_]+)>")
local template = argscsinpars:match("ImVector<(.+)>")
if template then
--template = template:gsub("%s","_")
--template = template:gsub("%*","Ptr")
ImVector_templates[template] = true
end
argscsinpars = argscsinpars:gsub("<([%w_]+)>","_%1") --ImVector
local argsArr = {}
local functype_re = "^%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*([%w_]+)%)(%([^%(%)]*%))"
local functype_re = "^%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*([%w_]+)%)(%([^%(%)]*%))"
local functype_arg_rest = "^(%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)),*(.*)"
local rest = argscsinpars:sub(2,-2) --strip ()
@@ -496,17 +645,26 @@ local function func_parser()
else
type,name = arg:match("(.+)%s([^%s]+)")
end
--if not type or not name then print(funcname,type,name,argscsinpars,arg) end
--float name[2] to float[2] name
local siz = name:match("(%[%d*%])")
if siz then
type = type..siz
name = name:gsub("(%[%d*%])","")
end
if not type or not name then
print("failure arg detection",funcname,type,name,argscsinpars,arg)
print(lineorig)
print(line_in_function)
else
--float name[2] to float[2] name
local siz = name:match("(%[%d*%])")
if siz then
type = type..siz
name = name:gsub("(%[%d*%])","")
end
end
end
table.insert(argsArr,{type=type,name=name,ret=retf,signature=sigf})
if arg:match("&") and not arg:match("const") then
print(funcname,argscsinpars)
--only post error if not manual
local cname = getcimguiname(stname,funcname)
if not cimgui_manuals[cname] then
print("reference to no const arg in",funcname,argscsinpars)
end
end
end
argscsinpars = argscsinpars:gsub("&","")
@@ -552,6 +710,9 @@ local function func_parser()
defT.location = locat
defT.comment = comment
defT.argsT = argsArr
if get_manuals(defT) then
defT.manual = true
end
if ret then
defT.ret = clean_spaces(ret:gsub("&","*"))
defT.retref = ret:match("&")
@@ -637,7 +798,7 @@ local function ADDnonUDT(FP)
defT2.retref = nil
defsT[t.cimguiname][#defsT[t.cimguiname] + 1] = defT2
defsT[t.cimguiname][t.signature.."nonUDT"] = defT2
table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT",cimguiname=t.cimguiname,call_args=call_args,ret =ret,comment=comment})
table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT",cimguiname=t.cimguiname,call_args=call_args,ret =t.ret,comment=comment})
--converting to Simple type----------------------------------------------------
local defT3 = {}
--first strings
@@ -658,7 +819,7 @@ local function ADDnonUDT(FP)
defT3.retref = nil
defsT[t.cimguiname][#defsT[t.cimguiname] + 1] = defT3
defsT[t.cimguiname][t.signature.."nonUDT2"] = defT3
table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT2",cimguiname=t.cimguiname,call_args=call_args,ret =ret,comment=comment})
table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT2",cimguiname=t.cimguiname,call_args=call_args,ret =t.ret,comment=comment})
end
end
end
@@ -732,6 +893,11 @@ local function gen_structs_and_enums_table(cdefs)
if (#enumnames > 0) then
assert(#structnames==0,"enum in struct")
-- if #structnames~=0 then
-- print(line,#line)
-- print(linecom,#linecom)
-- error"enuminstruct"
-- end
if line:match(struct_closing_re) and not line:match(struct_op_close_re) then
enumnames[#enumnames] = nil
break
@@ -742,9 +908,10 @@ local function gen_structs_and_enums_table(cdefs)
local name,value = line:match("%s*([%w_]+)%s*=%s*([^,]+)")
if value then
table.insert(outtab.enums[enumnames[#enumnames]],{name=name,value=value})
else
else --increment by one
local name = line:match("%s*([^,]+)")
local value = #outtab.enums[enumnames[#enumnames]]
local enum_table = outtab.enums[enumnames[#enumnames]]
local value = enum_table[#enum_table] and (enum_table[#enum_table].value + 1) or 0
table.insert(outtab.enums[enumnames[#enumnames]],{name=name,value=value})
end
end
@@ -768,8 +935,16 @@ local function gen_structs_and_enums_table(cdefs)
end
--split type name1,name2; in several lines
local typen,rest = line:match("([^,]+)%s(%S+[,;])")
--local template_type = typen:match("/%*<(.+)>%*/")
--if template_type then typen = typen:match("(.+)/%*") end
local template_type = typen:match("ImVector_(.+)")
if template_type then
typen = "ImVector"
template_type = template_type:gsub("_"," ")
template_type = template_type:gsub("Ptr","%*")
end
for name in rest:gmatch("([^%s,;]+)%s?[,;]") do
table.insert(outtab.structs[structnames[#structnames]],{type=typen,name=name})
table.insert(outtab.structs[structnames[#structnames]],{type=typen,template_type=template_type,name=name})
end
end
end
@@ -822,8 +997,18 @@ local function gen_structs_and_enums_table(cdefs)
return outtab, typedefs_dict
end
local function generate_templates(code,templates,typedefs)
for k,v in pairs(templates) do
--[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]]
local te = k:gsub("%s","_")
te = te:gsub("%*","Ptr")
--table.insert(code,"typedef struct ImVector_"..te.." {int Size;int Capacity;"..k.."* Data;} ImVector_"..te..";\n")
table.insert(code,"struct ImVector_"..te.." {int Size;int Capacity;"..k.."* Data;} ImVector_"..te..";\n")
table.insert(typedefs,"typedef struct ImVector_"..te.." ImVector_"..te..";\n")
end
end
local function gen_structs_and_enums(cdefs)
local function gen_structs_and_enums(cdefs,templates)
local function_closing_re = "}"
local namespace_re = "namespace"
local in_namespace = false
@@ -835,7 +1020,7 @@ local function gen_structs_and_enums(cdefs)
local innerstructs = {}
local typedefs_table = {}
local typedefs_dict = {}
local linetypedefs = 1 --math.huge
local outtab = {}
-- Output the file
--table.insert(outtab,"/////////////// BEGIN AUTOGENERATED SEGMENT\n")
@@ -864,13 +1049,8 @@ local function gen_structs_and_enums(cdefs)
-- ImVector special treatment
if structnames[#structnames] == "ImVector" then
if line:match(struct_closing_re) then
table.insert(outtab,[[struct ImVector
{
int Size;
int Capacity;
void* Data;
};
typedef struct ImVector ImVector;]])
table.insert(outtab,[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]].."\n")
generate_templates(outtab,templates,typedefs_table)
structnames[#structnames] = nil
end
break -- dont write
@@ -884,9 +1064,14 @@ typedef struct ImVector ImVector;]])
end
if #structnames < 2 then -- not inner
if line:match("typedef") and line:match("ImDrawIdx") then --save typedefs of ImDrawIdx
table.insert(typedefs_table,line..";\n")
--linetypedefs = math.min(linetypedefs,#outtab)
break
end
if (#structnames > 0) then
if line:match("typedef") then --dont allow inner typedefs
break
break --already saved
elseif not line:match("^{$") and not line:match(struct_closing_re) then --avoid tab { and };
--line = " "..line
end
@@ -895,6 +1080,7 @@ typedef struct ImVector ImVector;]])
local struct_closed_name = line:match(struct_closed_re)
if struct_closed_name then
table.insert(typedefs_table,"typedef struct "..struct_closed_name.." "..struct_closed_name..";\n")
--linetypedefs = math.min(linetypedefs,#outtab)
typedefs_dict[struct_closed_name] = "struct "..struct_closed_name
end
end
@@ -911,6 +1097,7 @@ typedef struct ImVector ImVector;]])
local structname = structnames[#structnames]
--st[#st + 1] = string.format("typedef struct %s %s;\n",structname,structname)
table.insert(typedefs_table,string.format("typedef struct %s %s;\n",structname,structname))
--linetypedefs = math.min(linetypedefs,#outtab)
typedefs_dict[structname] = "struct "..structname
structnames[#structnames] = nil
end
@@ -918,6 +1105,7 @@ typedef struct ImVector ImVector;]])
local structname = structnames[#structnames]
--table.insert(outtab,"typedef struct "..structname.." "..structname..";\n")
table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
--linetypedefs = math.min(linetypedefs,#outtab)
typedefs_dict[structname] = "struct "..structname
structnames[#structnames] = nil
end
@@ -937,7 +1125,7 @@ typedef struct ImVector ImVector;]])
for i,l in ipairs(typedefs_table) do
if not uniques[l] then
uniques[l] = true
table.insert(outtab,2,l)
table.insert(outtab,linetypedefs,l)
end
end
local cstructsstr = table.concat(outtab)
@@ -980,27 +1168,42 @@ local function func_header_generate(FP)
for k,v in pairs(FP.ImVector_templates) do
table.insert(outtab,"typedef ImVector<"..k.."> ImVector_"..k..";\n")
end
table.insert(outtab,"#else //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for k,v in pairs(FP.ImVector_templates) do
table.insert(outtab,"typedef ImVector ImVector_"..k..";\n")
end
-- table.insert(outtab,"#else //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
-- for k,v in pairs(FP.ImVector_templates) do
-- table.insert(outtab,"typedef ImVector ImVector_"..k..";\n")
-- end
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for _,t in ipairs(FP.cdefs) do
if t.cimguiname then
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
local manual = get_manuals(def)
if not manual and def.ret then --not constructor
local addcoment = def.comment or ""
if def.stname == "ImGui" or def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..def.args..";"..addcoment.."\n")
else
local empty = def.args:match("^%(%)") --no args
--local imgui_stname = embeded_structs[def.stname] or def.stname
local imgui_stname = def.stname
local args = def.args:gsub("^%(","("..imgui_stname.."* self"..(empty and "" or ","))
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args..";"..addcoment.."\n")
end
if not manual then
local addcoment = def.comment or ""
local empty = def.args:match("^%(%)") --no args
if def.ret then --not constructor
if def.stname == "ImGui" or def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args)..";"..addcoment.."\n")
else
--local imgui_stname = embeded_structs[def.stname] or def.stname
local imgui_stname = def.stname
local args = def.args:gsub("^%(","("..imgui_stname.."* self"..(empty and "" or ","))
table.insert(outtab,"CIMGUI_API "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args..";"..addcoment.."\n")
end
else --constructor
assert(def.stname ~= "ImGui" and def.stname ~= "","constructor without struct")
if not def.funcname:match("~") then --constructor
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args)..";"..addcoment.."\n")
if empty then
--make destructor also only once
local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args..";"..addcoment.."\n")
end
else --destructor
--already done
end
end
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
@@ -1060,13 +1263,13 @@ local function func_implementation(FP)
table.insert(outtab," return ret2;\n")
table.insert(outtab,"}\n")
end
else
else --standard ImGui
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..def.args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," return "..castret..ptret.."ImGui::"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
end
else
else -- stname
local empty = def.args:match("^%(%)") --no args
--local imgui_stname = embeded_structs[def.stname] or def.stname
local imgui_stname = def.stname
@@ -1102,35 +1305,129 @@ local function func_implementation(FP)
table.insert(outtab," return ret2;\n")
table.insert(outtab,"}\n")
end
else
else --standard struct
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," return "..castret..ptret.."self->"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
end
end
elseif not manual and not def.ret then --constructor and destructors
assert(def.stname ~= "ImGui" and def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args
if not def.funcname:match("~") then --constructor
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..(def.ov_cimguiname or def.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")
if empty then
--do destructor only once
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")
end
else --destructor
--already done
end
end
until true
end
--cppfile:close()
return table.concat(outtab)
end
--only basic ending
local c_types = {
["char"]=true,
["int"]=true,
["float"]=true,
["double"]=true,
["short"]=true,
["long"]=true,
["signed"]=true,
["unsigned"]=true,
["size_t"]=true,
["ptrdiff_t"]=true,
}
local function check_arg_detection(fdefs,typedefs)
print"-----------------check arg detection---------------------------"
for k,defT in pairs(fdefs) do
for i,def in ipairs(defT) do
for j,arg in ipairs(def.argsT) do
--check name is not type, which happens in declaration without name
if arg.name=="*" or not arg.type or not arg.name or c_types[arg.name] or typedefs[arg.name] then
print("bad argument name",arg.name, "in",def.funcname,def.args)
end
end
end
end
print"-----------------end check arg detection-----------------------"
end
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
--generate cimgui.cpp cimgui.h and auto versions depending on postfix
local function cimgui_generation(postfix,STP,FP)
--get all ImVector templates
local ImVector_templates = mergeT(STP.ImVector_templates,FP.ImVector_templates)
--merge it in cimgui_template.h to cimgui.h
local hfile = io.open("./cimgui_template.h","r")
local hstrfile = hfile:read"*a"
hfile:close()
local cstructsstr,typedefs_dict = gen_structs_and_enums(STP.lines)
local cstructsstr,typedefs_dict = gen_structs_and_enums(STP.lines,ImVector_templates)
--for not gcc parsing
if postfix == "" then
if postfix == "_nopreprocess" then
cstructsstr = "typedef unsigned short ImDrawIdx;\ntypedef void* ImTextureID;\n"..cstructsstr
end
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(FP)
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
save_data("./generated/cimgui"..postfix..".h",hstrfile)
save_data("./output/cimgui"..postfix..".h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp
@@ -1140,35 +1437,41 @@ local function cimgui_generation(postfix,STP,FP)
hfile:close()
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
hstrfile = hstrfile:gsub([[#include "cimgui%.h"]],[[#include "cimgui]]..postfix..[[.h"]])
save_data("./generated/cimgui"..postfix..".cpp",hstrfile)
save_data("./output/cimgui"..postfix..".cpp",cimgui_header,hstrfile)
return typedefs_dict
end
--------------------------------------------------------
-----------------------------do it----------------------
--------------------------------------------------------
--first without gcc
--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 STP = struct_parser()
local FP = func_parser()
for line in filelines(pipe) do
local line, comment = split_comment(line)
STP.insert(line,comment)
FP.insert(line,comment)
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()
FP:compute_overloads()
cimgui_generation("",STP,FP)
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
--then gcc
--generation
print("------------------generation with "..COMPILER.."------------------------")
local pFP,pSTP,typedefs_dict2
if HAVE_GCC then
local pipe,err = io.popen([[gcc -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]],"r")
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)
@@ -1177,27 +1480,34 @@ end
pSTP = struct_parser() --overwrite
pFP = func_parser() --overwrite
for line in location(pipe,{"imgui"}) do
local iterator = (HAVE_COMPILER and location) or filelines
for line in iterator(pipe,{"imgui"}) do
local line, comment = split_comment(line)
--line = clean_spaces(line)
--comment = ""
pSTP.insert(line,comment)
pFP.insert(line,comment)
end
pipe:close()
local ovstr = pFP:compute_overloads()
ADDnonUDT(pFP)
save_data("./generated/overloads.txt",ovstr)
typedefs_dict2 = cimgui_generation("_auto",pSTP,pFP)
save_data("./output/overloads.txt",ovstr)
typedefs_dict2 = cimgui_generation("",pSTP,pFP)
--check arg detection failure if no name in function declaration
check_arg_detection(pFP.defsT,typedefs_dict2)
end
----------save fundefs in definitions.lua for using in bindings
save_data("./generated/definitions.lua",serializeTable("defs",pFP.defsT),"\nreturn defs")
set_defines(pFP.defsT)
save_data("./output/definitions.lua",serializeTable("defs",pFP.defsT),"\nreturn defs")
----------save struct and enums lua table in structs_and_enums.lua for using in bindings
local structs_and_enums_table,typedefs_dict = gen_structs_and_enums_table(pSTP.lines)
save_data("./generated/structs_and_enums.lua",serializeTable("defs",structs_and_enums_table),"\nreturn defs")
save_data("./output/structs_and_enums.lua",serializeTable("defs",structs_and_enums_table),"\nreturn defs")
typedefs_dict = mergeT(typedefs_dict,typedefs_dict2)
save_data("./generated/typedefs_dict.lua",serializeTable("defs",typedefs_dict),"\nreturn defs")
save_data("./output/typedefs_dict.lua",serializeTable("defs",typedefs_dict),"\nreturn defs")
--=================================Now implementations
local iFP,iSTP
@@ -1211,8 +1521,8 @@ if #implementations > 0 then
local source = [[../imgui/examples/imgui_impl_]].. impl .. ".h "
local locati = [[imgui_impl_]].. impl
local pipe,err
if HAVE_GCC then
pipe,err = io.popen([[gcc -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] ..source,"r")
if HAVE_COMPILER then
pipe,err = io.popen(CPRE..source,"r")
else
pipe,err = io.open(source,"r")
end
@@ -1220,7 +1530,7 @@ if #implementations > 0 then
error("could not get file: "..err)
end
local iterator = (HAVE_GCC and location) or filelines
local iterator = (HAVE_COMPILER and location) or filelines
for line,locat in iterator(pipe,{locati}) do
local line, comment = split_comment(line)
@@ -1233,10 +1543,10 @@ if #implementations > 0 then
-- save ./cimgui_impl.h
local cfuncsstr = func_header_impl_generate(iFP)
local cstructstr = gen_structs_and_enums(iSTP.lines)
save_data("./generated/cimgui_impl.h",cstructstr,cfuncsstr)
save_data("./output/cimgui_impl.h",cstructstr,cfuncsstr)
----------save fundefs in impl_definitions.lua for using in bindings
save_data("./generated/impl_definitions.lua",serializeTable("defs",iFP.defsT),"\nreturn defs")
save_data("./output/impl_definitions.lua",serializeTable("defs",iFP.defsT),"\nreturn defs")
end -- #implementations > 0 then
@@ -1253,40 +1563,53 @@ local function json_prepare(defs)
end
return defs
end
---[[
local json = require"json"
save_data("./generated/definitions.json",json.encode(json_prepare(pFP.defsT)))
save_data("./generated/structs_and_enums.json",json.encode(structs_and_enums_table))
save_data("./generated/typedefs_dict.json",json.encode(typedefs_dict))
save_data("./output/definitions.json",json.encode(json_prepare(pFP.defsT)))
save_data("./output/structs_and_enums.json",json.encode(structs_and_enums_table))
save_data("./output/typedefs_dict.json",json.encode(typedefs_dict))
if iFP then
save_data("./generated/impl_definitions.json",json.encode(json_prepare(iFP.defsT)))
save_data("./output/impl_definitions.json",json.encode(json_prepare(iFP.defsT)))
end
--]]
copyfile("./output/cimgui.h", "../cimgui.h")
copyfile("./output/cimgui.cpp", "../cimgui.cpp")
print"all done!!"
--[[
---dump some infos-----------------------------------------------------------------------
------------------------------------------------------------------------------------
print"//-------alltypes--------------------------------------------------------------------"
FP:dump_alltypes()
pFP:dump_alltypes()
print"//embeded_structs---------------------------------------------------------------------------"
for k,v in pairs(FP.embeded_structs) do
for k,v in pairs(pFP.embeded_structs) do
--print(k,v)
io.write("typedef ",v," ",k,";\n")
end
print"//templates---------------------------------------------------------------------------"
for k,v in pairs(FP.ImVector_templates) do
for k,v in pairs(pFP.ImVector_templates) do
--print(k,v)
io.write("typedef ImVector<",k,"> ImVector_",k,";\n")
end
for k,v in pairs(pSTP.ImVector_templates) do
--print(k,v)
io.write("typedef ImVector<",k,"> ImVector_",k,";\n")
end
require"anima.utils"
print"//constructors------------------------------------------------------------------"
for i,t in ipairs(FP.cdefs) do
for i,t in ipairs(pFP.cdefs) do
if t.cimguiname and not t.ret then
print(t.cimguiname,"\t",t.signature,"\t",t.args,"\t",t.argsc,"\t",t.call_args,"\t",t.ret)
local cimf = pFP.defsT[t.cimguiname]
local def = cimf[t.signature]
if not def.ret then
print(t.cimguiname,"\t",t.signature,t.ret)
else
print"constructor error"
prtable(def)
end
end
end
print"//-------------------------------------------------------------------------------------"
for i,t in ipairs(FP.cdefs) do
for i,t in ipairs(pFP.cdefs) do
--print(t.cimguiname," ",t.funcname,"\t",t.signature,"\t",t.args,"\t",t.argsc,"\t",t.call_args,"\t",t.ret)
end
---------------------------------------------------------------------------------------------

View File

@@ -1,9 +1,34 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.65" from Dear ImGui https://github.com/ocornut/imgui
#include "./imgui/imgui.h"
#include "cimgui_auto.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
CIMGUI_API ImVec2* ImVec2_ImVec2(void)
{
return IM_NEW(ImVec2)();
}
CIMGUI_API void ImVec2_destroy(ImVec2* self)
{
IM_DELETE(self);
}
CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y)
{
return IM_NEW(ImVec2)(_x,_y);
}
CIMGUI_API ImVec4* ImVec4_ImVec4(void)
{
return IM_NEW(ImVec4)();
}
CIMGUI_API void ImVec4_destroy(ImVec4* self)
{
IM_DELETE(self);
}
CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w)
{
return IM_NEW(ImVec4)(_x,_y,_z,_w);
}
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas)
{
return ImGui::CreateContext(shared_font_atlas);
@@ -476,7 +501,7 @@ CIMGUI_API ImGuiID igGetIDStr(const char* str_id)
{
return ImGui::GetID(str_id);
}
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end)
CIMGUI_API ImGuiID igGetIDRange(const char* str_id_begin,const char* str_id_end)
{
return ImGui::GetID(str_id_begin,str_id_end);
}
@@ -1253,14 +1278,6 @@ CIMGUI_API ImU32 igColorConvertFloat4ToU32(const ImVec4 in)
{
return ImGui::ColorConvertFloat4ToU32(in);
}
CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float out_h,float out_s,float out_v)
{
return 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)
{
return ImGui::ColorConvertHSVtoRGB(h,s,v,out_r,out_g,out_b);
}
CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key)
{
return ImGui::GetKeyIndex(imgui_key);
@@ -1381,6 +1398,14 @@ CIMGUI_API void igMemFree(void* ptr)
{
return ImGui::MemFree(ptr);
}
CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void)
{
return IM_NEW(ImGuiStyle)();
}
CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor)
{
return self->ScaleAllSizes(scale_factor);
@@ -1397,6 +1422,26 @@ CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
return self->ClearInputCharacters();
}
CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void)
{
return IM_NEW(ImGuiIO)();
}
CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void)
{
return IM_NEW(ImGuiOnceUponAFrame)();
}
CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self)
{
IM_DELETE(self);
}
CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter)
{
return IM_NEW(ImGuiTextFilter)(default_filter);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
return self->Draw(label,width);
@@ -1417,6 +1462,18 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
return self->IsActive();
}
CIMGUI_API TextRange* TextRange_TextRange(void)
{
return IM_NEW(TextRange)();
}
CIMGUI_API void TextRange_destroy(TextRange* self)
{
IM_DELETE(self);
}
CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e)
{
return IM_NEW(TextRange)(_b,_e);
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
@@ -1433,6 +1490,14 @@ CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRang
{
return self->split(separator,out);
}
CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void)
{
return IM_NEW(ImGuiTextBuffer)();
}
CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self)
{
IM_DELETE(self);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
return self->begin();
@@ -1465,6 +1530,18 @@ CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,v
{
return self->appendfv(fmt,args);
}
CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i)
{
return IM_NEW(Pair)(_key,_val_i);
}
CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f)
{
return IM_NEW(Pair)(_key,_val_f);
}
CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p)
{
return IM_NEW(Pair)(_key,_val_p);
}
CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self)
{
return self->Clear();
@@ -1525,6 +1602,14 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
return self->BuildSortByKey();
}
CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void)
{
return IM_NEW(ImGuiInputTextCallbackData)();
}
CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
return self->DeleteChars(pos,bytes_count);
@@ -1537,6 +1622,14 @@ CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackDa
{
return self->HasSelection();
}
CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void)
{
return IM_NEW(ImGuiPayload)();
}
CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self)
{
return self->Clear();
@@ -1553,6 +1646,30 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
return self->IsDelivery();
}
CIMGUI_API ImColor* ImColor_ImColor(void)
{
return IM_NEW(ImColor)();
}
CIMGUI_API void ImColor_destroy(ImColor* self)
{
IM_DELETE(self);
}
CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a)
{
return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba)
{
return IM_NEW(ImColor)(rgba);
}
CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a)
{
return IM_NEW(ImColor)(r,g,b,a);
}
CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col)
{
return IM_NEW(ImColor)(col);
}
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
return self->SetHSV(h,s,v,a);
@@ -1561,6 +1678,10 @@ CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a)
{
return self->HSV(h,s,v,a);
}
CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height)
{
return IM_NEW(ImGuiListClipper)(items_count,items_height);
}
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self)
{
return self->Step();
@@ -1573,6 +1694,18 @@ CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self)
{
return self->End();
}
CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void)
{
return IM_NEW(ImDrawCmd)();
}
CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self)
{
IM_DELETE(self);
}
CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data)
{
return IM_NEW(ImDrawList)(shared_data);
}
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect)
{
return self->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect);
@@ -1777,6 +1910,14 @@ CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self)
{
return self->UpdateTextureID();
}
CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void)
{
return IM_NEW(ImDrawData)();
}
CIMGUI_API void ImDrawData_destroy(ImDrawData* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImDrawData_Clear(ImDrawData* self)
{
return self->Clear();
@@ -1789,6 +1930,22 @@ CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc)
{
return self->ScaleClipRects(sc);
}
CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void)
{
return IM_NEW(ImFontConfig)();
}
CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self)
{
IM_DELETE(self);
}
CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void)
{
return IM_NEW(ImFontAtlas)();
}
CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self)
{
IM_DELETE(self);
}
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg)
{
return self->AddFont(font_cfg);
@@ -1877,6 +2034,14 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self)
{
return self->GetGlyphRangesThai();
}
CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void)
{
return IM_NEW(GlyphRangesBuilder)();
}
CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self)
{
IM_DELETE(self);
}
CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n)
{
return self->GetBit(n);
@@ -1901,6 +2066,14 @@ CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector
{
return self->BuildRanges(out_ranges);
}
CIMGUI_API CustomRect* CustomRect_CustomRect(void)
{
return IM_NEW(CustomRect)();
}
CIMGUI_API void CustomRect_destroy(CustomRect* self)
{
IM_DELETE(self);
}
CIMGUI_API bool CustomRect_IsPacked(CustomRect* self)
{
return self->IsPacked();
@@ -1925,6 +2098,14 @@ CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCu
{
return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill);
}
CIMGUI_API ImFont* ImFont_ImFont(void)
{
return IM_NEW(ImFont)();
}
CIMGUI_API void ImFont_destroy(ImFont* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImFont_ClearOutputData(ImFont* self)
{
return self->ClearOutputData();
@@ -2226,11 +2407,34 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
buffer->appendfv(fmt, args);
va_end(args);
}
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config)
{
*config = ImFontConfig();
}
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_destroy(ImVector_ImWchar* p)
{
IM_DELETE(p);
}
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

@@ -1,6 +1,7 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.65" from Dear ImGui https://github.com/ocornut/imgui
#include <stdio.h>
#include <stdint.h>
#if defined _WIN32 || defined __CYGWIN__
#ifdef CIMGUI_NO_EXPORT
#define API
@@ -29,7 +30,7 @@
#ifdef _MSC_VER
typedef unsigned __int64 ImU64;
#else
typedef unsigned long long ImU64;
//typedef unsigned long long ImU64;
#endif
//UDT stuff
@@ -39,12 +40,30 @@ typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
typedef unsigned short ImDrawIdx;;
typedef struct Pair Pair;
typedef struct TextRange TextRange;
typedef struct ImVector_ImVec2 ImVector_ImVec2;
typedef struct ImVector_ImDrawIdx ImVector_ImDrawIdx;
typedef struct ImVector_ImVec4 ImVector_ImVec4;
typedef struct ImVector_TextRange ImVector_TextRange;
typedef struct ImVector_ImFontPtr ImVector_ImFontPtr;
typedef struct ImVector_ImDrawCmd ImVector_ImDrawCmd;
typedef struct ImVector_ImDrawVert ImVector_ImDrawVert;
typedef struct ImVector_unsigned_short ImVector_unsigned_short;
typedef struct ImVector_ImTextureID ImVector_ImTextureID;
typedef struct ImVector_char ImVector_char;
typedef struct ImVector_ImDrawChannel ImVector_ImDrawChannel;
typedef struct ImVector_CustomRect ImVector_CustomRect;
typedef struct ImVector_Pair ImVector_Pair;
typedef struct ImVector_unsigned_char ImVector_unsigned_char;
typedef struct ImVector_ImFontGlyph ImVector_ImFontGlyph;
typedef struct ImVector_ImFontConfig ImVector_ImFontConfig;
typedef struct ImVector_ImWchar ImVector_ImWchar;
typedef struct ImVector_float ImVector_float;
typedef struct ImVec4 ImVec4;
typedef struct ImVec2 ImVec2;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
@@ -568,13 +587,25 @@ struct ImGuiIO
float NavInputsDownDuration[ImGuiNavInput_COUNT];
float NavInputsDownDurationPrev[ImGuiNavInput_COUNT];
};
struct ImVector
{
int Size;
int Capacity;
void* Data;
};
typedef struct ImVector ImVector;
typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;
struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
struct ImVector_ImWchar {int Size;int Capacity;ImWchar* Data;} ImVector_ImWchar;
struct ImVector_ImFontConfig {int Size;int Capacity;ImFontConfig* Data;} ImVector_ImFontConfig;
struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
struct ImVector_unsigned_char {int Size;int Capacity;unsigned char* Data;} ImVector_unsigned_char;
struct ImVector_Pair {int Size;int Capacity;Pair* Data;} ImVector_Pair;
struct ImVector_CustomRect {int Size;int Capacity;CustomRect* Data;} ImVector_CustomRect;
struct ImVector_ImDrawChannel {int Size;int Capacity;ImDrawChannel* Data;} ImVector_ImDrawChannel;
struct ImVector_char {int Size;int Capacity;char* Data;} ImVector_char;
struct ImVector_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID;
struct ImVector_unsigned_short {int Size;int Capacity;unsigned short* Data;} ImVector_unsigned_short;
struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert;
struct ImVector_ImDrawCmd {int Size;int Capacity;ImDrawCmd* Data;} ImVector_ImDrawCmd;
struct ImVector_ImFontPtr {int Size;int Capacity;ImFont** Data;} ImVector_ImFontPtr;
struct ImVector_TextRange {int Size;int Capacity;TextRange* Data;} ImVector_TextRange;
struct ImVector_ImVec4 {int Size;int Capacity;ImVec4* Data;} ImVector_ImVec4;
struct ImVector_ImDrawIdx {int Size;int Capacity;ImDrawIdx* Data;} ImVector_ImDrawIdx;
struct ImVector_ImVec2 {int Size;int Capacity;ImVec2* Data;} ImVector_ImVec2;
struct ImNewDummy {};
struct ImGuiOnceUponAFrame
{
@@ -583,16 +614,16 @@ struct ImGuiOnceUponAFrame
struct ImGuiTextFilter
{
char InputBuf[256];
ImVector/*<TextRange>*/ Filters;
ImVector_TextRange Filters;
int CountGrep;
};
struct ImGuiTextBuffer
{
ImVector/*<char>*/ Buf;
ImVector_char Buf;
};
struct ImGuiStorage
{
ImVector/*<Pair>*/ Data;
ImVector_Pair Data;
};
struct ImGuiInputTextCallbackData
{
@@ -646,7 +677,6 @@ struct ImDrawCmd
ImDrawCallback UserCallback;
void* UserCallbackData;
};
typedef unsigned short ImDrawIdx;
struct ImDrawVert
{
ImVec2 pos;
@@ -655,8 +685,8 @@ struct ImDrawVert
};
struct ImDrawChannel
{
ImVector/*<ImDrawCmd>*/ CmdBuffer;
ImVector/*<ImDrawIdx>*/ IdxBuffer;
ImVector_ImDrawCmd CmdBuffer;
ImVector_ImDrawIdx IdxBuffer;
};
enum ImDrawCornerFlags_
{
@@ -677,21 +707,21 @@ enum ImDrawListFlags_
};
struct ImDrawList
{
ImVector/*<ImDrawCmd>*/ CmdBuffer;
ImVector/*<ImDrawIdx>*/ IdxBuffer;
ImVector/*<ImDrawVert>*/ VtxBuffer;
ImVector_ImDrawCmd CmdBuffer;
ImVector_ImDrawIdx IdxBuffer;
ImVector_ImDrawVert VtxBuffer;
ImDrawListFlags Flags;
const ImDrawListSharedData* _Data;
const char* _OwnerName;
unsigned int _VtxCurrentIdx;
ImDrawVert* _VtxWritePtr;
ImDrawIdx* _IdxWritePtr;
ImVector/*<ImVec4>*/ _ClipRectStack;
ImVector/*<ImTextureID>*/ _TextureIdStack;
ImVector/*<ImVec2>*/ _Path;
ImVector_ImVec4 _ClipRectStack;
ImVector_ImTextureID _TextureIdStack;
ImVector_ImVec2 _Path;
int _ChannelsCurrent;
int _ChannelsCount;
ImVector/*<ImDrawChannel>*/ _Channels;
ImVector_ImDrawChannel _Channels;
};
struct ImDrawData
{
@@ -750,9 +780,9 @@ struct ImFontAtlas
int TexHeight;
ImVec2 TexUvScale;
ImVec2 TexUvWhitePixel;
ImVector/*<ImFont*>*/ Fonts;
ImVector/*<CustomRect>*/ CustomRects;
ImVector/*<ImFontConfig>*/ ConfigData;
ImVector_ImFontPtr Fonts;
ImVector_CustomRect CustomRects;
ImVector_ImFontConfig ConfigData;
int CustomRectIds[1];
};
struct ImFont
@@ -760,9 +790,9 @@ struct ImFont
float FontSize;
float Scale;
ImVec2 DisplayOffset;
ImVector/*<ImFontGlyph>*/ Glyphs;
ImVector/*<float>*/ IndexAdvanceX;
ImVector/*<unsigned short>*/ IndexLookup;
ImVector_ImFontGlyph Glyphs;
ImVector_float IndexAdvanceX;
ImVector_unsigned_short IndexLookup;
const ImFontGlyph* FallbackGlyph;
float FallbackAdvanceX;
ImWchar FallbackChar;
@@ -775,7 +805,7 @@ struct ImFont
};
struct GlyphRangesBuilder
{
ImVector/*<unsigned char>*/ UsedChars;
ImVector_unsigned_char UsedChars;
};
struct CustomRect
{
@@ -832,77 +862,80 @@ typedef ImGuiTextFilter::TextRange TextRange;
typedef ImGuiStorage::Pair Pair;
typedef ImVector<TextRange> ImVector_TextRange;
typedef ImVector<ImWchar> ImVector_ImWchar;
#else //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef ImVector ImVector_TextRange;
typedef ImVector ImVector_ImWchar;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API ImVec2* ImVec2_ImVec2(void);
CIMGUI_API void ImVec2_destroy(ImVec2* self);
CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y);
CIMGUI_API ImVec4* ImVec4_ImVec4(void);
CIMGUI_API void ImVec4_destroy(ImVec4* self);
CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w);
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas);
CIMGUI_API void igDestroyContext(ImGuiContext* ctx);
CIMGUI_API ImGuiContext* igGetCurrentContext();
CIMGUI_API ImGuiContext* igGetCurrentContext(void);
CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx);
CIMGUI_API bool igDebugCheckVersionAndDataLayout(const char* version_str,size_t sz_io,size_t sz_style,size_t sz_vec2,size_t sz_vec4,size_t sz_drawvert);
CIMGUI_API ImGuiIO* igGetIO();
CIMGUI_API ImGuiStyle* igGetStyle();
CIMGUI_API void igNewFrame();
CIMGUI_API void igEndFrame();
CIMGUI_API void igRender();
CIMGUI_API ImDrawData* igGetDrawData();
CIMGUI_API ImGuiIO* igGetIO(void);
CIMGUI_API ImGuiStyle* igGetStyle(void);
CIMGUI_API void igNewFrame(void);
CIMGUI_API void igEndFrame(void);
CIMGUI_API void igRender(void);
CIMGUI_API ImDrawData* igGetDrawData(void);
CIMGUI_API void igShowDemoWindow(bool* p_open);
CIMGUI_API void igShowMetricsWindow(bool* p_open);
CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref);
CIMGUI_API bool igShowStyleSelector(const char* label);
CIMGUI_API void igShowFontSelector(const char* label);
CIMGUI_API void igShowUserGuide();
CIMGUI_API const char* igGetVersion();
CIMGUI_API void igShowUserGuide(void);
CIMGUI_API const char* igGetVersion(void);
CIMGUI_API void igStyleColorsDark(ImGuiStyle* dst);
CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst);
CIMGUI_API void igStyleColorsLight(ImGuiStyle* dst);
CIMGUI_API bool igBegin(const char* name,bool* p_open,ImGuiWindowFlags flags);
CIMGUI_API void igEnd();
CIMGUI_API void igEnd(void);
CIMGUI_API bool igBeginChild(const char* str_id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
CIMGUI_API bool igBeginChildID(ImGuiID id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
CIMGUI_API void igEndChild();
CIMGUI_API bool igIsWindowAppearing();
CIMGUI_API bool igIsWindowCollapsed();
CIMGUI_API void igEndChild(void);
CIMGUI_API bool igIsWindowAppearing(void);
CIMGUI_API bool igIsWindowCollapsed(void);
CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags);
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags flags);
CIMGUI_API ImDrawList* igGetWindowDrawList();
CIMGUI_API ImVec2 igGetWindowPos();
CIMGUI_API ImVec2 igGetWindowSize();
CIMGUI_API float igGetWindowWidth();
CIMGUI_API float igGetWindowHeight();
CIMGUI_API ImVec2 igGetContentRegionMax();
CIMGUI_API ImVec2 igGetContentRegionAvail();
CIMGUI_API float igGetContentRegionAvailWidth();
CIMGUI_API ImVec2 igGetWindowContentRegionMin();
CIMGUI_API ImVec2 igGetWindowContentRegionMax();
CIMGUI_API float igGetWindowContentRegionWidth();
CIMGUI_API ImDrawList* igGetWindowDrawList(void);
CIMGUI_API ImVec2 igGetWindowPos(void);
CIMGUI_API ImVec2 igGetWindowSize(void);
CIMGUI_API float igGetWindowWidth(void);
CIMGUI_API float igGetWindowHeight(void);
CIMGUI_API ImVec2 igGetContentRegionMax(void);
CIMGUI_API ImVec2 igGetContentRegionAvail(void);
CIMGUI_API float igGetContentRegionAvailWidth(void);
CIMGUI_API ImVec2 igGetWindowContentRegionMin(void);
CIMGUI_API ImVec2 igGetWindowContentRegionMax(void);
CIMGUI_API float igGetWindowContentRegionWidth(void);
CIMGUI_API void igSetNextWindowPos(const ImVec2 pos,ImGuiCond cond,const ImVec2 pivot);
CIMGUI_API void igSetNextWindowSize(const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetNextWindowSizeConstraints(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,void* custom_callback_data);
CIMGUI_API void igSetNextWindowContentSize(const ImVec2 size);
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetNextWindowFocus();
CIMGUI_API void igSetNextWindowFocus(void);
CIMGUI_API void igSetNextWindowBgAlpha(float alpha);
CIMGUI_API void igSetWindowPosVec2(const ImVec2 pos,ImGuiCond cond);
CIMGUI_API void igSetWindowSizeVec2(const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetWindowCollapsedBool(bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetWindowFocus();
CIMGUI_API void igSetWindowFocus(void);
CIMGUI_API void igSetWindowFontScale(float scale);
CIMGUI_API void igSetWindowPosStr(const char* name,const ImVec2 pos,ImGuiCond cond);
CIMGUI_API void igSetWindowSizeStr(const char* name,const ImVec2 size,ImGuiCond cond);
CIMGUI_API void igSetWindowCollapsedStr(const char* name,bool collapsed,ImGuiCond cond);
CIMGUI_API void igSetWindowFocusStr(const char* name);
CIMGUI_API float igGetScrollX();
CIMGUI_API float igGetScrollY();
CIMGUI_API float igGetScrollMaxX();
CIMGUI_API float igGetScrollMaxY();
CIMGUI_API float igGetScrollX(void);
CIMGUI_API float igGetScrollY(void);
CIMGUI_API float igGetScrollMaxX(void);
CIMGUI_API float igGetScrollMaxY(void);
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 igPushFont(ImFont* font);
CIMGUI_API void igPopFont();
CIMGUI_API void igPopFont(void);
CIMGUI_API void igPushStyleColorU32(ImGuiCol idx,ImU32 col);
CIMGUI_API void igPushStyleColor(ImGuiCol idx,const ImVec4 col);
CIMGUI_API void igPopStyleColor(int count);
@@ -910,51 +943,51 @@ CIMGUI_API void igPushStyleVarFloat(ImGuiStyleVar idx,float val);
CIMGUI_API void igPushStyleVarVec2(ImGuiStyleVar idx,const ImVec2 val);
CIMGUI_API void igPopStyleVar(int count);
CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx);
CIMGUI_API ImFont* igGetFont();
CIMGUI_API float igGetFontSize();
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel();
CIMGUI_API ImFont* igGetFont(void);
CIMGUI_API float igGetFontSize(void);
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel(void);
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx,float alpha_mul);
CIMGUI_API ImU32 igGetColorU32Vec4(const ImVec4 col);
CIMGUI_API ImU32 igGetColorU32U32(ImU32 col);
CIMGUI_API void igPushItemWidth(float item_width);
CIMGUI_API void igPopItemWidth();
CIMGUI_API float igCalcItemWidth();
CIMGUI_API void igPopItemWidth(void);
CIMGUI_API float igCalcItemWidth(void);
CIMGUI_API void igPushTextWrapPos(float wrap_pos_x);
CIMGUI_API void igPopTextWrapPos();
CIMGUI_API void igPopTextWrapPos(void);
CIMGUI_API void igPushAllowKeyboardFocus(bool allow_keyboard_focus);
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPopAllowKeyboardFocus(void);
CIMGUI_API void igPushButtonRepeat(bool repeat);
CIMGUI_API void igPopButtonRepeat();
CIMGUI_API void igSeparator();
CIMGUI_API void igPopButtonRepeat(void);
CIMGUI_API void igSeparator(void);
CIMGUI_API void igSameLine(float pos_x,float spacing_w);
CIMGUI_API void igNewLine();
CIMGUI_API void igSpacing();
CIMGUI_API void igNewLine(void);
CIMGUI_API void igSpacing(void);
CIMGUI_API void igDummy(const 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 ImVec2 igGetCursorPos();
CIMGUI_API float igGetCursorPosX();
CIMGUI_API float igGetCursorPosY();
CIMGUI_API void igBeginGroup(void);
CIMGUI_API void igEndGroup(void);
CIMGUI_API ImVec2 igGetCursorPos(void);
CIMGUI_API float igGetCursorPosX(void);
CIMGUI_API float igGetCursorPosY(void);
CIMGUI_API void igSetCursorPos(const ImVec2 local_pos);
CIMGUI_API void igSetCursorPosX(float x);
CIMGUI_API void igSetCursorPosY(float y);
CIMGUI_API ImVec2 igGetCursorStartPos();
CIMGUI_API ImVec2 igGetCursorScreenPos();
CIMGUI_API ImVec2 igGetCursorStartPos(void);
CIMGUI_API ImVec2 igGetCursorScreenPos(void);
CIMGUI_API void igSetCursorScreenPos(const ImVec2 screen_pos);
CIMGUI_API void igAlignTextToFramePadding();
CIMGUI_API float igGetTextLineHeight();
CIMGUI_API float igGetTextLineHeightWithSpacing();
CIMGUI_API float igGetFrameHeight();
CIMGUI_API float igGetFrameHeightWithSpacing();
CIMGUI_API void igAlignTextToFramePadding(void);
CIMGUI_API float igGetTextLineHeight(void);
CIMGUI_API float igGetTextLineHeightWithSpacing(void);
CIMGUI_API float igGetFrameHeight(void);
CIMGUI_API float igGetFrameHeightWithSpacing(void);
CIMGUI_API void igPushIDStr(const char* str_id);
CIMGUI_API void igPushIDRange(const char* str_id_begin,const char* str_id_end);
CIMGUI_API void igPushIDPtr(const void* ptr_id);
CIMGUI_API void igPushIDInt(int int_id);
CIMGUI_API void igPopID();
CIMGUI_API void igPopID(void);
CIMGUI_API ImGuiID igGetIDStr(const char* str_id);
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end);
CIMGUI_API ImGuiID igGetIDRange(const char* str_id_begin,const char* str_id_end);
CIMGUI_API ImGuiID igGetIDPtr(const void* ptr_id);
CIMGUI_API void igTextUnformatted(const char* text,const char* text_end);
CIMGUI_API void igText(const char* fmt,...);
@@ -980,9 +1013,9 @@ CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned i
CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
CIMGUI_API void igBullet();
CIMGUI_API void igBullet(void);
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
CIMGUI_API void igEndCombo();
CIMGUI_API void igEndCombo(void);
CIMGUI_API bool igCombo(const char* label,int* current_item,const char* const items[],int items_count,int popup_max_height_in_items);
CIMGUI_API bool igComboStr(const char* label,int* current_item,const char* items_separated_by_zeros,int popup_max_height_in_items);
CIMGUI_API bool igComboFnPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int popup_max_height_in_items);
@@ -1043,9 +1076,9 @@ CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,con
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 igTreePop(void);
CIMGUI_API void igTreeAdvanceToLabelPos(void);
CIMGUI_API float igGetTreeNodeToLabelSpacing(void);
CIMGUI_API void igSetNextTreeNodeOpen(bool is_open,ImGuiCond cond);
CIMGUI_API bool igCollapsingHeader(const char* label,ImGuiTreeNodeFlags flags);
CIMGUI_API bool igCollapsingHeaderBoolPtr(const char* label,bool* p_open,ImGuiTreeNodeFlags flags);
@@ -1055,7 +1088,7 @@ CIMGUI_API bool igListBoxStr_arr(const char* label,int* current_item,const char*
CIMGUI_API bool igListBoxFnPtr(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 igListBoxHeaderVec2(const char* label,const ImVec2 size);
CIMGUI_API bool igListBoxHeaderInt(const char* label,int items_count,int height_in_items);
CIMGUI_API void igListBoxFooter();
CIMGUI_API void igListBoxFooter(void);
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,ImVec2 graph_size,int stride);
CIMGUI_API void igPlotLinesFnPtr(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,ImVec2 graph_size);
CIMGUI_API void igPlotHistogramFloatPtr(const char* label,const float* values,int values_count,int values_offset,const char* overlay_text,float scale_min,float scale_max,ImVec2 graph_size,int stride);
@@ -1064,16 +1097,16 @@ 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 bool igBeginMainMenuBar();
CIMGUI_API void igEndMainMenuBar();
CIMGUI_API bool igBeginMenuBar();
CIMGUI_API void igEndMenuBar();
CIMGUI_API bool igBeginMainMenuBar(void);
CIMGUI_API void igEndMainMenuBar(void);
CIMGUI_API bool igBeginMenuBar(void);
CIMGUI_API void igEndMenuBar(void);
CIMGUI_API bool igBeginMenu(const char* label,bool enabled);
CIMGUI_API void igEndMenu();
CIMGUI_API void igEndMenu(void);
CIMGUI_API bool igMenuItemBool(const char* label,const char* shortcut,bool selected,bool enabled);
CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p_selected,bool enabled);
CIMGUI_API void igBeginTooltip();
CIMGUI_API void igEndTooltip();
CIMGUI_API void igBeginTooltip(void);
CIMGUI_API void igEndTooltip(void);
CIMGUI_API void igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API void igOpenPopup(const char* str_id);
@@ -1082,87 +1115,85 @@ CIMGUI_API bool igBeginPopupContextItem(const char* str_id,int mouse_button);
CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,int mouse_button,bool also_over_items);
CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,int mouse_button);
CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags);
CIMGUI_API void igEndPopup();
CIMGUI_API void igEndPopup(void);
CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,int mouse_button);
CIMGUI_API bool igIsPopupOpen(const char* str_id);
CIMGUI_API void igCloseCurrentPopup();
CIMGUI_API void igCloseCurrentPopup(void);
CIMGUI_API void igColumns(int count,const char* id,bool border);
CIMGUI_API void igNextColumn();
CIMGUI_API int igGetColumnIndex();
CIMGUI_API void igNextColumn(void);
CIMGUI_API int igGetColumnIndex(void);
CIMGUI_API float igGetColumnWidth(int column_index);
CIMGUI_API void igSetColumnWidth(int column_index,float width);
CIMGUI_API float igGetColumnOffset(int column_index);
CIMGUI_API void igSetColumnOffset(int column_index,float offset_x);
CIMGUI_API int igGetColumnsCount();
CIMGUI_API int igGetColumnsCount(void);
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 igLogFinish(void);
CIMGUI_API void igLogButtons(void);
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags);
CIMGUI_API bool igSetDragDropPayload(const char* type,const void* data,size_t size,ImGuiCond cond);
CIMGUI_API void igEndDragDropSource();
CIMGUI_API bool igBeginDragDropTarget();
CIMGUI_API void igEndDragDropSource(void);
CIMGUI_API bool igBeginDragDropTarget(void);
CIMGUI_API const ImGuiPayload* igAcceptDragDropPayload(const char* type,ImGuiDragDropFlags flags);
CIMGUI_API void igEndDragDropTarget();
CIMGUI_API void igEndDragDropTarget(void);
CIMGUI_API void igPushClipRect(const ImVec2 clip_rect_min,const ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
CIMGUI_API void igPopClipRect();
CIMGUI_API void igSetItemDefaultFocus();
CIMGUI_API void igPopClipRect(void);
CIMGUI_API void igSetItemDefaultFocus(void);
CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
CIMGUI_API bool igIsItemActive();
CIMGUI_API bool igIsItemFocused();
CIMGUI_API bool igIsItemActive(void);
CIMGUI_API bool igIsItemFocused(void);
CIMGUI_API bool igIsItemClicked(int mouse_button);
CIMGUI_API bool igIsItemVisible();
CIMGUI_API bool igIsItemEdited();
CIMGUI_API bool igIsItemDeactivated();
CIMGUI_API bool igIsItemDeactivatedAfterEdit();
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API bool igIsAnyItemFocused();
CIMGUI_API ImVec2 igGetItemRectMin();
CIMGUI_API ImVec2 igGetItemRectMax();
CIMGUI_API ImVec2 igGetItemRectSize();
CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsItemVisible(void);
CIMGUI_API bool igIsItemEdited(void);
CIMGUI_API bool igIsItemDeactivated(void);
CIMGUI_API bool igIsItemDeactivatedAfterEdit(void);
CIMGUI_API bool igIsAnyItemHovered(void);
CIMGUI_API bool igIsAnyItemActive(void);
CIMGUI_API bool igIsAnyItemFocused(void);
CIMGUI_API ImVec2 igGetItemRectMin(void);
CIMGUI_API ImVec2 igGetItemRectMax(void);
CIMGUI_API ImVec2 igGetItemRectSize(void);
CIMGUI_API void igSetItemAllowOverlap(void);
CIMGUI_API bool igIsRectVisible(const ImVec2 size);
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max);
CIMGUI_API double igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API ImDrawList* igGetOverlayDrawList();
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData();
CIMGUI_API double igGetTime(void);
CIMGUI_API int igGetFrameCount(void);
CIMGUI_API ImDrawList* igGetOverlayDrawList(void);
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void);
CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx);
CIMGUI_API void igSetStateStorage(ImGuiStorage* storage);
CIMGUI_API ImGuiStorage* igGetStateStorage();
CIMGUI_API ImGuiStorage* igGetStateStorage(void);
CIMGUI_API ImVec2 igCalcTextSize(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 ImVec2 size,ImGuiWindowFlags flags);
CIMGUI_API void igEndChildFrame();
CIMGUI_API void igEndChildFrame(void);
CIMGUI_API ImVec4 igColorConvertU32ToFloat4(ImU32 in);
CIMGUI_API ImU32 igColorConvertFloat4ToU32(const 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 int igGetKeyPressedAmount(int key_index,float repeat_delay,float rate);
CIMGUI_API bool igIsMouseDown(int button);
CIMGUI_API bool igIsAnyMouseDown();
CIMGUI_API bool igIsAnyMouseDown(void);
CIMGUI_API bool igIsMouseClicked(int button,bool repeat);
CIMGUI_API bool igIsMouseDoubleClicked(int button);
CIMGUI_API bool igIsMouseReleased(int button);
CIMGUI_API bool igIsMouseDragging(int button,float lock_threshold);
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
CIMGUI_API ImVec2 igGetMousePos();
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup();
CIMGUI_API ImVec2 igGetMousePos(void);
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup(void);
CIMGUI_API ImVec2 igGetMouseDragDelta(int button,float lock_threshold);
CIMGUI_API void igResetMouseDragDelta(int button);
CIMGUI_API ImGuiMouseCursor igGetMouseCursor();
CIMGUI_API ImGuiMouseCursor igGetMouseCursor(void);
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type);
CIMGUI_API void igCaptureKeyboardFromApp(bool capture);
CIMGUI_API void igCaptureMouseFromApp(bool capture);
CIMGUI_API const char* igGetClipboardText();
CIMGUI_API const char* igGetClipboardText(void);
CIMGUI_API void igSetClipboardText(const char* text);
CIMGUI_API void igLoadIniSettingsFromDisk(const char* ini_filename);
CIMGUI_API void igLoadIniSettingsFromMemory(const char* ini_data,size_t ini_size);
@@ -1171,19 +1202,31 @@ CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size);
CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
CIMGUI_API void* igMemAlloc(size_t size);
CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void);
CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self);
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars);
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void);
CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self);
CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void);
CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self);
CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter);
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
CIMGUI_API TextRange* TextRange_TextRange(void);
CIMGUI_API void TextRange_destroy(TextRange* self);
CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out);
CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void);
CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
@@ -1192,6 +1235,9 @@ CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity);
CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args);
CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i);
CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f);
CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p);
CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self);
CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val);
CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val);
@@ -1207,18 +1253,32 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val);
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void);
CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self);
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void);
CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self);
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
CIMGUI_API ImColor* ImColor_ImColor(void);
CIMGUI_API void ImColor_destroy(ImColor* self);
CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a);
CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba);
CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a);
CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col);
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height);
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self);
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height);
CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self);
CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void);
CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self);
CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data);
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect);
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
@@ -1270,9 +1330,15 @@ CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void);
CIMGUI_API void ImDrawData_destroy(ImDrawData* self);
CIMGUI_API void ImDrawData_Clear(ImDrawData* self);
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self);
CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc);
CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void);
CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self);
CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void);
CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self);
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
@@ -1295,18 +1361,24 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* sel
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self);
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self);
CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self);
CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void);
CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self);
CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n);
CIMGUI_API void GlyphRangesBuilder_SetBit(GlyphRangesBuilder* self,int n);
CIMGUI_API void GlyphRangesBuilder_AddChar(GlyphRangesBuilder* self,ImWchar c);
CIMGUI_API void GlyphRangesBuilder_AddText(GlyphRangesBuilder* self,const char* text,const char* text_end);
CIMGUI_API void GlyphRangesBuilder_AddRanges(GlyphRangesBuilder* self,const ImWchar* ranges);
CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector_ImWchar* out_ranges);
CIMGUI_API CustomRect* CustomRect_CustomRect(void);
CIMGUI_API void CustomRect_destroy(CustomRect* self);
CIMGUI_API bool CustomRect_IsPacked(CustomRect* self);
CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,unsigned int id,int width,int height);
CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset);
CIMGUI_API const CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index);
CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const CustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max);
CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]);
CIMGUI_API ImFont* ImFont_ImFont(void);
CIMGUI_API void ImFont_destroy(ImFont* self);
CIMGUI_API void ImFont_ClearOutputData(ImFont* self);
CIMGUI_API void ImFont_BuildLookupTable(ImFont* self);
CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c);
@@ -1323,39 +1395,39 @@ CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size);
CIMGUI_API void ImFont_AddGlyph(ImFont* self,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x);
CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst);
CIMGUI_API void igGetWindowPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowPos_nonUDT2(void);
CIMGUI_API void igGetWindowSize_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowSize_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowSize_nonUDT2(void);
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetContentRegionMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetContentRegionMax_nonUDT2(void);
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetContentRegionAvail_nonUDT2();
CIMGUI_API ImVec2_Simple igGetContentRegionAvail_nonUDT2(void);
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMin_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMin_nonUDT2(void);
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetWindowContentRegionMax_nonUDT2(void);
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2();
CIMGUI_API ImVec2_Simple igGetFontTexUvWhitePixel_nonUDT2(void);
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorPos_nonUDT2(void);
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorStartPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorStartPos_nonUDT2(void);
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetCursorScreenPos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetCursorScreenPos_nonUDT2(void);
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectMin_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectMin_nonUDT2(void);
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectMax_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectMax_nonUDT2(void);
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetItemRectSize_nonUDT2();
CIMGUI_API ImVec2_Simple igGetItemRectSize_nonUDT2(void);
CIMGUI_API void igCalcTextSize_nonUDT(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
CIMGUI_API ImVec2_Simple igCalcTextSize_nonUDT2(const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width);
CIMGUI_API void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in);
CIMGUI_API ImVec4_Simple igColorConvertU32ToFloat4_nonUDT2(ImU32 in);
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetMousePos_nonUDT2();
CIMGUI_API ImVec2_Simple igGetMousePos_nonUDT2(void);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut);
CIMGUI_API ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2();
CIMGUI_API ImVec2_Simple igGetMousePosOnOpeningCurrentPopup_nonUDT2(void);
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold);
CIMGUI_API ImVec2_Simple igGetMouseDragDelta_nonUDT2(int button,float lock_threshold);
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a);
@@ -1373,8 +1445,17 @@ CIMGUI_API ImVec2_Simple ImFont_CalcTextSizeA_nonUDT2(ImFont* self,float size,fl
CIMGUI_API void igLogText(CONST char *fmt, ...);
//no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
CIMGUI_API void ImFontConfig_DefaultConstructor(ImFontConfig *config);
//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_destroy(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);

View File

@@ -1,6 +1,6 @@
struct GLFWwindow;
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);

File diff suppressed because one or more lines are too long

View File

@@ -2132,6 +2132,7 @@ defs["igColorConvertRGBtoHSV"][1]["funcname"] = "ColorConvertRGBtoHSV"
defs["igColorConvertRGBtoHSV"][1]["args"] = "(float r,float g,float b,float out_h,float out_s,float out_v)"
defs["igColorConvertRGBtoHSV"][1]["ret"] = "void"
defs["igColorConvertRGBtoHSV"][1]["comment"] = ""
defs["igColorConvertRGBtoHSV"][1]["manual"] = true
defs["igColorConvertRGBtoHSV"][1]["call_args"] = "(r,g,b,out_h,out_s,out_v)"
defs["igColorConvertRGBtoHSV"][1]["argsoriginal"] = "(float r,float g,float b,float& out_h,float& out_s,float& out_v)"
defs["igColorConvertRGBtoHSV"][1]["stname"] = "ImGui"
@@ -2573,8 +2574,8 @@ defs["igPlotLines"][1]["ov_cimguiname"] = "igPlotLines"
defs["igPlotLines"][1]["defaults"] = {}
defs["igPlotLines"][1]["defaults"]["overlay_text"] = "((void *)0)"
defs["igPlotLines"][1]["defaults"]["values_offset"] = "0"
defs["igPlotLines"][1]["defaults"]["scale_max"] = "3.40282346638528859812e+38F"
defs["igPlotLines"][1]["defaults"]["scale_min"] = "3.40282346638528859812e+38F"
defs["igPlotLines"][1]["defaults"]["scale_max"] = "FLT_MAX"
defs["igPlotLines"][1]["defaults"]["scale_min"] = "FLT_MAX"
defs["igPlotLines"][1]["defaults"]["stride"] = "sizeof(float)"
defs["igPlotLines"][1]["defaults"]["graph_size"] = "ImVec2(0,0)"
defs["igPlotLines"][1]["signature"] = "(const char*,const float*,int,int,const char*,float,float,ImVec2,int)"
@@ -2621,8 +2622,8 @@ defs["igPlotLines"][2]["ov_cimguiname"] = "igPlotLinesFnPtr"
defs["igPlotLines"][2]["defaults"] = {}
defs["igPlotLines"][2]["defaults"]["overlay_text"] = "((void *)0)"
defs["igPlotLines"][2]["defaults"]["values_offset"] = "0"
defs["igPlotLines"][2]["defaults"]["scale_max"] = "3.40282346638528859812e+38F"
defs["igPlotLines"][2]["defaults"]["scale_min"] = "3.40282346638528859812e+38F"
defs["igPlotLines"][2]["defaults"]["scale_max"] = "FLT_MAX"
defs["igPlotLines"][2]["defaults"]["scale_min"] = "FLT_MAX"
defs["igPlotLines"][2]["defaults"]["graph_size"] = "ImVec2(0,0)"
defs["igPlotLines"][2]["signature"] = "(const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)"
defs["igPlotLines"][2]["cimguiname"] = "igPlotLines"
@@ -2996,8 +2997,8 @@ defs["igPlotHistogram"][1]["ov_cimguiname"] = "igPlotHistogramFloatPtr"
defs["igPlotHistogram"][1]["defaults"] = {}
defs["igPlotHistogram"][1]["defaults"]["overlay_text"] = "((void *)0)"
defs["igPlotHistogram"][1]["defaults"]["values_offset"] = "0"
defs["igPlotHistogram"][1]["defaults"]["scale_max"] = "3.40282346638528859812e+38F"
defs["igPlotHistogram"][1]["defaults"]["scale_min"] = "3.40282346638528859812e+38F"
defs["igPlotHistogram"][1]["defaults"]["scale_max"] = "FLT_MAX"
defs["igPlotHistogram"][1]["defaults"]["scale_min"] = "FLT_MAX"
defs["igPlotHistogram"][1]["defaults"]["stride"] = "sizeof(float)"
defs["igPlotHistogram"][1]["defaults"]["graph_size"] = "ImVec2(0,0)"
defs["igPlotHistogram"][1]["signature"] = "(const char*,const float*,int,int,const char*,float,float,ImVec2,int)"
@@ -3044,8 +3045,8 @@ defs["igPlotHistogram"][2]["ov_cimguiname"] = "igPlotHistogramFnPtr"
defs["igPlotHistogram"][2]["defaults"] = {}
defs["igPlotHistogram"][2]["defaults"]["overlay_text"] = "((void *)0)"
defs["igPlotHistogram"][2]["defaults"]["values_offset"] = "0"
defs["igPlotHistogram"][2]["defaults"]["scale_max"] = "3.40282346638528859812e+38F"
defs["igPlotHistogram"][2]["defaults"]["scale_min"] = "3.40282346638528859812e+38F"
defs["igPlotHistogram"][2]["defaults"]["scale_max"] = "FLT_MAX"
defs["igPlotHistogram"][2]["defaults"]["scale_min"] = "FLT_MAX"
defs["igPlotHistogram"][2]["defaults"]["graph_size"] = "ImVec2(0,0)"
defs["igPlotHistogram"][2]["signature"] = "(const char*,float(*)(void*,int),void*,int,int,const char*,float,float,ImVec2)"
defs["igPlotHistogram"][2]["cimguiname"] = "igPlotHistogram"
@@ -4134,7 +4135,7 @@ defs["igGetID"][2]["argsT"][1]["name"] = "str_id_begin"
defs["igGetID"][2]["argsT"][2] = {}
defs["igGetID"][2]["argsT"][2]["type"] = "const char*"
defs["igGetID"][2]["argsT"][2]["name"] = "str_id_end"
defs["igGetID"][2]["ov_cimguiname"] = "igGetIDStrStr"
defs["igGetID"][2]["ov_cimguiname"] = "igGetIDRange"
defs["igGetID"][2]["defaults"] = {}
defs["igGetID"][2]["signature"] = "(const char*,const char*)"
defs["igGetID"][2]["cimguiname"] = "igGetID"
@@ -4333,6 +4334,7 @@ defs["igLogText"][1]["funcname"] = "LogText"
defs["igLogText"][1]["args"] = "(const char* fmt,...)"
defs["igLogText"][1]["ret"] = "void"
defs["igLogText"][1]["comment"] = ""
defs["igLogText"][1]["manual"] = true
defs["igLogText"][1]["call_args"] = "(fmt,...)"
defs["igLogText"][1]["argsoriginal"] = "(const char* fmt,...)"
defs["igLogText"][1]["stname"] = "ImGui"
@@ -7670,6 +7672,7 @@ defs["ImGuiTextBuffer_appendf"][1]["funcname"] = "appendf"
defs["ImGuiTextBuffer_appendf"][1]["args"] = "(const char* fmt,...)"
defs["ImGuiTextBuffer_appendf"][1]["ret"] = "void"
defs["ImGuiTextBuffer_appendf"][1]["comment"] = ""
defs["ImGuiTextBuffer_appendf"][1]["manual"] = true
defs["ImGuiTextBuffer_appendf"][1]["call_args"] = "(fmt,...)"
defs["ImGuiTextBuffer_appendf"][1]["argsoriginal"] = "(const char* fmt,...)"
defs["ImGuiTextBuffer_appendf"][1]["stname"] = "ImGuiTextBuffer"
@@ -9004,6 +9007,7 @@ defs["igColorConvertHSVtoRGB"][1]["funcname"] = "ColorConvertHSVtoRGB"
defs["igColorConvertHSVtoRGB"][1]["args"] = "(float h,float s,float v,float out_r,float out_g,float out_b)"
defs["igColorConvertHSVtoRGB"][1]["ret"] = "void"
defs["igColorConvertHSVtoRGB"][1]["comment"] = ""
defs["igColorConvertHSVtoRGB"][1]["manual"] = true
defs["igColorConvertHSVtoRGB"][1]["call_args"] = "(h,s,v,out_r,out_g,out_b)"
defs["igColorConvertHSVtoRGB"][1]["argsoriginal"] = "(float h,float s,float v,float& out_r,float& out_g,float& out_b)"
defs["igColorConvertHSVtoRGB"][1]["stname"] = "ImGui"

View File

@@ -43,7 +43,7 @@ igMenuItem 2
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
igGetID 3
1 ImGuiID igGetIDStr (const char*)
2 ImGuiID igGetIDStrStr (const char*,const char*)
2 ImGuiID igGetIDRange (const char*,const char*)
3 ImGuiID igGetIDPtr (const void*)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)

File diff suppressed because one or more lines are too long

View File

@@ -929,37 +929,37 @@ defs["enums"]["ImGuiMouseCursor_"][2]["calc_value"] = 0
defs["enums"]["ImGuiMouseCursor_"][2]["name"] = "ImGuiMouseCursor_Arrow"
defs["enums"]["ImGuiMouseCursor_"][2]["value"] = "0"
defs["enums"]["ImGuiMouseCursor_"][3] = {}
defs["enums"]["ImGuiMouseCursor_"][3]["calc_value"] = 2
defs["enums"]["ImGuiMouseCursor_"][3]["calc_value"] = 1
defs["enums"]["ImGuiMouseCursor_"][3]["name"] = "ImGuiMouseCursor_TextInput"
defs["enums"]["ImGuiMouseCursor_"][3]["value"] = 2
defs["enums"]["ImGuiMouseCursor_"][3]["value"] = 1
defs["enums"]["ImGuiMouseCursor_"][4] = {}
defs["enums"]["ImGuiMouseCursor_"][4]["calc_value"] = 3
defs["enums"]["ImGuiMouseCursor_"][4]["calc_value"] = 2
defs["enums"]["ImGuiMouseCursor_"][4]["name"] = "ImGuiMouseCursor_ResizeAll"
defs["enums"]["ImGuiMouseCursor_"][4]["value"] = 3
defs["enums"]["ImGuiMouseCursor_"][4]["value"] = 2
defs["enums"]["ImGuiMouseCursor_"][5] = {}
defs["enums"]["ImGuiMouseCursor_"][5]["calc_value"] = 4
defs["enums"]["ImGuiMouseCursor_"][5]["calc_value"] = 3
defs["enums"]["ImGuiMouseCursor_"][5]["name"] = "ImGuiMouseCursor_ResizeNS"
defs["enums"]["ImGuiMouseCursor_"][5]["value"] = 4
defs["enums"]["ImGuiMouseCursor_"][5]["value"] = 3
defs["enums"]["ImGuiMouseCursor_"][6] = {}
defs["enums"]["ImGuiMouseCursor_"][6]["calc_value"] = 5
defs["enums"]["ImGuiMouseCursor_"][6]["calc_value"] = 4
defs["enums"]["ImGuiMouseCursor_"][6]["name"] = "ImGuiMouseCursor_ResizeEW"
defs["enums"]["ImGuiMouseCursor_"][6]["value"] = 5
defs["enums"]["ImGuiMouseCursor_"][6]["value"] = 4
defs["enums"]["ImGuiMouseCursor_"][7] = {}
defs["enums"]["ImGuiMouseCursor_"][7]["calc_value"] = 6
defs["enums"]["ImGuiMouseCursor_"][7]["calc_value"] = 5
defs["enums"]["ImGuiMouseCursor_"][7]["name"] = "ImGuiMouseCursor_ResizeNESW"
defs["enums"]["ImGuiMouseCursor_"][7]["value"] = 6
defs["enums"]["ImGuiMouseCursor_"][7]["value"] = 5
defs["enums"]["ImGuiMouseCursor_"][8] = {}
defs["enums"]["ImGuiMouseCursor_"][8]["calc_value"] = 7
defs["enums"]["ImGuiMouseCursor_"][8]["calc_value"] = 6
defs["enums"]["ImGuiMouseCursor_"][8]["name"] = "ImGuiMouseCursor_ResizeNWSE"
defs["enums"]["ImGuiMouseCursor_"][8]["value"] = 7
defs["enums"]["ImGuiMouseCursor_"][8]["value"] = 6
defs["enums"]["ImGuiMouseCursor_"][9] = {}
defs["enums"]["ImGuiMouseCursor_"][9]["calc_value"] = 8
defs["enums"]["ImGuiMouseCursor_"][9]["calc_value"] = 7
defs["enums"]["ImGuiMouseCursor_"][9]["name"] = "ImGuiMouseCursor_Hand"
defs["enums"]["ImGuiMouseCursor_"][9]["value"] = 8
defs["enums"]["ImGuiMouseCursor_"][9]["value"] = 7
defs["enums"]["ImGuiMouseCursor_"][10] = {}
defs["enums"]["ImGuiMouseCursor_"][10]["calc_value"] = 9
defs["enums"]["ImGuiMouseCursor_"][10]["calc_value"] = 8
defs["enums"]["ImGuiMouseCursor_"][10]["name"] = "ImGuiMouseCursor_COUNT"
defs["enums"]["ImGuiMouseCursor_"][10]["value"] = 9
defs["enums"]["ImGuiMouseCursor_"][10]["value"] = 8
defs["enums"]["ImGuiColorEditFlags_"] = {}
defs["enums"]["ImGuiColorEditFlags_"][1] = {}
defs["enums"]["ImGuiColorEditFlags_"][1]["calc_value"] = 0
@@ -1124,9 +1124,9 @@ defs["enums"]["ImGuiDir_"][5]["calc_value"] = 3
defs["enums"]["ImGuiDir_"][5]["name"] = "ImGuiDir_Down"
defs["enums"]["ImGuiDir_"][5]["value"] = "3"
defs["enums"]["ImGuiDir_"][6] = {}
defs["enums"]["ImGuiDir_"][6]["calc_value"] = 5
defs["enums"]["ImGuiDir_"][6]["calc_value"] = 4
defs["enums"]["ImGuiDir_"][6]["name"] = "ImGuiDir_COUNT"
defs["enums"]["ImGuiDir_"][6]["value"] = 5
defs["enums"]["ImGuiDir_"][6]["value"] = 4
defs["enums"]["ImDrawListFlags_"] = {}
defs["enums"]["ImDrawListFlags_"][1] = {}
defs["enums"]["ImDrawListFlags_"][1]["calc_value"] = 1
@@ -1191,13 +1191,16 @@ defs["structs"]["ImDrawVert"][3]["type"] = "ImU32"
defs["structs"]["ImDrawVert"][3]["name"] = "col"
defs["structs"]["ImDrawList"] = {}
defs["structs"]["ImDrawList"][1] = {}
defs["structs"]["ImDrawList"][1]["type"] = "ImVector/*<ImDrawCmd>*/"
defs["structs"]["ImDrawList"][1]["type"] = "ImVector"
defs["structs"]["ImDrawList"][1]["template_type"] = "ImDrawCmd"
defs["structs"]["ImDrawList"][1]["name"] = "CmdBuffer"
defs["structs"]["ImDrawList"][2] = {}
defs["structs"]["ImDrawList"][2]["type"] = "ImVector/*<ImDrawIdx>*/"
defs["structs"]["ImDrawList"][2]["type"] = "ImVector"
defs["structs"]["ImDrawList"][2]["template_type"] = "ImDrawIdx"
defs["structs"]["ImDrawList"][2]["name"] = "IdxBuffer"
defs["structs"]["ImDrawList"][3] = {}
defs["structs"]["ImDrawList"][3]["type"] = "ImVector/*<ImDrawVert>*/"
defs["structs"]["ImDrawList"][3]["type"] = "ImVector"
defs["structs"]["ImDrawList"][3]["template_type"] = "ImDrawVert"
defs["structs"]["ImDrawList"][3]["name"] = "VtxBuffer"
defs["structs"]["ImDrawList"][4] = {}
defs["structs"]["ImDrawList"][4]["type"] = "ImDrawListFlags"
@@ -1218,13 +1221,16 @@ defs["structs"]["ImDrawList"][9] = {}
defs["structs"]["ImDrawList"][9]["type"] = "ImDrawIdx*"
defs["structs"]["ImDrawList"][9]["name"] = "_IdxWritePtr"
defs["structs"]["ImDrawList"][10] = {}
defs["structs"]["ImDrawList"][10]["type"] = "ImVector/*<ImVec4>*/"
defs["structs"]["ImDrawList"][10]["type"] = "ImVector"
defs["structs"]["ImDrawList"][10]["template_type"] = "ImVec4"
defs["structs"]["ImDrawList"][10]["name"] = "_ClipRectStack"
defs["structs"]["ImDrawList"][11] = {}
defs["structs"]["ImDrawList"][11]["type"] = "ImVector/*<ImTextureID>*/"
defs["structs"]["ImDrawList"][11]["type"] = "ImVector"
defs["structs"]["ImDrawList"][11]["template_type"] = "ImTextureID"
defs["structs"]["ImDrawList"][11]["name"] = "_TextureIdStack"
defs["structs"]["ImDrawList"][12] = {}
defs["structs"]["ImDrawList"][12]["type"] = "ImVector/*<ImVec2>*/"
defs["structs"]["ImDrawList"][12]["type"] = "ImVector"
defs["structs"]["ImDrawList"][12]["template_type"] = "ImVec2"
defs["structs"]["ImDrawList"][12]["name"] = "_Path"
defs["structs"]["ImDrawList"][13] = {}
defs["structs"]["ImDrawList"][13]["type"] = "int"
@@ -1233,7 +1239,8 @@ defs["structs"]["ImDrawList"][14] = {}
defs["structs"]["ImDrawList"][14]["type"] = "int"
defs["structs"]["ImDrawList"][14]["name"] = "_ChannelsCount"
defs["structs"]["ImDrawList"][15] = {}
defs["structs"]["ImDrawList"][15]["type"] = "ImVector/*<ImDrawChannel>*/"
defs["structs"]["ImDrawList"][15]["type"] = "ImVector"
defs["structs"]["ImDrawList"][15]["template_type"] = "ImDrawChannel"
defs["structs"]["ImDrawList"][15]["name"] = "_Channels"
defs["structs"]["Pair"] = {}
defs["structs"]["Pair"][1] = {}
@@ -1253,13 +1260,16 @@ defs["structs"]["ImFont"][3] = {}
defs["structs"]["ImFont"][3]["type"] = "ImVec2"
defs["structs"]["ImFont"][3]["name"] = "DisplayOffset"
defs["structs"]["ImFont"][4] = {}
defs["structs"]["ImFont"][4]["type"] = "ImVector/*<ImFontGlyph>*/"
defs["structs"]["ImFont"][4]["type"] = "ImVector"
defs["structs"]["ImFont"][4]["template_type"] = "ImFontGlyph"
defs["structs"]["ImFont"][4]["name"] = "Glyphs"
defs["structs"]["ImFont"][5] = {}
defs["structs"]["ImFont"][5]["type"] = "ImVector/*<float>*/"
defs["structs"]["ImFont"][5]["type"] = "ImVector"
defs["structs"]["ImFont"][5]["template_type"] = "float"
defs["structs"]["ImFont"][5]["name"] = "IndexAdvanceX"
defs["structs"]["ImFont"][6] = {}
defs["structs"]["ImFont"][6]["type"] = "ImVector/*<unsigned short>*/"
defs["structs"]["ImFont"][6]["type"] = "ImVector"
defs["structs"]["ImFont"][6]["template_type"] = "unsigned short"
defs["structs"]["ImFont"][6]["name"] = "IndexLookup"
defs["structs"]["ImFont"][7] = {}
defs["structs"]["ImFont"][7]["type"] = "const ImFontGlyph*"
@@ -1350,11 +1360,13 @@ defs["structs"]["ImVec4"][4]["type"] = "float"
defs["structs"]["ImVec4"][4]["name"] = "w"
defs["structs"]["GlyphRangesBuilder"] = {}
defs["structs"]["GlyphRangesBuilder"][1] = {}
defs["structs"]["GlyphRangesBuilder"][1]["type"] = "ImVector/*<unsigned char>*/"
defs["structs"]["GlyphRangesBuilder"][1]["type"] = "ImVector"
defs["structs"]["GlyphRangesBuilder"][1]["template_type"] = "unsigned char"
defs["structs"]["GlyphRangesBuilder"][1]["name"] = "UsedChars"
defs["structs"]["ImGuiStorage"] = {}
defs["structs"]["ImGuiStorage"][1] = {}
defs["structs"]["ImGuiStorage"][1]["type"] = "ImVector/*<Pair>*/"
defs["structs"]["ImGuiStorage"][1]["type"] = "ImVector"
defs["structs"]["ImGuiStorage"][1]["template_type"] = "Pair"
defs["structs"]["ImGuiStorage"][1]["name"] = "Data"
defs["structs"]["ImFontAtlas"] = {}
defs["structs"]["ImFontAtlas"][1] = {}
@@ -1391,18 +1403,21 @@ defs["structs"]["ImFontAtlas"][11] = {}
defs["structs"]["ImFontAtlas"][11]["type"] = "ImVec2"
defs["structs"]["ImFontAtlas"][11]["name"] = "TexUvWhitePixel"
defs["structs"]["ImFontAtlas"][12] = {}
defs["structs"]["ImFontAtlas"][12]["type"] = "ImVector/*<ImFont*>*/"
defs["structs"]["ImFontAtlas"][12]["type"] = "ImVector"
defs["structs"]["ImFontAtlas"][12]["template_type"] = "ImFont*"
defs["structs"]["ImFontAtlas"][12]["name"] = "Fonts"
defs["structs"]["ImFontAtlas"][13] = {}
defs["structs"]["ImFontAtlas"][13]["type"] = "ImVector/*<CustomRect>*/"
defs["structs"]["ImFontAtlas"][13]["type"] = "ImVector"
defs["structs"]["ImFontAtlas"][13]["template_type"] = "CustomRect"
defs["structs"]["ImFontAtlas"][13]["name"] = "CustomRects"
defs["structs"]["ImFontAtlas"][14] = {}
defs["structs"]["ImFontAtlas"][14]["type"] = "ImVector/*<ImFontConfig>*/"
defs["structs"]["ImFontAtlas"][14]["type"] = "ImVector"
defs["structs"]["ImFontAtlas"][14]["template_type"] = "ImFontConfig"
defs["structs"]["ImFontAtlas"][14]["name"] = "ConfigData"
defs["structs"]["ImFontAtlas"][15] = {}
defs["structs"]["ImFontAtlas"][15]["type"] = "int"
defs["structs"]["ImFontAtlas"][15]["name"] = "CustomRectIds[1]"
defs["structs"]["ImFontAtlas"][15]["size"] = 1
defs["structs"]["ImFontAtlas"][15]["name"] = "CustomRectIds[1]"
defs["structs"]["ImFontGlyph"] = {}
defs["structs"]["ImFontGlyph"][1] = {}
defs["structs"]["ImFontGlyph"][1]["type"] = "ImWchar"
@@ -1485,8 +1500,8 @@ defs["structs"]["ImFontConfig"][16]["type"] = "float"
defs["structs"]["ImFontConfig"][16]["name"] = "RasterizerMultiply"
defs["structs"]["ImFontConfig"][17] = {}
defs["structs"]["ImFontConfig"][17]["type"] = "char"
defs["structs"]["ImFontConfig"][17]["name"] = "Name[40]"
defs["structs"]["ImFontConfig"][17]["size"] = 40
defs["structs"]["ImFontConfig"][17]["name"] = "Name[40]"
defs["structs"]["ImFontConfig"][18] = {}
defs["structs"]["ImFontConfig"][18]["type"] = "ImFont*"
defs["structs"]["ImFontConfig"][18]["name"] = "DstFont"
@@ -1514,7 +1529,8 @@ defs["structs"]["ImDrawData"][7]["type"] = "ImVec2"
defs["structs"]["ImDrawData"][7]["name"] = "DisplaySize"
defs["structs"]["ImGuiTextBuffer"] = {}
defs["structs"]["ImGuiTextBuffer"][1] = {}
defs["structs"]["ImGuiTextBuffer"][1]["type"] = "ImVector/*<char>*/"
defs["structs"]["ImGuiTextBuffer"][1]["type"] = "ImVector"
defs["structs"]["ImGuiTextBuffer"][1]["template_type"] = "char"
defs["structs"]["ImGuiTextBuffer"][1]["name"] = "Buf"
defs["structs"]["ImGuiStyle"] = {}
defs["structs"]["ImGuiStyle"][1] = {}
@@ -1606,14 +1622,16 @@ defs["structs"]["ImGuiStyle"][29]["type"] = "float"
defs["structs"]["ImGuiStyle"][29]["name"] = "CurveTessellationTol"
defs["structs"]["ImGuiStyle"][30] = {}
defs["structs"]["ImGuiStyle"][30]["type"] = "ImVec4"
defs["structs"]["ImGuiStyle"][30]["name"] = "Colors[ImGuiCol_COUNT]"
defs["structs"]["ImGuiStyle"][30]["size"] = 43
defs["structs"]["ImGuiStyle"][30]["name"] = "Colors[ImGuiCol_COUNT]"
defs["structs"]["ImDrawChannel"] = {}
defs["structs"]["ImDrawChannel"][1] = {}
defs["structs"]["ImDrawChannel"][1]["type"] = "ImVector/*<ImDrawCmd>*/"
defs["structs"]["ImDrawChannel"][1]["type"] = "ImVector"
defs["structs"]["ImDrawChannel"][1]["template_type"] = "ImDrawCmd"
defs["structs"]["ImDrawChannel"][1]["name"] = "CmdBuffer"
defs["structs"]["ImDrawChannel"][2] = {}
defs["structs"]["ImDrawChannel"][2]["type"] = "ImVector/*<ImDrawIdx>*/"
defs["structs"]["ImDrawChannel"][2]["type"] = "ImVector"
defs["structs"]["ImDrawChannel"][2]["template_type"] = "ImDrawIdx"
defs["structs"]["ImDrawChannel"][2]["name"] = "IdxBuffer"
defs["structs"]["ImDrawCmd"] = {}
defs["structs"]["ImDrawCmd"][1] = {}
@@ -1676,8 +1694,8 @@ defs["structs"]["ImGuiIO"][10]["type"] = "float"
defs["structs"]["ImGuiIO"][10]["name"] = "MouseDragThreshold"
defs["structs"]["ImGuiIO"][11] = {}
defs["structs"]["ImGuiIO"][11]["type"] = "int"
defs["structs"]["ImGuiIO"][11]["name"] = "KeyMap[ImGuiKey_COUNT]"
defs["structs"]["ImGuiIO"][11]["size"] = 21
defs["structs"]["ImGuiIO"][11]["name"] = "KeyMap[ImGuiKey_COUNT]"
defs["structs"]["ImGuiIO"][12] = {}
defs["structs"]["ImGuiIO"][12]["type"] = "float"
defs["structs"]["ImGuiIO"][12]["name"] = "KeyRepeatDelay"
@@ -1743,8 +1761,8 @@ defs["structs"]["ImGuiIO"][32]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][32]["name"] = "MousePos"
defs["structs"]["ImGuiIO"][33] = {}
defs["structs"]["ImGuiIO"][33]["type"] = "bool"
defs["structs"]["ImGuiIO"][33]["name"] = "MouseDown[5]"
defs["structs"]["ImGuiIO"][33]["size"] = 5
defs["structs"]["ImGuiIO"][33]["name"] = "MouseDown[5]"
defs["structs"]["ImGuiIO"][34] = {}
defs["structs"]["ImGuiIO"][34]["type"] = "float"
defs["structs"]["ImGuiIO"][34]["name"] = "MouseWheel"
@@ -1765,16 +1783,16 @@ defs["structs"]["ImGuiIO"][39]["type"] = "bool"
defs["structs"]["ImGuiIO"][39]["name"] = "KeySuper"
defs["structs"]["ImGuiIO"][40] = {}
defs["structs"]["ImGuiIO"][40]["type"] = "bool"
defs["structs"]["ImGuiIO"][40]["name"] = "KeysDown[512]"
defs["structs"]["ImGuiIO"][40]["size"] = 512
defs["structs"]["ImGuiIO"][40]["name"] = "KeysDown[512]"
defs["structs"]["ImGuiIO"][41] = {}
defs["structs"]["ImGuiIO"][41]["type"] = "ImWchar"
defs["structs"]["ImGuiIO"][41]["name"] = "InputCharacters[16+1]"
defs["structs"]["ImGuiIO"][41]["size"] = 17
defs["structs"]["ImGuiIO"][41]["name"] = "InputCharacters[16+1]"
defs["structs"]["ImGuiIO"][42] = {}
defs["structs"]["ImGuiIO"][42]["type"] = "float"
defs["structs"]["ImGuiIO"][42]["name"] = "NavInputs[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][42]["size"] = 21
defs["structs"]["ImGuiIO"][42]["name"] = "NavInputs[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][43] = {}
defs["structs"]["ImGuiIO"][43]["type"] = "bool"
defs["structs"]["ImGuiIO"][43]["name"] = "WantCaptureMouse"
@@ -1822,60 +1840,60 @@ defs["structs"]["ImGuiIO"][57]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][57]["name"] = "MousePosPrev"
defs["structs"]["ImGuiIO"][58] = {}
defs["structs"]["ImGuiIO"][58]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][58]["name"] = "MouseClickedPos[5]"
defs["structs"]["ImGuiIO"][58]["size"] = 5
defs["structs"]["ImGuiIO"][58]["name"] = "MouseClickedPos[5]"
defs["structs"]["ImGuiIO"][59] = {}
defs["structs"]["ImGuiIO"][59]["type"] = "double"
defs["structs"]["ImGuiIO"][59]["name"] = "MouseClickedTime[5]"
defs["structs"]["ImGuiIO"][59]["size"] = 5
defs["structs"]["ImGuiIO"][59]["name"] = "MouseClickedTime[5]"
defs["structs"]["ImGuiIO"][60] = {}
defs["structs"]["ImGuiIO"][60]["type"] = "bool"
defs["structs"]["ImGuiIO"][60]["name"] = "MouseClicked[5]"
defs["structs"]["ImGuiIO"][60]["size"] = 5
defs["structs"]["ImGuiIO"][60]["name"] = "MouseClicked[5]"
defs["structs"]["ImGuiIO"][61] = {}
defs["structs"]["ImGuiIO"][61]["type"] = "bool"
defs["structs"]["ImGuiIO"][61]["name"] = "MouseDoubleClicked[5]"
defs["structs"]["ImGuiIO"][61]["size"] = 5
defs["structs"]["ImGuiIO"][61]["name"] = "MouseDoubleClicked[5]"
defs["structs"]["ImGuiIO"][62] = {}
defs["structs"]["ImGuiIO"][62]["type"] = "bool"
defs["structs"]["ImGuiIO"][62]["name"] = "MouseReleased[5]"
defs["structs"]["ImGuiIO"][62]["size"] = 5
defs["structs"]["ImGuiIO"][62]["name"] = "MouseReleased[5]"
defs["structs"]["ImGuiIO"][63] = {}
defs["structs"]["ImGuiIO"][63]["type"] = "bool"
defs["structs"]["ImGuiIO"][63]["name"] = "MouseDownOwned[5]"
defs["structs"]["ImGuiIO"][63]["size"] = 5
defs["structs"]["ImGuiIO"][63]["name"] = "MouseDownOwned[5]"
defs["structs"]["ImGuiIO"][64] = {}
defs["structs"]["ImGuiIO"][64]["type"] = "float"
defs["structs"]["ImGuiIO"][64]["name"] = "MouseDownDuration[5]"
defs["structs"]["ImGuiIO"][64]["size"] = 5
defs["structs"]["ImGuiIO"][64]["name"] = "MouseDownDuration[5]"
defs["structs"]["ImGuiIO"][65] = {}
defs["structs"]["ImGuiIO"][65]["type"] = "float"
defs["structs"]["ImGuiIO"][65]["name"] = "MouseDownDurationPrev[5]"
defs["structs"]["ImGuiIO"][65]["size"] = 5
defs["structs"]["ImGuiIO"][65]["name"] = "MouseDownDurationPrev[5]"
defs["structs"]["ImGuiIO"][66] = {}
defs["structs"]["ImGuiIO"][66]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][66]["name"] = "MouseDragMaxDistanceAbs[5]"
defs["structs"]["ImGuiIO"][66]["size"] = 5
defs["structs"]["ImGuiIO"][66]["name"] = "MouseDragMaxDistanceAbs[5]"
defs["structs"]["ImGuiIO"][67] = {}
defs["structs"]["ImGuiIO"][67]["type"] = "float"
defs["structs"]["ImGuiIO"][67]["name"] = "MouseDragMaxDistanceSqr[5]"
defs["structs"]["ImGuiIO"][67]["size"] = 5
defs["structs"]["ImGuiIO"][67]["name"] = "MouseDragMaxDistanceSqr[5]"
defs["structs"]["ImGuiIO"][68] = {}
defs["structs"]["ImGuiIO"][68]["type"] = "float"
defs["structs"]["ImGuiIO"][68]["name"] = "KeysDownDuration[512]"
defs["structs"]["ImGuiIO"][68]["size"] = 512
defs["structs"]["ImGuiIO"][68]["name"] = "KeysDownDuration[512]"
defs["structs"]["ImGuiIO"][69] = {}
defs["structs"]["ImGuiIO"][69]["type"] = "float"
defs["structs"]["ImGuiIO"][69]["name"] = "KeysDownDurationPrev[512]"
defs["structs"]["ImGuiIO"][69]["size"] = 512
defs["structs"]["ImGuiIO"][69]["name"] = "KeysDownDurationPrev[512]"
defs["structs"]["ImGuiIO"][70] = {}
defs["structs"]["ImGuiIO"][70]["type"] = "float"
defs["structs"]["ImGuiIO"][70]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][70]["size"] = 21
defs["structs"]["ImGuiIO"][70]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][71] = {}
defs["structs"]["ImGuiIO"][71]["type"] = "float"
defs["structs"]["ImGuiIO"][71]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][71]["size"] = 21
defs["structs"]["ImGuiIO"][71]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiPayload"] = {}
defs["structs"]["ImGuiPayload"][1] = {}
defs["structs"]["ImGuiPayload"][1]["type"] = "void*"
@@ -1894,8 +1912,8 @@ defs["structs"]["ImGuiPayload"][5]["type"] = "int"
defs["structs"]["ImGuiPayload"][5]["name"] = "DataFrameCount"
defs["structs"]["ImGuiPayload"][6] = {}
defs["structs"]["ImGuiPayload"][6]["type"] = "char"
defs["structs"]["ImGuiPayload"][6]["name"] = "DataType[32+1]"
defs["structs"]["ImGuiPayload"][6]["size"] = 33
defs["structs"]["ImGuiPayload"][6]["name"] = "DataType[32+1]"
defs["structs"]["ImGuiPayload"][7] = {}
defs["structs"]["ImGuiPayload"][7]["type"] = "bool"
defs["structs"]["ImGuiPayload"][7]["name"] = "Preview"
@@ -1922,10 +1940,11 @@ defs["structs"]["ImGuiSizeCallbackData"][4]["name"] = "DesiredSize"
defs["structs"]["ImGuiTextFilter"] = {}
defs["structs"]["ImGuiTextFilter"][1] = {}
defs["structs"]["ImGuiTextFilter"][1]["type"] = "char"
defs["structs"]["ImGuiTextFilter"][1]["name"] = "InputBuf[256]"
defs["structs"]["ImGuiTextFilter"][1]["size"] = 256
defs["structs"]["ImGuiTextFilter"][1]["name"] = "InputBuf[256]"
defs["structs"]["ImGuiTextFilter"][2] = {}
defs["structs"]["ImGuiTextFilter"][2]["type"] = "ImVector/*<TextRange>*/"
defs["structs"]["ImGuiTextFilter"][2]["type"] = "ImVector"
defs["structs"]["ImGuiTextFilter"][2]["template_type"] = "TextRange"
defs["structs"]["ImGuiTextFilter"][2]["name"] = "Filters"
defs["structs"]["ImGuiTextFilter"][3] = {}
defs["structs"]["ImGuiTextFilter"][3]["type"] = "int"