Compare commits

...

21 Commits

Author SHA1 Message Date
sonoro1234
fc01fa6486 move to imgui 1.64 2018-08-31 20:08:47 +02:00
sonoro1234
b5150cc1ac take care of space before brackets in function 2018-08-31 09:53:25 +02:00
sonoro1234
07d6c6897a update readme for 1.63 2018-08-31 09:22:43 +02:00
sonoro1234
444b30c2cb update to v1.63 imgui 2018-08-31 09:19:32 +02:00
sonoro1234
a190ec10f4 update imguics link 2018-08-31 09:09:17 +02:00
sonoro1234
f4a4369392 README.md correction 2018-08-24 18:56:52 +02:00
sonoro1234
395ab5108e some more explanations in README.md 2018-08-24 18:54:46 +02:00
sonoro1234
af67beb082 add support for UDT returning functions 2018-08-22 17:42:16 +02:00
sonoro1234
4b1ae5a6c5 adapt Makefile 2018-08-20 16:21:02 +02:00
sonoro1234
1a5752271c add CMake 2018-08-20 11:33:33 +02:00
sonoro1234
960c4daa70 take care of return in vararg functions 2018-08-19 10:31:07 +02:00
sonoro1234
031bfe5dcc add size to struct members and calc_value to enums 2018-07-20 15:39:02 +02:00
sonoro1234
963e5fcf82 add argsT to definitions 2018-07-20 13:47:27 +02:00
sonoro1234
edf209e09e add typedef struct any any; 2018-07-19 13:07:46 +02:00
sonoro1234
ac4a2f13c0 add typedefs_dict 2018-07-19 11:14:26 +02:00
sonoro1234
1c61237dbf add + to default definition characters 2018-07-19 08:49:52 +02:00
sonoro1234
726816cb6a post issues in https://github.com/Extrawurst/cimgui 2018-07-10 12:03:34 +02:00
sonoro1234
ed4e178a85 check Lua version 2018-07-07 10:01:27 +02:00
sonoro1234
70eb52f582 bad replacement string 2018-07-07 09:55:47 +02:00
sonoro1234
9694c710b7 avoid excesive typedefs 2018-07-06 12:02:04 +02:00
sonoro1234
ce4ac9dfcf update README.md 2018-06-30 10:21:52 +02:00
20 changed files with 7992 additions and 3014 deletions

29
CMakeLists.txt Normal file
View File

@@ -0,0 +1,29 @@
Project(cimgui)
cmake_minimum_required(VERSION 2.8)
#general settings
include_directories(imgui)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(generator/generated)
set(IMGUI_SOURCES ./generator/generated/cimgui_auto.cpp ./imgui/imgui.cpp ./imgui/imgui_draw.cpp ./imgui/imgui_demo.cpp ./imgui/imgui_widgets.cpp)
set(IMGUI_LIBRARIES )
if (WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
#add library and link
add_library(cimgui SHARED ${IMGUI_SOURCES})
target_link_libraries(cimgui ${IMGUI_LIBRARIES})
#install
install(TARGETS cimgui
RUNTIME DESTINATION .
LIBRARY DESTINATION .
#ARCHIVE DESTINATION lib
)

View File

@@ -2,10 +2,11 @@
# Cross Platform Makefile
# Compatible with Ubuntu 14.04.1 and Mac OS X
OBJS = cimgui.o
OBJS += ../imgui/imgui.o
OBJS += ../imgui/imgui_draw.o
OBJS += ../imgui/imgui_demo.o
OBJS = cimgui_auto.o
OBJS += ./imgui/imgui.o
OBJS += ./imgui/imgui_draw.o
OBJS += ./imgui/imgui_demo.o
OBJS += ./imgui/imgui_widgets.o
UNAME_S := $(shell uname -s)
@@ -13,7 +14,7 @@ ifeq ($(UNAME_S), Linux) #LINUX
ECHO_MESSAGE = "Linux"
OUTPUTNAME = cimgui.so
CXXFLAGS = -I../../
CXXFLAGS = -I./imgui/
CXXFLAGS += -Wall
CXXFLAGS += -shared -fPIC
CFLAGS = $(CXXFLAGS)
@@ -33,7 +34,7 @@ ifeq ($(OS), Windows_NT)
ECHO_MESSAGE = "Windows"
OUTPUTNAME = cimgui.dll
CXXFLAGS = -I../../
CXXFLAGS = -I./imgui/
CXXFLAGS += -Wall
CXXFLAGS += -shared
LINKFLAGS = -limm32

View File

@@ -1,5 +1,7 @@
# 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
![sample](screenshot.png)
This is a thin c-api wrapper programmatically generated for the excellent C++ intermediate gui [imgui](https://github.com/ocornut/imgui).
@@ -8,28 +10,34 @@ Generated files are: cimgui.cpp, cimgui.h for C compilation. Also for helping in
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))
Notes:
* currently this wrapper is based on version [1.62 of imgui](https://github.com/ocornut/imgui/tree/v1.62)
* 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/cimgui_auto_implementations/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/cimgui_auto_implementations/generator/generated/overloads.txt)
* currently this wrapper is based on version [1.64 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)
# compilation
* clone
* make using makefile on linux/osx/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 Lua on your PATH.
* run imgui/generator/generator.bat (or make a .sh version and please PR) with gcc and LuaJIT or Lua5.1 on your PATH.
* as a result some files are generated: cimgui_auto.cpp and cimgui_auto.h for compiling and some lua/json files with information about the binding: definitions.json with function info, structs_and_enums.json with struct and enum info, impl_definitions.json with funtions from the implementations info.
* build as shown in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master_auto_implementations/build
* generate binding as done in https://github.com/sonoro1234/LuaJIT-ImGui/blob/master_auto_implementations/lua/build.bat
# usage
* clone
* make using makefile on linux/osx
* use whatever method is in ImGui c++ namespace in the original [imgui.h](https://github.com/ocornut/imgui/blob/master/imgui.h) by prepending `ig`
* methods have the same parameter list and return values (where possible)
* functions that belong to a struct have an extra first argument with a pointer to the struct.
* where a function returns UDT 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)
# example bindings based on cimgui
* [DerelictImgui](https://github.com/Extrawurst/DerelictImgui)
* [ImGui.NET](https://github.com/mellinoe/ImGui.NET)
* [ImGuiCS](https://github.com/0x0ade/ImGuiCS)
* [ImGuiCS](https://github.com/conatuscreative/ImGuiCS)
* [imgui-rs](https://github.com/Gekkio/imgui-rs)
* [imgui-pas](https://github.com/dpethes/imgui-pas)
* [odin-dear_imgui](https://github.com/ThisDrunkDane/odin-dear_imgui)

View File

@@ -594,22 +594,6 @@ CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button)
{
return ImGui::RadioButton(label,v,v_button);
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay)
{
return ImGui::ProgressBar(fraction,size_arg,overlay);
@@ -686,58 +670,6 @@ CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,
{
return ImGui::DragScalarN(label,data_type,v,components,v_speed,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power)
{
return ImGui::SliderFloat(label,v,v_min,v_max,format,power);
@@ -794,6 +726,58 @@ CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataTyp
{
return ImGui::VSliderScalar(label,size,data_type,v,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags)
{
return ImGui::ColorEdit3(label,col,flags);
@@ -826,15 +810,17 @@ CIMGUI_API bool igTreeNodeStrStr(const char* str_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(str_id,fmt,args);
bool ret = ImGui::TreeNodeV(str_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodePtr(const void* ptr_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(ptr_id,fmt,args);
bool ret = ImGui::TreeNodeV(ptr_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeVStr(const char* str_id,const char* fmt,va_list args)
{
@@ -852,15 +838,17 @@ CIMGUI_API bool igTreeNodeExStrStr(const char* str_id,ImGuiTreeNodeFlags flags,c
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(str_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(str_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args)
{
@@ -930,6 +918,22 @@ CIMGUI_API void igListBoxFooter()
{
return ImGui::ListBoxFooter();
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igValueBool(const char* prefix,bool b)
{
return ImGui::Value(prefix,b);
@@ -946,25 +950,6 @@ CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format
{
return ImGui::Value(prefix,v,float_format);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API bool igBeginMainMenuBar()
{
return ImGui::BeginMainMenuBar();
@@ -997,6 +982,25 @@ CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p
{
return ImGui::MenuItem(label,shortcut,p_selected,enabled);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API void igOpenPopup(const char* str_id)
{
return ImGui::OpenPopup(str_id);
@@ -1149,13 +1153,17 @@ CIMGUI_API bool igIsItemVisible()
{
return ImGui::IsItemVisible();
}
CIMGUI_API bool igIsItemEdited()
{
return ImGui::IsItemEdited();
}
CIMGUI_API bool igIsItemDeactivated()
{
return ImGui::IsItemDeactivated();
}
CIMGUI_API bool igIsItemDeactivatedAfterChange()
CIMGUI_API bool igIsItemDeactivatedAfterEdit()
{
return ImGui::IsItemDeactivatedAfterChange();
return ImGui::IsItemDeactivatedAfterEdit();
}
CIMGUI_API bool igIsAnyItemHovered()
{
@@ -1193,7 +1201,7 @@ CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max)
{
return ImGui::IsRectVisible(rect_min,rect_max);
}
CIMGUI_API float igGetTime()
CIMGUI_API double igGetTime()
{
return ImGui::GetTime();
}
@@ -1385,38 +1393,10 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_ch
{
return self->AddInputCharactersUTF8(utf8_chars);
}
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
return self->ClearInputCharacters();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API char TextRange_front(TextRange* self)
{
return self->front();
}
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c)
{
return self->is_blank(c);
}
CIMGUI_API void TextRange_trim_blanks(TextRange* self)
{
return self->trim_blanks();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out)
{
return self->split(separator,out);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
return self->Draw(label,width);
@@ -1437,6 +1417,22 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
return self->IsActive();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out)
{
return self->split(separator,out);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
return self->begin();
@@ -1529,15 +1525,15 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
return self->BuildSortByKey();
}
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count)
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
return self->DeleteChars(pos,bytes_count);
}
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end)
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end)
{
return self->InsertChars(pos,text,text_end);
}
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self)
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self)
{
return self->HasSelection();
}
@@ -1557,7 +1553,7 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
return self->IsDelivery();
}
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
return self->SetHSV(h,s,v,a);
}
@@ -1597,11 +1593,11 @@ CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self)
{
return self->PopTextureID();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
{
return self->GetClipRectMin();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
{
return self->GetClipRectMax();
}
@@ -1677,23 +1673,23 @@ CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,con
{
return self->AddBezierCurve(pos0,cp0,cp1,pos1,col,thickness,num_segments);
}
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self)
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self)
{
return self->PathClear();
}
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineTo(pos);
}
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineToMergeDuplicate(pos);
}
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
{
return self->PathFillConvex(col);
}
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
{
return self->PathStroke(col,closed,thickness);
}
@@ -1761,15 +1757,15 @@ CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVe
{
return self->PrimQuadUV(a,b,c,d,uv_a,uv_b,uv_c,uv_d,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimWriteVtx(pos,uv,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
{
return self->PrimWriteIdx(idx);
}
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimVtx(pos,uv,col);
}
@@ -1989,6 +1985,94 @@ CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool ov
{
return self->AddRemapChar(dst,src,overwrite_dst);
}
CIMGUI_API void igGetWindowPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowPos();
}
CIMGUI_API void igGetWindowSize_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowSize();
}
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetContentRegionMax();
}
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetContentRegionAvail();
}
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowContentRegionMin();
}
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowContentRegionMax();
}
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetFontTexUvWhitePixel();
}
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorPos();
}
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorStartPos();
}
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorScreenPos();
}
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectMin();
}
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectMax();
}
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectSize();
}
CIMGUI_API void igCalcTextSize_nonUDT(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)
{
*pOut = ImGui::CalcTextSize(text,text_end,hide_text_after_double_hash,wrap_width);
}
CIMGUI_API void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in)
{
*pOut = ImGui::ColorConvertU32ToFloat4(in);
}
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetMousePos();
}
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetMousePosOnOpeningCurrentPopup();
}
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold)
{
*pOut = ImGui::GetMouseDragDelta(button,lock_threshold);
}
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a)
{
*pOut = self->HSV(h,s,v,a);
}
CIMGUI_API void ImDrawList_GetClipRectMin_nonUDT(ImDrawList* self,ImVec2 *pOut)
{
*pOut = self->GetClipRectMin();
}
CIMGUI_API void ImDrawList_GetClipRectMax_nonUDT(ImDrawList* self,ImVec2 *pOut)
{
*pOut = self->GetClipRectMax();
}
CIMGUI_API void ImFont_CalcTextSizeA_nonUDT(ImFont* self,ImVec2 *pOut,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining)
{
*pOut = self->CalcTextSizeA(size,max_width,wrap_width,text_begin,text_end,remaining);
}
/////////////////////////////manual written functions

View File

