Compare commits

...

67 Commits

Author SHA1 Message Date
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 738 additions and 4182 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,70 @@
# 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
* 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 +73,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,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 "./imgui/imgui.h"
#include "cimgui_auto.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
@@ -476,7 +477,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 +1254,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);
@@ -2234,3 +2227,11 @@ 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);
}

View File

@@ -1,4 +1,5 @@
//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>
#if defined _WIN32 || defined __CYGWIN__
@@ -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,7 +40,7 @@ typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
struct ImDrawChannel;
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
@@ -68,7 +69,6 @@ typedef struct ImDrawList ImDrawList;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImDrawChannel ImDrawChannel;
struct ImDrawChannel;
struct ImDrawCmd;
struct ImDrawData;
struct ImDrawList;
@@ -838,71 +838,71 @@ typedef ImVector ImVector_ImWchar;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
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 +910,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 +980,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 +1043,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 +1055,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 +1064,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 +1082,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);
@@ -1323,39 +1321,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);
@@ -1376,5 +1374,9 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
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);

View File

@@ -33,3 +33,11 @@ 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);
}

View File

@@ -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
@@ -78,5 +78,9 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
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);

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,7 +376,7 @@ 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*//.*]]
@@ -258,6 +395,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,16 +403,13 @@ 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
@@ -283,7 +418,6 @@ local function struct_parser()
local linea = line:gsub("%S+",{class="struct",mutable=""})
linea = linea:gsub("(%b<>)","/*%1*/") --comment template parameters
table.insert(structcdefs,linea..comment)
end
return
end
@@ -366,7 +500,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 +511,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 +528,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 +542,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
@@ -467,8 +604,8 @@ local function func_parser()
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 +633,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 +698,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("&")
@@ -732,6 +881,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 +896,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
@@ -864,13 +1019,15 @@ 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
table.insert(outtab,[[
struct ImVector
{
int Size;
int Capacity;
void* Data;
};
typedef struct ImVector ImVector;]])
typedef struct ImVector ImVector;
]])
structnames[#structnames] = nil
end
break -- dont write
@@ -992,10 +1149,11 @@ local function func_header_generate(FP)
local manual = get_manuals(def)
if not manual and def.ret then --not constructor
local addcoment = def.comment or ""
local empty = def.args:match("^%(%)") --no args
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")
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or 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 ","))
@@ -1115,7 +1273,78 @@ local function func_implementation(FP)
--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)
--merge it in cimgui_template.h to cimgui.h
@@ -1124,13 +1353,14 @@ local function cimgui_generation(postfix,STP,FP)
hfile:close()
local cstructsstr,typedefs_dict = gen_structs_and_enums(STP.lines)
--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 +1370,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 +1413,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 +1454,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 +1463,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 +1476,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
@@ -1255,13 +1498,15 @@ local function json_prepare(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-----------------------------------------------------------------------

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 "./imgui/imgui.h"
#include "cimgui_auto.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
@@ -476,7 +477,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 +1254,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);
@@ -2234,3 +2227,11 @@ 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);
}

View File

@@ -1,4 +1,5 @@
//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>
#if defined _WIN32 || defined __CYGWIN__
@@ -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,7 +40,7 @@ typedef struct ImColor_Simple { ImVec4_Simple Value;} ImColor_Simple;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
struct ImDrawChannel;
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
@@ -68,7 +69,6 @@ typedef struct ImDrawList ImDrawList;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImDrawChannel ImDrawChannel;
struct ImDrawChannel;
struct ImDrawCmd;
struct ImDrawData;
struct ImDrawList;
@@ -838,71 +838,71 @@ typedef ImVector ImVector_ImWchar;
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
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 +910,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 +980,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 +1043,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 +1055,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 +1064,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 +1082,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);
@@ -1323,39 +1321,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);
@@ -1376,5 +1374,9 @@ CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const ch
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);

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