Compare commits

...

47 Commits

Author SHA1 Message Date
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 677 additions and 487 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 )

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,28 +1,34 @@
# 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
* make using makefile on linux/macOS/mingw (Or use CMake to generate project)
# auto binding generation
* 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.
* 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
* need also gcc compiler for doing preprocessing (In windows MinGW-W64-builds for example)
* update `imgui` folder to the version you desire.
* run `generator/generator.bat` (or make a .sh version and please PR) with gcc 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.
* 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
@@ -31,8 +37,8 @@ Notes:
* 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

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"
@@ -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
@@ -838,71 +839,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,49 +911,49 @@ 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 igGetIDPtr(const void* ptr_id);
@@ -980,9 +981,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 +1044,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 +1056,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 +1065,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 +1083,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 +1322,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 +1375,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 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,12 @@
:: 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
luajit ./generator.lua glfw opengl3 opengl2 sdl
::leave console open
cmd /k

View File

@@ -2,7 +2,8 @@
--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
@@ -32,6 +33,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)
@@ -70,6 +73,12 @@ 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
--------------------------------------------------------------------------
@@ -100,37 +109,77 @@ local function filelines(file)
end
--iterates lines from a gcc -E in a specific location
local function location(file,locpathT)
local location_re = '^# %d+ "([^"]*)"'
local location_re = '^# (%d+) "([^"]*)"'
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 not line then
if not lastdumped then
lastdumped = true
return lineold, which_locationold,loc_num_realold
else
return nil
end
end
if 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
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)
@@ -366,7 +415,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 +426,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 +443,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 +457,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 +519,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 +548,22 @@ 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)
print("reference to no const arg in",funcname,argscsinpars)
end
end
argscsinpars = argscsinpars:gsub("&","")
@@ -552,6 +609,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("&")
@@ -742,9 +802,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
@@ -992,10 +1053,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 +1177,77 @@ 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)
local pipe,err = io.popen([[gcc -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 +1256,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,13 +1273,33 @@ 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----------------------
--------------------------------------------------------
--get imgui.h version--------------------------
local pipe,err = io.open("../imgui/imgui.h","r")
if not pipe then
error("could not open file:"..err)
end
local imgui_version
while true do
local line = pipe:read"*l"
imgui_version = line:match([[#define%s+IMGUI_VERSION%s+(".+")]])
if imgui_version then break end
end
pipe:close()
cimgui_header = cimgui_header:gsub("XXX",imgui_version)
print("IMGUI_VERSION",imgui_version)
--get some defines----------------------------
if HAVE_GCC then
gdefines = get_defines{"IMGUI_VERSION","FLT_MAX"}
end
--first without gcc
---[[
print"------------------generation without precompiler------------------------"
local pipe,err = io.open("../imgui/imgui.h","r")
if not pipe then
error("could not open file:"..err)
@@ -1162,9 +1315,10 @@ for line in filelines(pipe) do
end
pipe:close()
FP:compute_overloads()
cimgui_generation("",STP,FP)
cimgui_generation("_nopreprocess",STP,FP)
--]]
--then gcc
print"------------------generation with precompiler------------------------"
local pFP,pSTP,typedefs_dict2
if HAVE_GCC then
@@ -1185,19 +1339,21 @@ 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
@@ -1233,10 +1389,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 +1411,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"
@@ -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
@@ -838,71 +839,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,49 +911,49 @@ 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 igGetIDPtr(const void* ptr_id);
@@ -980,9 +981,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 +1044,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 +1056,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 +1065,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 +1083,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 +1322,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 +1375,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

@@ -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.h"
#include "cimgui_nopreprocess.h"
#include "./imgui/imgui_internal.h"
@@ -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);
@@ -2014,3 +2007,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
@@ -1081,24 +1082,24 @@ typedef ImVector ImVector_ImWchar;
// All those functions are not reliant on the current context.
CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas);
CIMGUI_API void igDestroyContext(ImGuiContext* ctx); // NULL = destroy current context
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);
// Main
CIMGUI_API ImGuiIO* igGetIO(); // access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)
CIMGUI_API ImGuiStyle* igGetStyle(); // access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame.
CIMGUI_API void igNewFrame(); // start a new ImGui frame, you can submit any command from this point until Render()/EndFrame().
CIMGUI_API void igEndFrame(); // ends the ImGui frame. automatically called by Render(), you likely don't need to call that yourself directly. If you don't need to render data (skipping rendering) you may call EndFrame() but you'll have wasted CPU already! If you don't need to render, better to not create any imgui windows and not call NewFrame() at all!
CIMGUI_API void igRender(); // ends the ImGui frame, finalize the draw data. (Obsolete: optionally call io.RenderDrawListsFn if set. Nowadays, prefer calling your render function yourself.)
CIMGUI_API ImDrawData* igGetDrawData(); // valid after Render() and until the next call to NewFrame(). this is what you have to render. (Obsolete: this used to be passed to your io.RenderDrawListsFn() function.)
CIMGUI_API ImGuiIO* igGetIO(void); // access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)
CIMGUI_API ImGuiStyle* igGetStyle(void); // access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame.
CIMGUI_API void igNewFrame(void); // start a new ImGui frame, you can submit any command from this point until Render()/EndFrame().
CIMGUI_API void igEndFrame(void); // ends the ImGui frame. automatically called by Render(), you likely don't need to call that yourself directly. If you don't need to render data (skipping rendering) you may call EndFrame() but you'll have wasted CPU already! If you don't need to render, better to not create any imgui windows and not call NewFrame() at all!
CIMGUI_API void igRender(void); // ends the ImGui frame, finalize the draw data. (Obsolete: optionally call io.RenderDrawListsFn if set. Nowadays, prefer calling your render function yourself.)
CIMGUI_API ImDrawData* igGetDrawData(void); // valid after Render() and until the next call to NewFrame(). this is what you have to render. (Obsolete: this used to be passed to your io.RenderDrawListsFn() function.)
// Demo, Debug, Information
CIMGUI_API void igShowDemoWindow(bool* p_open); // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
CIMGUI_API void igShowMetricsWindow(bool* p_open); // create metrics window. display ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc.
CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style)
CIMGUI_API bool igShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles.
CIMGUI_API void igShowFontSelector(const char* label); // add font selector block (not a window), essentially a combo listing the loaded fonts.
CIMGUI_API void igShowUserGuide(); // add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls).
CIMGUI_API const char* igGetVersion(); // get the compiled version string e.g. "1.23"
CIMGUI_API void igShowUserGuide(void); // add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls).
CIMGUI_API const char* igGetVersion(void); // get the compiled version string e.g. "1.23"
// Styles
CIMGUI_API void igStyleColorsDark(ImGuiStyle* dst); // new, recommended style (default)
CIMGUI_API void igStyleColorsClassic(ImGuiStyle* dst); // classic imgui style
@@ -1110,54 +1111,54 @@ CIMGUI_API void igStyleColorsLight(ImGuiStyle* dst); // best used with borders
// Passing 'bool* p_open != NULL' shows a close widget in the upper-right corner of the window, which when clicking will set the boolean to false.
// Use child windows to introduce independent scrolling/clipping regions within a host window. Child windows can embed their own child.
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); // Begin a scrolling region. size==0.0f: use remaining window size, size<0.0f: use remaining window size minus abs(size). size>0.0f: fixed size. each axis can use a different mode, e.g. ImVec2(0,400).
CIMGUI_API bool igBeginChildID(ImGuiID id,const ImVec2 size,bool border,ImGuiWindowFlags flags);
CIMGUI_API void igEndChild();
CIMGUI_API void igEndChild(void);
// Windows Utilities
CIMGUI_API bool igIsWindowAppearing();
CIMGUI_API bool igIsWindowCollapsed();
CIMGUI_API bool igIsWindowAppearing(void);
CIMGUI_API bool igIsWindowCollapsed(void);
CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags); // is current window focused? or its root/child, depending on flags. see flags for options.
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags flags); // is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ!
CIMGUI_API ImDrawList* igGetWindowDrawList(); // get draw list associated to the window, to append your own drawing primitives
CIMGUI_API ImVec2 igGetWindowPos(); // get current window position in screen space (useful if you want to do your own drawing via the DrawList API)
CIMGUI_API ImVec2 igGetWindowSize(); // get current window size
CIMGUI_API float igGetWindowWidth(); // get current window width (shortcut for GetWindowSize().x)
CIMGUI_API float igGetWindowHeight(); // get current window height (shortcut for GetWindowSize().y)
CIMGUI_API ImVec2 igGetContentRegionMax(); // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates
CIMGUI_API ImVec2 igGetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos()
CIMGUI_API float igGetContentRegionAvailWidth(); //
CIMGUI_API ImVec2 igGetWindowContentRegionMin(); // content boundaries min (roughly (0,0)-Scroll), in window coordinates
CIMGUI_API ImVec2 igGetWindowContentRegionMax(); // content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates
CIMGUI_API float igGetWindowContentRegionWidth(); //
CIMGUI_API ImDrawList* igGetWindowDrawList(void); // get draw list associated to the window, to append your own drawing primitives
CIMGUI_API ImVec2 igGetWindowPos(void); // get current window position in screen space (useful if you want to do your own drawing via the DrawList API)
CIMGUI_API ImVec2 igGetWindowSize(void); // get current window size
CIMGUI_API float igGetWindowWidth(void); // get current window width (shortcut for GetWindowSize().x)
CIMGUI_API float igGetWindowHeight(void); // get current window height (shortcut for GetWindowSize().y)
CIMGUI_API ImVec2 igGetContentRegionMax(void); // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates
CIMGUI_API ImVec2 igGetContentRegionAvail(void); // == GetContentRegionMax() - GetCursorPos()
CIMGUI_API float igGetContentRegionAvailWidth(void); //
CIMGUI_API ImVec2 igGetWindowContentRegionMin(void); // content boundaries min (roughly (0,0)-Scroll), in window coordinates
CIMGUI_API ImVec2 igGetWindowContentRegionMax(void); // content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates
CIMGUI_API float igGetWindowContentRegionWidth(void); //
CIMGUI_API void igSetNextWindowPos(const ImVec2 pos,ImGuiCond cond,const ImVec2 pivot); // set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc.
CIMGUI_API void igSetNextWindowSize(const ImVec2 size,ImGuiCond cond); // set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin()
CIMGUI_API void igSetNextWindowSizeConstraints(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,void* custom_callback_data); // set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Use callback to apply non-trivial programmatic constraints.
CIMGUI_API void igSetNextWindowContentSize(const ImVec2 size); // set next window content size (~ enforce the range of scrollbars). not including window decorations (title bar, menu bar, etc.). set an axis to 0.0f to leave it automatic. call before Begin()
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed,ImGuiCond cond); // set next window collapsed state. call before Begin()
CIMGUI_API void igSetNextWindowFocus(); // set next window to be focused / front-most. call before Begin()
CIMGUI_API void igSetNextWindowFocus(void); // set next window to be focused / front-most. call before Begin()
CIMGUI_API void igSetNextWindowBgAlpha(float alpha); // set next window background color alpha. helper to easily modify ImGuiCol_WindowBg/ChildBg/PopupBg.
CIMGUI_API void igSetWindowPosVec2(const ImVec2 pos,ImGuiCond cond); // (not recommended) set current window position - call within Begin()/End(). prefer using SetNextWindowPos(), as this may incur tearing and side-effects.
CIMGUI_API void igSetWindowSizeVec2(const ImVec2 size,ImGuiCond cond); // (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects.
CIMGUI_API void igSetWindowCollapsedBool(bool collapsed,ImGuiCond cond); // (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed().
CIMGUI_API void igSetWindowFocus(); // (not recommended) set current window to be focused / front-most. prefer using SetNextWindowFocus().
CIMGUI_API void igSetWindowFocus(void); // (not recommended) set current window to be focused / front-most. prefer using SetNextWindowFocus().
CIMGUI_API void igSetWindowFontScale(float scale); // set font scale. Adjust IO.FontGlobalScale if you want to scale all windows
CIMGUI_API void igSetWindowPosStr(const char* name,const ImVec2 pos,ImGuiCond cond); // set named window position.
CIMGUI_API void igSetWindowSizeStr(const char* name,const ImVec2 size,ImGuiCond cond); // set named window size. set axis to 0.0f to force an auto-fit on this axis.
CIMGUI_API void igSetWindowCollapsedStr(const char* name,bool collapsed,ImGuiCond cond); // set named window collapsed state
CIMGUI_API void igSetWindowFocusStr(const char* name); // set named window to be focused / front-most. use NULL to remove focus.
// Windows Scrolling
CIMGUI_API float igGetScrollX(); // get scrolling amount [0..GetScrollMaxX()]
CIMGUI_API float igGetScrollY(); // get scrolling amount [0..GetScrollMaxY()]
CIMGUI_API float igGetScrollMaxX(); // get maximum scrolling amount ~~ ContentSize.X - WindowSize.X
CIMGUI_API float igGetScrollMaxY(); // get maximum scrolling amount ~~ ContentSize.Y - WindowSize.Y
CIMGUI_API float igGetScrollX(void); // get scrolling amount [0..GetScrollMaxX()]
CIMGUI_API float igGetScrollY(void); // get scrolling amount [0..GetScrollMaxY()]
CIMGUI_API float igGetScrollMaxX(void); // get maximum scrolling amount ~~ ContentSize.X - WindowSize.X
CIMGUI_API float igGetScrollMaxY(void); // get maximum scrolling amount ~~ ContentSize.Y - WindowSize.Y
CIMGUI_API void igSetScrollX(float scroll_x); // set scrolling amount [0..GetScrollMaxX()]
CIMGUI_API void igSetScrollY(float scroll_y); // set scrolling amount [0..GetScrollMaxY()]
CIMGUI_API void igSetScrollHere(float center_y_ratio); // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead.
CIMGUI_API void igSetScrollFromPosY(float pos_y,float center_y_ratio); // adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions.
// Parameters stacks (shared)
CIMGUI_API void igPushFont(ImFont* font); // use NULL as a shortcut to push default 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);
@@ -1165,46 +1166,46 @@ 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); // retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in.
CIMGUI_API ImFont* igGetFont(); // get current font
CIMGUI_API float igGetFontSize(); // get current font size (= height in pixels) of current font with current scale applied
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel(); // get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API
CIMGUI_API ImFont* igGetFont(void); // get current font
CIMGUI_API float igGetFontSize(void); // get current font size (= height in pixels) of current font with current scale applied
CIMGUI_API ImVec2 igGetFontTexUvWhitePixel(void); // get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx,float alpha_mul); // retrieve given style color with style alpha applied and optional extra alpha multiplier
CIMGUI_API ImU32 igGetColorU32Vec4(const ImVec4 col); // retrieve given color with style alpha applied
CIMGUI_API ImU32 igGetColorU32U32(ImU32 col); // retrieve given color with style alpha applied
// Parameters stacks (current window)
CIMGUI_API void igPushItemWidth(float item_width); // width of items for the common item+label case, pixels. 0.0f = default to ~2/3 of windows width, >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side)
CIMGUI_API void igPopItemWidth();
CIMGUI_API float igCalcItemWidth(); // width of item given pushed settings and current cursor position
CIMGUI_API void igPopItemWidth(void);
CIMGUI_API float igCalcItemWidth(void); // width of item given pushed settings and current cursor position
CIMGUI_API void igPushTextWrapPos(float wrap_pos_x); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space
CIMGUI_API void igPopTextWrapPos();
CIMGUI_API void igPopTextWrapPos(void);
CIMGUI_API void igPushAllowKeyboardFocus(bool allow_keyboard_focus); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPopAllowKeyboardFocus(void);
CIMGUI_API void igPushButtonRepeat(bool repeat); // in 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame.
CIMGUI_API void igPopButtonRepeat();
CIMGUI_API void igPopButtonRepeat(void);
// Cursor / Layout
CIMGUI_API void igSeparator(); // separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.
CIMGUI_API void igSeparator(void); // separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.
CIMGUI_API void igSameLine(float pos_x,float spacing_w); // call between widgets or groups to layout them horizontally
CIMGUI_API void igNewLine(); // undo a SameLine()
CIMGUI_API void igSpacing(); // add vertical spacing
CIMGUI_API void igNewLine(void); // undo a SameLine()
CIMGUI_API void igSpacing(void); // add vertical spacing
CIMGUI_API void igDummy(const ImVec2 size); // add a dummy item of given size
CIMGUI_API void igIndent(float indent_w); // move content position toward the right, by style.IndentSpacing or indent_w if != 0
CIMGUI_API void igUnindent(float indent_w); // move content position back to the left, by style.IndentSpacing or indent_w if != 0
CIMGUI_API void igBeginGroup(); // lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
CIMGUI_API void igEndGroup();
CIMGUI_API ImVec2 igGetCursorPos(); // cursor position is relative to window position
CIMGUI_API float igGetCursorPosX(); // "
CIMGUI_API float igGetCursorPosY(); // "
CIMGUI_API void igBeginGroup(void); // lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
CIMGUI_API void igEndGroup(void);
CIMGUI_API ImVec2 igGetCursorPos(void); // cursor position is relative to window position
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(); // initial cursor position
CIMGUI_API ImVec2 igGetCursorScreenPos(); // cursor position in absolute screen coordinates [0..io.DisplaySize] (useful to work with ImDrawList API)
CIMGUI_API ImVec2 igGetCursorStartPos(void); // initial cursor position
CIMGUI_API ImVec2 igGetCursorScreenPos(void); // cursor position in absolute screen coordinates [0..io.DisplaySize] (useful to work with ImDrawList API)
CIMGUI_API void igSetCursorScreenPos(const ImVec2 screen_pos); // cursor position in absolute screen coordinates [0..io.DisplaySize]
CIMGUI_API void igAlignTextToFramePadding(); // vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item)
CIMGUI_API float igGetTextLineHeight(); // ~ FontSize
CIMGUI_API float igGetTextLineHeightWithSpacing(); // ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text)
CIMGUI_API float igGetFrameHeight(); // ~ FontSize + style.FramePadding.y * 2
CIMGUI_API float igGetFrameHeightWithSpacing(); // ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets)
CIMGUI_API void igAlignTextToFramePadding(void); // vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item)
CIMGUI_API float igGetTextLineHeight(void); // ~ FontSize
CIMGUI_API float igGetTextLineHeightWithSpacing(void); // ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text)
CIMGUI_API float igGetFrameHeight(void); // ~ FontSize + style.FramePadding.y * 2
CIMGUI_API float igGetFrameHeightWithSpacing(void); // ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets)
// ID stack/scopes
// Read the FAQ for more details about how ID are handled in dear imgui. If you are creating widgets in a loop you most
// likely want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them.
@@ -1215,7 +1216,7 @@ 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); // calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself
CIMGUI_API ImGuiID igGetIDStrStr(const char* str_id_begin,const char* str_id_end);
CIMGUI_API ImGuiID igGetIDPtr(const void* ptr_id);
@@ -1246,12 +1247,12 @@ CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned i
CIMGUI_API bool igRadioButtonBool(const char* label,bool active); // use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; }
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button); // shortcut to handle the above pattern when value is an integer
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
CIMGUI_API void igBullet(); // draw a small circle and keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses
CIMGUI_API void igBullet(void); // draw a small circle and keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses
// Widgets: Combo Box
// The new BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items.
// The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose.
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
CIMGUI_API void igEndCombo(); // only call EndCombo() if BeginCombo() returns true!
CIMGUI_API void igEndCombo(void); // only call EndCombo() if BeginCombo() returns true!
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); // Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0"
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);
@@ -1324,9 +1325,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); // ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired.
CIMGUI_API void igTreePushPtr(const void* ptr_id); // "
CIMGUI_API void igTreePop(); // ~ Unindent()+PopId()
CIMGUI_API void igTreeAdvanceToLabelPos(); // advance cursor x position by GetTreeNodeToLabelSpacing()
CIMGUI_API float igGetTreeNodeToLabelSpacing(); // horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode
CIMGUI_API void igTreePop(void); // ~ Unindent()+PopId()
CIMGUI_API void igTreeAdvanceToLabelPos(void); // advance cursor x position by GetTreeNodeToLabelSpacing()
CIMGUI_API float igGetTreeNodeToLabelSpacing(void); // horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode
CIMGUI_API void igSetNextTreeNodeOpen(bool is_open,ImGuiCond cond); // set next TreeNode/CollapsingHeader open state.
CIMGUI_API bool igCollapsingHeader(const char* label,ImGuiTreeNodeFlags flags); // if returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop().
CIMGUI_API bool igCollapsingHeaderBoolPtr(const char* label,bool* p_open,ImGuiTreeNodeFlags flags); // when 'p_open' isn't NULL, display an additional small close button on upper right of the header
@@ -1338,7 +1339,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); // use if you want to reimplement ListBox() will custom data or interactions. if the function return true, you can output elements then call ListBoxFooter() afterwards.
CIMGUI_API bool igListBoxHeaderInt(const char* label,int items_count,int height_in_items); // "
CIMGUI_API void igListBoxFooter(); // terminate the scrolling region. only call ListBoxFooter() if ListBoxHeader() returned true!
CIMGUI_API void igListBoxFooter(void); // terminate the scrolling region. only call ListBoxFooter() if ListBoxHeader() returned true!
// Widgets: Data Plotting
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);
@@ -1350,17 +1351,17 @@ 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);
// Widgets: Menus
CIMGUI_API bool igBeginMainMenuBar(); // create and append to a full screen menu-bar.
CIMGUI_API void igEndMainMenuBar(); // only call EndMainMenuBar() if BeginMainMenuBar() returns true!
CIMGUI_API bool igBeginMenuBar(); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window).
CIMGUI_API void igEndMenuBar(); // only call EndMenuBar() if BeginMenuBar() returns true!
CIMGUI_API bool igBeginMainMenuBar(void); // create and append to a full screen menu-bar.
CIMGUI_API void igEndMainMenuBar(void); // only call EndMainMenuBar() if BeginMainMenuBar() returns true!
CIMGUI_API bool igBeginMenuBar(void); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window).
CIMGUI_API void igEndMenuBar(void); // only call EndMenuBar() if BeginMenuBar() returns true!
CIMGUI_API bool igBeginMenu(const char* label,bool enabled); // create a sub-menu entry. only call EndMenu() if this returns true!
CIMGUI_API void igEndMenu(); // only call EndMenu() if BeginMenu() returns true!
CIMGUI_API void igEndMenu(void); // only call EndMenu() if BeginMenu() returns true!
CIMGUI_API bool igMenuItemBool(const char* label,const char* shortcut,bool selected,bool enabled); // return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment
CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p_selected,bool enabled); // return true when activated + toggle (*p_selected) if p_selected != NULL
// Tooltips
CIMGUI_API void igBeginTooltip(); // begin/append a tooltip window. to create full-featured tooltip (with any kind of items).
CIMGUI_API void igEndTooltip();
CIMGUI_API void igBeginTooltip(void); // begin/append a tooltip window. to create full-featured tooltip (with any kind of items).
CIMGUI_API void igEndTooltip(void);
CIMGUI_API void igSetTooltip(const char* fmt,...); // set a text-only tooltip, typically use with ImGui::IsItemHovered(). overidde any previous call to SetTooltip().
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
// Popups
@@ -1370,75 +1371,73 @@ 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); // helper to open and begin popup when clicked on current window.
CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,int mouse_button); // helper to open and begin popup when clicked in void (where there are no imgui windows).
CIMGUI_API bool igBeginPopupModal(const char* name,bool* p_open,ImGuiWindowFlags flags); // modal dialog (regular window with title bar, block interactions behind the modal window, can't close the modal window by clicking outside)
CIMGUI_API void igEndPopup(); // only call EndPopup() if BeginPopupXXX() returns true!
CIMGUI_API void igEndPopup(void); // only call EndPopup() if BeginPopupXXX() returns true!
CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id,int mouse_button); // helper to open popup when clicked on last item. return true when just opened.
CIMGUI_API bool igIsPopupOpen(const char* str_id); // return true if the popup is open
CIMGUI_API void igCloseCurrentPopup(); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup.
CIMGUI_API void igCloseCurrentPopup(void); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup.
// Columns
// You can also use SameLine(pos_x) for simplified columns. The columns API is still work-in-progress and rather lacking.
CIMGUI_API void igColumns(int count,const char* id,bool border);
CIMGUI_API void igNextColumn(); // next column, defaults to current row or next row if the current row is finished
CIMGUI_API int igGetColumnIndex(); // get current column index
CIMGUI_API void igNextColumn(void); // next column, defaults to current row or next row if the current row is finished
CIMGUI_API int igGetColumnIndex(void); // get current column index
CIMGUI_API float igGetColumnWidth(int column_index); // get column width (in pixels). pass -1 to use current column
CIMGUI_API void igSetColumnWidth(int column_index,float width); // set column width (in pixels). pass -1 to use current column
CIMGUI_API float igGetColumnOffset(int column_index); // get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f
CIMGUI_API void igSetColumnOffset(int column_index,float offset_x); // set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column
CIMGUI_API int igGetColumnsCount();
CIMGUI_API int igGetColumnsCount(void);
// Logging/Capture: all text output from interface is captured to tty/file/clipboard. By default, tree nodes are automatically opened during logging.
CIMGUI_API void igLogToTTY(int max_depth); // start logging to tty
CIMGUI_API void igLogToFile(int max_depth,const char* filename); // start logging to file
CIMGUI_API void igLogToClipboard(int max_depth); // start logging to OS clipboard
CIMGUI_API void igLogFinish(); // stop logging (close file, etc.)
CIMGUI_API void igLogButtons(); // helper to display buttons for logging to tty/file/clipboard
CIMGUI_API void igLogFinish(void); // stop logging (close file, etc.)
CIMGUI_API void igLogButtons(void); // helper to display buttons for logging to tty/file/clipboard
// Drag and Drop
// [BETA API] Missing Demo code. API may evolve.
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags); // call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource()
CIMGUI_API bool igSetDragDropPayload(const char* type,const void* data,size_t size,ImGuiCond cond);// type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui.
CIMGUI_API void igEndDragDropSource(); // only call EndDragDropSource() if BeginDragDropSource() returns true!
CIMGUI_API bool igBeginDragDropTarget(); // call after submitting an item that may receive an item. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget()
CIMGUI_API void igEndDragDropSource(void); // only call EndDragDropSource() if BeginDragDropSource() returns true!
CIMGUI_API bool igBeginDragDropTarget(void); // call after submitting an item that may receive an item. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget()
CIMGUI_API const ImGuiPayload* igAcceptDragDropPayload(const char* type,ImGuiDragDropFlags flags); // accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released.
CIMGUI_API void igEndDragDropTarget(); // only call EndDragDropTarget() if BeginDragDropTarget() returns true!
CIMGUI_API void igEndDragDropTarget(void); // only call EndDragDropTarget() if BeginDragDropTarget() returns true!
// Clipping
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 igPopClipRect(void);
// Focus, Activation
// (Prefer using "SetItemDefaultFocus()" over "if (IsWindowAppearing()) SetScrollHere()" when applicable, to make your code more forward compatible when navigation branch is merged)
CIMGUI_API void igSetItemDefaultFocus(); // make last item the default focused item of a window. Please use instead of "if (IsWindowAppearing()) SetScrollHere()" to signify "default item".
CIMGUI_API void igSetItemDefaultFocus(void); // make last item the default focused item of a window. Please use instead of "if (IsWindowAppearing()) SetScrollHere()" to signify "default item".
CIMGUI_API void igSetKeyboardFocusHere(int offset); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget.
// Utilities
// See Demo Window under "Widgets->Querying Status" for an interactive visualization of many of those functions.
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags); // is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options.
CIMGUI_API bool igIsItemActive(); // is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false)
CIMGUI_API bool igIsItemFocused(); // is the last item focused for keyboard/gamepad navigation?
CIMGUI_API bool igIsItemActive(void); // is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false)
CIMGUI_API bool igIsItemFocused(void); // is the last item focused for keyboard/gamepad navigation?
CIMGUI_API bool igIsItemClicked(int mouse_button); // is the last item clicked? (e.g. button/node just clicked on) == IsMouseClicked(mouse_button) && IsItemHovered()
CIMGUI_API bool igIsItemVisible(); // is the last item visible? (items may be out of sight because of clipping/scrolling)
CIMGUI_API bool igIsItemEdited(); // did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets.
CIMGUI_API bool igIsItemDeactivated(); // was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that requires continuous editing.
CIMGUI_API bool igIsItemDeactivatedAfterEdit(); // was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that requires continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item).
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API bool igIsAnyItemFocused();
CIMGUI_API ImVec2 igGetItemRectMin(); // get bounding rectangle of last item, in screen space
CIMGUI_API ImVec2 igGetItemRectMax(); // "
CIMGUI_API ImVec2 igGetItemRectSize(); // get size of last item, in screen space
CIMGUI_API void igSetItemAllowOverlap(); // allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area.
CIMGUI_API bool igIsItemVisible(void); // is the last item visible? (items may be out of sight because of clipping/scrolling)
CIMGUI_API bool igIsItemEdited(void); // did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets.
CIMGUI_API bool igIsItemDeactivated(void); // was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that requires continuous editing.
CIMGUI_API bool igIsItemDeactivatedAfterEdit(void); // was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that requires continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item).
CIMGUI_API bool igIsAnyItemHovered(void);
CIMGUI_API bool igIsAnyItemActive(void);
CIMGUI_API bool igIsAnyItemFocused(void);
CIMGUI_API ImVec2 igGetItemRectMin(void); // get bounding rectangle of last item, in screen space
CIMGUI_API ImVec2 igGetItemRectMax(void); // "
CIMGUI_API ImVec2 igGetItemRectSize(void); // get size of last item, in screen space
CIMGUI_API void igSetItemAllowOverlap(void); // allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area.
CIMGUI_API bool igIsRectVisible(const ImVec2 size); // test if rectangle (of given size, starting from cursor position) is visible / not clipped.
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max); // test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side.
CIMGUI_API double igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API ImDrawList* igGetOverlayDrawList(); // this draw list will be the last rendered one, useful to quickly draw overlays shapes/text
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(); // you may use this when creating your own ImDrawList instances
CIMGUI_API double igGetTime(void);
CIMGUI_API int igGetFrameCount(void);
CIMGUI_API ImDrawList* igGetOverlayDrawList(void); // this draw list will be the last rendered one, useful to quickly draw overlays shapes/text
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void); // you may use this when creating your own ImDrawList instances
CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx);
CIMGUI_API void igSetStateStorage(ImGuiStorage* storage); // replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it)
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); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can.
CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags); // helper to create a child window / scrolling region that looks like a normal widget frame
CIMGUI_API void igEndChildFrame(); // always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window)
CIMGUI_API void igEndChildFrame(void); // always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window)
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);
// Inputs
CIMGUI_API int igGetKeyIndex(ImGuiKey imgui_key); // map ImGuiKey_* values into user's key index. == io.KeyMap[key]
CIMGUI_API bool igIsKeyDown(int user_key_index); // is key being held. == io.KeysDown[user_key_index]. note that imgui doesn't know the semantic of each entry of io.KeysDown[]. Use your own indices/enums according to how your backend/engine stored them into io.KeysDown[]!
@@ -1446,23 +1445,23 @@ CIMGUI_API bool igIsKeyPressed(int user_key_index,bool repeat); //
CIMGUI_API bool igIsKeyReleased(int user_key_index); // was key released (went from Down to !Down)..
CIMGUI_API int igGetKeyPressedAmount(int key_index,float repeat_delay,float rate); // uses provided repeat rate/delay. return a count, most often 0 or 1 but might be >1 if RepeatRate is small enough that DeltaTime > RepeatRate
CIMGUI_API bool igIsMouseDown(int button); // is mouse button held (0=left, 1=right, 2=middle)
CIMGUI_API bool igIsAnyMouseDown(); // is any mouse button held
CIMGUI_API bool igIsAnyMouseDown(void); // is any mouse button held
CIMGUI_API bool igIsMouseClicked(int button,bool repeat); // did mouse button clicked (went from !Down to Down) (0=left, 1=right, 2=middle)
CIMGUI_API bool igIsMouseDoubleClicked(int button); // did mouse button double-clicked. a double-click returns false in IsMouseClicked(). uses io.MouseDoubleClickTime.
CIMGUI_API bool igIsMouseReleased(int button); // did mouse button released (went from Down to !Down)
CIMGUI_API bool igIsMouseDragging(int button,float lock_threshold); // is mouse dragging. if lock_threshold < -1.0f uses io.MouseDraggingThreshold
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip); // is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block.
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos); //
CIMGUI_API ImVec2 igGetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup(); // retrieve backup of mouse position at the time of opening popup we have BeginPopup() into
CIMGUI_API ImVec2 igGetMousePos(void); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls
CIMGUI_API ImVec2 igGetMousePosOnOpeningCurrentPopup(void); // retrieve backup of mouse position at the time of opening popup we have BeginPopup() into
CIMGUI_API ImVec2 igGetMouseDragDelta(int button,float lock_threshold); // dragging amount since clicking. if lock_threshold < -1.0f uses io.MouseDraggingThreshold
CIMGUI_API void igResetMouseDragDelta(int button); //
CIMGUI_API ImGuiMouseCursor igGetMouseCursor(); // get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you
CIMGUI_API ImGuiMouseCursor igGetMouseCursor(void); // get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type); // set desired cursor type
CIMGUI_API void igCaptureKeyboardFromApp(bool capture); // manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). e.g. force capture keyboard when your widget is being hovered.
CIMGUI_API void igCaptureMouseFromApp(bool capture); // manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle).
// Clipboard Utilities (also see the LogToClipboard() function to capture or output text data to the clipboard)
CIMGUI_API const char* igGetClipboardText();
CIMGUI_API const char* igGetClipboardText(void);
CIMGUI_API void igSetClipboardText(const char* text);
// Settings/.Ini Utilities
// The disk functions are automatically called if io.IniFilename != NULL (default is "imgui.ini").
@@ -1723,5 +1722,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"
@@ -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"

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