@@ -37,43 +37,24 @@ typedef unsigned long long ImU64;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImFont ImFont;
typedef struct ImFontAtlas ImFontAtlas;
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawList ImDrawList;
typedef struct ImDrawChannel ImDrawChannel;
typedef struct ImDrawVert ImDrawVert;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImColor ImColor;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct Pair Pair;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct TextRange TextRange;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImVec4 ImVec4;
typedef struct ImVec2 ImVec2;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiInputTextCallbackData ImGuiInputTextCallbackData;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImColor ImColor;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImFontAtlas ImFontAtlas;
@@ -94,24 +75,24 @@ struct ImFont;
struct ImFontAtlas;
struct ImFontConfig;
struct ImColor;
typedef void* ImTextureID;
struct ImGuiContext;
struct ImGuiIO;
struct ImGuiInputTextCallbackData;
struct ImGuiListClipper;
struct ImGuiOnceUponAFrame;
struct ImGuiPayload;
struct ImGuiSizeCallbackData;
struct ImGuiStorage;
struct ImGuiStyle;
struct ImGuiTextFilter;
struct ImGuiTextBuffer;
struct ImGuiTextEditCallbackData;
struct ImGuiSizeCallbackData;
struct ImGuiListClipper;
struct ImGuiPayload;
struct ImGuiContext;
typedef void* ImTextureID;
typedef unsigned int ImGuiID;
typedef unsigned short ImWchar;
typedef int ImGuiCol;
typedef int ImGuiCond;
typedef int ImGuiDataType;
typedef int ImGuiDir;
typedef int ImGuiCond;
typedef int ImGuiKey;
typedef int ImGuiNavInput;
typedef int ImGuiMouseCursor;
@@ -131,12 +112,12 @@ typedef int ImGuiInputTextFlags;
typedef int ImGuiSelectableFlags;
typedef int ImGuiTreeNodeFlags;
typedef int ImGuiWindowFlags;
typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data);
typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data);
typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
typedef signed int ImS32;
typedef unsigned int ImU32;
typedef signed long long ImS64;
typedef unsigned long long ImU64;
typedef int64_t ImS64;
typedef uint64_t ImU64;
struct ImVec2
{
float x, y;
@@ -164,7 +145,6 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14,
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15,
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,
ImGuiWindowFlags_ResizeFromAnySide = 1 << 17,
ImGuiWindowFlags_NoNavInputs = 1 << 18,
ImGuiWindowFlags_NoNavFocus = 1 << 19,
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
@@ -196,6 +176,7 @@ enum ImGuiInputTextFlags_
ImGuiInputTextFlags_Password = 1 << 15,
ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
ImGuiInputTextFlags_CharsScientific = 1 << 17,
ImGuiInputTextFlags_CallbackResize = 1 << 18,
ImGuiInputTextFlags_Multiline = 1 << 20
};
enum ImGuiTreeNodeFlags_
@@ -220,7 +201,8 @@ enum ImGuiSelectableFlags_
ImGuiSelectableFlags_None = 0,
ImGuiSelectableFlags_DontClosePopups = 1 << 0,
ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2,
ImGuiSelectableFlags_Disabled = 1 << 3
};
enum ImGuiComboFlags_
{
@@ -251,6 +233,7 @@ enum ImGuiHoveredFlags_
ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3,
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5,
ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6,
ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7,
ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
};
@@ -262,6 +245,7 @@ enum ImGuiDragDropFlags_
ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2,
ImGuiDragDropFlags_SourceAllowNullID = 1 << 3,
ImGuiDragDropFlags_SourceExtern = 1 << 4,
ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5,
ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10,
ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11,
ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12,
@@ -394,10 +378,11 @@ enum ImGuiCol_
ImGuiCol_PlotHistogram,
ImGuiCol_PlotHistogramHovered,
ImGuiCol_TextSelectedBg,
ImGuiCol_ModalWindowDarkening,
ImGuiCol_DragDropTarget,
ImGuiCol_NavHighlight,
ImGuiCol_NavWindowingHighlight,
ImGuiCol_NavWindowingDimBg,
ImGuiCol_ModalWindowDimBg,
ImGuiCol_COUNT
};
enum ImGuiStyleVar_
@@ -463,6 +448,7 @@ enum ImGuiMouseCursor_
ImGuiMouseCursor_ResizeEW,
ImGuiMouseCursor_ResizeNESW,
ImGuiMouseCursor_ResizeNWSE,
ImGuiMouseCursor_Hand,
ImGuiMouseCursor_COUNT
};
enum ImGuiCond_
@@ -528,14 +514,15 @@ struct ImGuiIO
ImVec2 DisplayFramebufferScale;
ImVec2 DisplayVisibleMin;
ImVec2 DisplayVisibleMax;
bool OptMacOSXBehaviors;
bool OptCursorBlink;
bool ConfigMacOSXBehaviors;
bool ConfigCursorBlink;
bool ConfigResizeWindowsFromEdges;
const char* (*GetClipboardTextFn)(void* user_data);
void (*SetClipboardTextFn)(void* user_data, const char* text);
void* ClipboardUserData;
void (*ImeSetInputScreenPosFn)(int x, int y);
void* ImeWindowHandle;
void* RenderDrawListsFnDummy;
void* RenderDrawListsFnUnused;
ImVec2 MousePos;
bool MouseDown[5];
float MouseWheel;
@@ -558,11 +545,13 @@ struct ImGuiIO
float Framerate;
int MetricsRenderVertices;
int MetricsRenderIndices;
int MetricsRenderWindows;
int MetricsActiveWindows;
int MetricsActiveAllocations;
ImVec2 MouseDelta;
ImVec2 MousePosPrev;
ImVec2 MouseClickedPos[5];
float MouseClickedTime[5];
double MouseClickedTime[5];
bool MouseClicked[5];
bool MouseDoubleClicked[5];
bool MouseReleased[5];
@@ -602,12 +591,11 @@ struct ImGuiStorage
{
ImVector/*<Pair>*/ Data;
};
struct ImGuiTextEditCallbackData
struct ImGuiInputTextCallbackData
{
ImGuiInputTextFlags EventFlag;
ImGuiInputTextFlags Flags;
void* UserData;
bool ReadOnly;
ImWchar EventChar;
ImGuiKey EventKey;
char* Buf;
@@ -742,11 +730,13 @@ struct ImFontGlyph
};
enum ImFontAtlasFlags_
{
ImFontAtlasFlags_None = 0,
ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0,
ImFontAtlasFlags_NoMouseCursors = 1 << 1
};
struct ImFontAtlas
{
bool Locked;
ImFontAtlasFlags Flags;
ImTextureID TexID;
int TexDesiredWidth;
@@ -964,10 +954,6 @@ CIMGUI_API bool igCheckbox(const char* label,bool* v);
CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned int flags_value);
CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
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);
CIMGUI_API void igPlotHistogramFnPtr(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 igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
CIMGUI_API void igBullet();
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
@@ -987,19 +973,6 @@ CIMGUI_API bool igDragInt4(const char* label,int v[4],float v_speed,int v_min,in
CIMGUI_API bool igDragIntRange2(const char* label,int* v_current_min,int* v_current_max,float v_speed,int v_min,int v_max,const char* format,const char* format_max);
CIMGUI_API bool igDragScalar(const char* label,ImGuiDataType data_type,void* v,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,int components,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igSliderFloat2(const char* label,float v[2],float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igSliderFloat3(const char* label,float v[3],float v_min,float v_max,const char* format,float power);
@@ -1014,6 +987,19 @@ CIMGUI_API bool igSliderScalarN(const char* label,ImGuiDataType data_type,void*
CIMGUI_API bool igVSliderFloat(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igVSliderInt(const char* label,const ImVec2 size,int* v,int v_min,int v_max,const char* format);
CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataType data_type,void* v,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags);
CIMGUI_API bool igColorEdit4(const char* label,float col[4],ImGuiColorEditFlags flags);
CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags);
@@ -1045,14 +1031,14 @@ CIMGUI_API bool igListBoxFnPtr(const char* label,int* current_item,bool(*items_g
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 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);
CIMGUI_API void igPlotHistogramFnPtr(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 igValueBool(const char* prefix,bool b);
CIMGUI_API void igValueInt(const char* prefix,int v);
CIMGUI_API void igValueUint(const char* prefix,unsigned int v);
CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format);
CIMGUI_API void igBeginTooltip();
CIMGUI_API void igEndTooltip();
CIMGUI_API void igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API bool igBeginMainMenuBar();
CIMGUI_API void igEndMainMenuBar();
CIMGUI_API bool igBeginMenuBar();
@@ -1061,6 +1047,10 @@ CIMGUI_API bool igBeginMenu(const char* label,bool enabled);
CIMGUI_API void igEndMenu();
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 igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API void igOpenPopup(const char* str_id);
CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags);
CIMGUI_API bool igBeginPopupContextItem(const char* str_id,int mouse_button);
@@ -1099,8 +1089,9 @@ CIMGUI_API bool igIsItemActive();
CIMGUI_API bool igIsItemFocused();
CIMGUI_API bool igIsItemClicked(int mouse_button);
CIMGUI_API bool igIsItemVisible();
CIMGUI_API bool igIsItemEdited();
CIMGUI_API bool igIsItemDeactivated();
CIMGUI_API bool igIsItemDeactivatedAfterChange();
CIMGUI_API bool igIsItemDeactivatedAfterEdit();
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API bool igIsAnyItemFocused();
@@ -1110,7 +1101,7 @@ CIMGUI_API ImVec2 igGetItemRectSize();
CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsRectVisible(const ImVec2 size);
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max);
CIMGUI_API float igGetTime();
CIMGUI_API double igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API ImDrawList* igGetOverlayDrawList();
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData();
@@ -1158,19 +1149,16 @@ CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars);
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API char TextRange_front(TextRange* self);
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c);
CIMGUI_API void TextRange_trim_blanks(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out);
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out);
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
@@ -1194,14 +1182,14 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val);
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self);
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self);
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height);
@@ -1211,8 +1199,8 @@ CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* self,ImTextureID texture_id);
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
CIMGUI_API void ImDrawList_AddLine(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float thickness);
CIMGUI_API void ImDrawList_AddRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,int rounding_corners_flags,float thickness);
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,int rounding_corners_flags);
@@ -1231,11 +1219,11 @@ CIMGUI_API void ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_tex
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,const int num_points,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,const int num_points,ImU32 col);
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,const ImVec2 cp0,const ImVec2 cp1,const ImVec2 pos1,ImU32 col,float thickness,int num_segments);
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col);
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col);
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 centre,float radius,float a_min,float a_max,int num_segments);
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 centre,float radius,int a_min_of_12,int a_max_of_12);
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,int num_segments);
@@ -1252,9 +1240,9 @@ CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* self,int idx_count,int vtx_co
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col);
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col);
CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,const ImVec2 uv_a,const ImVec2 uv_b,const ImVec2 uv_c,const ImVec2 uv_d,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
CIMGUI_API void ImDrawData_Clear(ImDrawData* self);
@@ -1309,6 +1297,28 @@ CIMGUI_API void ImFont_RenderText(ImFont* self,ImDrawList* draw_list,float size,
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 void igGetWindowSize_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut);
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 void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in);
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold);
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a);
CIMGUI_API void ImDrawList_GetClipRectMin_nonUDT(ImDrawList* self,ImVec2 *pOut);
CIMGUI_API void ImDrawList_GetClipRectMax_nonUDT(ImDrawList* self,ImVec2 *pOut);
CIMGUI_API void ImFont_CalcTextSizeA_nonUDT(ImFont* self,ImVec2 *pOut,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining);
/////////////////////////hand written functions

View File

@@ -594,22 +594,6 @@ CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button)
{
return ImGui::RadioButton(label,v,v_button);
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay)
{
return ImGui::ProgressBar(fraction,size_arg,overlay);
@@ -686,58 +670,6 @@ CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,
{
return ImGui::DragScalarN(label,data_type,v,components,v_speed,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power)
{
return ImGui::SliderFloat(label,v,v_min,v_max,format,power);
@@ -794,6 +726,58 @@ CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataTyp
{
return ImGui::VSliderScalar(label,size,data_type,v,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags)
{
return ImGui::ColorEdit3(label,col,flags);
@@ -826,15 +810,17 @@ CIMGUI_API bool igTreeNodeStrStr(const char* str_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(str_id,fmt,args);
bool ret = ImGui::TreeNodeV(str_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodePtr(const void* ptr_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(ptr_id,fmt,args);
bool ret = ImGui::TreeNodeV(ptr_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeVStr(const char* str_id,const char* fmt,va_list args)
{
@@ -852,15 +838,17 @@ CIMGUI_API bool igTreeNodeExStrStr(const char* str_id,ImGuiTreeNodeFlags flags,c
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(str_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(str_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args)
{
@@ -930,6 +918,22 @@ CIMGUI_API void igListBoxFooter()
{
return ImGui::ListBoxFooter();
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igValueBool(const char* prefix,bool b)
{
return ImGui::Value(prefix,b);
@@ -946,25 +950,6 @@ CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format
{
return ImGui::Value(prefix,v,float_format);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API bool igBeginMainMenuBar()
{
return ImGui::BeginMainMenuBar();
@@ -997,6 +982,25 @@ CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p
{
return ImGui::MenuItem(label,shortcut,p_selected,enabled);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API void igOpenPopup(const char* str_id)
{
return ImGui::OpenPopup(str_id);
@@ -1149,13 +1153,17 @@ CIMGUI_API bool igIsItemVisible()
{
return ImGui::IsItemVisible();
}
CIMGUI_API bool igIsItemEdited()
{
return ImGui::IsItemEdited();
}
CIMGUI_API bool igIsItemDeactivated()
{
return ImGui::IsItemDeactivated();
}
CIMGUI_API bool igIsItemDeactivatedAfterChange()
CIMGUI_API bool igIsItemDeactivatedAfterEdit()
{
return ImGui::IsItemDeactivatedAfterChange();
return ImGui::IsItemDeactivatedAfterEdit();
}
CIMGUI_API bool igIsAnyItemHovered()
{
@@ -1193,7 +1201,7 @@ CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max)
{
return ImGui::IsRectVisible(rect_min,rect_max);
}
CIMGUI_API float igGetTime()
CIMGUI_API double igGetTime()
{
return ImGui::GetTime();
}
@@ -1385,38 +1393,10 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_ch
{
return self->AddInputCharactersUTF8(utf8_chars);
}
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
return self->ClearInputCharacters();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API char TextRange_front(TextRange* self)
{
return self->front();
}
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c)
{
return self->is_blank(c);
}
CIMGUI_API void TextRange_trim_blanks(TextRange* self)
{
return self->trim_blanks();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out)
{
return self->split(separator,out);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
return self->Draw(label,width);
@@ -1437,6 +1417,22 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
return self->IsActive();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out)
{
return self->split(separator,out);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
return self->begin();
@@ -1529,15 +1525,15 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
return self->BuildSortByKey();
}
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count)
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
return self->DeleteChars(pos,bytes_count);
}
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end)
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end)
{
return self->InsertChars(pos,text,text_end);
}
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self)
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self)
{
return self->HasSelection();
}
@@ -1557,7 +1553,7 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
return self->IsDelivery();
}
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
return self->SetHSV(h,s,v,a);
}
@@ -1597,11 +1593,11 @@ CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self)
{
return self->PopTextureID();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
{
return self->GetClipRectMin();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
{
return self->GetClipRectMax();
}
@@ -1677,23 +1673,23 @@ CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,con
{
return self->AddBezierCurve(pos0,cp0,cp1,pos1,col,thickness,num_segments);
}
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self)
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self)
{
return self->PathClear();
}
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineTo(pos);
}
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineToMergeDuplicate(pos);
}
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
{
return self->PathFillConvex(col);
}
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
{
return self->PathStroke(col,closed,thickness);
}
@@ -1761,15 +1757,15 @@ CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVe
{
return self->PrimQuadUV(a,b,c,d,uv_a,uv_b,uv_c,uv_d,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimWriteVtx(pos,uv,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
{
return self->PrimWriteIdx(idx);
}
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimVtx(pos,uv,col);
}

View File

@@ -36,42 +36,27 @@ typedef unsigned long long ImU64;
//struct SDL_Window;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef unsigned short ImDrawIdx;typedef struct ImFont ImFont;
typedef struct ImFontAtlas ImFontAtlas;
typedef unsigned short ImDrawIdx;
typedef void* ImTextureID;
// dear imgui, v1.64
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawList ImDrawList;
typedef struct ImDrawChannel ImDrawChannel;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImColor ImColor;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct Pair Pair;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct TextRange TextRange;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImVec4 ImVec4;
typedef struct ImVec2 ImVec2;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiInputTextCallbackData ImGuiInputTextCallbackData;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImColor ImColor;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImFontAtlas ImFontAtlas;
@@ -82,7 +67,6 @@ typedef struct ImDrawList ImDrawList;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImDrawChannel ImDrawChannel;
typedef void* ImTextureID;// dear imgui, v1.62
// (headers)
// See imgui.cpp file for documentation.
// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code.
@@ -90,6 +74,7 @@ typedef void* ImTextureID;// dear imgui, v1.62
// Get latest version at https://github.com/ocornut/imgui
// Configuration file (edit imconfig.h or define IMGUI_USER_CONFIG to set your own filename)
// Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY00 then bounced up to XYY01 when release tagging happens)
// Define attributes of all API symbols declarations (e.g. for DLL under Windows)
// is used for core imgui functions, is used for the default bindings files (imgui_impl_xxx.h)
// Helpers
@@ -104,45 +89,45 @@ struct ImFont; // Runtime data for a single font within a p
struct ImFontAtlas; // Runtime data for multiple fonts, bake multiple fonts into a single texture, TTF/OTF font loader
struct ImFontConfig; // Configuration data when adding a font or merging fonts
struct ImColor; // Helper functions to create a color that can be converted to either u32 or float4 (*obsolete* please avoid using)
struct ImGuiIO; // Main configuration and I/O between your application and ImGui
struct ImGuiOnceUponAFrame; // Simple helper for running a block of code not more than once a frame, used by IMGUI_ONCE_UPON_A_FRAME macro
struct ImGuiStorage; // Simple custom key value storage
struct ImGuiStyle; // Runtime data for styling/colors
struct ImGuiTextFilter; // Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]"
struct ImGuiTextBuffer; // Text buffer for logging/accumulating text
struct ImGuiTextEditCallbackData; // Shared state of ImGui::InputText() when using custom ImGuiTextEditCallback (rare/advanced use)
struct ImGuiSizeCallbackData; // Structure used to constraint window size in custom ways when using custom ImGuiSizeCallback (rare/advanced use)
struct ImGuiListClipper; // Helper to manually clip large list of items
struct ImGuiPayload; // User data payload for drag and drop operations
struct ImGuiContext; // ImGui context (opaque)
// Typedefs and Enumerations (declared as int for compatibility with old C++ and to not pollute the top of this file)
// Use your programming IDE "Go to definition" facility on the names of the right-most columns to find the actual flags/enum lists.
struct ImGuiIO; // Main configuration and I/O between your application and ImGui
struct ImGuiInputTextCallbackData; // Shared state of InputText() when using custom ImGuiInputTextCallback (rare/advanced use)
struct ImGuiListClipper; // Helper to manually clip large list of items
struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame, used by IMGUI_ONCE_UPON_A_FRAME macro
struct ImGuiPayload; // User data payload for drag and drop operations
struct ImGuiSizeCallbackData; // Callback data when using SetNextWindowSizeConstraints() (rare/advanced use)
struct ImGuiStorage; // Helper for key->value storage
struct ImGuiStyle; // Runtime data for styling/colors
struct ImGuiTextFilter; // Helper to parse and apply text filters (e.g. "aaaaa[,bbbb][,ccccc]")
struct ImGuiTextBuffer; // Helper to hold and append into a text buffer (~string builder)
// Typedefs and Enums/Flags (declared as int for compatibility with old C++, to allow using as flags and to not pollute the top of this file)
// Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists.
typedef unsigned int ImGuiID; // Unique ID used by widgets (typically hashed from a stack of string)
typedef unsigned short ImWchar; // Character for keyboard input/display
typedef int ImGuiCol; // enum: a color identifier for styling // enum ImGuiCol_
typedef int ImGuiDataType; // enum: a primary data type // enum ImGuiDataType_
typedef int ImGuiDir; // enum: a cardinal direction // enum ImGuiDir_
typedef int ImGuiCond; // enum: a condition for Set*() // enum ImGuiCond_
typedef int ImGuiKey; // enum: a key identifier (ImGui-side enum) // enum ImGuiKey_
typedef int ImGuiNavInput; // enum: an input identifier for navigation // enum ImGuiNavInput_
typedef int ImGuiMouseCursor; // enum: a mouse cursor identifier // enum ImGuiMouseCursor_
typedef int ImGuiStyleVar; // enum: a variable identifier for styling // enum ImGuiStyleVar_
typedef int ImDrawCornerFlags; // flags: for ImDrawList::AddRect*() etc. // enum ImDrawCornerFlags_
typedef int ImDrawListFlags; // flags: for ImDrawList // enum ImDrawListFlags_
typedef int ImFontAtlasFlags; // flags: for ImFontAtlas // enum ImFontAtlasFlags_
typedef int ImGuiBackendFlags; // flags: for io.BackendFlags // enum ImGuiBackendFlags_
typedef int ImGuiColorEditFlags; // flags: for ColorEdit*(), ColorPicker*() // enum ImGuiColorEditFlags_
typedef int ImGuiColumnsFlags; // flags: for *Columns*() // enum ImGuiColumnsFlags_
typedef int ImGuiConfigFlags; // flags: for io.ConfigFlags // enum ImGuiConfigFlags_
typedef int ImGuiComboFlags; // flags: for BeginCombo() // enum ImGuiComboFlags_
typedef int ImGuiDragDropFlags; // flags: for *DragDrop*() // enum ImGuiDragDropFlags_
typedef int ImGuiFocusedFlags; // flags: for IsWindowFocused() // enum ImGuiFocusedFlags_
typedef int ImGuiHoveredFlags; // flags: for IsItemHovered() etc. // enum ImGuiHoveredFlags_
typedef int ImGuiInputTextFlags; // flags: for InputText*() // enum ImGuiInputTextFlags_
typedef int ImGuiSelectableFlags; // flags: for Selectable() // enum ImGuiSelectableFlags_
typedef int ImGuiTreeNodeFlags; // flags: for TreeNode*(),CollapsingHeader()// enum ImGuiTreeNodeFlags_
typedef int ImGuiWindowFlags; // flags: for Begin*() // enum ImGuiWindowFlags_
typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data);
typedef int ImGuiCol; // -> enum ImGuiCol_ // Enum: A color identifier for styling
typedef int ImGuiCond; // -> enum ImGuiCond_ // Enum: A condition for Set*()
typedef int ImGuiDataType; // -> enum ImGuiDataType_ // Enum: A primary data type
typedef int ImGuiDir; // -> enum ImGuiDir_ // Enum: A cardinal direction
typedef int ImGuiKey; // -> enum ImGuiKey_ // Enum: A key identifier (ImGui-side enum)
typedef int ImGuiNavInput; // -> enum ImGuiNavInput_ // Enum: An input identifier for navigation
typedef int ImGuiMouseCursor; // -> enum ImGuiMouseCursor_ // Enum: A mouse cursor identifier
typedef int ImGuiStyleVar; // -> enum ImGuiStyleVar_ // Enum: A variable identifier for styling
typedef int ImDrawCornerFlags; // -> enum ImDrawCornerFlags_ // Flags: for ImDrawList::AddRect*() etc.
typedef int ImDrawListFlags; // -> enum ImDrawListFlags_ // Flags: for ImDrawList
typedef int ImFontAtlasFlags; // -> enum ImFontAtlasFlags_ // Flags: for ImFontAtlas
typedef int ImGuiBackendFlags; // -> enum ImGuiBackendFlags_ // Flags: for io.BackendFlags
typedef int ImGuiColorEditFlags; // -> enum ImGuiColorEditFlags_ // Flags: for ColorEdit*(), ColorPicker*()
typedef int ImGuiColumnsFlags; // -> enum ImGuiColumnsFlags_ // Flags: for Columns(), BeginColumns()
typedef int ImGuiConfigFlags; // -> enum ImGuiConfigFlags_ // Flags: for io.ConfigFlags
typedef int ImGuiComboFlags; // -> enum ImGuiComboFlags_ // Flags: for BeginCombo()
typedef int ImGuiDragDropFlags; // -> enum ImGuiDragDropFlags_ // Flags: for *DragDrop*()
typedef int ImGuiFocusedFlags; // -> enum ImGuiFocusedFlags_ // Flags: for IsWindowFocused()
typedef int ImGuiHoveredFlags; // -> enum ImGuiHoveredFlags_ // Flags: for IsItemHovered(), IsWindowHovered() etc.
typedef int ImGuiInputTextFlags; // -> enum ImGuiInputTextFlags_ // Flags: for InputText*()
typedef int ImGuiSelectableFlags; // -> enum ImGuiSelectableFlags_ // Flags: for Selectable()
typedef int ImGuiTreeNodeFlags; // -> enum ImGuiTreeNodeFlags_ // Flags: for TreeNode*(),CollapsingHeader()
typedef int ImGuiWindowFlags; // -> enum ImGuiWindowFlags_ // Flags: for Begin*()
typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data);
typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
// Scalar data types
typedef signed int ImS32; // 32-bit signed integer == int
@@ -170,7 +155,6 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.
ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it
ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame
//ImGuiWindowFlags_ShowBorders = 1 << 7, // Show borders around windows and items (OBSOLETE! Use e.g. style.FrameBorderSize=1.0f to enable borders).
ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file
ImGuiWindowFlags_NoInputs = 1 << 9, // Disable catching mouse or keyboard inputs, hovering test with pass through.
ImGuiWindowFlags_MenuBar = 1 << 10, // Has a menu-bar
@@ -180,7 +164,6 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14, // Always show vertical scrollbar (even if ContentSize.y < Size.y)
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15, // Always show horizontal scrollbar (even if ContentSize.x < Size.x)
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16, // Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
ImGuiWindowFlags_ResizeFromAnySide = 1 << 17, // [BETA] Enable resize from any corners and borders. Your back-end needs to honor the different values of io.MouseCursor set by imgui.
ImGuiWindowFlags_NoNavInputs = 1 << 18, // No gamepad/keyboard navigation within the window
ImGuiWindowFlags_NoNavFocus = 1 << 19, // No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
@@ -191,6 +174,9 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_Popup = 1 << 26, // Don't use! For internal use by BeginPopup()
ImGuiWindowFlags_Modal = 1 << 27, // Don't use! For internal use by BeginPopupModal()
ImGuiWindowFlags_ChildMenu = 1 << 28 // Don't use! For internal use by BeginMenu()
// [Obsolete]
//ImGuiWindowFlags_ShowBorders = 1 << 7, // --> Set style.FrameBorderSize=1.0f / style.WindowBorderSize=1.0f to enable borders around windows and items
//ImGuiWindowFlags_ResizeFromAnySide = 1 << 17, // --> Set io.ConfigResizeWindowsFromEdges and make sure mouse cursors are supported by back-end (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors)
};
// Flags for ImGui::InputText()
enum ImGuiInputTextFlags_
@@ -205,7 +191,7 @@ enum ImGuiInputTextFlags_
ImGuiInputTextFlags_CallbackCompletion = 1 << 6, // Call user function on pressing TAB (for completion handling)
ImGuiInputTextFlags_CallbackHistory = 1 << 7, // Call user function on pressing Up/Down arrows (for history handling)
ImGuiInputTextFlags_CallbackAlways = 1 << 8, // Call user function every time. User code may query cursor position, modify text buffer.
ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Call user function to filter character. Modify data->EventChar to replace/filter input, or return 1 to discard character.
ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Call user function to filter character. Modify data->EventChar to replace/filter input, or return 1 in callback to discard character.
ImGuiInputTextFlags_AllowTabInput = 1 << 10, // Pressing TAB input a '\t' character into the text field
ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, // In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).
ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, // Disable following the cursor horizontally
@@ -214,6 +200,7 @@ enum ImGuiInputTextFlags_
ImGuiInputTextFlags_Password = 1 << 15, // Password mode, display all characters as '*'
ImGuiInputTextFlags_NoUndoRedo = 1 << 16, // Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().
ImGuiInputTextFlags_CharsScientific = 1 << 17, // Allow 0123456789.+-*/eE (Scientific notation input)
ImGuiInputTextFlags_CallbackResize = 1 << 18, // Allow buffer capacity resize + notify when the string wants to be resized (for string types which hold a cache of their Size) (see misc/stl/imgui_stl.h for an example of using this)
// [Internal]
ImGuiInputTextFlags_Multiline = 1 << 20 // For internal use by InputTextMultiline()
};
@@ -244,7 +231,8 @@ enum ImGuiSelectableFlags_
ImGuiSelectableFlags_None = 0,
ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window
ImGuiSelectableFlags_SpanAllColumns = 1 << 1, // Selectable frame can span all columns (text will still fit in current column)
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2 // Generate press events on double clicks too
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2, // Generate press events on double clicks too
ImGuiSelectableFlags_Disabled = 1 << 3 // Cannot be selected, display greyed out text
};
// Flags for ImGui::BeginCombo()
enum ImGuiComboFlags_
@@ -269,7 +257,8 @@ enum ImGuiFocusedFlags_
ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows
};
// Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()
// Note: 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!
// Note: 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!
// Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls.
enum ImGuiHoveredFlags_
{
ImGuiHoveredFlags_None = 0, // Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.
@@ -280,6 +269,7 @@ enum ImGuiHoveredFlags_
//ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 4, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet.
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, // Return true even if the position is overlapped by another window
ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, // Return true even if the item is disabled
ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
};
@@ -289,10 +279,11 @@ enum ImGuiDragDropFlags_
ImGuiDragDropFlags_None = 0,
// BeginDragDropSource() flags
ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0, // By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disable this behavior.
ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1, // By default, when dragging we clear data so that IsItemHovered() will return true, to avoid subsequent user code submitting tooltips. This flag disable this behavior so you can still call IsItemHovered() on the source item.
ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1, // By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disable this behavior so you can still call IsItemHovered() on the source item.
ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2, // Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.
ImGuiDragDropFlags_SourceAllowNullID = 1 << 3, // Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit.
ImGuiDragDropFlags_SourceExtern = 1 << 4, // External source (from outside of imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously.
ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5, // Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
// AcceptDragDropPayload() flags
ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10, // AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11, // Do not draw the default highlight rectangle when hovering over target.
@@ -441,10 +432,11 @@ enum ImGuiCol_
ImGuiCol_PlotHistogram,
ImGuiCol_PlotHistogramHovered,
ImGuiCol_TextSelectedBg,
ImGuiCol_ModalWindowDarkening, // Darken/colorize entire screen behind a modal window, when one is active
ImGuiCol_DragDropTarget,
ImGuiCol_NavHighlight, // Gamepad/keyboard: current highlighted item
ImGuiCol_NavWindowingHighlight, // Gamepad/keyboard: when holding NavMenu to focus/move/resize windows
ImGuiCol_NavWindowingHighlight, // Highlight window when using CTRL+TAB
ImGuiCol_NavWindowingDimBg, // Darken/colorize entire screen behind the CTRL+TAB window list, when active
ImGuiCol_ModalWindowDimBg, // Darken/colorize entire screen behind a modal window, when one is active
ImGuiCol_COUNT
// Obsolete names (will be removed)
};
@@ -516,11 +508,12 @@ enum ImGuiMouseCursor_
ImGuiMouseCursor_None = -1,
ImGuiMouseCursor_Arrow = 0,
ImGuiMouseCursor_TextInput, // When hovering over InputText, etc.
ImGuiMouseCursor_ResizeAll, // Unused by imgui functions
ImGuiMouseCursor_ResizeAll, // (Unused by imgui functions)
ImGuiMouseCursor_ResizeNS, // When hovering over an horizontal border
ImGuiMouseCursor_ResizeEW, // When hovering over a vertical border or a column
ImGuiMouseCursor_ResizeNESW, // When hovering over the bottom-left corner of a window
ImGuiMouseCursor_ResizeNWSE, // When hovering over the bottom-right corner of a window
ImGuiMouseCursor_Hand, // (Unused by imgui functions. Use for e.g. hyperlinks)
ImGuiMouseCursor_COUNT
// Obsolete names (will be removed)
};
@@ -569,7 +562,7 @@ struct ImGuiStyle
float CurveTessellationTol; // Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
ImVec4 Colors[ImGuiCol_COUNT];
};
// This is where your app communicate with ImGui. Access via ImGui::GetIO().
// This is where your app communicate with Dear ImGui. Access via ImGui::GetIO().
// Read 'Programmer guide' section in .cpp file for general usage.
struct ImGuiIO
{
@@ -597,9 +590,10 @@ struct ImGuiIO
ImVec2 DisplayFramebufferScale; // = (1.0f,1.0f) // For retina display or other situations where window coordinates are different from framebuffer coordinates. User storage only, presently not used by ImGui.
ImVec2 DisplayVisibleMin; // <unset> (0.0f,0.0f) // If you use DisplaySize as a virtual space larger than your screen, set DisplayVisibleMin/Max to the visible area.
ImVec2 DisplayVisibleMax; // <unset> (0.0f,0.0f) // If the values are the same, we defaults to Min=(0.0f) and Max=DisplaySize
// Advanced/subtle behaviors
bool OptMacOSXBehaviors; // = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl
bool OptCursorBlink; // = true // Enable blinking cursor, for users who consider it annoying.
// Miscellaneous configuration options
bool ConfigMacOSXBehaviors; // = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl (was called io.OptMacOSXBehaviors prior to 1.63)
bool ConfigCursorBlink; // = true // Set to false to disable blinking cursor, for users who consider it distracting. (was called: io.OptCursorBlink prior to 1.63)
bool ConfigResizeWindowsFromEdges; // = false // [BETA] Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be the ImGuiWindowFlags_ResizeFromAnySide flag)
//------------------------------------------------------------------
// Settings (User Functions)
//------------------------------------------------------------------
@@ -616,7 +610,7 @@ struct ImGuiIO
// Input - Fill before calling NewFrame()
//------------------------------------------------------------------
ImVec2 MousePos; // Mouse position, in pixels. Set to ImVec2(-FLT_MAX,-FLT_MAX) if mouse is unavailable (on another screen, etc.)
bool MouseDown[5]; // Mouse buttons: left, right, middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API.
bool MouseDown[5]; // Mouse buttons: 0=left, 1=right, 2=middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API.
float MouseWheel; // Mouse wheel Vertical: 1 unit scrolls about 5 lines text.
float MouseWheelH; // Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all back-ends.
bool MouseDrawCursor; // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor).
@@ -641,14 +635,16 @@ struct ImGuiIO
float Framerate; // Application framerate estimation, in frame per second. Solely for convenience. Rolling average estimation based on IO.DeltaTime over 120 frames
int MetricsRenderVertices; // Vertices output during last call to Render()
int MetricsRenderIndices; // Indices output during last call to Render() = number of triangles * 3
int MetricsActiveWindows; // Number of visible root windows (exclude child windows)
int MetricsRenderWindows; // Number of visible windows
int MetricsActiveWindows; // Number of active windows
int MetricsActiveAllocations; // Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts.
ImVec2 MouseDelta; // Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta.
//------------------------------------------------------------------
// [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed!
//------------------------------------------------------------------
ImVec2 MousePosPrev; // Previous mouse position temporary storage (nb: not for public use, set to MousePos in NewFrame())
ImVec2 MouseClickedPos[5]; // Position at time of clicking
float MouseClickedTime[5]; // Time of last click (used to figure out double-click)
double MouseClickedTime[5]; // Time of last click (used to figure out double-click)
bool MouseClicked[5]; // Mouse button went from !Down to Down
bool MouseDoubleClicked[5]; // Has mouse button been double-clicked?
bool MouseReleased[5]; // Mouse button went from Down to !Down
@@ -691,6 +687,7 @@ struct ImGuiOnceUponAFrame
// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]"
struct ImGuiTextFilter
{
// [Internal]
char InputBuf[256];
ImVector/*<TextRange>*/ Filters;
int CountGrep;
@@ -700,7 +697,7 @@ struct ImGuiTextBuffer
{
ImVector/*<char>*/ Buf;
};
// Helper: Simple Key->value storage
// Helper: key->value storage
// Typically you don't have to worry about this since a storage is held within each Window.
// We use it to e.g. store collapse state for a tree (Int 0/1)
// This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame)
@@ -721,26 +718,30 @@ struct ImGuiStorage
// Use on your own storage if you know only integer are being stored (open/close all tree nodes)
// For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once.
};
// Shared state of InputText(), passed to callback when a ImGuiInputTextFlags_Callback* flag is used and the corresponding callback is triggered.
struct ImGuiTextEditCallbackData
// Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used.
// The callback function should return 0 by default.
// Special processing:
// - ImGuiInputTextFlags_CallbackCharFilter: return 1 if the character is not allowed. You may also set 'EventChar=0' as any character replacement are allowed.
// - ImGuiInputTextFlags_CallbackResize: notified by InputText() when the string is resized. BufTextLen is set to the new desired string length so you can update the string size on your side of the fence. You can also replace Buf pointer if your underlying data is reallocated. No need to initialize new characters or zero-terminator as InputText will do it right after the resize callback.
struct ImGuiInputTextCallbackData
{
ImGuiInputTextFlags EventFlag; // One of ImGuiInputTextFlags_Callback* // Read-only
ImGuiInputTextFlags EventFlag; // One ImGuiInputTextFlags_Callback* // Read-only
ImGuiInputTextFlags Flags; // What user passed to InputText() // Read-only
void* UserData; // What user passed to InputText() // Read-only
bool ReadOnly; // Read-only mode // Read-only
// CharFilter event:
ImWchar EventChar; // Character input // Read-write (replace character or set to zero)
// Completion,History,Always events:
// If you modify the buffer contents make sure you update 'BufTextLen' and set 'BufDirty' to true.
ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only
char* Buf; // Current text buffer // Read-write (pointed data only, can't replace the actual pointer)
int BufTextLen; // Current text length in bytes // Read-write
int BufSize; // Maximum text length in bytes // Read-only
bool BufDirty; // Set if you modify Buf/BufTextLen!! // Write
int CursorPos; // // Read-write
int SelectionStart; // // Read-write (== to SelectionEnd when no selection)
int SelectionEnd; // // Read-write
// NB: Helper functions for text manipulation. Calling those function loses selection.
// Arguments for the different callback events
// - To modify the text buffer in a callback, prefer using the InsertChars() / DeleteChars() function. InsertChars() will take care of calling the resize callback if necessary.
// - If you know your edits are not going to resize the underlying buffer allocation, you may modify the contents of 'Buf[]' directly. You need to update 'BufTextLen' accordingly (0 <= BufTextLen < BufSize) and set 'BufDirty'' to true so InputText can update its internal state.
ImWchar EventChar; // Character input // Read-write // [CharFilter] Replace character or set to zero. return 1 is equivalent to setting EventChar=0;
ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only // [Completion,History]
char* Buf; // Text buffer // Read-write // [Resize] Can replace pointer / [Completion,History,Always] Only write to pointed data, don't replace the actual pointer!
int BufTextLen; // Text length in bytes // Read-write // [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length()
int BufSize; // Buffer capacity in bytes // Read-only // [Resize,Completion,History,Always] Include zero-terminator storage. In C land == ARRAYSIZE(my_char_array), in C++ land: string.capacity()+1
bool BufDirty; // Set if you modify Buf/BufTextLen!! // Write // [Completion,History,Always]
int CursorPos; // // Read-write // [Completion,History,Always]
int SelectionStart; // // Read-write // [Completion,History,Always] == to SelectionEnd when no selection)
int SelectionEnd; // // Read-write // [Completion,History,Always]
// Helper functions for text manipulation.
// Use those function to benefit from the CallbackResize behaviors. Calling those function reset the selection.
};
// Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin().
// NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough.
@@ -920,23 +921,34 @@ struct ImFontGlyph
};
enum ImFontAtlasFlags_
{
ImFontAtlasFlags_None = 0,
ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0, // Don't round the height to next power of two
ImFontAtlasFlags_NoMouseCursors = 1 << 1 // Don't build software mouse cursors into the atlas
};
// Load and rasterize multiple TTF/OTF fonts into a same texture.
// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering.
// We also add custom graphic data into the texture that serves for ImGui.
// 1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you.
// 2. Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data.
// 3. Upload the pixels data into a texture within your graphics system.
// 4. Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture. This value will be passed back to you during rendering to identify the texture.
// IMPORTANT: If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the ImFont is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data.
// Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding:
// - One or more fonts.
// - Custom graphics data needed to render the shapes needed by Dear ImGui.
// - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas).
// It is the user-code responsibility to setup/build the atlas, then upload the pixel data into a texture accessible by your graphics api.
// - Optionally, call any of the AddFont*** functions. If you don't call any, the default font embedded in the code will be loaded for you.
// - Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data.
// - Upload the pixels data into a texture within your graphics system (see imgui_impl_xxxx.cpp examples)
// - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API.
// This value will be passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID for more details.
// Common pitfalls:
// - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the
// atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data.
// - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction.
// You can set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed,
// - Even though many functions are suffixed with "TTF", OTF data is supported just as well.
// - This is an old API and it is currently awkward for those and and various other reasons! We will address them in the future!
struct ImFontAtlas
{
// Build atlas, retrieve pixel data.
// User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID().
// RGBA32 format is provided for convenience and compatibility, but note that unless you use CustomRect to draw color data, the RGB pixels emitted from Fonts will all be white (~75 of waste).
// Pitch = Width * BytesPerPixels
// The pitch is always = Width * BytesPerPixels (1 or 4)
// Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into
// the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75 of memory/bandwidth waste.
//-------------------------------------------
// Glyph Ranges
//-------------------------------------------
@@ -953,6 +965,7 @@ struct ImFontAtlas
//-------------------------------------------
// Members
//-------------------------------------------
bool Locked; // Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert.
ImFontAtlasFlags Flags; // Build flags (see ImFontAtlasFlags_)
ImTextureID TexID; // User data to refer to the texture once it has been uploaded to user's graphic systems. It is passed back to you during rendering via the ImDrawCmd structure.
int TexDesiredWidth; // Texture width desired by user before Build(). Must be a power-of-two. If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height.
@@ -1060,7 +1073,7 @@ CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref); // add style editor block
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 a version string e.g. "1.23"
CIMGUI_API const char* igGetVersion(); // 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
@@ -1205,16 +1218,12 @@ CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 size,const ImVe
CIMGUI_API bool igImageButton(ImTextureID user_texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,int frame_padding,const ImVec4 bg_col,const ImVec4 tint_col); // <0 frame_padding uses default frame padding settings. 0 for no padding
CIMGUI_API bool igCheckbox(const char* label,bool* v);
CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned int flags_value);
CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
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);
CIMGUI_API void igPlotHistogramFnPtr(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 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
// Widgets: Combo Box
// The new BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it.
// 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!
@@ -1237,20 +1246,6 @@ CIMGUI_API bool igDragInt4(const char* label,int v[4],float v_speed,int v_min,in
CIMGUI_API bool igDragIntRange2(const char* label,int* v_current_min,int* v_current_max,float v_speed,int v_min,int v_max,const char* format,const char* format_max);
CIMGUI_API bool igDragScalar(const char* label,ImGuiDataType data_type,void* v,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,int components,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
// Widgets: Input with Keyboard
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
// Widgets: Sliders (tip: ctrl+click on a slider to input with keyboard. manually input values aren't clamped, can go off-bounds)
// Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc.
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power); // adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. Use power!=1.0 for power curve sliders
@@ -1267,6 +1262,21 @@ CIMGUI_API bool igSliderScalarN(const char* label,ImGuiDataType data_type,void*
CIMGUI_API bool igVSliderFloat(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igVSliderInt(const char* label,const ImVec2 size,int* v,int v_min,int v_max,const char* format);
CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataType data_type,void* v,const void* v_min,const void* v_max,const char* format,float power);
// Widgets: Input with Keyboard
// If you want to use InputText() with a dynamic string type such as std::string or your own, see misc/stl/imgui_stl.h
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
// Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little colored preview square that can be left-clicked to open a picker, and right-clicked to open an option menu.)
// Note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can the pass the address of a first float element out of a contiguous structure, e.g. &myvector.x
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags);
@@ -1295,25 +1305,26 @@ CIMGUI_API float igGetTreeNodeToLabelSpacing();
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
// Widgets: Selectable / Lists
// Widgets: Selectables
CIMGUI_API bool igSelectable(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size); // "bool selected" carry the selection state (read-only). Selectable() is clicked is returns true so you can modify your selection state. size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height
CIMGUI_API bool igSelectableBoolPtr(const char* label,bool* p_selected,ImGuiSelectableFlags flags,const ImVec2 size); // "bool* p_selected" point to the selection state (read-write), as a convenient helper.
// Widgets: List Boxes
CIMGUI_API bool igListBoxStr_arr(const char* label,int* current_item,const char* const items[],int items_count,int height_in_items);
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!
// 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);
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);
CIMGUI_API void igPlotHistogramFnPtr(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);
// Widgets: Value() Helpers. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace)
CIMGUI_API void igValueBool(const char* prefix,bool b);
CIMGUI_API void igValueInt(const char* prefix,int v);
CIMGUI_API void igValueUint(const char* prefix,unsigned int v);
CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format);
// 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 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);
// Menus
// 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).
@@ -1322,6 +1333,11 @@ CIMGUI_API bool igBeginMenu(const char* label,bool enabled); //
CIMGUI_API void igEndMenu(); // 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 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
CIMGUI_API void igOpenPopup(const char* str_id); // call to mark popup as open (don't call every frame!). popups are closed when user click outside, or if CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. By default, Selectable()/MenuItem() are calling CloseCurrentPopup(). Popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level).
CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags); // return true if the popup is open, and you can start outputting to it. only call EndPopup() if BeginPopup() returns true!
@@ -1365,13 +1381,15 @@ CIMGUI_API void igPopClipRect();
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 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 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 igIsItemDeactivatedAfterChange(); // 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 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();
@@ -1381,7 +1399,7 @@ CIMGUI_API ImVec2 igGetItemRectSize();
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 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 float igGetTime();
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
@@ -1402,13 +1420,13 @@ CIMGUI_API bool igIsKeyDown(int user_key_index);
CIMGUI_API bool igIsKeyPressed(int user_key_index,bool repeat); // was key pressed (went from !Down to Down). if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate
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
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 igIsMouseClicked(int button,bool repeat); // did mouse button clicked (went from !Down to Down)
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. disregarding of consideration of focus/window ordering/blocked by a popup.
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
@@ -1438,7 +1456,7 @@ CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
//------------------------------------------------------------------
// Settings (fill once) // Default value:
//------------------------------------------------------------------
// Advanced/subtle behaviors
// Miscellaneous configuration options
//------------------------------------------------------------------
// Settings (User Functions)
//------------------------------------------------------------------
@@ -1452,7 +1470,7 @@ CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
// Functions
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c); // Add new character into InputCharacters[]
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars); // Add new characters into InputCharacters[] from an UTF-8 string
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self); // Clear the text input buffer manually
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self); // Clear the text input buffer manually
//------------------------------------------------------------------
// Output - Retrieve after calling NewFrame()
//------------------------------------------------------------------
@@ -1460,18 +1478,16 @@ CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self); // Clear t
// [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed!
//------------------------------------------------------------------
// NB: It is forbidden to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden.
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API char TextRange_front(TextRange* self);
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c);
CIMGUI_API void TextRange_trim_blanks(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out);
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width); // Helper calling InputText+Build
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
// [Internal]
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out);
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self); // Buf is zero-terminated, so end() will point on the zero-terminator
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
@@ -1504,13 +1520,14 @@ CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
// For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once.
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
// CharFilter event:
// Completion,History,Always events:
// If you modify the buffer contents make sure you update 'BufTextLen' and set 'BufDirty' to true.
// NB: Helper functions for text manipulation. Calling those function loses selection.
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self);
// Arguments for the different callback events
// - To modify the text buffer in a callback, prefer using the InsertChars() / DeleteChars() function. InsertChars() will take care of calling the resize callback if necessary.
// - If you know your edits are not going to resize the underlying buffer allocation, you may modify the contents of 'Buf[]' directly. You need to update 'BufTextLen' accordingly (0 <= BufTextLen < BufSize) and set 'BufDirty'' to true so InputText can update its internal state.
// Helper functions for text manipulation.
// Use those function to benefit from the CallbackResize behaviors. Calling those function reset the selection.
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
// Members
// [Internal]
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
@@ -1518,7 +1535,7 @@ CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
// FIXME-OBSOLETE: May need to obsolete/cleanup those helpers.
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
// items_count: Use -1 to ignore (you can call Begin later). Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step).
// items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing().
@@ -1534,8 +1551,8 @@ CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* self,ImTextureID texture_id);
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
// Primitives
CIMGUI_API void ImDrawList_AddLine(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float thickness);
CIMGUI_API void ImDrawList_AddRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,int rounding_corners_flags,float thickness); // a: upper-left, b: lower-right, rounding_corners_flags: 4-bits corresponding to which corner to round
@@ -1556,11 +1573,11 @@ CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,con
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,const int num_points,ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order.
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,const ImVec2 cp0,const ImVec2 cp1,const ImVec2 pos1,ImU32 col,float thickness,int num_segments);
// Stateful path API, add points then finish with PathFillConvex() or PathStroke()
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order.
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order.
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 centre,float radius,float a_min,float a_max,int num_segments);
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 centre,float radius,int a_min_of_12,int a_max_of_12); // Use precomputed angles for a 12 steps circle
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,int num_segments);
@@ -1583,9 +1600,9 @@ CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* self,int idx_count,int vtx_co
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col); // Axis aligned rectangle (composed of two triangles)
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col);
CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,const ImVec2 uv_a,const ImVec2 uv_b,const ImVec2 uv_c,const ImVec2 uv_d,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
// Functions
@@ -1596,7 +1613,7 @@ CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc); /
CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font_data,int font_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); // Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after Build(). Set font_cfg->FontDataOwnedByAtlas to false to keep ownership.
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font_data,int font_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); // Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. Set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); // 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp.
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); // 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter.
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self); // Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts.
@@ -1605,8 +1622,9 @@ CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self); // Clea
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self); // Clear all input and output.
// Build atlas, retrieve pixel data.
// User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID().
// RGBA32 format is provided for convenience and compatibility, but note that unless you use CustomRect to draw color data, the RGB pixels emitted from Fonts will all be white (~75% of waste).
// Pitch = Width * BytesPerPixels
// The pitch is always = Width * BytesPerPixels (1 or 4)
// Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into
// the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75% of memory/bandwidth waste.
CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self); // Build pixels data. This is called automatically for you by the GetTexData*** functions.
CIMGUI_API bool ImFontAtlas_IsBuilt(ImFontAtlas* self);
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel); // 1 byte per-pixel

View File

@@ -594,22 +594,6 @@ CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button)
{
return ImGui::RadioButton(label,v,v_button);
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay)
{
return ImGui::ProgressBar(fraction,size_arg,overlay);
@@ -686,58 +670,6 @@ CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,
{
return ImGui::DragScalarN(label,data_type,v,components,v_speed,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power)
{
return ImGui::SliderFloat(label,v,v_min,v_max,format,power);
@@ -794,6 +726,58 @@ CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataTyp
{
return ImGui::VSliderScalar(label,size,data_type,v,v_min,v_max,format,power);
}
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputText(label,buf,buf_size,flags,callback,user_data);
}
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data)
{
return ImGui::InputTextMultiline(label,buf,buf_size,size,flags,callback,user_data);
}
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat2(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat3(label,v,format,extra_flags);
}
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputFloat4(label,v,format,extra_flags);
}
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt(label,v,step,step_fast,extra_flags);
}
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt2(label,v,extra_flags);
}
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt3(label,v,extra_flags);
}
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags)
{
return ImGui::InputInt4(label,v,extra_flags);
}
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputDouble(label,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalar(label,data_type,v,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags)
{
return ImGui::InputScalarN(label,data_type,v,components,step,step_fast,format,extra_flags);
}
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags)
{
return ImGui::ColorEdit3(label,col,flags);
@@ -826,15 +810,17 @@ CIMGUI_API bool igTreeNodeStrStr(const char* str_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(str_id,fmt,args);
bool ret = ImGui::TreeNodeV(str_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodePtr(const void* ptr_id,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeV(ptr_id,fmt,args);
bool ret = ImGui::TreeNodeV(ptr_id,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeVStr(const char* str_id,const char* fmt,va_list args)
{
@@ -852,15 +838,17 @@ CIMGUI_API bool igTreeNodeExStrStr(const char* str_id,ImGuiTreeNodeFlags flags,c
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(str_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(str_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExPtr(const void* ptr_id,ImGuiTreeNodeFlags flags,const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
bool ret = ImGui::TreeNodeExV(ptr_id,flags,fmt,args);
va_end(args);
return ret;
}
CIMGUI_API bool igTreeNodeExVStr(const char* str_id,ImGuiTreeNodeFlags flags,const char* fmt,va_list args)
{
@@ -930,6 +918,22 @@ CIMGUI_API void igListBoxFooter()
{
return ImGui::ListBoxFooter();
}
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)
{
return ImGui::PlotLines(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,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)
{
return ImGui::PlotLines(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,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)
{
return ImGui::PlotHistogram(label,values,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size,stride);
}
CIMGUI_API void igPlotHistogramFnPtr(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)
{
return ImGui::PlotHistogram(label,values_getter,data,values_count,values_offset,overlay_text,scale_min,scale_max,graph_size);
}
CIMGUI_API void igValueBool(const char* prefix,bool b)
{
return ImGui::Value(prefix,b);
@@ -946,25 +950,6 @@ CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format
{
return ImGui::Value(prefix,v,float_format);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API bool igBeginMainMenuBar()
{
return ImGui::BeginMainMenuBar();
@@ -997,6 +982,25 @@ CIMGUI_API bool igMenuItemBoolPtr(const char* label,const char* shortcut,bool* p
{
return ImGui::MenuItem(label,shortcut,p_selected,enabled);
}
CIMGUI_API void igBeginTooltip()
{
return ImGui::BeginTooltip();
}
CIMGUI_API void igEndTooltip()
{
return ImGui::EndTooltip();
}
CIMGUI_API void igSetTooltip(const char* fmt,...)
{
va_list args;
va_start(args, fmt);
ImGui::SetTooltipV(fmt,args);
va_end(args);
}
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
{
return ImGui::SetTooltipV(fmt,args);
}
CIMGUI_API void igOpenPopup(const char* str_id)
{
return ImGui::OpenPopup(str_id);
@@ -1149,13 +1153,17 @@ CIMGUI_API bool igIsItemVisible()
{
return ImGui::IsItemVisible();
}
CIMGUI_API bool igIsItemEdited()
{
return ImGui::IsItemEdited();
}
CIMGUI_API bool igIsItemDeactivated()
{
return ImGui::IsItemDeactivated();
}
CIMGUI_API bool igIsItemDeactivatedAfterChange()
CIMGUI_API bool igIsItemDeactivatedAfterEdit()
{
return ImGui::IsItemDeactivatedAfterChange();
return ImGui::IsItemDeactivatedAfterEdit();
}
CIMGUI_API bool igIsAnyItemHovered()
{
@@ -1193,7 +1201,7 @@ CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max)
{
return ImGui::IsRectVisible(rect_min,rect_max);
}
CIMGUI_API float igGetTime()
CIMGUI_API double igGetTime()
{
return ImGui::GetTime();
}
@@ -1385,38 +1393,10 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_ch
{
return self->AddInputCharactersUTF8(utf8_chars);
}
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self)
{
return self->ClearInputCharacters();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API char TextRange_front(TextRange* self)
{
return self->front();
}
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c)
{
return self->is_blank(c);
}
CIMGUI_API void TextRange_trim_blanks(TextRange* self)
{
return self->trim_blanks();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out)
{
return self->split(separator,out);
}
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width)
{
return self->Draw(label,width);
@@ -1437,6 +1417,22 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self)
{
return self->IsActive();
}
CIMGUI_API const char* TextRange_begin(TextRange* self)
{
return self->begin();
}
CIMGUI_API const char* TextRange_end(TextRange* self)
{
return self->end();
}
CIMGUI_API bool TextRange_empty(TextRange* self)
{
return self->empty();
}
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out)
{
return self->split(separator,out);
}
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self)
{
return self->begin();
@@ -1529,15 +1525,15 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self)
{
return self->BuildSortByKey();
}
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count)
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count)
{
return self->DeleteChars(pos,bytes_count);
}
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end)
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end)
{
return self->InsertChars(pos,text,text_end);
}
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self)
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self)
{
return self->HasSelection();
}
@@ -1557,7 +1553,7 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self)
{
return self->IsDelivery();
}
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a)
{
return self->SetHSV(h,s,v,a);
}
@@ -1597,11 +1593,11 @@ CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self)
{
return self->PopTextureID();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self)
{
return self->GetClipRectMin();
}
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self)
{
return self->GetClipRectMax();
}
@@ -1677,23 +1673,23 @@ CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,con
{
return self->AddBezierCurve(pos0,cp0,cp1,pos1,col,thickness,num_segments);
}
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self)
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self)
{
return self->PathClear();
}
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineTo(pos);
}
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos)
{
return self->PathLineToMergeDuplicate(pos);
}
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col)
{
return self->PathFillConvex(col);
}
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness)
{
return self->PathStroke(col,closed,thickness);
}
@@ -1761,15 +1757,15 @@ CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVe
{
return self->PrimQuadUV(a,b,c,d,uv_a,uv_b,uv_c,uv_d,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimWriteVtx(pos,uv,col);
}
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx)
{
return self->PrimWriteIdx(idx);
}
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col)
{
return self->PrimVtx(pos,uv,col);
}
@@ -1989,6 +1985,94 @@ CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool ov
{
return self->AddRemapChar(dst,src,overwrite_dst);
}
CIMGUI_API void igGetWindowPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowPos();
}
CIMGUI_API void igGetWindowSize_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowSize();
}
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetContentRegionMax();
}
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetContentRegionAvail();
}
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowContentRegionMin();
}
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetWindowContentRegionMax();
}
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetFontTexUvWhitePixel();
}
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorPos();
}
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorStartPos();
}
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetCursorScreenPos();
}
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectMin();
}
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectMax();
}
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetItemRectSize();
}
CIMGUI_API void igCalcTextSize_nonUDT(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)
{
*pOut = ImGui::CalcTextSize(text,text_end,hide_text_after_double_hash,wrap_width);
}
CIMGUI_API void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in)
{
*pOut = ImGui::ColorConvertU32ToFloat4(in);
}
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetMousePos();
}
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut)
{
*pOut = ImGui::GetMousePosOnOpeningCurrentPopup();
}
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold)
{
*pOut = ImGui::GetMouseDragDelta(button,lock_threshold);
}
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a)
{
*pOut = self->HSV(h,s,v,a);
}
CIMGUI_API void ImDrawList_GetClipRectMin_nonUDT(ImDrawList* self,ImVec2 *pOut)
{
*pOut = self->GetClipRectMin();
}
CIMGUI_API void ImDrawList_GetClipRectMax_nonUDT(ImDrawList* self,ImVec2 *pOut)
{
*pOut = self->GetClipRectMax();
}
CIMGUI_API void ImFont_CalcTextSizeA_nonUDT(ImFont* self,ImVec2 *pOut,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining)
{
*pOut = self->CalcTextSizeA(size,max_width,wrap_width,text_begin,text_end,remaining);
}
/////////////////////////////manual written functions

View File

@@ -37,43 +37,24 @@ typedef unsigned long long ImU64;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImFont ImFont;
typedef struct ImFontAtlas ImFontAtlas;
typedef struct CustomRect CustomRect;
typedef struct GlyphRangesBuilder GlyphRangesBuilder;
typedef struct ImFontGlyph ImFontGlyph;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImDrawData ImDrawData;
typedef struct ImDrawList ImDrawList;
typedef struct ImDrawChannel ImDrawChannel;
typedef struct ImDrawVert ImDrawVert;
typedef struct ImDrawCmd ImDrawCmd;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImColor ImColor;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct Pair Pair;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct TextRange TextRange;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImVec4 ImVec4;
typedef struct ImVec2 ImVec2;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiTextEditCallbackData ImGuiTextEditCallbackData;
typedef struct ImGuiTextBuffer ImGuiTextBuffer;
typedef struct ImGuiTextFilter ImGuiTextFilter;
typedef struct ImGuiStyle ImGuiStyle;
typedef struct ImGuiStorage ImGuiStorage;
typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData;
typedef struct ImGuiPayload ImGuiPayload;
typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame;
typedef struct ImGuiListClipper ImGuiListClipper;
typedef struct ImGuiInputTextCallbackData ImGuiInputTextCallbackData;
typedef struct ImGuiIO ImGuiIO;
typedef struct ImGuiContext ImGuiContext;
typedef struct ImColor ImColor;
typedef struct ImFontConfig ImFontConfig;
typedef struct ImFontAtlas ImFontAtlas;
@@ -94,24 +75,24 @@ struct ImFont;
struct ImFontAtlas;
struct ImFontConfig;
struct ImColor;
typedef void* ImTextureID;
struct ImGuiContext;
struct ImGuiIO;
struct ImGuiInputTextCallbackData;
struct ImGuiListClipper;
struct ImGuiOnceUponAFrame;
struct ImGuiPayload;
struct ImGuiSizeCallbackData;
struct ImGuiStorage;
struct ImGuiStyle;
struct ImGuiTextFilter;
struct ImGuiTextBuffer;
struct ImGuiTextEditCallbackData;
struct ImGuiSizeCallbackData;
struct ImGuiListClipper;
struct ImGuiPayload;
struct ImGuiContext;
typedef void* ImTextureID;
typedef unsigned int ImGuiID;
typedef unsigned short ImWchar;
typedef int ImGuiCol;
typedef int ImGuiCond;
typedef int ImGuiDataType;
typedef int ImGuiDir;
typedef int ImGuiCond;
typedef int ImGuiKey;
typedef int ImGuiNavInput;
typedef int ImGuiMouseCursor;
@@ -131,12 +112,12 @@ typedef int ImGuiInputTextFlags;
typedef int ImGuiSelectableFlags;
typedef int ImGuiTreeNodeFlags;
typedef int ImGuiWindowFlags;
typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data);
typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data);
typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);
typedef signed int ImS32;
typedef unsigned int ImU32;
typedef signed long long ImS64;
typedef unsigned long long ImU64;
typedef int64_t ImS64;
typedef uint64_t ImU64;
struct ImVec2
{
float x, y;
@@ -164,7 +145,6 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14,
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15,
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,
ImGuiWindowFlags_ResizeFromAnySide = 1 << 17,
ImGuiWindowFlags_NoNavInputs = 1 << 18,
ImGuiWindowFlags_NoNavFocus = 1 << 19,
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
@@ -196,6 +176,7 @@ enum ImGuiInputTextFlags_
ImGuiInputTextFlags_Password = 1 << 15,
ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
ImGuiInputTextFlags_CharsScientific = 1 << 17,
ImGuiInputTextFlags_CallbackResize = 1 << 18,
ImGuiInputTextFlags_Multiline = 1 << 20
};
enum ImGuiTreeNodeFlags_
@@ -220,7 +201,8 @@ enum ImGuiSelectableFlags_
ImGuiSelectableFlags_None = 0,
ImGuiSelectableFlags_DontClosePopups = 1 << 0,
ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2,
ImGuiSelectableFlags_Disabled = 1 << 3
};
enum ImGuiComboFlags_
{
@@ -251,6 +233,7 @@ enum ImGuiHoveredFlags_
ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3,
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5,
ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6,
ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7,
ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
};
@@ -262,6 +245,7 @@ enum ImGuiDragDropFlags_
ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2,
ImGuiDragDropFlags_SourceAllowNullID = 1 << 3,
ImGuiDragDropFlags_SourceExtern = 1 << 4,
ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5,
ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10,
ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11,
ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12,
@@ -394,10 +378,11 @@ enum ImGuiCol_
ImGuiCol_PlotHistogram,
ImGuiCol_PlotHistogramHovered,
ImGuiCol_TextSelectedBg,
ImGuiCol_ModalWindowDarkening,
ImGuiCol_DragDropTarget,
ImGuiCol_NavHighlight,
ImGuiCol_NavWindowingHighlight,
ImGuiCol_NavWindowingDimBg,
ImGuiCol_ModalWindowDimBg,
ImGuiCol_COUNT
};
enum ImGuiStyleVar_
@@ -463,6 +448,7 @@ enum ImGuiMouseCursor_
ImGuiMouseCursor_ResizeEW,
ImGuiMouseCursor_ResizeNESW,
ImGuiMouseCursor_ResizeNWSE,
ImGuiMouseCursor_Hand,
ImGuiMouseCursor_COUNT
};
enum ImGuiCond_
@@ -528,14 +514,15 @@ struct ImGuiIO
ImVec2 DisplayFramebufferScale;
ImVec2 DisplayVisibleMin;
ImVec2 DisplayVisibleMax;
bool OptMacOSXBehaviors;
bool OptCursorBlink;
bool ConfigMacOSXBehaviors;
bool ConfigCursorBlink;
bool ConfigResizeWindowsFromEdges;
const char* (*GetClipboardTextFn)(void* user_data);
void (*SetClipboardTextFn)(void* user_data, const char* text);
void* ClipboardUserData;
void (*ImeSetInputScreenPosFn)(int x, int y);
void* ImeWindowHandle;
void* RenderDrawListsFnDummy;
void* RenderDrawListsFnUnused;
ImVec2 MousePos;
bool MouseDown[5];
float MouseWheel;
@@ -558,11 +545,13 @@ struct ImGuiIO
float Framerate;
int MetricsRenderVertices;
int MetricsRenderIndices;
int MetricsRenderWindows;
int MetricsActiveWindows;
int MetricsActiveAllocations;
ImVec2 MouseDelta;
ImVec2 MousePosPrev;
ImVec2 MouseClickedPos[5];
float MouseClickedTime[5];
double MouseClickedTime[5];
bool MouseClicked[5];
bool MouseDoubleClicked[5];
bool MouseReleased[5];
@@ -602,12 +591,11 @@ struct ImGuiStorage
{
ImVector/*<Pair>*/ Data;
};
struct ImGuiTextEditCallbackData
struct ImGuiInputTextCallbackData
{
ImGuiInputTextFlags EventFlag;
ImGuiInputTextFlags Flags;
void* UserData;
bool ReadOnly;
ImWchar EventChar;
ImGuiKey EventKey;
char* Buf;
@@ -742,11 +730,13 @@ struct ImFontGlyph
};
enum ImFontAtlasFlags_
{
ImFontAtlasFlags_None = 0,
ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0,
ImFontAtlasFlags_NoMouseCursors = 1 << 1
};
struct ImFontAtlas
{
bool Locked;
ImFontAtlasFlags Flags;
ImTextureID TexID;
int TexDesiredWidth;
@@ -964,10 +954,6 @@ CIMGUI_API bool igCheckbox(const char* label,bool* v);
CIMGUI_API bool igCheckboxFlags(const char* label,unsigned int* flags,unsigned int flags_value);
CIMGUI_API bool igRadioButtonBool(const char* label,bool active);
CIMGUI_API bool igRadioButtonIntPtr(const char* label,int* v,int v_button);
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);
CIMGUI_API void igPlotHistogramFnPtr(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 igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay);
CIMGUI_API void igBullet();
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
@@ -987,19 +973,6 @@ CIMGUI_API bool igDragInt4(const char* label,int v[4],float v_speed,int v_min,in
CIMGUI_API bool igDragIntRange2(const char* label,int* v_current_min,int* v_current_max,float v_speed,int v_min,int v_max,const char* format,const char* format_max);
CIMGUI_API bool igDragScalar(const char* label,ImGuiDataType data_type,void* v,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igDragScalarN(const char* label,ImGuiDataType data_type,void* v,int components,float v_speed,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiTextEditCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igSliderFloat(const char* label,float* v,float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igSliderFloat2(const char* label,float v[2],float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igSliderFloat3(const char* label,float v[3],float v_min,float v_max,const char* format,float power);
@@ -1014,6 +987,19 @@ CIMGUI_API bool igSliderScalarN(const char* label,ImGuiDataType data_type,void*
CIMGUI_API bool igVSliderFloat(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,float power);
CIMGUI_API bool igVSliderInt(const char* label,const ImVec2 size,int* v,int v_min,int v_max,const char* format);
CIMGUI_API bool igVSliderScalar(const char* label,const ImVec2 size,ImGuiDataType data_type,void* v,const void* v_min,const void* v_max,const char* format,float power);
CIMGUI_API bool igInputText(const char* label,char* buf,size_t buf_size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputTextMultiline(const char* label,char* buf,size_t buf_size,const ImVec2 size,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data);
CIMGUI_API bool igInputFloat(const char* label,float* v,float step,float step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat2(const char* label,float v[2],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat3(const char* label,float v[3],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputFloat4(const char* label,float v[4],const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt(const char* label,int* v,int step,int step_fast,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt2(const char* label,int v[2],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt3(const char* label,int v[3],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputInt4(const char* label,int v[4],ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputDouble(const char* label,double* v,double step,double step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalar(const char* label,ImGuiDataType data_type,void* v,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igInputScalarN(const char* label,ImGuiDataType data_type,void* v,int components,const void* step,const void* step_fast,const char* format,ImGuiInputTextFlags extra_flags);
CIMGUI_API bool igColorEdit3(const char* label,float col[3],ImGuiColorEditFlags flags);
CIMGUI_API bool igColorEdit4(const char* label,float col[4],ImGuiColorEditFlags flags);
CIMGUI_API bool igColorPicker3(const char* label,float col[3],ImGuiColorEditFlags flags);
@@ -1045,14 +1031,14 @@ CIMGUI_API bool igListBoxFnPtr(const char* label,int* current_item,bool(*items_g
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 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);
CIMGUI_API void igPlotHistogramFnPtr(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 igValueBool(const char* prefix,bool b);
CIMGUI_API void igValueInt(const char* prefix,int v);
CIMGUI_API void igValueUint(const char* prefix,unsigned int v);
CIMGUI_API void igValueFloat(const char* prefix,float v,const char* float_format);
CIMGUI_API void igBeginTooltip();
CIMGUI_API void igEndTooltip();
CIMGUI_API void igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API bool igBeginMainMenuBar();
CIMGUI_API void igEndMainMenuBar();
CIMGUI_API bool igBeginMenuBar();
@@ -1061,6 +1047,10 @@ CIMGUI_API bool igBeginMenu(const char* label,bool enabled);
CIMGUI_API void igEndMenu();
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 igSetTooltip(const char* fmt,...);
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args);
CIMGUI_API void igOpenPopup(const char* str_id);
CIMGUI_API bool igBeginPopup(const char* str_id,ImGuiWindowFlags flags);
CIMGUI_API bool igBeginPopupContextItem(const char* str_id,int mouse_button);
@@ -1099,8 +1089,9 @@ CIMGUI_API bool igIsItemActive();
CIMGUI_API bool igIsItemFocused();
CIMGUI_API bool igIsItemClicked(int mouse_button);
CIMGUI_API bool igIsItemVisible();
CIMGUI_API bool igIsItemEdited();
CIMGUI_API bool igIsItemDeactivated();
CIMGUI_API bool igIsItemDeactivatedAfterChange();
CIMGUI_API bool igIsItemDeactivatedAfterEdit();
CIMGUI_API bool igIsAnyItemHovered();
CIMGUI_API bool igIsAnyItemActive();
CIMGUI_API bool igIsAnyItemFocused();
@@ -1110,7 +1101,7 @@ CIMGUI_API ImVec2 igGetItemRectSize();
CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsRectVisible(const ImVec2 size);
CIMGUI_API bool igIsRectVisibleVec2(const ImVec2 rect_min,const ImVec2 rect_max);
CIMGUI_API float igGetTime();
CIMGUI_API double igGetTime();
CIMGUI_API int igGetFrameCount();
CIMGUI_API ImDrawList* igGetOverlayDrawList();
CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData();
@@ -1158,19 +1149,16 @@ CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor);
CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars);
CIMGUI_API inline void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API char TextRange_front(TextRange* self);
CIMGUI_API bool TextRange_is_blank(TextRange* self,char c);
CIMGUI_API void TextRange_trim_blanks(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange out);
CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end);
CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self);
CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
CIMGUI_API const char* TextRange_begin(TextRange* self);
CIMGUI_API const char* TextRange_end(TextRange* self);
CIMGUI_API bool TextRange_empty(TextRange* self);
CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out);
CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
@@ -1194,14 +1182,14 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float
CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val);
CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val);
CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(ImGuiTextEditCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(ImGuiTextEditCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(ImGuiTextEditCallbackData* self);
CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count);
CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end);
CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type);
CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self);
CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self);
CIMGUI_API inline void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a);
CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self);
CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height);
@@ -1211,8 +1199,8 @@ CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* self,ImTextureID texture_id);
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API inline ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMin(ImDrawList* self);
CIMGUI_API ImVec2 ImDrawList_GetClipRectMax(ImDrawList* self);
CIMGUI_API void ImDrawList_AddLine(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float thickness);
CIMGUI_API void ImDrawList_AddRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,int rounding_corners_flags,float thickness);
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col,float rounding,int rounding_corners_flags);
@@ -1231,11 +1219,11 @@ CIMGUI_API void ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_tex
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,const int num_points,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,const int num_points,ImU32 col);
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList* self,const ImVec2 pos0,const ImVec2 cp0,const ImVec2 cp1,const ImVec2 pos1,ImU32 col,float thickness,int num_segments);
CIMGUI_API inline void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API inline void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API inline void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col);
CIMGUI_API inline void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathClear(ImDrawList* self);
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos);
CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col);
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,bool closed,float thickness);
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 centre,float radius,float a_min,float a_max,int num_segments);
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 centre,float radius,int a_min_of_12,int a_max_of_12);
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,int num_segments);
@@ -1252,9 +1240,9 @@ CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* self,int idx_count,int vtx_co
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* self,const ImVec2 a,const ImVec2 b,ImU32 col);
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 uv_a,const ImVec2 uv_b,ImU32 col);
CIMGUI_API void ImDrawList_PrimQuadUV(ImDrawList* self,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 d,const ImVec2 uv_a,const ImVec2 uv_b,const ImVec2 uv_c,const ImVec2 uv_d,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API inline void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API inline void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self);
CIMGUI_API void ImDrawData_Clear(ImDrawData* self);
@@ -1309,6 +1297,28 @@ CIMGUI_API void ImFont_RenderText(ImFont* self,ImDrawList* draw_list,float size,
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 void igGetWindowSize_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetContentRegionAvail_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetWindowContentRegionMin_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetWindowContentRegionMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetFontTexUvWhitePixel_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorStartPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetCursorScreenPos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectMin_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectMax_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetItemRectSize_nonUDT(ImVec2 *pOut);
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 void igColorConvertU32ToFloat4_nonUDT(ImVec4 *pOut,ImU32 in);
CIMGUI_API void igGetMousePos_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup_nonUDT(ImVec2 *pOut);
CIMGUI_API void igGetMouseDragDelta_nonUDT(ImVec2 *pOut,int button,float lock_threshold);
CIMGUI_API void ImColor_HSV_nonUDT(ImColor* self,ImColor *pOut,float h,float s,float v,float a);
CIMGUI_API void ImDrawList_GetClipRectMin_nonUDT(ImDrawList* self,ImVec2 *pOut);
CIMGUI_API void ImDrawList_GetClipRectMax_nonUDT(ImDrawList* self,ImVec2 *pOut);
CIMGUI_API void ImFont_CalcTextSizeA_nonUDT(ImFont* self,ImVec2 *pOut,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end,const char** remaining);
/////////////////////////hand written functions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -4,10 +4,11 @@ defs["ImGui_ImplOpenGL3_NewFrame"][1] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL3_NewFrame"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_NewFrame"][1]["signature"] = "()"
@@ -18,10 +19,11 @@ defs["ImGui_ImplSDL2_Shutdown"][1] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["funcname"] = "ImGui_ImplSDL2_Shutdown"
defs["ImGui_ImplSDL2_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplSDL2_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplSDL2_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplSDL2_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplSDL2_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplSDL2_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["location"] = "imgui_impl_sdl"
defs["ImGui_ImplSDL2_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_Shutdown"][1]["signature"] = "()"
@@ -32,10 +34,26 @@ defs["ImGui_ImplGlfw_KeyCallback"][1] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["funcname"] = "ImGui_ImplGlfw_KeyCallback"
defs["ImGui_ImplGlfw_KeyCallback"][1]["args"] = "(GLFWwindow* window,int key,int scancode,int action,int mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_KeyCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_KeyCallback"][1]["call_args"] = "(window,key,scancode,action,mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsoriginal"] = "(GLFWwindow* window,int key,int scancode,int action,int mods)"
defs["ImGui_ImplGlfw_KeyCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_KeyCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][2]["name"] = "key"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][3]["name"] = "scancode"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][4]["name"] = "action"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5]["type"] = "int"
defs["ImGui_ImplGlfw_KeyCallback"][1]["argsT"][5]["name"] = "mods"
defs["ImGui_ImplGlfw_KeyCallback"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_KeyCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_KeyCallback"][1]["signature"] = "(GLFWwindow*,int,int,int,int)"
@@ -46,10 +64,17 @@ defs["ImGui_ImplGlfw_InitForVulkan"][1] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["funcname"] = "ImGui_ImplGlfw_InitForVulkan"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["args"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["ret"] = "bool"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["comment"] = ""
defs["ImGui_ImplGlfw_InitForVulkan"][1]["call_args"] = "(window,install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsoriginal"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["stname"] = ""
defs["ImGui_ImplGlfw_InitForVulkan"][1]["comment"] = ""
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2]["type"] = "bool"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["argsT"][2]["name"] = "install_callbacks"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_InitForVulkan"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_InitForVulkan"][1]["signature"] = "(GLFWwindow*,bool)"
@@ -60,10 +85,14 @@ defs["ImGui_ImplSDL2_NewFrame"][1] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["funcname"] = "ImGui_ImplSDL2_NewFrame"
defs["ImGui_ImplSDL2_NewFrame"][1]["args"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplSDL2_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplSDL2_NewFrame"][1]["call_args"] = "(window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["argsoriginal"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplSDL2_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_NewFrame"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_NewFrame"][1]["location"] = "imgui_impl_sdl"
defs["ImGui_ImplSDL2_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_NewFrame"][1]["signature"] = "(SDL_Window*)"
@@ -74,10 +103,14 @@ defs["ImGui_ImplSDL2_InitForVulkan"][1] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["funcname"] = "ImGui_ImplSDL2_InitForVulkan"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["args"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["comment"] = ""
defs["ImGui_ImplSDL2_InitForVulkan"][1]["call_args"] = "(window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsoriginal"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["stname"] = ""
defs["ImGui_ImplSDL2_InitForVulkan"][1]["comment"] = ""
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["location"] = "imgui_impl_sdl"
defs["ImGui_ImplSDL2_InitForVulkan"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_InitForVulkan"][1]["signature"] = "(SDL_Window*)"
@@ -88,10 +121,20 @@ defs["ImGui_ImplGlfw_ScrollCallback"][1] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["funcname"] = "ImGui_ImplGlfw_ScrollCallback"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["args"] = "(GLFWwindow* window,double xoffset,double yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_ScrollCallback"][1]["call_args"] = "(window,xoffset,yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsoriginal"] = "(GLFWwindow* window,double xoffset,double yoffset)"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_ScrollCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2]["type"] = "double"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][2]["name"] = "xoffset"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3]["type"] = "double"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["argsT"][3]["name"] = "yoffset"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_ScrollCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_ScrollCallback"][1]["signature"] = "(GLFWwindow*,double,double)"
@@ -102,12 +145,17 @@ defs["ImGui_ImplOpenGL3_Init"][1] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["funcname"] = "ImGui_ImplOpenGL3_Init"
defs["ImGui_ImplOpenGL3_Init"][1]["args"] = "(const char* glsl_version)"
defs["ImGui_ImplOpenGL3_Init"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_Init"][1]["call_args"] = "(glsl_version)"
defs["ImGui_ImplOpenGL3_Init"][1]["argsoriginal"] = "(const char* glsl_version=\"#version 150\")"
defs["ImGui_ImplOpenGL3_Init"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Init"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_Init"][1]["call_args"] = "(glsl_version)"
defs["ImGui_ImplOpenGL3_Init"][1]["argsoriginal"] = "(const char* glsl_version=NULL)"
defs["ImGui_ImplOpenGL3_Init"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["type"] = "const char*"
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["name"] = "glsl_version"
defs["ImGui_ImplOpenGL3_Init"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"]["glsl_version"] = "NULL"
defs["ImGui_ImplOpenGL3_Init"][1]["signature"] = "(const char*)"
defs["ImGui_ImplOpenGL3_Init"][1]["cimguiname"] = "ImGui_ImplOpenGL3_Init"
defs["ImGui_ImplOpenGL3_Init"]["(const char*)"] = defs["ImGui_ImplOpenGL3_Init"][1]
@@ -116,10 +164,17 @@ defs["ImGui_ImplSDL2_InitForOpenGL"][1] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["funcname"] = "ImGui_ImplSDL2_InitForOpenGL"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["args"] = "(SDL_Window* window,void* sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["comment"] = ""
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["call_args"] = "(window,sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsoriginal"] = "(SDL_Window* window,void* sdl_gl_context)"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["stname"] = ""
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["comment"] = ""
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2]["type"] = "void*"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["argsT"][2]["name"] = "sdl_gl_context"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["location"] = "imgui_impl_sdl"
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["signature"] = "(SDL_Window*,void*)"
@@ -130,10 +185,17 @@ defs["ImGui_ImplGlfw_InitForOpenGL"][1] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["funcname"] = "ImGui_ImplGlfw_InitForOpenGL"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["args"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["ret"] = "bool"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["comment"] = ""
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["call_args"] = "(window,install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsoriginal"] = "(GLFWwindow* window,bool install_callbacks)"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["stname"] = ""
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["comment"] = ""
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2]["type"] = "bool"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["argsT"][2]["name"] = "install_callbacks"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["signature"] = "(GLFWwindow*,bool)"
@@ -144,10 +206,11 @@ defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["signature"] = "()"
@@ -158,10 +221,11 @@ defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["signature"] = "()"
@@ -172,10 +236,11 @@ defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["signature"] = "()"
@@ -186,10 +251,11 @@ defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["signature"] = "()"
@@ -200,10 +266,11 @@ defs["ImGui_ImplGlfw_Shutdown"][1] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["funcname"] = "ImGui_ImplGlfw_Shutdown"
defs["ImGui_ImplGlfw_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplGlfw_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplGlfw_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplGlfw_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplGlfw_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_Shutdown"][1]["signature"] = "()"
@@ -214,10 +281,14 @@ defs["ImGui_ImplOpenGL2_RenderDrawData"][1] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL2_RenderDrawData"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["args"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["call_args"] = "(draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsoriginal"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1]["type"] = "ImDrawData*"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["argsT"][1]["name"] = "draw_data"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
@@ -228,10 +299,11 @@ defs["ImGui_ImplOpenGL2_NewFrame"][1] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL2_NewFrame"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_NewFrame"][1]["signature"] = "()"
@@ -242,10 +314,11 @@ defs["ImGui_ImplOpenGL2_Shutdown"][1] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL2_Shutdown"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_Shutdown"][1]["signature"] = "()"
@@ -256,10 +329,11 @@ defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["signature"] = "()"
@@ -270,10 +344,11 @@ defs["ImGui_ImplGlfw_NewFrame"][1] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["funcname"] = "ImGui_ImplGlfw_NewFrame"
defs["ImGui_ImplGlfw_NewFrame"][1]["args"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplGlfw_NewFrame"][1]["call_args"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["argsoriginal"] = "()"
defs["ImGui_ImplGlfw_NewFrame"][1]["stname"] = ""
defs["ImGui_ImplGlfw_NewFrame"][1]["comment"] = ""
defs["ImGui_ImplGlfw_NewFrame"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_NewFrame"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_NewFrame"][1]["signature"] = "()"
@@ -284,10 +359,11 @@ defs["ImGui_ImplOpenGL3_Shutdown"][1] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL3_Shutdown"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_Shutdown"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Shutdown"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_Shutdown"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_Shutdown"][1]["signature"] = "()"
@@ -298,10 +374,11 @@ defs["ImGui_ImplOpenGL2_Init"][1] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["funcname"] = "ImGui_ImplOpenGL2_Init"
defs["ImGui_ImplOpenGL2_Init"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_Init"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_Init"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_Init"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_Init"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_Init"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_Init"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_Init"][1]["signature"] = "()"
@@ -312,10 +389,14 @@ defs["ImGui_ImplSDL2_ProcessEvent"][1] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["funcname"] = "ImGui_ImplSDL2_ProcessEvent"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["args"] = "(SDL_Event* event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["comment"] = ""
defs["ImGui_ImplSDL2_ProcessEvent"][1]["call_args"] = "(event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsoriginal"] = "(SDL_Event* event)"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["stname"] = ""
defs["ImGui_ImplSDL2_ProcessEvent"][1]["comment"] = ""
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1]["type"] = "SDL_Event*"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["argsT"][1]["name"] = "event"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["location"] = "imgui_impl_sdl"
defs["ImGui_ImplSDL2_ProcessEvent"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_ProcessEvent"][1]["signature"] = "(SDL_Event*)"
@@ -326,10 +407,23 @@ defs["ImGui_ImplGlfw_MouseButtonCallback"][1] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["funcname"] = "ImGui_ImplGlfw_MouseButtonCallback"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["args"] = "(GLFWwindow* window,int button,int action,int mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["call_args"] = "(window,button,action,mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsoriginal"] = "(GLFWwindow* window,int button,int action,int mods)"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][2]["name"] = "button"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][3]["name"] = "action"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4]["type"] = "int"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["argsT"][4]["name"] = "mods"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["signature"] = "(GLFWwindow*,int,int,int)"
@@ -340,10 +434,11 @@ defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl2"
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["signature"] = "()"
@@ -354,10 +449,11 @@ defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["signature"] = "()"
@@ -368,10 +464,17 @@ defs["ImGui_ImplGlfw_CharCallback"][1] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["funcname"] = "ImGui_ImplGlfw_CharCallback"
defs["ImGui_ImplGlfw_CharCallback"][1]["args"] = "(GLFWwindow* window,unsigned int c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["ret"] = "void"
defs["ImGui_ImplGlfw_CharCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_CharCallback"][1]["call_args"] = "(window,c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsoriginal"] = "(GLFWwindow* window,unsigned int c)"
defs["ImGui_ImplGlfw_CharCallback"][1]["stname"] = ""
defs["ImGui_ImplGlfw_CharCallback"][1]["comment"] = ""
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2]["type"] = "unsigned int"
defs["ImGui_ImplGlfw_CharCallback"][1]["argsT"][2]["name"] = "c"
defs["ImGui_ImplGlfw_CharCallback"][1]["location"] = "imgui_impl_glfw"
defs["ImGui_ImplGlfw_CharCallback"][1]["defaults"] = {}
defs["ImGui_ImplGlfw_CharCallback"][1]["signature"] = "(GLFWwindow*,unsigned int)"
@@ -382,10 +485,14 @@ defs["ImGui_ImplOpenGL3_RenderDrawData"][1] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL3_RenderDrawData"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["args"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["call_args"] = "(draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsoriginal"] = "(ImDrawData* draw_data)"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1]["type"] = "ImDrawData*"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["argsT"][1]["name"] = "draw_data"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
@@ -396,10 +503,11 @@ defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["args"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["ret"] = "bool"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["call_args"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["argsoriginal"] = "()"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["comment"] = ""
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["argsT"] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl3"
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["defaults"] = {}
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["signature"] = "()"

View File

@@ -38,16 +38,22 @@ igPlotHistogram 2
igTreeNodeExV 2
1 bool igTreeNodeExVStr (const char*,ImGuiTreeNodeFlags,const char*,va_list)
2 bool igTreeNodeExVPtr (const void*,ImGuiTreeNodeFlags,const char*,va_list)
igMenuItem 2
1 bool igMenuItemBool (const char*,const char*,bool,bool)
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
igGetID 3
1 ImGuiID igGetIDStr (const char*)
2 ImGuiID igGetIDStrStr (const char*,const char*)
3 ImGuiID igGetIDPtr (const void*)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
igTreePush 2
1 void igTreePushStr (const char*)
2 void igTreePushPtr (const void*)
igBeginChild 2
1 bool igBeginChild (const char*,const ImVec2,bool,ImGuiWindowFlags)
2 bool igBeginChildID (ImGuiID,const ImVec2,bool,ImGuiWindowFlags)
igSetWindowFocus 2
1 void igSetWindowFocus ()
2 void igSetWindowFocusStr (const char*)
ImDrawList_AddText 2
1 void ImDrawList_AddText (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddTextFontPtr (const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
@@ -66,16 +72,12 @@ Pair_Pair 3
1 nil Pair_PairInt (ImGuiID,int)
2 nil Pair_PairFloat (ImGuiID,float)
3 nil Pair_PairPtr (ImGuiID,void*)
igTreePush 2
1 void igTreePushStr (const char*)
2 void igTreePushPtr (const void*)
TextRange_TextRange 2
1 nil TextRange_TextRange ()
2 nil TextRange_TextRangeStr (const char*,const char*)
igGetColorU32 3
1 ImU32 igGetColorU32 (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
igSetWindowFocus 2
1 void igSetWindowFocus ()
2 void igSetWindowFocusStr (const char*)
ImColor_ImColor 5
1 nil ImColor_ImColor ()
2 nil ImColor_ImColorInt (int,int,int,int)
@@ -88,12 +90,10 @@ igPushStyleColor 2
igCollapsingHeader 2
1 bool igCollapsingHeader (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeaderBoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
igMenuItem 2
1 bool igMenuItemBool (const char*,const char*,bool,bool)
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
igGetColorU32 3
1 ImU32 igGetColorU32 (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
igSetWindowPos 2
1 void igSetWindowPosVec2 (const ImVec2,ImGuiCond)
2 void igSetWindowPosStr (const char*,const ImVec2,ImGuiCond)

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -2,6 +2,7 @@
--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")
local script_args = {...}
--test gcc present
@@ -171,7 +172,31 @@ local function serializeTable(name, value, saved)
return table.concat(string_table)
end
--merge tables
function mergeT(t1,t2)
for k,v in pairs(t2) do
t1[k] = v
end
return t1
end
function strsplit(str, pat)
local t = {}
local fpat = "(.-)" .. pat
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
table.insert(t,cap)
last_end = e+1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
elseif str:sub(-1)==pat then
table.insert(t, "")
end
return t
end
local function save_data(filename,...)
local file = io.open(filename,"w")
for i=1, select('#', ...) do
@@ -212,7 +237,7 @@ end
local function struct_parser()
local function_re = "(%a*%w+%b())" --"(%a*%w+%s+%w+%b())"
local function_re = "(%a*%w+%s*%b())" --"(%a*%w+%b())" --"(%a*%w+%s+%w+%b())"
local function_closing_re = "}"
local function_closed_re = "[;}]$"
local operator_re = "operator.-%b()"
@@ -256,9 +281,9 @@ local function struct_parser()
--nothing
else
local linea = line:gsub("%S+",{class="struct",mutable=""})
linea = linea:gsub("(%b<>)","/%*%1%*/") --comment template parameters
linea = linea:gsub("(%b<>)","/*%1*/") --comment template parameters
table.insert(structcdefs,linea..comment)
--]]
end
return
end
@@ -367,9 +392,10 @@ local function func_parser()
FP.ImVector_templates = ImVector_templates
function FP.insert(line,comment,locat)
line = clean_spaces(line)
if line:match"template" then return end
line = line:gsub("%S+",{class="struct",mutable=""}) --class -> struct
line = line:gsub("%S+",{class="struct",mutable="",inline=""}) --class -> struct
line = clean_spaces(line)
if in_function then
if line:match(function_closing_re) then
@@ -424,7 +450,14 @@ local function func_parser()
local argscsinpars = args:gsub("(=[^,%(%)]*)(%b())","%1")
argscsinpars = argscsinpars:gsub("(=[^,%(%)]*)([,%)])","%2")
argscsinpars = argscsinpars:gsub("&","")
-- if argscsinpars:match("&") then
-- for arg in argscsinpars:gmatch("[%(,]*([^,%(%)]+)[%),]") do
-- if arg:match("&") and not arg:match("const") then
-- print(funcname,argscsinpars)
-- end
-- end
-- end
--argscsinpars = argscsinpars:gsub("&","")
local template = argscsinpars:match("ImVector<([%w_]+)>")
if template then
@@ -433,6 +466,51 @@ 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_arg_rest = "^(%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)),*(.*)"
local rest = argscsinpars:sub(2,-2) --strip ()
while true do
--local tt = strsplit(rest,",")
--for ii,arg in ipairs(tt) do
--for arg in argscsinpars:gmatch("[%(,]*([^,%(%)]+)[%),]") do
local type,name,retf,sigf
local arg,restt = rest:match(functype_arg_rest)
if arg then
local t1,namef,t2 = arg:match(functype_reex)
type=t1.."(*)"..t2;name=namef
retf = t1
sigf = t2
rest = restt
else
arg,restt = rest:match(",*([^,%(%)]+),*(.*)")
if not arg then break end
rest = restt
if arg:match("&") and arg:match("const") then
arg = arg:gsub("&","")
end
if arg:match("%.%.%.") then
type="...";name="..."
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
end
table.insert(argsArr,{type=type,name=name,ret=retf,signature=sigf})
if arg:match("&") and not arg:match("const") then
print(funcname,argscsinpars)
end
end
argscsinpars = argscsinpars:gsub("&","")
local signature = argscsinpars:gsub("([%w%s%*_]+)%s[%w_]+%s*([,%)])","%1%2")
signature = signature:gsub("%s*([,%)])","%1") --space before , and )
signature = signature:gsub(",%s*",",")--space after ,
@@ -460,7 +538,7 @@ local function func_parser()
defT.defaults = {}
--for k,def in args:gmatch("([%w%s%*_]+)=([%w_%(%)%s,%*]+)[,%)]") do
--for k,def in args:gmatch("([%w_]+)=([%w_%(%)%s,%*%.%-]+)[,%)]") do
for k,def in args:gmatch('([%w_]+)=([%w_%(%)%s,%*%.%-%%"]+)[,%)]') do
for k,def in args:gmatch('([%w_]+)=([%w_%(%)%s,%*%.%-%+%%"]+)[,%)]') do
defT.defaults[k]=def
end
defT.cimguiname = cimguiname
@@ -473,6 +551,7 @@ local function func_parser()
defT.isvararg = signature:match("%.%.%.%)$")
defT.location = locat
defT.comment = comment
defT.argsT = argsArr
if ret then
defT.ret = clean_spaces(ret:gsub("&","*"))
defT.retref = ret:match("&")
@@ -525,6 +604,44 @@ local function func_parser()
return FP
end
local function ADDnonUDT(FP)
--for cimguiname,defs in pairs(defsT) do
--for i,defT in ipairs(defs) do
local defsT = FP.defsT
local newcdefs = {}
for numcdef,t in ipairs(FP.cdefs) do
if t.cimguiname then
local cimf = defsT[t.cimguiname]
local defT = cimf[t.signature]
--if UDT return generate nonUDT version
if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then
local defT2 = {}
--first strings
for k,v in pairs(defT) do
defT2[k] = v
end
--then argsT table
defT2.argsT = {{type=defT.ret.."*",name="pOut"}}
for k,v in ipairs(defT.argsT) do
table.insert(defT2.argsT,{type=v.type,name=v.name})
end
local comma = (#defT.argsT > 0) and "," or ""
defT2.args = "("..defT.ret.." *pOut"..comma..defT.args:sub(2)
defT2.ret = "void"
defT2.ov_cimguiname = (defT2.ov_cimguiname or defT2.cimguiname).."_nonUDT"
defT2.nonUDT = true
defT2.retref = nil
defsT[t.cimguiname][#defsT[t.cimguiname] + 1] = defT2
defsT[t.cimguiname][t.signature.."nonUDT"] = defT2
table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT",cimguiname=t.cimguiname,call_args=call_args,ret =ret,comment=comment})
end
end
end
for i,v in ipairs(newcdefs) do
table.insert(FP.cdefs,v)
end
end
local function gen_structs_and_enums_table(cdefs)
local function_closing_re = "}"
local namespace_re = "namespace"
@@ -538,6 +655,7 @@ local function gen_structs_and_enums_table(cdefs)
local enumnames = {}
local enums_re = "^%s*enum%s+([^%s;]+)"
local outtab = {structs={},enums={}}
local typedefs_dict = {}
for i,line in ipairs(cdefs) do
repeat -- simulating continue with break
@@ -545,7 +663,23 @@ local function gen_structs_and_enums_table(cdefs)
local linecom = line
local line, comment = split_comment(line)
line = clean_spaces(line)
--typedefs dictionary
if line:match("typedef") then
local value,key = line:match("typedef%s+(.+)%s+([%w_]+);")
if key and value then
typedefs_dict[key] = value
else --try function typedef
local key = line:match("%(%*([%w_]+)%)%([^%(%)]*%)")
if key then
local linet = line
linet = linet:gsub("typedef ","")
linet = linet:gsub("%(%*("..key..")%)","(*)")
typedefs_dict[key] = linet
else
print(key,value,line)
end
end
end
if line:match(namespace_re) then
in_namespace = true
end
@@ -616,11 +750,55 @@ local function gen_structs_and_enums_table(cdefs)
end
until true
end
return outtab
--calcule size of name[16+1] [xxx_COUNT]
local allenums = {}
--first calc_value in enums
for enumname,enum in pairs(outtab.enums) do
for i,t in ipairs(enum) do
local val = tonumber(t.value)
if val then
t.calc_value = val
elseif t.value:match"<<" then
local v1,v2 = t.value:match("(%d+)%s*<<%s*(%d+)")
t.calc_value = bit.lshift(v1,v2)
elseif t.value:match"|" then --or several enums
local ens = t.value
ens = strsplit(ens,"|")
for i,v in ipairs(ens) do ens[i] = allenums[clean_spaces(v)] end
t.calc_value = bit.bor(unpack(ens))
elseif allenums[t.value] then
t.calc_value = allenums[t.value]
else
print("Error unknown value in enums",t.value)
end
assert(t.calc_value)
allenums[t.name] = t.calc_value
end
end
--then calcsize in struct members
for stname,struct in pairs(outtab.structs) do
for i,t in ipairs(struct) do
local val = t.name:match"%[([^%[%]]+)%]"
if val then
if tonumber(val) then
t.size = tonumber(val)
elseif allenums[val] then
t.size = allenums[val]
elseif val:match"%+" then
local s1,s2 = val:match("(%d+)%s*%+%s*(%d+)")
t.size = s1+s2
else
print("Error size is",val)
end
assert(t.size)
end
end
end
return outtab, typedefs_dict
end
local function gen_structs_and_enums(cdefs,addextra)
local function gen_structs_and_enums(cdefs)
local function_closing_re = "}"
local namespace_re = "namespace"
local in_namespace = false
@@ -631,13 +809,12 @@ local function gen_structs_and_enums(cdefs,addextra)
local structnames = {}
local innerstructs = {}
local typedefs_table = {}
local typedefs_dict = {}
local outtab = {}
-- Output the file
--table.insert(outtab,"/////////////// BEGIN AUTOGENERATED SEGMENT\n")
if addextra then
table.insert(outtab,[[typedef unsigned short ImDrawIdx;]])
table.insert(outtab,[[typedef void* ImTextureID;]])
end
for i,line in ipairs(cdefs) do
repeat -- simulating continue with break
-- separate comments from code and try to add them with same tab
@@ -646,7 +823,7 @@ local function gen_structs_and_enums(cdefs,addextra)
local desired_linelen = (linelen==0) and 0 or math.max(math.ceil(linelen/10)*10,40)
local spaces_to_add = 0 --desired_linelen - linelen
local linecom = line..string.rep(" ",spaces_to_add)..comment
if line:match(namespace_re) then
in_namespace = true
end
@@ -659,6 +836,7 @@ local function gen_structs_and_enums(cdefs,addextra)
end
end
-- ImVector special treatment
if structnames[#structnames] == "ImVector" then
if line:match(struct_closing_re) then
table.insert(outtab,[[struct ImVector
@@ -692,6 +870,7 @@ typedef struct ImVector ImVector;]])
local struct_closed_name = line:match(struct_closed_re)
if struct_closed_name then
table.insert(typedefs_table,"typedef struct "..struct_closed_name.." "..struct_closed_name..";\n")
typedefs_dict[struct_closed_name] = "struct "..struct_closed_name
end
end
@@ -707,12 +886,14 @@ typedef struct ImVector ImVector;]])
local structname = structnames[#structnames]
--st[#st + 1] = string.format("typedef struct %s %s;\n",structname,structname)
table.insert(typedefs_table,string.format("typedef struct %s %s;\n",structname,structname))
typedefs_dict[structname] = "struct "..structname
structnames[#structnames] = nil
end
elseif line:match(struct_closing_re) and not line:match(struct_op_close_re) then
local structname = structnames[#structnames]
--table.insert(outtab,"typedef struct "..structname.." "..structname..";\n")
table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
typedefs_dict[structname] = "struct "..structname
structnames[#structnames] = nil
end
end
@@ -727,12 +908,16 @@ typedef struct ImVector ImVector;]])
end
--table.insert(outtab,"//////////////// END AUTOGENERATED SEGMENT \n")
local uniques = {}
for i,l in ipairs(typedefs_table) do
table.insert(outtab,2,l)
if not uniques[l] then
uniques[l] = true
table.insert(outtab,2,l)
end
end
local cstructsstr = table.concat(outtab)
cstructsstr = cstructsstr:gsub("\n+","\n") --several empty lines to one empty line
return cstructsstr
return cstructsstr, typedefs_dict
end
local function func_header_impl_generate(FP)
@@ -825,10 +1010,22 @@ local function func_implementation(FP)
table.insert(outtab,"{\n")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
table.insert(outtab," ImGui::"..def.funcname.."V"..call_args..";\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = ImGui::"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," ImGui::"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
--cppfile:write(" return ImGui::",def.funcname,def.call_args,";\n")
table.insert(outtab,"}\n")
elseif def.nonUDT then
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..def.args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," *pOut = ImGui::"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
else
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..def.args.."\n")
table.insert(outtab,"{\n")
@@ -846,10 +1043,22 @@ local function func_implementation(FP)
table.insert(outtab,"{\n")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
table.insert(outtab," self->"..def.funcname.."V"..call_args..";\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = self->"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," self->"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
--cppfile:write(" return self->",def.funcname,def.call_args,";\n")
table.insert(outtab,"}\n")
elseif def.nonUDT then
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
else
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args.."\n")
table.insert(outtab,"{\n")
@@ -863,13 +1072,18 @@ local function func_implementation(FP)
--cppfile:close()
return table.concat(outtab)
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
local hfile = io.open("./cimgui_template.h","r")
local hstrfile = hfile:read"*a"
hfile:close()
local cstructsstr = gen_structs_and_enums(STP.lines,postfix=="")
local cstructsstr,typedefs_dict = gen_structs_and_enums(STP.lines)
--for not gcc parsing
if postfix == "" 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)
@@ -884,6 +1098,7 @@ local function cimgui_generation(postfix,STP,FP)
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)
return typedefs_dict
end
--------------------------------------------------------
-----------------------------do it----------------------
@@ -907,6 +1122,8 @@ FP:compute_overloads()
cimgui_generation("",STP,FP)
--then gcc
local pFP,pSTP,typedefs_dict2
if HAVE_GCC then
local pipe,err = io.popen([[gcc -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]],"r")
@@ -914,28 +1131,30 @@ if not pipe then
error("could not execute gcc "..err)
end
STP = struct_parser() --overwrite
FP = func_parser() --overwrite
pSTP = struct_parser() --overwrite
pFP = func_parser() --overwrite
for line in location(pipe,{"imgui"}) do
local line, comment = split_comment(line)
STP.insert(line,comment)
FP.insert(line,comment)
pSTP.insert(line,comment)
pFP.insert(line,comment)
end
pipe:close()
local ovstr = FP:compute_overloads()
local ovstr = pFP:compute_overloads()
ADDnonUDT(pFP)
save_data("./generated/overloads.txt",ovstr)
cimgui_generation("_auto",STP,FP)
typedefs_dict2 = cimgui_generation("_auto",pSTP,pFP)
end
----------save fundefs in definitions.lua for using in bindings
save_data("./generated/definitions.lua",serializeTable("defs",FP.defsT),"\nreturn defs")
save_data("./generated/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 = gen_structs_and_enums_table(STP.lines)
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")
typedefs_dict = mergeT(typedefs_dict,typedefs_dict2)
save_data("./generated/typedefs_dict.lua",serializeTable("defs",typedefs_dict),"\nreturn defs")
--=================================Now implementations
local iFP,iSTP
@@ -993,8 +1212,9 @@ local function json_prepare(defs)
end
local json = require"json"
save_data("./generated/definitions.json",json.encode(json_prepare(FP.defsT)))
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))
if iFP then
save_data("./generated/impl_definitions.json",json.encode(json_prepare(iFP.defsT)))
end

2
imgui

Submodule imgui updated: 00418d13e3...767649afb1