Compare commits

...

58 Commits

Author SHA1 Message Date
sonoro1234
1427639147 Merge branch 'docking_inter' 2025-01-21 16:06:26 +01:00
sonoro1234
9bc279c4d8 pull imgui docking 1.91.7 and generate 2025-01-21 15:59:46 +01:00
sonoro1234
46c47d5703 generator.lua: change for Used4kPagesMap -> Used8kPagesMap 2025-01-21 10:50:30 +01:00
sonoro1234
e5facd9083 cpp2ffi: better functypedef parsing
Some checks failed
Build / build (ubuntu-latest) (push) Failing after 4s
Build / build (macOS-latest) (push) Has been cancelled
Build / build (windows-latest) (push) Has been cancelled
2025-01-17 17:08:30 +01:00
sonoro1234
7d50243c50 better ftemplates repair 2025-01-08 16:49:42 +01:00
sonoro1234
7715efaa41 cpp2ffi: constexpr -> static const and ftemplates repair 2025-01-08 15:54:31 +01:00
sonoro1234
9cc8f27f61 cpp2ffi: autodetect nonPOD 2025-01-08 12:41:00 +01:00
sonoro1234
df65595422 generation 2025-01-08 10:46:11 +01:00
sonoro1234
2a0af76f16 cpp2ffi: git diffs are line oriented so Lua serializer uses pretty 2025-01-08 10:45:47 +01:00
sonoro1234
1053d1584f cpp2ffi: final and operator keywords 2025-01-08 00:43:55 +01:00
sonoro1234
d83e8c5892 oops!! doing last commit complete (Always have to build before commiting) 2025-01-06 19:10:59 +01:00
sonoro1234
98b667f601 modify manual function for ImGuiTextBuffer issue #283 2025-01-06 18:19:54 +01:00
sonoro1234
d9982af929 generation with new lua serializer 2024-12-18 15:17:18 +01:00
sonoro1234
58763282f8 cpp2ffi: more compact lua serialization 2024-12-18 15:15:46 +01:00
sonoro1234
e3b48a15f0 Merge branch 'docking_inter' 2024-12-12 13:20:21 +01:00
sonoro1234
970c614802 pull imgui docking 1.91.6 and generate 2024-12-12 13:13:36 +01:00
sonoro1234
3d5b2e7650 dont break cimgui.h on comments generation 2024-11-19 07:54:41 +01:00
sonoro1234
8ec6558ecc Merge branch 'docking_inter' 2024-11-18 18:26:51 +01:00
sonoro1234
4e89eac938 pull imgui docking 1.91.5 and generate 2024-11-18 18:20:25 +01:00
sonoro1234
bd2ea2acbb cpp2ffi: move typedefs_dict to gen_structs_and_enums_table 2024-11-06 16:36:29 +01:00
sonoro1234
69d3b29392 update README.md 2024-11-05 16:34:30 +01:00
sonoro1234
1c3d694f36 generator: _destroy functions get location
IMGUI_USE_FREETYPE and IMGUI_USE_WCHAR32 are build options now.
cmake takes IMGUI_FREETYPE and IMGUI_WCHAR32
2024-11-05 16:30:47 +01:00
sonoro1234
be19fd11eb cpp2ffi.lua, generator ... :get manual funcs args and ret 2024-11-01 13:47:14 +01:00
sonoro1234
fdd07821bb CMakeLists.txt: add cimconfig.h to #undef NDEBUG even in release mode https://github.com/ocornut/imgui/issues/8078 2024-10-21 09:59:59 +02:00
sonoro1234
43429513a8 Merge branch 'docking_inter' 2024-10-19 12:05:11 +02:00
sonoro1234
7640b00d27 pull imgui docking 1.91.4 and generate 2024-10-19 11:48:14 +02:00
sonoro1234
90f2147dbe generator: add sdl3 and generate 2024-10-12 11:52:55 +02:00
sonoro1234
79e40b6657 Merge branch 'docking_inter' 2024-10-05 11:06:45 +02:00
sonoro1234
8268b6748b pull imgui 1.91.3 docking and generate 2024-10-05 10:59:13 +02:00
sonoro1234
833e9366de Merge branch 'docking_inter' 2024-10-01 13:05:38 +02:00
sonoro1234
652d4cbc89 pull imgui 1.91.2 and generate 2024-10-01 12:49:47 +02:00
sonoro1234
e50a65fd62 cpp2ffi: templates from classes name :: -> _ 2024-09-24 18:52:47 +02:00
sonoro1234
f276fd4ae1 cpp2ffi: initial changes for processing classes 2024-09-24 17:47:48 +02:00
sonoro1234
c06a46b0f2 cpp2ffi: get enum name from typedef enum ... 2024-09-23 10:53:32 +02:00
sonoro1234
a051fe287b constructors missed semicolon 2024-09-18 17:16:45 +02:00
sonoro1234
411924f104 script param "constructors" to add the _Construct version of constructors issue #278 2024-09-18 14:36:22 +02:00
sonoro1234
0c7f67607d cpp2ffi: get class name 2024-09-14 20:19:51 +02:00
sonoro1234
51197f420a cpp2ffi: clean namespace in typedefs issue #277 2024-09-11 11:39:05 +02:00
sonoro1234
74902e7392 Merge branch 'docking_inter' 2024-09-08 11:57:14 +02:00
sonoro1234
ed017a0704 pull imgui 1.91.1 docking and generate 2024-09-06 16:56:46 +02:00
sonoro1234
c482a65118 cpp2ffi: drop (int) from enums 2024-09-06 16:55:13 +02:00
sonoro1234
143c37b7ac Merge branch 'docking_inter' 2024-07-31 11:27:49 +02:00
sonoro1234
35a4e8f893 pull imgui 1.91.0 and generate 2024-07-31 11:23:21 +02:00
sonoro1234
2b4d572704 cimgui_template: new -> IM_NEW issue #272 2024-07-31 11:16:41 +02:00
sonoro1234
7c79f59fa2 Merge branch 'docking_inter' 2024-07-03 11:14:11 +02:00
sonoro1234
35fdbf393f Merge branch 'docking_inter' 2024-06-07 13:26:08 +02:00
sonoro1234
bf02a1552e Merge branch 'docking_inter' 2024-05-28 10:18:05 +02:00
sonoro1234
481cd32543 Merge branch 'docking_inter' 2024-05-10 17:11:32 +02:00
sonoro1234
d222bc5a4e Merge branch 'docking_inter' 2024-04-19 10:54:29 +02:00
sonoro1234
f0fb387921 Merge branch 'docking_inter' 2024-02-24 13:15:42 +01:00
sonoro1234
c7133969db Merge branch 'docking_inter' 2024-02-16 11:36:05 +01:00
sonoro1234
0821a31dfe Merge branch 'docking_inter' 2024-02-14 11:17:50 +01:00
sonoro1234
9009dd72e9 Merge branch 'docking_inter' 1.90.1 2024-01-12 11:27:04 +01:00
sonoro1234
b6e02f4131 Merge branch 'docking_inter' 2023-11-17 11:08:06 +01:00
sonoro1234
b28023c3f6 Merge branch 'docking_inter' 2023-09-08 18:09:15 +02:00
sonoro1234
1bb9cd7347 Merge branch 'docking_inter' 2023-04-18 10:43:06 +02:00
sonoro1234
d24246adfd Merge branch 'docking_inter' 2023-02-15 10:18:15 +01:00
sonoro1234
6dba58d90f merge from docking_inter 2023-01-07 11:34:35 +01:00
26 changed files with 48696 additions and 49322 deletions

View File

@@ -26,10 +26,10 @@ set(IMGUI_FREETYPE "no" CACHE STRING "Build with freetype library")
set(IMGUI_LIBRARIES ) set(IMGUI_LIBRARIES )
if(IMGUI_FREETYPE) if(IMGUI_FREETYPE)
message(STATUS "Building with freetype")
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH}) FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
list(APPEND IMGUI_LIBRARIES freetype) list(APPEND IMGUI_LIBRARIES freetype)
list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp) list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
add_definitions("-DCIMGUI_FREETYPE=1")
endif(IMGUI_FREETYPE) endif(IMGUI_FREETYPE)
#add library and link #add library and link
@@ -39,6 +39,16 @@ else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES}) add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC) endif (IMGUI_STATIC)
if(IMGUI_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_FREETYPE)
target_compile_definitions(cimgui PUBLIC IMGUI_ENABLE_STB_TRUETYPE)
endif(IMGUI_FREETYPE)
if(IMGUI_WCHAR32)
target_compile_definitions(cimgui PUBLIC IMGUI_USE_WCHAR32)
endif(IMGUI_WCHAR32)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1) target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
if (WIN32) if (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\)) target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))

View File

@@ -11,7 +11,7 @@ History:
Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit) Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit)
Notes: Notes:
* currently this wrapper is based on version [1.90.9 of Dear ImGui with internal api] * currently this wrapper is based on version [1.91.7 of Dear ImGui with internal api]
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped. * only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
* if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project. * if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project.
* All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty. * All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty.
@@ -24,7 +24,7 @@ Notes:
* `git submodule update --init --recursive` (If already cloned) * `git submodule update --init --recursive` (If already cloned)
* compile * compile
* using makefile on linux/macOS/mingw (Or use CMake to generate project) * using makefile on linux/macOS/mingw (Or use CMake to generate project)
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) (only if cimgui is generated with freetype option) * cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) and IMGUI_WCHAR32
* or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master/build * or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master/build
For compiling with backends there are now examples with SDL2 and opengl3/vulkan in folder backend_test. For compiling with backends there are now examples with SDL2 and opengl3/vulkan in folder backend_test.
@@ -37,12 +37,12 @@ Notes:
* you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download * you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download
* you need to use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC). (this repo was done with gcc) * you need to use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC). (this repo was done with gcc)
* update `imgui` folder to the version you desire. * update `imgui` folder to the version you desire.
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, Freetype2 is used or not and comments are generated or not * edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, comments are generated or not and if constructors are generated also with versions performing just initialization of structs provided by yourself (_Construct is added to the constructor names)
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, vulkan, opengl2 and opengl3 as backends. * the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, vulkan, opengl2 and opengl3 as backends.
* edit config_generator.lua for adding includes needed by your chosen backends (vulkan needs that). * edit config_generator.lua for adding includes needed by your chosen backends (vulkan needs that).
* Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH. * Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH.
* as a result some files are generated: `cimgui.cpp`, `cimgui.h` and `cimgui_impl.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the backends info. * as a result some files are generated: `cimgui.cpp`, `cimgui.h` and `cimgui_impl.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the backends info.
* You can pass compiler flags to generator.sh or generator.bat by editing them at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32) * You can pass compiler flags to generator.sh or generator.bat by editing them at the end of the call to further specify the compiler behavior. (e.g. -DIMGUI_USER_CONFIG)
* You are able to pass any extra argument to generator.sh (.bat) in the command-line. * You are able to pass any extra argument to generator.sh (.bat) in the command-line.
* If you are using different options than cimgui repo and if you want to keep them after a cimgui update, you can keep them in a copy of generator.sh (.bat) outside of cimgui folder where `cd cimgui/generator` is used before luajit call. See https://github.com/cimgui/cimgui/issues/232#issuecomment-1497059497 * If you are using different options than cimgui repo and if you want to keep them after a cimgui update, you can keep them in a copy of generator.sh (.bat) outside of cimgui folder where `cd cimgui/generator` is used before luajit call. See https://github.com/cimgui/cimgui/issues/232#issuecomment-1497059497
# generate binding # generate binding

View File

@@ -23,6 +23,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)

View File

@@ -23,6 +23,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)

View File

@@ -22,6 +22,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)

View File

@@ -19,6 +19,7 @@ else()
endif() endif()
include_directories(../../imgui) include_directories(../../imgui)
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1") add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(../../) include_directories(../../)

1
cimconfig.h Normal file
View File

@@ -0,0 +1 @@
#undef NDEBUG

File diff suppressed because it is too large Load Diff

1079
cimgui.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,4 @@
#ifdef IMGUI_ENABLE_FREETYPE
#ifndef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should be defined for Freetype linking"
#endif
#else
#ifdef CIMGUI_FREETYPE
#error "IMGUI_FREETYPE should not be defined without freetype generated cimgui"
#endif
#endif
#include "./imgui/imgui.h" #include "./imgui/imgui.h"
#ifdef IMGUI_ENABLE_FREETYPE #ifdef IMGUI_ENABLE_FREETYPE
#include "./imgui/misc/freetype/imgui_freetype.h" #include "./imgui/misc/freetype/imgui_freetype.h"
@@ -20,7 +12,7 @@
/////////////////////////////manual written functions /////////////////////////////manual written functions
CIMGUI_API void igLogText(CONST char *fmt, ...) CIMGUI_API void igLogText(const char *fmt, ...)
{ {
char buffer[256]; char buffer[256];
va_list args; va_list args;
@@ -30,11 +22,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
ImGui::LogText("%s", buffer); ImGui::LogText("%s", buffer);
} }
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...) CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
{ {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
buffer->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }
@@ -89,7 +81,7 @@ CimguiStorage& GetCimguiStorage()
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();
if (io.BackendLanguageUserData == NULL) if (io.BackendLanguageUserData == NULL)
{ {
io.BackendLanguageUserData = new CimguiStorage(); io.BackendLanguageUserData = IM_NEW(CimguiStorage)();
} }
return *(CimguiStorage*)io.BackendLanguageUserData; return *(CimguiStorage*)io.BackendLanguageUserData;

View File

@@ -47,9 +47,9 @@ typedef union SDL_Event SDL_Event;
/////////////////////////hand written functions /////////////////////////hand written functions
//no LogTextV //no LogTextV
CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void igLogText(const char *fmt, ...);
//no appendfV //no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
//for getting FLT_MAX in bindings //for getting FLT_MAX in bindings
CIMGUI_API float igGET_FLT_MAX(void); CIMGUI_API float igGET_FLT_MAX(void);
//for getting FLT_MIN in bindings //for getting FLT_MIN in bindings

View File

@@ -175,6 +175,7 @@ local function check_template(code)
te = te:gsub("%-","less") te = te:gsub("%-","less")
te = te:gsub("%s","_") te = te:gsub("%s","_")
te = te:gsub("%*","Ptr") te = te:gsub("%*","Ptr")
te = te:gsub("::","_")
code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2") code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2")
code2 = code2:gsub("<([^<>]-)>","_"..te) code2 = code2:gsub("<([^<>]-)>","_"..te)
@@ -202,6 +203,8 @@ local function parse_enum_value(value, allenums,dontpost)
if allenums[clean(value)] then return allenums[clean(value)] end if allenums[clean(value)] then return allenums[clean(value)] end
--must be several and operators --must be several and operators
------------precedence order (hope not ()) ------------precedence order (hope not ())
--delete (int)
value = value:gsub("%(int%)","")
--first drop outer () --first drop outer ()
value = value:gsub("^(%()",""):gsub("(%))$","") value = value:gsub("^(%()",""):gsub("(%))$","")
assert(not value:match("[%(%)]"),value) assert(not value:match("[%(%)]"),value)
@@ -317,6 +320,9 @@ local function getRE()
function_re = "^([^;{}]+%b()[\n%s]*;)%s*", function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated) function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated)
--we need to skip = as function because of "var = f()" initialization in struct fields
-- but we don want operator== to appear as a var and as we should skip this kind of function solution is:
operator_re = "^([^;{}]+operator[^;{}]+%b()[\n%s%w%(%)_]*;)",
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)", struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)", enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)", union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
@@ -341,7 +347,7 @@ local function getRE()
} }
local resN = {"comment2_re","comment_re","emptyline_re", local resN = {"comment2_re","comment_re","emptyline_re",
"functypedef_re","functype_re","function_re","functionD_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"} "functypedef_re","functype_re","function_re","functionD_re","operator_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"}
return res,resN return res,resN
end end
@@ -429,20 +435,15 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
loca = table.remove(loca,1) loca = table.remove(loca,1)
end end
if not loca then if not loca then
print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline)
-- for k,v in pairs(linenumdict) do
-- if k:match(itemfirstline) then
-- print(string.format("%q",k),#k)
-- end
-- end
--error"no entry in linenumdict"
--take locat from parent --take locat from parent
if itparent and itparent.locat then if itparent and itparent.locat then
loca = itparent.locat loca = itparent.locat
print("parent loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
else else
loca = 0 loca = 0
--error"no entry in linenumdict" print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline,loca)
end end
end end
else else
error"no linenumdict" error"no linenumdict"
@@ -478,7 +479,7 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
end end
return itemarr,items return itemarr,items
end end
M.parseItems = parseItems --M.parseItems = parseItems
local function name_overloadsAlgo(v) local function name_overloadsAlgo(v)
local aa = {} -- args local aa = {} -- args
@@ -602,7 +603,7 @@ local function clean_names_from_signature(self,signat)
return result return result
end end
local function clean_functypedef(line) local function clean_functypedef(line)
local first, args = line:match("(typedef .-%(%*[_%w]+%))%s*(%b())") local first, args = line:match("(typedef .-%(%*%s*[_%w]+%))%s*(%b())")
if not args then if not args then
print"not getting args in" print"not getting args in"
@@ -670,14 +671,18 @@ local function CleanImU32(def)
for i=1,#bb do res = res + bb[i] end for i=1,#bb do res = res + bb[i] end
return res return res
end end
local function moveptr(line)
line = line:gsub("%s*%*","%*")
line = line:gsub("%*([%w_])","%* %1")
line = line:gsub("(%(%*)%s","%1")
return line
end
local function parseFunction(self,stname,itt,namespace,locat) local function parseFunction(self,stname,itt,namespace,locat)
local lineorig,comment = split_comment(itt.item) local lineorig,comment = split_comment(itt.item)
line = clean_spaces(lineorig) line = clean_spaces(lineorig)
--move * --move *
line = line:gsub("%s*%*","%*") line = moveptr(line)
line = line:gsub("%*([%w_])","%* %1")
line = line:gsub("(%(%*)%s","%1")
--print(line) --print(line)
--clean implemetation --clean implemetation
@@ -716,6 +721,21 @@ local function parseFunction(self,stname,itt,namespace,locat)
error"parseFunction not getting args" error"parseFunction not getting args"
end end
--get manuals args and ret
local cname = self.getCname(stname,funcname, namespace) --cimguiname
local manpars = self.manuals[cname]
local ismanual
if manpars then
if type(manpars) == "boolean" then
print("warning: unable to get args and ret from "..cname)
print("did you forgot to use set_manuals? ")
else
ismanual = true
args, ret = manpars.args, manpars.ret
args = moveptr(args)
ret = moveptr(ret)
end
end
local argsp = args:sub(2,-2).."," local argsp = args:sub(2,-2)..","
local argsTa = {} local argsTa = {}
@@ -731,6 +751,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
argsTa[#argsTa+1] = tynam argsTa[#argsTa+1] = tynam
end end
end end
--- templates in args --- templates in args
for i,ar in ipairs(argsTa) do for i,ar in ipairs(argsTa) do
--TODO several diferent templates --TODO several diferent templates
@@ -744,7 +766,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector
end end
--get typ, name and defaults --get typ, name and defaults
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)" local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))" local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
@@ -804,6 +826,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
end end
local argsArr = argsTa2 local argsArr = argsTa2
--recreate argscsinpars, call_args and signature from argsArr --recreate argscsinpars, call_args and signature from argsArr
@@ -835,7 +858,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
caar = "()" caar = "()"
signat = "()" .. (extraconst or "") signat = "()" .. (extraconst or "")
end end
--if ismanual then print("manual",asp, caar, signat) end
------------------------------ ------------------------------
if not ret and stname then --must be constructors if not ret and stname then --must be constructors
@@ -868,6 +891,9 @@ local function parseFunction(self,stname,itt,namespace,locat)
ar.default = nil ar.default = nil
end end
end end
--if ismanual then M.prtable(argsArr) end
defT.templated = self.typenames[stname] and true defT.templated = self.typenames[stname] and true
defT.namespace = namespace defT.namespace = namespace
defT.cimguiname = cimguiname defT.cimguiname = cimguiname
@@ -898,6 +924,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
-- end -- end
end end
defsT[cimguiname][signat] = defT defsT[cimguiname][signat] = defT
end end
local function itemsCount(items) local function itemsCount(items)
print"------------items" print"------------items"
@@ -910,8 +937,8 @@ end
local function AdjustArguments(FP) local function AdjustArguments(FP)
for fun,defs in pairs(FP.defsT) do for fun,defs in pairs(FP.defsT) do
--struct function but no constructors or static functions --struct function but no constructors or static functions or manuals
if defs[1].stname~="" and defs[1].ret and not defs[1].is_static_function then if defs[1].stname~="" and defs[1].ret and not defs[1].is_static_function and not defs[1].manual then
--print("adjusting",fun) --print("adjusting",fun)
for i,def in ipairs(defs) do for i,def in ipairs(defs) do
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
@@ -1018,7 +1045,39 @@ local function ADDIMSTR_S(FP)
end end
FP.funcdefs = newcdefs FP.funcdefs = newcdefs
end end
--this creates defsBystruct in case you need to list by struct container
local function DefsByStruct(FP)
local structs = {}
for fun,defs in pairs(FP.defsT) do
local stname = defs[1].stname
structs[stname] = structs[stname] or {}
table.insert(structs[stname],defs)--fun)
end
return structs
end
local function get_nonPOD(FP)
local defbystruct = DefsByStruct(FP)
--M.prtable(defbystruct)
local nonPOD = {}
for k,defs in pairs(defbystruct) do
if k~="" then
for i, ww in ipairs(defs) do
-- print(k,i,ww)
-- M.prtable(ww)
if not ww[1].ret then --constructor
nonPOD[k] = true
break;
end
end
end
end
FP.structs_and_enums_table.nonPOD = nonPOD
return nonPOD
end
local function ADDnonUDT(FP) local function ADDnonUDT(FP)
local nonPOD = get_nonPOD(FP)
--print"nonPOD"
--M.prtable(nonPOD)
local defsT = FP.defsT local defsT = FP.defsT
--local newcdefs = {} --local newcdefs = {}
for numcdef,t in ipairs(FP.funcdefs) do for numcdef,t in ipairs(FP.funcdefs) do
@@ -1032,10 +1091,17 @@ local function ADDnonUDT(FP)
end end
--if UDT return generate nonUDT version --if UDT return generate nonUDT version
local isUDT = false local isUDT = false
for _,udt_ret in ipairs(FP.UDTs) do --isUDT = FP.structs_and_enums_table.structs[defT.ret] and true or false
if udt_ret == defT.ret then isUDT=true;break end isUDT = nonPOD[defT.ret] and true or false
--inherited
if (not isUDT) and FP.cimgui_inherited and FP.cimgui_inherited.nonPOD[defT.ret] then
isUDT = true
end end
--if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then for _,udt_ret in ipairs(FP.UDTs) do
if udt_ret == defT.ret then isUDT=true; break end
end
if isUDT then if isUDT then
--passing as a pointer arg --passing as a pointer arg
local defT2 = {} local defT2 = {}
@@ -1108,14 +1174,15 @@ local function ADDdestructors(FP)
error"names should be equal" error"names should be equal"
end end
local def = {} local def = {}
local isrealdestructor = keep_dest_locat[defT[1].stname] and true
def.stname = defT[1].stname def.stname = defT[1].stname
def.templated = defT[1].templated def.templated = defT[1].templated
def.location = keep_dest_locat[defT[1].stname] def.location = keep_dest_locat[defT[1].stname] or defT[1].location
def.ret = "void" def.ret = "void"
def.ov_cimguiname = def.stname.."_destroy" def.ov_cimguiname = def.stname.."_destroy"
def.cimguiname = def.ov_cimguiname def.cimguiname = def.ov_cimguiname
def.destructor = true def.destructor = true
def.realdestructor = def.location and true def.realdestructor = isrealdestructor
def.args = "("..def.stname.."* self)" def.args = "("..def.stname.."* self)"
def.call_args = "(self)" def.call_args = "(self)"
def.signature = "("..def.stname.."*)" def.signature = "("..def.stname.."*)"
@@ -1267,7 +1334,7 @@ function M.Parser()
self.typedefs_dict[key] = linet self.typedefs_dict[key] = linet
elseif not line:match"typedef%s*struct" then --discard typedef struct elseif not line:match"typedef%s*struct" then --discard typedef struct
print("typedef not found") print("typedef not found")
print(key,value,line) print(key,value,line,cdef[1],cdef[2])
end end
end end
end end
@@ -1287,6 +1354,15 @@ function M.Parser()
function par:parseItemsR2(txt, itparent) function par:parseItemsR2(txt, itparent)
local itsarr,its = parseItems(txt,self.linenumdict,itparent) local itsarr,its = parseItems(txt,self.linenumdict,itparent)
for i,it in ipairs(itsarr) do for i,it in ipairs(itsarr) do
--clean class
if it.re_name == "class_re" then
it.name = it.item:match("class%s+(%S+)")
print("cleaning class",it.name)
it.item = it.item:gsub("private:.+};$","};")
--it.item = it.item:gsub("private:","")
it.item = it.item:gsub("public:","")
it.item = it.item:gsub("enum%s*class","enum")
end
if not isLeaf(it.re_name) then if not isLeaf(it.re_name) then
local inner = strip_end(it.item:match("%b{}"):sub(2,-2)) local inner = strip_end(it.item:match("%b{}"):sub(2,-2))
it.childs = par:parseItemsR2(inner, it) it.childs = par:parseItemsR2(inner, it)
@@ -1309,6 +1385,8 @@ function M.Parser()
end end
elseif it.re_name == "namespace_re" then elseif it.re_name == "namespace_re" then
it.name = it.item:match("namespace%s+(%S+)") it.name = it.item:match("namespace%s+(%S+)")
elseif it.re_name == "class_re" then
--it.name = it.item:match("class%s+(%S+)")
end end
end end
end end
@@ -1330,11 +1408,12 @@ function M.Parser()
return table.concat(txtclean) return table.concat(txtclean)
end end
function par:parseItems() function par:parseItems()
self:initTypedefsDict() --self:initTypedefsDict()
self.linenumdict = {} self.linenumdict = {}
local cdefs2 = {} local cdefs2 = {}
for i,cdef in ipairs(cdefs) do for i,cdef in ipairs(cdefs) do
cdef[1] = cdef[1]:gsub("enum%s*class","enum") --clean class
local cdef1 = clean_comments(cdef[1]) local cdef1 = clean_comments(cdef[1])
if self.linenumdict[cdef1] then if self.linenumdict[cdef1] then
--print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]])) --print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]]))
@@ -1344,7 +1423,6 @@ function M.Parser()
table.insert(self.linenumdict[cdef1],cdef[2]) table.insert(self.linenumdict[cdef1],cdef[2])
end end
else else
--print("nuevo linenumdict es",cdef[1],cdef[2])
self.linenumdict[cdef1]=cdef[2] self.linenumdict[cdef1]=cdef[2]
end end
table.insert(cdefs2,cdef[1]) table.insert(cdefs2,cdef[1])
@@ -1389,12 +1467,27 @@ function M.Parser()
--save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt) --save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt)
--]] --]]
self.itemsarr = par:parseItemsR2(txt) self.itemsarr = par:parseItemsR2(txt)
--save_data("./itemsarr.lua",ToStr(self.itemsarr))
itemsarr = self.itemsarr itemsarr = self.itemsarr
end end
function par:printItems() function par:printItems()
printItems(items) printItems(items)
end end
function par:set_manuals(manuals, modulen, erase)
erase = erase or {"CIMGUI_API"}
local moddata = read_data("./"..modulen.."_template.h")
for k,v in pairs(manuals) do
local ret = moddata:match("([^%(%):,\n;]+[%*%s])%s?~?"..k.."%b()")
for i,ww in ipairs(erase) do
ret = ret:gsub(ww,"")
end
local args = moddata:match(k.."%s*(%b())")
manuals[k] = {args = args, ret = ret}
--print(k,args,ret)
end
self.manuals = manuals
end
par.parseFunction = parseFunction par.parseFunction = parseFunction
local uniques = {} local uniques = {}
local function check_unique_typedefs(l,uniques) local function check_unique_typedefs(l,uniques)
@@ -1421,13 +1514,20 @@ function M.Parser()
local predeclare = "" local predeclare = ""
--local iner = strip_end(stru:match("%b{}"):sub(2,-2)) --local iner = strip_end(stru:match("%b{}"):sub(2,-2))
local inistruct = clean_spaces(stru:match("(.-)%b{}")) local inistruct = clean_spaces(stru:match("(.-)%b{}"))
--clean final:
inistruct = inistruct:gsub("%s*final%s*:",":")
--local stname = stru:match("struct%s*(%S+)%s*%b{}") --local stname = stru:match("struct%s*(%S+)%s*%b{}")
local stname, derived local stname, derived
if inistruct:match":" then if inistruct:match":" then
stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)" stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)"
--print(inistruct,stname,derived)
derived = derived:match"(%S+)$" derived = derived:match"(%S+)$"
else else
stname = inistruct:match"struct%s(%S+)" if itst.re_name == "struct_re" then
stname = inistruct:match"struct%s(%S+)"
elseif itst.re_name == "class_re" then
stname = inistruct:match"class%s(%S+)"
end
end end
if derived then print(stname,"derived from",derived) end if derived then print(stname,"derived from",derived) end
@@ -1437,6 +1537,7 @@ function M.Parser()
stname = stru:match("%b{}%s*(%S+)%s*;") stname = stru:match("%b{}%s*(%S+)%s*;")
end end
local is_nested local is_nested
if not stname then if not stname then
is_nested = itst.parent and (itst.parent.re_name == "struct_re") is_nested = itst.parent and (itst.parent.re_name == "struct_re")
@@ -1474,12 +1575,14 @@ function M.Parser()
--local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>") --local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>")
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>" local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
if template then if template then
--print("not doheader",ttype,template,te)
if self.typenames[ttype] ~= template then --rule out T (template typename) if self.typenames[ttype] ~= template then --rule out T (template typename)
self.templates[ttype] = self.templates[ttype] or {} self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te self.templates[ttype][template] = te
it2=code2 it2=code2
end end
if doheader then if doheader then
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template]) local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
predeclare = predeclare .. templatetypedef predeclare = predeclare .. templatetypedef
end end
@@ -1535,7 +1638,7 @@ function M.Parser()
end end
elseif it.re_name == "enum_re" then elseif it.re_name == "enum_re" then
--nop --nop
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24)) print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24))
--M.prtable(it) --M.prtable(it)
end end
@@ -1564,8 +1667,9 @@ function M.Parser()
if parnam~="" then parnam = parnam:sub(1,-3) end if parnam~="" then parnam = parnam:sub(1,-3) end
return parnam return parnam
end end
function par:header_text_insert(tab,txt,it)
table.insert(tab, txt)
end
function par:gen_structs_and_enums() function par:gen_structs_and_enums()
print"--------------gen_structs_and_enums" print"--------------gen_structs_and_enums"
--M.prtable(self.typenames) --M.prtable(self.typenames)
@@ -1593,25 +1697,31 @@ function M.Parser()
local tdt = self:gentemplatetypedef(ttype,template,te) local tdt = self:gentemplatetypedef(ttype,template,te)
it2 = tdt..code2 it2 = tdt..code2
elseif it2:match"%w+::" then
print("clean namespace typedef",it2)
it2 = it2:gsub("%w+::","")
end end
elseif it.re_name == "functypedef_re" then elseif it.re_name == "functypedef_re" then
it2 = clean_functypedef(it2) it2 = clean_functypedef(it2)
else else
assert(it.re_name == "vardef_re") assert(it.re_name == "vardef_re")
it2 = it2:gsub("constexpr","static const")
if it2:match"enum" then if it2:match"enum" then
print("--skip enum forward declaration:",it2) print("--skip enum forward declaration:",it2)
it2 = "" it2 = ""
end end
end end
--table.insert(outtabpre,it2) --table.insert(outtabpre,it2)
table.insert(outtab,it2) --table.insert(outtab,it2)
self:header_text_insert(outtab, it2, it)
-- add typedef after struct name -- add typedef after struct name
if it.re_name == "vardef_re" and it.item:match"^%s*struct" then if it.re_name == "vardef_re" and it.item:match"^%s*struct" then
local stname = it.item:match("struct%s*(%S+)%s*;") local stname = it.item:match("struct%s*(%S+)%s*;")
--table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n") --table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
local tst = "\ntypedef struct "..stname.." "..stname..";" local tst = "\ntypedef struct "..stname.." "..stname..";"
if check_unique_typedefs(tst,uniques) then if check_unique_typedefs(tst,uniques) then
table.insert(outtabpre,tst) --table.insert(outtabpre,tst)
self:header_text_insert(outtabpre ,tst, it)
end end
self.typedefs_dict[stname]="struct "..stname self.typedefs_dict[stname]="struct "..stname
if it.parent then --must be struct name; inside namespace if it.parent then --must be struct name; inside namespace
@@ -1637,24 +1747,31 @@ function M.Parser()
end end
end end
enumbody = "{"..enumbody.."\n}" enumbody = "{"..enumbody.."\n}"
table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";"..extraenums) --table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";"..extraenums)
local it2 = "\ntypedef enum ".. enumbody..enumname..";"..extraenums
self:header_text_insert(outtab, it2, it)
else else
local enumbody = it.item:match"(%b{})" local enumbody = it.item:match"(%b{})"
enumbody = clean_comments(enumbody) enumbody = clean_comments(enumbody)
table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";") --table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";")
local it2 = "\ntypedef enum ".. enumbody..enumname..";"
self:header_text_insert(outtab, it2, it)
end end
if it.parent then if it.parent then
if it.parent.re_name == "namespace_re" then if it.parent.re_name == "namespace_re" then
local namespace = it.parent.item:match("namespace%s+(%S+)") local namespace = it.parent.item:match("namespace%s+(%S+)")
self.embeded_enums[enumname] = namespace.."::"..enumname self.embeded_enums[enumname] = namespace.."::"..enumname
else
self.embeded_enums[enumname] = it.parent.name.."::"..enumname
end end
end end
else --unamed enum just repeat declaration else --unamed enum just repeat declaration
local cl_item = clean_comments(it.item) local cl_item = clean_comments(it.item)
table.insert(outtab,cl_item) --table.insert(outtab,cl_item)
self:header_text_insert(outtab, cl_item, it)
print("unnamed enum",cl_item) print("unnamed enum",cl_item)
end end
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true) local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true)
if not structname then print("NO NAME",cleanst,it.item) end if not structname then print("NO NAME",cleanst,it.item) end
--if not void stname or templated --if not void stname or templated
@@ -1663,12 +1780,14 @@ function M.Parser()
--table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n") --table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
local tst = "\ntypedef struct "..structname.." "..structname..";" local tst = "\ntypedef struct "..structname.." "..structname..";"
if check_unique_typedefs(tst,uniques) then if check_unique_typedefs(tst,uniques) then
table.insert(outtab,tst) --table.insert(outtab,tst)
self:header_text_insert(outtab, tst, it)
end end
self.typedefs_dict[structname]="struct "..structname self.typedefs_dict[structname]="struct "..structname
--dont insert child structs as they are inserted before parent struct --dont insert child structs as they are inserted before parent struct
if not (it.parent and it.parent.re_name == "struct_re") then if not (it.parent and it.parent.re_name == "struct_re") then
table.insert(outtab,predec .. cleanst) --table.insert(outtab,predec .. cleanst)
self:header_text_insert(outtab, predec .. cleanst, it)
end end
end end
if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
@@ -1691,7 +1810,7 @@ function M.Parser()
local stname = "" local stname = ""
local namespace local namespace
if it.parent then if it.parent then
if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then if it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" or it.parent.re_name == "class_re" then
stname = it.parent.name stname = it.parent.name
elseif it.parent.re_name == "namespace_re" then elseif it.parent.re_name == "namespace_re" then
namespace = get_parents_nameC(it) --it.parent.name namespace = get_parents_nameC(it) --it.parent.name
@@ -1701,7 +1820,9 @@ function M.Parser()
local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$" local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$"
if self.ftemplate_list and self.ftemplate_list[ttype] then if self.ftemplate_list and self.ftemplate_list[ttype] then
for iT,vT in ipairs(self.ftemplate_list[ttype]) do for iT,vT in ipairs(self.ftemplate_list[ttype]) do
local funT = fun:gsub(ttype,vT) local funT = fun:gsub("([< %(])"..ttype,"%1"..vT)
--funT = funT:gsub("sizeof%("..ttype.."%)","sizeof("..vT..")")
--local funT = fun:gsub(ttype,vT)
self:parseFunction(stname,{item=funT},namespace,it.locat) self:parseFunction(stname,{item=funT},namespace,it.locat)
end end
end end
@@ -1709,7 +1830,9 @@ function M.Parser()
self:parseFunction(stname,it,namespace,it.locat) self:parseFunction(stname,it,namespace,it.locat)
end end
else else
if it.re_name~="operator_re" then
print("not processed gen",it.re_name,it.item:sub(1,20)) print("not processed gen",it.re_name,it.item:sub(1,20))
end
end end
end end
@@ -1777,7 +1900,8 @@ function M.Parser()
end end
local unnamed_enum_counter = 0 local unnamed_enum_counter = 0
local function enums_for_table(it, outtab, enumsordered) local function enums_for_table(it, outtab, enumsordered)
local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)" --local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
local enumname = it.item:match"^[^;{}]-enum%s+([^%s;{}]+)"
if not enumname then if not enumname then
unnamed_enum_counter = unnamed_enum_counter + 1 unnamed_enum_counter = unnamed_enum_counter + 1
enumname = "unnamed"..unnamed_enum_counter enumname = "unnamed"..unnamed_enum_counter
@@ -1840,7 +1964,7 @@ function M.Parser()
function par:gen_structs_and_enums_table() function par:gen_structs_and_enums_table()
print"--------------gen_structs_and_enums_table" print"--------------gen_structs_and_enums_table"
local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={}} local outtab = {enums={},structs={},locations={},enumtypes={},struct_comments={},enum_comments={}}
self.typedefs_table = {} --self.typedefs_table = {}
local enumsordered = {} local enumsordered = {}
unnamed_enum_counter = 0 unnamed_enum_counter = 0
self.templated_structs = {} self.templated_structs = {}
@@ -1863,11 +1987,35 @@ function M.Parser()
if it.re_name == "typedef_re" and not it.parent then if it.re_name == "typedef_re" and not it.parent then
local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$" local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$"
typedefname = strip(typedefname) typedefname = strip(typedefname)
self.typedefs_table[typedefname] = strip(typedefdef) --self.typedefs_table[typedefname] = strip(typedefdef)
self.typedefs_dict[typedefname] = strip(typedefdef)
elseif it.re_name == "functypedef_re" then
-- "^\n*%s*(typedef[%w%s%*_]+%([^*]*%*?%s*[%w_]+%s*%)%s*%b()%s*;)"
local key = it.item:match("%(%*%s*([%w_]+)%)%s*%([^%(%)]*%)")
if key then
local linet = it.item
linet = linet:gsub("[\n%s]+typedef ","")
linet = linet:gsub("%(%*("..key..")%)","(*)")
self.typedefs_dict[key] = linet
--print("functypedef_re",1,linet)--,clean_functypedef(line))
else
--try function typedef
key = it.item:match("%(([%w_]+)%)%([^%(%)]*%)")
if key then
local linet = it.item
linet = linet:gsub("typedef ","")
linet = linet:gsub("%(("..key..")%)","()")
self.typedefs_dict[key] = linet
print("functypedef_re",2, it.item)
else
print("func typedef not found")
print(it.item)
end
end
end end
elseif it.re_name == "enum_re" then elseif it.re_name == "enum_re" then
enums_for_table(it, outtab, enumsordered) enums_for_table(it, outtab, enumsordered)
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" or it.re_name == "class_re" then
local cleanst,structname,strtab,comstab = self:clean_structR1(it) local cleanst,structname,strtab,comstab = self:clean_structR1(it)
--if not void stname or templated --if not void stname or templated
if not structname then print("NO NAME",cleanst,it.item) end if not structname then print("NO NAME",cleanst,it.item) end
@@ -1894,7 +2042,7 @@ function M.Parser()
end end
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
--nop --nop
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
print("not processed gen table",it.re_name) print("not processed gen table",it.re_name)
end end
end end
@@ -2139,6 +2287,7 @@ function M.Parser()
return self:gen_template_typedef_auto(ttype,te,newte) return self:gen_template_typedef_auto(ttype,te,newte)
end end
function par:gen_template_typedef_auto(ttype,te,newte) function par:gen_template_typedef_auto(ttype,te,newte)
--M.prtable(self.templated_structs)
assert(self.templated_structs[ttype],ttype) assert(self.templated_structs[ttype],ttype)
local defi = self.templated_structs[ttype] local defi = self.templated_structs[ttype]
local Targ = strsplit(self.typenames[ttype],",") local Targ = strsplit(self.typenames[ttype],",")
@@ -2182,7 +2331,111 @@ function M.Parser()
end end
return par return par
end end
-- more compact serialization
local function basicSerialize (o)
if type(o) == "number" then
return string.format("%.17g", o)
elseif type(o)=="boolean" then
return tostring(o)
elseif type(o) == "string" then
return string.format("%q", o)
elseif pcall(function() return o.__serialize end) then
return o.__serialize(o)
elseif type(o)=="cdata" then
return cdataSerialize(o)
else
return tostring(o) --"nil"
end
end
-- very readable and now suited for cyclic tables
local kw = {['and'] = true, ['break'] = true, ['do'] = true, ['else'] = true,
['elseif'] = true, ['end'] = true, ['false'] = true, ['for'] = true,
['function'] = true, ['goto'] = true, ['if'] = true, ['in'] = true,
['local'] = true, ['nil'] = true, ['not'] = true, ['or'] = true,
['repeat'] = true, ['return'] = true, ['then'] = true, ['true'] = true,
['until'] = true, ['while'] = true}
function tb2st_serialize(t,options)
options = options or {}
local function sorter(a,b)
if type(a)==type(b) then
return a<b
elseif type(a)=="number" then
return true
else
assert(type(b)=="number")
return false
end
end
local function serialize_key(val, dodot, pretty)
local dot = dodot and "." or ""
if type(val)=="string" then
if val:match '^[_%a][_%w]*$' and not kw[val] then
return dot..tostring(val)
else
return "[\""..tostring(val).."\"]"
end
elseif (not pretty) and (not dodot) and (type(val) == "number") and (math.floor(val)==val) then
return --array index
else
return "["..tostring(val).."]"
end
end
local function serialize_key_name(val)
return serialize_key(val, true)
end
local insert = table.insert
local function _tb2st(t,saved,sref,level,name)
saved = saved or {} -- initial value
level = level or 0
sref = sref or {}
name = name or "t"
if type(t)=="table" then
if saved[t] then
sref[#sref+1] = {saved[t],name}
return"nil"
else
saved[t] = name
local ordered_keys = {}
for k,v in pairs(t) do
insert(ordered_keys,k)
end
table.sort(ordered_keys,sorter)
local str2 = {}
insert(str2,"{")
if options.pretty then insert(str2,"\n") end
for _,k in ipairs(ordered_keys) do
if options.pretty then insert(str2,(" "):rep(level+1)) end
local v = t[k]
local kser = serialize_key(k, nil, options.pretty)
insert(str2, (kser and (kser .."=") or ""))
if type(v)~="table" then
insert(str2, basicSerialize(v))
else
local name2 = name .. serialize_key_name(k)
insert(str2,_tb2st(v,saved,sref,level+1,name2))
end
if options.pretty then insert(str2,",\n") else insert(str2, ",") end
end
str2[#str2] = "}"
if level == 0 then
--insert(str2, 1,"local ffi = require'ffi'\nlocal t=")
insert(str2, 1,"local t=")
for i,v in ipairs(sref) do
insert(str2, "\n"..v[2].."="..v[1])
end
insert(str2,"\n return t")
end
return table.concat(str2)
end
else
return basicSerialize(t)
end
end
return(_tb2st(t))
end
M.tb2st_serialize = tb2st_serialize
------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string) ------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
local function serializeTable(name, value, saved) local function serializeTable(name, value, saved)
@@ -2244,10 +2497,11 @@ local function serializeTable(name, value, saved)
return table.concat(string_table) return table.concat(string_table)
end end
M.serializeTable = serializeTable -- M.serializeTable = serializeTable
M.serializeTableF = function(t) -- M.serializeTableF = function(t)
return M.serializeTable("defs",t).."\nreturn defs" -- return M.serializeTable("defs",t).."\nreturn defs"
end -- end
M.serializeTableF = function(t) return tb2st_serialize(t,{pretty=true}) end --new serialization more compact
--iterates lines from a gcc/clang -E in a specific location --iterates lines from a gcc/clang -E in a specific location
local function location(file,locpathT,defines,COMPILER,keepemptylines) local function location(file,locpathT,defines,COMPILER,keepemptylines)
local define_re = "^#define%s+([^%s]+)%s+(.+)$" local define_re = "^#define%s+([^%s]+)%s+(.+)$"
@@ -2334,7 +2588,8 @@ local function location(file,locpathT,defines,COMPILER,keepemptylines)
end end
M.location = location M.location = location
---------------------- C writing functions ---------------------- C writing functions
local function ImGui_f_implementation(outtab,def) local function ImGui_f_implementation(def)
local outtab = {}
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n") table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n") table.insert(outtab,"{\n")
@@ -2361,8 +2616,10 @@ local function ImGui_f_implementation(outtab,def)
table.insert(outtab," return "..ptret..namespace..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret..namespace..def.funcname..def.call_args..";\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
return table.concat(outtab, "")
end end
local function struct_f_implementation(outtab,def) local function struct_f_implementation(def)
local outtab = {}
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
@@ -2391,6 +2648,7 @@ local function struct_f_implementation(outtab,def)
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
return table.concat(outtab, "")
end end
local function func_implementation(FP) local function func_implementation(FP)
@@ -2408,25 +2666,38 @@ local function func_implementation(FP)
local manual = FP.get_manuals(def) local manual = FP.get_manuals(def)
if not custom and not manual and not def.templated and not FP.get_skipped(def) then if not custom and not manual and not def.templated and not FP.get_skipped(def) then
if def.constructor then if def.constructor then
local tab = {}
assert(def.stname ~= "","constructor without struct") assert(def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n") table.insert(tab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(outtab,"{\n") table.insert(tab,"{\n")
table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n") table.insert(tab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(outtab,"}\n") table.insert(tab,"}\n")
if FP.CONSTRUCTORS_GENERATION then
table.insert(tab,"CIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..")\n")
table.insert(tab,"{\n")
table.insert(tab," IM_PLACEMENT_NEW(self)"..def.stname..def.call_args..";\n")
table.insert(tab,"}\n")
end
table.insert(outtab, table.concat(tab, ""))
elseif def.destructor then elseif def.destructor then
local tab = {}
local args = "("..def.stname.."* self)" local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy" local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args.."\n") table.insert(tab,"CIMGUI_API void "..fname..args.."\n")
table.insert(outtab,"{\n") table.insert(tab,"{\n")
table.insert(outtab," IM_DELETE(self);\n") table.insert(tab," IM_DELETE(self);\n")
table.insert(outtab,"}\n") table.insert(tab,"}\n")
table.insert(outtab, table.concat(tab, ""))
elseif def.stname == "" or def.is_static_function then elseif def.stname == "" or def.is_static_function then
ImGui_f_implementation(outtab,def) table.insert(outtab, ImGui_f_implementation(def))
else -- stname else -- stname
struct_f_implementation(outtab,def) table.insert(outtab, struct_f_implementation(def))
end end
end end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
until true until true
end end
return table.concat(outtab) return table.concat(outtab)
@@ -2449,13 +2720,16 @@ local function func_header_generate_structs(FP)
local outtab = {} local outtab = {}
table_do_sorted(FP.embeded_structs,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end) table_do_sorted(FP.embeded_structs,function(k,v)
table.insert(outtab,"typedef "..v.." "..k..";\n")
end)
table_do_sorted(FP.embeded_enums,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end) table_do_sorted(FP.embeded_enums,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end)
table_do_sorted(FP.templates,function(ttype,v) table_do_sorted(FP.templates,function(ttype,v)
table_do_sorted(v,function(ttypein,te) table_do_sorted(v,function(ttypein,te)
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n") local ttype2 = ttype:gsub("::","_") --std::string
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype2.."_"..te..";\n")
end) end)
end) end)
return outtab return outtab
@@ -2484,6 +2758,9 @@ local function func_header_generate_funcs(FP)
if def.constructor then if def.constructor then
assert(def.stname ~= "","constructor without struct") assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
if FP.CONSTRUCTORS_GENERATION then
outtab[#outtab] = outtab[#outtab].."\nCIMGUI_API void "..def.ov_cimguiname.."_Construct("..def.stname.."* self"..(empty and "" or ","..def.args:sub(2,-2))..");\n"
end
elseif def.destructor then elseif def.destructor then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else --not constructor else --not constructor
@@ -2495,9 +2772,13 @@ local function func_header_generate_funcs(FP)
end end
end end
end end
if FP.custom_function_post then
FP:custom_function_post(outtab, def)
end
else --not cimguiname else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end end
end end
return outtab return outtab

View File

@@ -15,10 +15,12 @@ set PATH=%PATH%;C:\anima;C:\mingws\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\min
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin; :: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
::process files ::process files
:: arg[1] compiler name gcc, clang or cl :: arg[1] compiler name gcc, clang or cl
:: arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv :: arg[2] options as words in one string: internal for imgui_internal generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
:: examples: "" "internal" "internal freetype comments" :: "constructors" adds the _Construct version of constructors
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32) :: examples: "" "internal" "internal comments"
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 %* :: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 -DIMGUI_USE_WCHAR32 %*
::leave console open ::leave console open
cmd /k cmd /k

View File

@@ -7,8 +7,9 @@ assert(bit,"Must use LuaJIT")
local script_args = {...} local script_args = {...}
local COMPILER = script_args[1] local COMPILER = script_args[1]
local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false
local FREETYPE_GENERATION = script_args[2]:match("freetype") and true or false local FREETYPE_GENERATION = true --script_args[2]:match("freetype") and true or false
local COMMENTS_GENERATION = script_args[2]:match("comments") and true or false local COMMENTS_GENERATION = script_args[2]:match("comments") and true or false
local CONSTRUCTORS_GENERATION = script_args[2]:match("constructors") and true or false
local NOCHAR = script_args[2]:match("nochar") and true or false local NOCHAR = script_args[2]:match("nochar") and true or false
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui" local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
@@ -18,6 +19,9 @@ local CPRE,CTEST
local implementations = {} local implementations = {}
for i=3,#script_args do for i=3,#script_args do
if script_args[i]:match(COMPILER == "cl" and "^/" or "^%-") then if script_args[i]:match(COMPILER == "cl" and "^/" or "^%-") then
if script_args[i]:match("IMGUI_USE_WCHAR32") then
script_args[i] = "" --dont use this define
end
local key, value = script_args[i]:match("^(.+)=(.+)$") local key, value = script_args[i]:match("^(.+)=(.+)$")
if key and value then if key and value then
CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\""; CFLAGS = CFLAGS .. " " .. key .. "=\"" .. value:gsub("\"", "\\\"") .. "\"";
@@ -30,11 +34,11 @@ for i=3,#script_args do
end end
if FREETYPE_GENERATION then if FREETYPE_GENERATION then
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE " CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE" --both builders
end end
if COMPILER == "gcc" or COMPILER == "clang" or COMPILER == "zig cc" then if COMPILER == "gcc" or COMPILER == "clang" or COMPILER == "zig cc" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
CTEST = COMPILER.." --version" CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_DEBUG_PARANOID /DIMGUI_API="" /DIMGUI_IMPL_API="" ]] .. CFLAGS
@@ -67,6 +71,7 @@ print("HAVE_COMPILER",HAVE_COMPILER)
print("INTERNAL_GENERATION",INTERNAL_GENERATION) print("INTERNAL_GENERATION",INTERNAL_GENERATION)
print("FREETYPE_GENERATION",FREETYPE_GENERATION) print("FREETYPE_GENERATION",FREETYPE_GENERATION)
print("COMMENTS_GENERATION",COMMENTS_GENERATION) print("COMMENTS_GENERATION",COMMENTS_GENERATION)
print("CONSTRUCTORS_GENERATION",CONSTRUCTORS_GENERATION)
print("CPRE",CPRE) print("CPRE",CPRE)
-------------------------------------------------------------------------- --------------------------------------------------------------------------
--this table has the functions to be skipped in generation --this table has the functions to be skipped in generation
@@ -212,6 +217,27 @@ local function DefsByStruct(FP)
FP.defsBystruct = structs FP.defsBystruct = structs
end end
local function colapse_defines(str, define)
local num = 1
while num > 0 do
str,num = str:gsub("(#ifdef "..define..".+)".."(#endif\n+#ifdef "..define.."\n)", "%1")
end
return str
end
local wchardefine =
[[
#ifdef IMGUI_USE_WCHAR32
typedef ImWchar32 ImWchar;
#else
typedef ImWchar16 ImWchar;
#endif
#ifdef IMGUI_USE_WCHAR32
#define IM_UNICODE_CODEPOINT_MAX 0x10FFFF
#else
#define IM_UNICODE_CODEPOINT_MAX 0xFFFF
#endif
]]
--generate cimgui.cpp cimgui.h --generate cimgui.cpp cimgui.h
local function cimgui_generation(parser) local function cimgui_generation(parser)
@@ -259,18 +285,27 @@ local function cimgui_generation(parser)
end end
end end
cstructsstr = colapse_defines(cstructsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr) hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser) local cfuncsstr = func_header_generate(parser)
cfuncsstr = colapse_defines(cfuncsstr, "IMGUI_ENABLE_FREETYPE")
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr) hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
--patch hstrfile for ImWchar
local num
hstrfile, num = hstrfile:gsub("typedef ImWchar16 ImWchar;", wchardefine)
assert(num == 1)
hstrfile, num = hstrfile:gsub("kPagesMap%[%(0xFFFF", "kPagesMap[(IM_UNICODE_CODEPOINT_MAX")
assert(num == 1, "kPagesMap[(IM_UNICODE_CODEPOINT_MAX not found or found more than once")
save_data("./output/cimgui.h",cimgui_header,hstrfile) save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp --merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser) local cimplem = func_implementation(parser)
cimplem = colapse_defines(cimplem, "IMGUI_ENABLE_FREETYPE")
local hstrfile = read_data"./cimgui_template.cpp" local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem) hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
local ftdef = FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or "" local ftdef = "" --FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or ""
save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile) save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile)
end end
@@ -305,6 +340,20 @@ print("NOIMSTRV",NOIMSTRV)
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK) print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
print("IMGUI_VERSION",gdefines.IMGUI_VERSION) print("IMGUI_VERSION",gdefines.IMGUI_VERSION)
local function custom_function_post(self, outtab, def)
assert(def.location)
if def.location:match("imgui_freetype") then
outtab[#outtab] = "#ifdef IMGUI_ENABLE_FREETYPE\n"..outtab[#outtab].."\n#endif\n"
end
end
local function header_text_insert(self, outtab, txt, it)
assert(it.locat)
if it.locat:match("imgui_freetype") then
table.insert(outtab, "\n#ifdef IMGUI_ENABLE_FREETYPE"..txt.."\n#endif")
else
table.insert(outtab, txt)
end
end
--funtion for parsing imgui headers --funtion for parsing imgui headers
local function parseImGuiHeader(header,names) local function parseImGuiHeader(header,names)
@@ -316,13 +365,17 @@ local function parseImGuiHeader(header,names)
return pre..funcname return pre..funcname
end end
parser.cname_overloads = cimgui_overloads parser.cname_overloads = cimgui_overloads
parser.manuals = cimgui_manuals --parser.manuals = cimgui_manuals
parser:set_manuals(cimgui_manuals, "cimgui")
parser.skipped = cimgui_skipped parser.skipped = cimgui_skipped
parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"} parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"}
--parser.gen_template_typedef = gen_template_typedef --use auto --parser.gen_template_typedef = gen_template_typedef --use auto
parser.COMMENTS_GENERATION = COMMENTS_GENERATION parser.COMMENTS_GENERATION = COMMENTS_GENERATION
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
parser.NOCHAR = NOCHAR parser.NOCHAR = NOCHAR
parser.NOIMSTRV = NOIMSTRV parser.NOIMSTRV = NOIMSTRV
parser.custom_function_post = custom_function_post
parser.header_text_insert = header_text_insert
local defines = parser:take_lines(CPRE..header,names,COMPILER) local defines = parser:take_lines(CPRE..header,names,COMPILER)
return parser return parser

View File

@@ -13,9 +13,11 @@
#process files #process files
# arg[1] compiler name gcc, clang, or cl # arg[1] compiler name gcc, clang, or cl
# arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv # arg[2] options as words in one string: internal for imgui_internal generation, comments for comments generation, nochar to skip char* function version, noimstrv to skip imstrv
# examples: "" "internal" "internal freetype" "comments internal" # "constructors" adds the _Construct version of constructors
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32) # examples: "" "internal" "comments internal"
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG)
# -DIMGUI_USE_WCHAR32 should not be used as it is generated for both ImWchar
# #
# parse command line arguments # parse command line arguments
@@ -23,7 +25,7 @@
POSITIONAL_ARGS=() POSITIONAL_ARGS=()
TARGETS="internal noimstrv" TARGETS="internal noimstrv"
CFLAGS="glfw opengl3 opengl2 sdl2" CFLAGS="glfw opengl3 opengl2 sdl2 sdl3"
help() { help() {
cat <<EOF cat <<EOF

View File

@@ -19,6 +19,7 @@ CIMGUI_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window,double xoffset,
CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods); CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods);
CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c); CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c);
CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event); CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event);
CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds);
#endif #endif
#ifdef CIMGUI_USE_OPENGL3 #ifdef CIMGUI_USE_OPENGL3
@@ -64,3 +65,25 @@ CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
CIMGUI_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count); CIMGUI_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count);
#endif #endif
#ifdef CIMGUI_USE_SDL3
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct SDL_Gamepad SDL_Gamepad;
struct SDL_Window;
struct SDL_Renderer;
struct SDL_Gamepad;
typedef union SDL_Event SDL_Event;
typedef enum { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }ImGui_ImplSDL3_GamepadMode;CIMGUI_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL3_Shutdown(void);
CIMGUI_API void ImGui_ImplSDL3_NewFrame(void);
CIMGUI_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
CIMGUI_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count);
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -17,7 +17,7 @@
"cimguiname": "ImGui_ImplGlfw_CharCallback", "cimguiname": "ImGui_ImplGlfw_CharCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_CharCallback", "funcname": "ImGui_ImplGlfw_CharCallback",
"location": "imgui_impl_glfw:59", "location": "imgui_impl_glfw:57",
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback", "ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,unsigned int)", "signature": "(GLFWwindow*,unsigned int)",
@@ -42,7 +42,7 @@
"cimguiname": "ImGui_ImplGlfw_CursorEnterCallback", "cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_CursorEnterCallback", "funcname": "ImGui_ImplGlfw_CursorEnterCallback",
"location": "imgui_impl_glfw:54", "location": "imgui_impl_glfw:52",
"ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback", "ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,int)", "signature": "(GLFWwindow*,int)",
@@ -71,7 +71,7 @@
"cimguiname": "ImGui_ImplGlfw_CursorPosCallback", "cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_CursorPosCallback", "funcname": "ImGui_ImplGlfw_CursorPosCallback",
"location": "imgui_impl_glfw:55", "location": "imgui_impl_glfw:53",
"ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback", "ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,double,double)", "signature": "(GLFWwindow*,double,double)",
@@ -96,7 +96,7 @@
"cimguiname": "ImGui_ImplGlfw_InitForOpenGL", "cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_InitForOpenGL", "funcname": "ImGui_ImplGlfw_InitForOpenGL",
"location": "imgui_impl_glfw:31", "location": "imgui_impl_glfw:28",
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL", "ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
"ret": "bool", "ret": "bool",
"signature": "(GLFWwindow*,bool)", "signature": "(GLFWwindow*,bool)",
@@ -121,7 +121,7 @@
"cimguiname": "ImGui_ImplGlfw_InitForOther", "cimguiname": "ImGui_ImplGlfw_InitForOther",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_InitForOther", "funcname": "ImGui_ImplGlfw_InitForOther",
"location": "imgui_impl_glfw:33", "location": "imgui_impl_glfw:30",
"ov_cimguiname": "ImGui_ImplGlfw_InitForOther", "ov_cimguiname": "ImGui_ImplGlfw_InitForOther",
"ret": "bool", "ret": "bool",
"signature": "(GLFWwindow*,bool)", "signature": "(GLFWwindow*,bool)",
@@ -146,7 +146,7 @@
"cimguiname": "ImGui_ImplGlfw_InitForVulkan", "cimguiname": "ImGui_ImplGlfw_InitForVulkan",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_InitForVulkan", "funcname": "ImGui_ImplGlfw_InitForVulkan",
"location": "imgui_impl_glfw:32", "location": "imgui_impl_glfw:29",
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan", "ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
"ret": "bool", "ret": "bool",
"signature": "(GLFWwindow*,bool)", "signature": "(GLFWwindow*,bool)",
@@ -167,7 +167,7 @@
"cimguiname": "ImGui_ImplGlfw_InstallCallbacks", "cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_InstallCallbacks", "funcname": "ImGui_ImplGlfw_InstallCallbacks",
"location": "imgui_impl_glfw:45", "location": "imgui_impl_glfw:43",
"ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks", "ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*)", "signature": "(GLFWwindow*)",
@@ -204,7 +204,7 @@
"cimguiname": "ImGui_ImplGlfw_KeyCallback", "cimguiname": "ImGui_ImplGlfw_KeyCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_KeyCallback", "funcname": "ImGui_ImplGlfw_KeyCallback",
"location": "imgui_impl_glfw:58", "location": "imgui_impl_glfw:56",
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback", "ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,int,int,int,int)", "signature": "(GLFWwindow*,int,int,int,int)",
@@ -229,7 +229,7 @@
"cimguiname": "ImGui_ImplGlfw_MonitorCallback", "cimguiname": "ImGui_ImplGlfw_MonitorCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_MonitorCallback", "funcname": "ImGui_ImplGlfw_MonitorCallback",
"location": "imgui_impl_glfw:60", "location": "imgui_impl_glfw:58",
"ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback", "ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWmonitor*,int)", "signature": "(GLFWmonitor*,int)",
@@ -262,7 +262,7 @@
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback", "cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_MouseButtonCallback", "funcname": "ImGui_ImplGlfw_MouseButtonCallback",
"location": "imgui_impl_glfw:56", "location": "imgui_impl_glfw:54",
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback", "ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,int,int,int)", "signature": "(GLFWwindow*,int,int,int)",
@@ -278,7 +278,7 @@
"cimguiname": "ImGui_ImplGlfw_NewFrame", "cimguiname": "ImGui_ImplGlfw_NewFrame",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_NewFrame", "funcname": "ImGui_ImplGlfw_NewFrame",
"location": "imgui_impl_glfw:35", "location": "imgui_impl_glfw:32",
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame", "ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -299,7 +299,7 @@
"cimguiname": "ImGui_ImplGlfw_RestoreCallbacks", "cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_RestoreCallbacks", "funcname": "ImGui_ImplGlfw_RestoreCallbacks",
"location": "imgui_impl_glfw:46", "location": "imgui_impl_glfw:44",
"ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks", "ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*)", "signature": "(GLFWwindow*)",
@@ -328,7 +328,7 @@
"cimguiname": "ImGui_ImplGlfw_ScrollCallback", "cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_ScrollCallback", "funcname": "ImGui_ImplGlfw_ScrollCallback",
"location": "imgui_impl_glfw:57", "location": "imgui_impl_glfw:55",
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback", "ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,double,double)", "signature": "(GLFWwindow*,double,double)",
@@ -349,7 +349,7 @@
"cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", "cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", "funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"location": "imgui_impl_glfw:50", "location": "imgui_impl_glfw:48",
"ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", "ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
"ret": "void", "ret": "void",
"signature": "(bool)", "signature": "(bool)",
@@ -365,13 +365,34 @@
"cimguiname": "ImGui_ImplGlfw_Shutdown", "cimguiname": "ImGui_ImplGlfw_Shutdown",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_Shutdown", "funcname": "ImGui_ImplGlfw_Shutdown",
"location": "imgui_impl_glfw:34", "location": "imgui_impl_glfw:31",
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown", "ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
"stname": "" "stname": ""
} }
], ],
"ImGui_ImplGlfw_Sleep": [
{
"args": "(int milliseconds)",
"argsT": [
{
"name": "milliseconds",
"type": "int"
}
],
"argsoriginal": "(int milliseconds)",
"call_args": "(milliseconds)",
"cimguiname": "ImGui_ImplGlfw_Sleep",
"defaults": {},
"funcname": "ImGui_ImplGlfw_Sleep",
"location": "imgui_impl_glfw:61",
"ov_cimguiname": "ImGui_ImplGlfw_Sleep",
"ret": "void",
"signature": "(int)",
"stname": ""
}
],
"ImGui_ImplGlfw_WindowFocusCallback": [ "ImGui_ImplGlfw_WindowFocusCallback": [
{ {
"args": "(GLFWwindow* window,int focused)", "args": "(GLFWwindow* window,int focused)",
@@ -390,7 +411,7 @@
"cimguiname": "ImGui_ImplGlfw_WindowFocusCallback", "cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplGlfw_WindowFocusCallback", "funcname": "ImGui_ImplGlfw_WindowFocusCallback",
"location": "imgui_impl_glfw:53", "location": "imgui_impl_glfw:51",
"ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback", "ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
"ret": "void", "ret": "void",
"signature": "(GLFWwindow*,int)", "signature": "(GLFWwindow*,int)",
@@ -406,7 +427,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"location": "imgui_impl_opengl2:36", "location": "imgui_impl_opengl2:38",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -422,7 +443,7 @@
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture", "funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"location": "imgui_impl_opengl2:34", "location": "imgui_impl_opengl2:36",
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -438,7 +459,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"location": "imgui_impl_opengl2:37", "location": "imgui_impl_opengl2:39",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -454,7 +475,7 @@
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"location": "imgui_impl_opengl2:35", "location": "imgui_impl_opengl2:37",
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -470,7 +491,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Init", "cimguiname": "ImGui_ImplOpenGL2_Init",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_Init", "funcname": "ImGui_ImplOpenGL2_Init",
"location": "imgui_impl_opengl2:28", "location": "imgui_impl_opengl2:30",
"ov_cimguiname": "ImGui_ImplOpenGL2_Init", "ov_cimguiname": "ImGui_ImplOpenGL2_Init",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -486,7 +507,7 @@
"cimguiname": "ImGui_ImplOpenGL2_NewFrame", "cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_NewFrame", "funcname": "ImGui_ImplOpenGL2_NewFrame",
"location": "imgui_impl_opengl2:30", "location": "imgui_impl_opengl2:32",
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame", "ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -507,7 +528,7 @@
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_RenderDrawData", "funcname": "ImGui_ImplOpenGL2_RenderDrawData",
"location": "imgui_impl_opengl2:31", "location": "imgui_impl_opengl2:33",
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
"ret": "void", "ret": "void",
"signature": "(ImDrawData*)", "signature": "(ImDrawData*)",
@@ -523,7 +544,7 @@
"cimguiname": "ImGui_ImplOpenGL2_Shutdown", "cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL2_Shutdown", "funcname": "ImGui_ImplOpenGL2_Shutdown",
"location": "imgui_impl_opengl2:29", "location": "imgui_impl_opengl2:31",
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown", "ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -539,7 +560,7 @@
"cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects", "cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_CreateDeviceObjects", "funcname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"location": "imgui_impl_opengl3:42", "location": "imgui_impl_opengl3:41",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -555,7 +576,7 @@
"cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture", "cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_CreateFontsTexture", "funcname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"location": "imgui_impl_opengl3:40", "location": "imgui_impl_opengl3:39",
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
"ret": "bool", "ret": "bool",
"signature": "()", "signature": "()",
@@ -571,7 +592,7 @@
"cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects", "cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_DestroyDeviceObjects", "funcname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"location": "imgui_impl_opengl3:43", "location": "imgui_impl_opengl3:42",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects", "ov_cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -587,7 +608,7 @@
"cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture", "cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_DestroyFontsTexture", "funcname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"location": "imgui_impl_opengl3:41", "location": "imgui_impl_opengl3:40",
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture", "ov_cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -610,7 +631,7 @@
"glsl_version": "nullptr" "glsl_version": "nullptr"
}, },
"funcname": "ImGui_ImplOpenGL3_Init", "funcname": "ImGui_ImplOpenGL3_Init",
"location": "imgui_impl_opengl3:34", "location": "imgui_impl_opengl3:33",
"ov_cimguiname": "ImGui_ImplOpenGL3_Init", "ov_cimguiname": "ImGui_ImplOpenGL3_Init",
"ret": "bool", "ret": "bool",
"signature": "(const char*)", "signature": "(const char*)",
@@ -626,7 +647,7 @@
"cimguiname": "ImGui_ImplOpenGL3_NewFrame", "cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_NewFrame", "funcname": "ImGui_ImplOpenGL3_NewFrame",
"location": "imgui_impl_opengl3:36", "location": "imgui_impl_opengl3:35",
"ov_cimguiname": "ImGui_ImplOpenGL3_NewFrame", "ov_cimguiname": "ImGui_ImplOpenGL3_NewFrame",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -647,7 +668,7 @@
"cimguiname": "ImGui_ImplOpenGL3_RenderDrawData", "cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_RenderDrawData", "funcname": "ImGui_ImplOpenGL3_RenderDrawData",
"location": "imgui_impl_opengl3:37", "location": "imgui_impl_opengl3:36",
"ov_cimguiname": "ImGui_ImplOpenGL3_RenderDrawData", "ov_cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
"ret": "void", "ret": "void",
"signature": "(ImDrawData*)", "signature": "(ImDrawData*)",
@@ -663,7 +684,7 @@
"cimguiname": "ImGui_ImplOpenGL3_Shutdown", "cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplOpenGL3_Shutdown", "funcname": "ImGui_ImplOpenGL3_Shutdown",
"location": "imgui_impl_opengl3:35", "location": "imgui_impl_opengl3:34",
"ov_cimguiname": "ImGui_ImplOpenGL3_Shutdown", "ov_cimguiname": "ImGui_ImplOpenGL3_Shutdown",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -684,7 +705,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForD3D", "cimguiname": "ImGui_ImplSDL2_InitForD3D",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForD3D", "funcname": "ImGui_ImplSDL2_InitForD3D",
"location": "imgui_impl_sdl2:36", "location": "imgui_impl_sdl2:33",
"ov_cimguiname": "ImGui_ImplSDL2_InitForD3D", "ov_cimguiname": "ImGui_ImplSDL2_InitForD3D",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*)", "signature": "(SDL_Window*)",
@@ -705,7 +726,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForMetal", "cimguiname": "ImGui_ImplSDL2_InitForMetal",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForMetal", "funcname": "ImGui_ImplSDL2_InitForMetal",
"location": "imgui_impl_sdl2:37", "location": "imgui_impl_sdl2:34",
"ov_cimguiname": "ImGui_ImplSDL2_InitForMetal", "ov_cimguiname": "ImGui_ImplSDL2_InitForMetal",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*)", "signature": "(SDL_Window*)",
@@ -730,7 +751,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForOpenGL", "cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForOpenGL", "funcname": "ImGui_ImplSDL2_InitForOpenGL",
"location": "imgui_impl_sdl2:34", "location": "imgui_impl_sdl2:31",
"ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL", "ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*,void*)", "signature": "(SDL_Window*,void*)",
@@ -751,7 +772,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForOther", "cimguiname": "ImGui_ImplSDL2_InitForOther",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForOther", "funcname": "ImGui_ImplSDL2_InitForOther",
"location": "imgui_impl_sdl2:39", "location": "imgui_impl_sdl2:36",
"ov_cimguiname": "ImGui_ImplSDL2_InitForOther", "ov_cimguiname": "ImGui_ImplSDL2_InitForOther",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*)", "signature": "(SDL_Window*)",
@@ -776,7 +797,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer", "cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForSDLRenderer", "funcname": "ImGui_ImplSDL2_InitForSDLRenderer",
"location": "imgui_impl_sdl2:38", "location": "imgui_impl_sdl2:35",
"ov_cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer", "ov_cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*,SDL_Renderer*)", "signature": "(SDL_Window*,SDL_Renderer*)",
@@ -797,7 +818,7 @@
"cimguiname": "ImGui_ImplSDL2_InitForVulkan", "cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_InitForVulkan", "funcname": "ImGui_ImplSDL2_InitForVulkan",
"location": "imgui_impl_sdl2:35", "location": "imgui_impl_sdl2:32",
"ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan", "ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan",
"ret": "bool", "ret": "bool",
"signature": "(SDL_Window*)", "signature": "(SDL_Window*)",
@@ -813,7 +834,7 @@
"cimguiname": "ImGui_ImplSDL2_NewFrame", "cimguiname": "ImGui_ImplSDL2_NewFrame",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_NewFrame", "funcname": "ImGui_ImplSDL2_NewFrame",
"location": "imgui_impl_sdl2:41", "location": "imgui_impl_sdl2:38",
"ov_cimguiname": "ImGui_ImplSDL2_NewFrame", "ov_cimguiname": "ImGui_ImplSDL2_NewFrame",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
@@ -834,7 +855,7 @@
"cimguiname": "ImGui_ImplSDL2_ProcessEvent", "cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_ProcessEvent", "funcname": "ImGui_ImplSDL2_ProcessEvent",
"location": "imgui_impl_sdl2:42", "location": "imgui_impl_sdl2:39",
"ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent", "ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent",
"ret": "bool", "ret": "bool",
"signature": "(const SDL_Event*)", "signature": "(const SDL_Event*)",
@@ -858,15 +879,15 @@
"type": "int" "type": "int"
} }
], ],
"argsoriginal": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array=((void*)0),int manual_gamepads_count=-1)", "argsoriginal": "(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)", "call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL2_SetGamepadMode", "cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"defaults": { "defaults": {
"manual_gamepads_array": "NULL", "manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1" "manual_gamepads_count": "-1"
}, },
"funcname": "ImGui_ImplSDL2_SetGamepadMode", "funcname": "ImGui_ImplSDL2_SetGamepadMode",
"location": "imgui_impl_sdl2:47", "location": "imgui_impl_sdl2:44",
"ov_cimguiname": "ImGui_ImplSDL2_SetGamepadMode", "ov_cimguiname": "ImGui_ImplSDL2_SetGamepadMode",
"ret": "void", "ret": "void",
"signature": "(ImGui_ImplSDL2_GamepadMode,struct _SDL_GameController**,int)", "signature": "(ImGui_ImplSDL2_GamepadMode,struct _SDL_GameController**,int)",
@@ -882,11 +903,251 @@
"cimguiname": "ImGui_ImplSDL2_Shutdown", "cimguiname": "ImGui_ImplSDL2_Shutdown",
"defaults": {}, "defaults": {},
"funcname": "ImGui_ImplSDL2_Shutdown", "funcname": "ImGui_ImplSDL2_Shutdown",
"location": "imgui_impl_sdl2:40", "location": "imgui_impl_sdl2:37",
"ov_cimguiname": "ImGui_ImplSDL2_Shutdown", "ov_cimguiname": "ImGui_ImplSDL2_Shutdown",
"ret": "void", "ret": "void",
"signature": "()", "signature": "()",
"stname": "" "stname": ""
} }
],
"ImGui_ImplSDL3_InitForD3D": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForD3D",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForD3D",
"location": "imgui_impl_sdl3:35",
"ov_cimguiname": "ImGui_ImplSDL3_InitForD3D",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForMetal": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForMetal",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForMetal",
"location": "imgui_impl_sdl3:36",
"ov_cimguiname": "ImGui_ImplSDL3_InitForMetal",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOpenGL": [
{
"args": "(SDL_Window* window,void* sdl_gl_context)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "sdl_gl_context",
"type": "void*"
}
],
"argsoriginal": "(SDL_Window* window,void* sdl_gl_context)",
"call_args": "(window,sdl_gl_context)",
"cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOpenGL",
"location": "imgui_impl_sdl3:33",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
"ret": "bool",
"signature": "(SDL_Window*,void*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForOther": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForOther",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForOther",
"location": "imgui_impl_sdl3:39",
"ov_cimguiname": "ImGui_ImplSDL3_InitForOther",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLGPU": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLGPU",
"location": "imgui_impl_sdl3:38",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForSDLRenderer": [
{
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
},
{
"name": "renderer",
"type": "SDL_Renderer*"
}
],
"argsoriginal": "(SDL_Window* window,SDL_Renderer* renderer)",
"call_args": "(window,renderer)",
"cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForSDLRenderer",
"location": "imgui_impl_sdl3:37",
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
"ret": "bool",
"signature": "(SDL_Window*,SDL_Renderer*)",
"stname": ""
}
],
"ImGui_ImplSDL3_InitForVulkan": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"defaults": {},
"funcname": "ImGui_ImplSDL3_InitForVulkan",
"location": "imgui_impl_sdl3:34",
"ov_cimguiname": "ImGui_ImplSDL3_InitForVulkan",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL3_NewFrame": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_NewFrame",
"defaults": {},
"funcname": "ImGui_ImplSDL3_NewFrame",
"location": "imgui_impl_sdl3:41",
"ov_cimguiname": "ImGui_ImplSDL3_NewFrame",
"ret": "void",
"signature": "()",
"stname": ""
}
],
"ImGui_ImplSDL3_ProcessEvent": [
{
"args": "(const SDL_Event* event)",
"argsT": [
{
"name": "event",
"type": "const SDL_Event*"
}
],
"argsoriginal": "(const SDL_Event* event)",
"call_args": "(event)",
"cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"defaults": {},
"funcname": "ImGui_ImplSDL3_ProcessEvent",
"location": "imgui_impl_sdl3:42",
"ov_cimguiname": "ImGui_ImplSDL3_ProcessEvent",
"ret": "bool",
"signature": "(const SDL_Event*)",
"stname": ""
}
],
"ImGui_ImplSDL3_SetGamepadMode": [
{
"args": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count)",
"argsT": [
{
"name": "mode",
"type": "ImGui_ImplSDL3_GamepadMode"
},
{
"name": "manual_gamepads_array",
"type": "SDL_Gamepad**"
},
{
"name": "manual_gamepads_count",
"type": "int"
}
],
"argsoriginal": "(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array=nullptr,int manual_gamepads_count=-1)",
"call_args": "(mode,manual_gamepads_array,manual_gamepads_count)",
"cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"defaults": {
"manual_gamepads_array": "nullptr",
"manual_gamepads_count": "-1"
},
"funcname": "ImGui_ImplSDL3_SetGamepadMode",
"location": "imgui_impl_sdl3:47",
"ov_cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
"ret": "void",
"signature": "(ImGui_ImplSDL3_GamepadMode,SDL_Gamepad**,int)",
"stname": ""
}
],
"ImGui_ImplSDL3_Shutdown": [
{
"args": "()",
"argsT": [],
"argsoriginal": "()",
"call_args": "()",
"cimguiname": "ImGui_ImplSDL3_Shutdown",
"defaults": {},
"funcname": "ImGui_ImplSDL3_Shutdown",
"location": "imgui_impl_sdl3:40",
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
"ret": "void",
"signature": "()",
"stname": ""
}
] ]
} }

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ ImColor_ImColor 5
5 nil ImColor_ImColor_U32 (ImU32) 5 nil ImColor_ImColor_U32 (ImU32)
ImDrawList_AddText 2 ImDrawList_AddText 2
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*) 1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
2 void ImDrawList_AddText_FontPtr (const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*) 2 void ImDrawList_AddText_FontPtr (ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
ImGuiPtrOrIndex_ImGuiPtrOrIndex 2 ImGuiPtrOrIndex_ImGuiPtrOrIndex 2
1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*) 1 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr (void*)
2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int) 2 nil ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int (int)
@@ -108,17 +108,22 @@ igCombo 3
1 bool igCombo_Str_arr (const char*,int*,const char* const[],int,int) 1 bool igCombo_Str_arr (const char*,int*,const char* const[],int,int)
2 bool igCombo_Str (const char*,int*,const char*,int) 2 bool igCombo_Str (const char*,int*,const char*,int)
3 bool igCombo_FnStrPtr (const char*,int*,const char*(*)(void*,int),void*,int,int) 3 bool igCombo_FnStrPtr (const char*,int*,const char*(*)(void*,int),void*,int,int)
igGetBackgroundDrawList 2
1 ImDrawList* igGetBackgroundDrawList_Nil ()
2 ImDrawList* igGetBackgroundDrawList_ViewportPtr (ImGuiViewport*)
igGetColorU32 3 igGetColorU32 3
1 ImU32 igGetColorU32_Col (ImGuiCol,float) 1 ImU32 igGetColorU32_Col (ImGuiCol,float)
2 ImU32 igGetColorU32_Vec4 (const ImVec4) 2 ImU32 igGetColorU32_Vec4 (const ImVec4)
3 ImU32 igGetColorU32_U32 (ImU32,float) 3 ImU32 igGetColorU32_U32 (ImU32,float)
igGetForegroundDrawList 2 igGetForegroundDrawList 3
1 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*) 1 ImDrawList* igGetForegroundDrawList_Nil ()
2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*) 2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
igGetID 3 3 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
igGetID 4
1 ImGuiID igGetID_Str (const char*) 1 ImGuiID igGetID_Str (const char*)
2 ImGuiID igGetID_StrStr (const char*,const char*) 2 ImGuiID igGetID_StrStr (const char*,const char*)
3 ImGuiID igGetID_Ptr (const void*) 3 ImGuiID igGetID_Ptr (const void*)
4 ImGuiID igGetID_Int (int)
igGetIDWithSeed 2 igGetIDWithSeed 2
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID) 1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID) 2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
@@ -225,6 +230,9 @@ igRadioButton 2
igSelectable 2 igSelectable 2
1 bool igSelectable_Bool (const char*,bool,ImGuiSelectableFlags,const ImVec2) 1 bool igSelectable_Bool (const char*,bool,ImGuiSelectableFlags,const ImVec2)
2 bool igSelectable_BoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2) 2 bool igSelectable_BoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2)
igSetItemKeyOwner 2
1 void igSetItemKeyOwner_Nil (ImGuiKey)
2 void igSetItemKeyOwner_InputFlags (ImGuiKey,ImGuiInputFlags)
igSetScrollFromPosX 2 igSetScrollFromPosX 2
1 void igSetScrollFromPosX_Float (float,float) 1 void igSetScrollFromPosX_Float (float,float)
2 void igSetScrollFromPosX_WindowPtr (ImGuiWindow*,float,float) 2 void igSetScrollFromPosX_WindowPtr (ImGuiWindow*,float,float)
@@ -255,6 +263,9 @@ igSetWindowSize 3
igShortcut 2 igShortcut 2
1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags) 1 bool igShortcut_Nil (ImGuiKeyChord,ImGuiInputFlags)
2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID) 2 bool igShortcut_ID (ImGuiKeyChord,ImGuiInputFlags,ImGuiID)
igTabBarQueueFocus 2
1 void igTabBarQueueFocus_TabItemPtr (ImGuiTabBar*,ImGuiTabItem*)
2 void igTabBarQueueFocus_Str (ImGuiTabBar*,const char*)
igTabItemCalcSize 2 igTabItemCalcSize 2
1 ImVec2 igTabItemCalcSize_Str (const char*,bool) 1 ImVec2 igTabItemCalcSize_Str (const char*,bool)
2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*) 2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*)
@@ -286,4 +297,4 @@ igValue 4
2 void igValue_Int (const char*,int) 2 void igValue_Int (const char*,int)
3 void igValue_Uint (const char*,unsigned int) 3 void igValue_Uint (const char*,unsigned int)
4 void igValue_Float (const char*,float,const char*) 4 void igValue_Float (const char*,float,const char*)
200 overloaded 208 overloaded

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
{ {
"ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>", "ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
"ImBitArrayPtr": "ImU32*", "ImBitArrayPtr": "ImU32*",
"ImBitVector": "struct ImBitVector", "ImBitVector": "struct ImBitVector",
"ImColor": "struct ImColor", "ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);", "ImDrawCallback": "void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel", "ImDrawChannel": "struct ImDrawChannel",
"ImDrawCmd": "struct ImDrawCmd", "ImDrawCmd": "struct ImDrawCmd",
"ImDrawCmdHeader": "struct ImDrawCmdHeader", "ImDrawCmdHeader": "struct ImDrawCmdHeader",
@@ -27,6 +27,7 @@
"ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder", "ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder",
"ImGuiActivateFlags": "int", "ImGuiActivateFlags": "int",
"ImGuiBackendFlags": "int", "ImGuiBackendFlags": "int",
"ImGuiBoxSelectState": "struct ImGuiBoxSelectState",
"ImGuiButtonFlags": "int", "ImGuiButtonFlags": "int",
"ImGuiChildFlags": "int", "ImGuiChildFlags": "int",
"ImGuiCol": "int", "ImGuiCol": "int",
@@ -38,22 +39,18 @@
"ImGuiConfigFlags": "int", "ImGuiConfigFlags": "int",
"ImGuiContext": "struct ImGuiContext", "ImGuiContext": "struct ImGuiContext",
"ImGuiContextHook": "struct ImGuiContextHook", "ImGuiContextHook": "struct ImGuiContextHook",
"ImGuiContextHookCallback": "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);", "ImGuiContextHookCallback": "void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
"ImGuiDataAuthority": "int",
"ImGuiDataType": "int", "ImGuiDataType": "int",
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo", "ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage", "ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo", "ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry", "ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo", "ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
"ImGuiDebugLogFlags": "int", "ImGuiDebugLogFlags": "int",
"ImGuiDockContext": "struct ImGuiDockContext",
"ImGuiDockNode": "struct ImGuiDockNode",
"ImGuiDockNodeFlags": "int",
"ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings",
"ImGuiDockRequest": "struct ImGuiDockRequest",
"ImGuiDragDropFlags": "int", "ImGuiDragDropFlags": "int",
"ImGuiErrorLogCallback": "void(*)(void* user_data,const char* fmt,...);", "ImGuiErrorCallback": "void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
"ImGuiErrorRecoveryState": "struct ImGuiErrorRecoveryState",
"ImGuiFocusRequestFlags": "int", "ImGuiFocusRequestFlags": "int",
"ImGuiFocusScopeData": "struct ImGuiFocusScopeData", "ImGuiFocusScopeData": "struct ImGuiFocusScopeData",
"ImGuiFocusedFlags": "int", "ImGuiFocusedFlags": "int",
@@ -67,11 +64,10 @@
"ImGuiInputEventKey": "struct ImGuiInputEventKey", "ImGuiInputEventKey": "struct ImGuiInputEventKey",
"ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton", "ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton",
"ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos", "ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos",
"ImGuiInputEventMouseViewport": "struct ImGuiInputEventMouseViewport",
"ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel", "ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel",
"ImGuiInputEventText": "struct ImGuiInputEventText", "ImGuiInputEventText": "struct ImGuiInputEventText",
"ImGuiInputFlags": "int", "ImGuiInputFlags": "int",
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData* data);", "ImGuiInputTextCallback": "int (*)(ImGuiInputTextCallbackData* data);",
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData", "ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
"ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData", "ImGuiInputTextDeactivateData": "struct ImGuiInputTextDeactivateData",
"ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState", "ImGuiInputTextDeactivatedState": "struct ImGuiInputTextDeactivatedState",
@@ -91,16 +87,20 @@
"ImGuiListClipperData": "struct ImGuiListClipperData", "ImGuiListClipperData": "struct ImGuiListClipperData",
"ImGuiListClipperRange": "struct ImGuiListClipperRange", "ImGuiListClipperRange": "struct ImGuiListClipperRange",
"ImGuiLocEntry": "struct ImGuiLocEntry", "ImGuiLocEntry": "struct ImGuiLocEntry",
"ImGuiMemAllocFunc": "void*(*)(size_t sz,void* user_data);", "ImGuiLogFlags": "int",
"ImGuiMemFreeFunc": "void(*)(void* ptr,void* user_data);", "ImGuiMemAllocFunc": "void* (*)(size_t sz, void* user_data);",
"ImGuiMemFreeFunc": "void (*)(void* ptr, void* user_data);",
"ImGuiMenuColumns": "struct ImGuiMenuColumns", "ImGuiMenuColumns": "struct ImGuiMenuColumns",
"ImGuiMetricsConfig": "struct ImGuiMetricsConfig", "ImGuiMetricsConfig": "struct ImGuiMetricsConfig",
"ImGuiMouseButton": "int", "ImGuiMouseButton": "int",
"ImGuiMouseCursor": "int", "ImGuiMouseCursor": "int",
"ImGuiNavHighlightFlags": "int", "ImGuiMultiSelectFlags": "int",
"ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO",
"ImGuiMultiSelectState": "struct ImGuiMultiSelectState",
"ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData",
"ImGuiNavItemData": "struct ImGuiNavItemData", "ImGuiNavItemData": "struct ImGuiNavItemData",
"ImGuiNavMoveFlags": "int", "ImGuiNavMoveFlags": "int",
"ImGuiNavTreeNodeData": "struct ImGuiNavTreeNodeData", "ImGuiNavRenderCursorFlags": "int",
"ImGuiNextItemData": "struct ImGuiNextItemData", "ImGuiNextItemData": "struct ImGuiNextItemData",
"ImGuiNextItemDataFlags": "int", "ImGuiNextItemDataFlags": "int",
"ImGuiNextWindowData": "struct ImGuiNextWindowData", "ImGuiNextWindowData": "struct ImGuiNextWindowData",
@@ -112,21 +112,22 @@
"ImGuiPayload": "struct ImGuiPayload", "ImGuiPayload": "struct ImGuiPayload",
"ImGuiPlatformIO": "struct ImGuiPlatformIO", "ImGuiPlatformIO": "struct ImGuiPlatformIO",
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData", "ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
"ImGuiPlatformMonitor": "struct ImGuiPlatformMonitor",
"ImGuiPopupData": "struct ImGuiPopupData", "ImGuiPopupData": "struct ImGuiPopupData",
"ImGuiPopupFlags": "int", "ImGuiPopupFlags": "int",
"ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex", "ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex",
"ImGuiScrollFlags": "int", "ImGuiScrollFlags": "int",
"ImGuiSelectableFlags": "int", "ImGuiSelectableFlags": "int",
"ImGuiSelectionBasicStorage": "struct ImGuiSelectionBasicStorage",
"ImGuiSelectionExternalStorage": "struct ImGuiSelectionExternalStorage",
"ImGuiSelectionRequest": "struct ImGuiSelectionRequest",
"ImGuiSelectionUserData": "ImS64", "ImGuiSelectionUserData": "ImS64",
"ImGuiSeparatorFlags": "int", "ImGuiSeparatorFlags": "int",
"ImGuiSettingsHandler": "struct ImGuiSettingsHandler", "ImGuiSettingsHandler": "struct ImGuiSettingsHandler",
"ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem", "ImGuiShrinkWidthItem": "struct ImGuiShrinkWidthItem",
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);", "ImGuiSizeCallback": "void (*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData", "ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiSliderFlags": "int", "ImGuiSliderFlags": "int",
"ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo", "ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo",
"ImGuiStackSizes": "struct ImGuiStackSizes",
"ImGuiStorage": "struct ImGuiStorage", "ImGuiStorage": "struct ImGuiStorage",
"ImGuiStoragePair": "struct ImGuiStoragePair", "ImGuiStoragePair": "struct ImGuiStoragePair",
"ImGuiStyle": "struct ImGuiStyle", "ImGuiStyle": "struct ImGuiStyle",
@@ -160,6 +161,7 @@
"ImGuiTextRange": "struct ImGuiTextRange", "ImGuiTextRange": "struct ImGuiTextRange",
"ImGuiTooltipFlags": "int", "ImGuiTooltipFlags": "int",
"ImGuiTreeNodeFlags": "int", "ImGuiTreeNodeFlags": "int",
"ImGuiTreeNodeStackData": "struct ImGuiTreeNodeStackData",
"ImGuiTypingSelectFlags": "int", "ImGuiTypingSelectFlags": "int",
"ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest", "ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest",
"ImGuiTypingSelectState": "struct ImGuiTypingSelectState", "ImGuiTypingSelectState": "struct ImGuiTypingSelectState",
@@ -167,8 +169,6 @@
"ImGuiViewportFlags": "int", "ImGuiViewportFlags": "int",
"ImGuiViewportP": "struct ImGuiViewportP", "ImGuiViewportP": "struct ImGuiViewportP",
"ImGuiWindow": "struct ImGuiWindow", "ImGuiWindow": "struct ImGuiWindow",
"ImGuiWindowClass": "struct ImGuiWindowClass",
"ImGuiWindowDockStyle": "struct ImGuiWindowDockStyle",
"ImGuiWindowFlags": "int", "ImGuiWindowFlags": "int",
"ImGuiWindowRefreshFlags": "int", "ImGuiWindowRefreshFlags": "int",
"ImGuiWindowSettings": "struct ImGuiWindowSettings", "ImGuiWindowSettings": "struct ImGuiWindowSettings",
@@ -180,7 +180,8 @@
"ImS32": "signed int", "ImS32": "signed int",
"ImS64": "signed long long", "ImS64": "signed long long",
"ImS8": "signed char", "ImS8": "signed char",
"ImTextureID": "void*", "ImStbTexteditState": "ImStb::STB_TexteditState",
"ImTextureID": "ImU64",
"ImU16": "unsigned short", "ImU16": "unsigned short",
"ImU32": "unsigned int", "ImU32": "unsigned int",
"ImU64": "unsigned long long", "ImU64": "unsigned long long",
@@ -192,11 +193,5 @@
"ImWchar": "ImWchar16", "ImWchar": "ImWchar16",
"ImWchar16": "unsigned short", "ImWchar16": "unsigned short",
"ImWchar32": "unsigned int", "ImWchar32": "unsigned int",
"STB_TexteditState": "struct STB_TexteditState", "STB_TexteditState": "struct STB_TexteditState"
"StbTexteditRow": "struct StbTexteditRow",
"StbUndoRecord": "struct StbUndoRecord",
"StbUndoState": "struct StbUndoState",
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"
} }

View File

@@ -1,203 +1,197 @@
local defs = {} local t={
defs["ImBitArrayForNamedKeys"] = "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>" ImBitArrayForNamedKeys="ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
defs["ImBitArrayPtr"] = "ImU32*" ImBitArrayPtr="ImU32*",
defs["ImBitVector"] = "struct ImBitVector" ImBitVector="struct ImBitVector",
defs["ImColor"] = "struct ImColor" ImColor="struct ImColor",
defs["ImDrawCallback"] = "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);" ImDrawCallback="void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
defs["ImDrawChannel"] = "struct ImDrawChannel" ImDrawChannel="struct ImDrawChannel",
defs["ImDrawCmd"] = "struct ImDrawCmd" ImDrawCmd="struct ImDrawCmd",
defs["ImDrawCmdHeader"] = "struct ImDrawCmdHeader" ImDrawCmdHeader="struct ImDrawCmdHeader",
defs["ImDrawData"] = "struct ImDrawData" ImDrawData="struct ImDrawData",
defs["ImDrawDataBuilder"] = "struct ImDrawDataBuilder" ImDrawDataBuilder="struct ImDrawDataBuilder",
defs["ImDrawFlags"] = "int" ImDrawFlags="int",
defs["ImDrawIdx"] = "unsigned short" ImDrawIdx="unsigned short",
defs["ImDrawList"] = "struct ImDrawList" ImDrawList="struct ImDrawList",
defs["ImDrawListFlags"] = "int" ImDrawListFlags="int",
defs["ImDrawListSharedData"] = "struct ImDrawListSharedData" ImDrawListSharedData="struct ImDrawListSharedData",
defs["ImDrawListSplitter"] = "struct ImDrawListSplitter" ImDrawListSplitter="struct ImDrawListSplitter",
defs["ImDrawVert"] = "struct ImDrawVert" ImDrawVert="struct ImDrawVert",
defs["ImFileHandle"] = "FILE*" ImFileHandle="FILE*",
defs["ImFont"] = "struct ImFont" ImFont="struct ImFont",
defs["ImFontAtlas"] = "struct ImFontAtlas" ImFontAtlas="struct ImFontAtlas",
defs["ImFontAtlasCustomRect"] = "struct ImFontAtlasCustomRect" ImFontAtlasCustomRect="struct ImFontAtlasCustomRect",
defs["ImFontAtlasFlags"] = "int" ImFontAtlasFlags="int",
defs["ImFontBuilderIO"] = "struct ImFontBuilderIO" ImFontBuilderIO="struct ImFontBuilderIO",
defs["ImFontConfig"] = "struct ImFontConfig" ImFontConfig="struct ImFontConfig",
defs["ImFontGlyph"] = "struct ImFontGlyph" ImFontGlyph="struct ImFontGlyph",
defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder" ImFontGlyphRangesBuilder="struct ImFontGlyphRangesBuilder",
defs["ImGuiActivateFlags"] = "int" ImGuiActivateFlags="int",
defs["ImGuiBackendFlags"] = "int" ImGuiBackendFlags="int",
defs["ImGuiButtonFlags"] = "int" ImGuiBoxSelectState="struct ImGuiBoxSelectState",
defs["ImGuiChildFlags"] = "int" ImGuiButtonFlags="int",
defs["ImGuiCol"] = "int" ImGuiChildFlags="int",
defs["ImGuiColorEditFlags"] = "int" ImGuiCol="int",
defs["ImGuiColorMod"] = "struct ImGuiColorMod" ImGuiColorEditFlags="int",
defs["ImGuiComboFlags"] = "int" ImGuiColorMod="struct ImGuiColorMod",
defs["ImGuiComboPreviewData"] = "struct ImGuiComboPreviewData" ImGuiComboFlags="int",
defs["ImGuiCond"] = "int" ImGuiComboPreviewData="struct ImGuiComboPreviewData",
defs["ImGuiConfigFlags"] = "int" ImGuiCond="int",
defs["ImGuiContext"] = "struct ImGuiContext" ImGuiConfigFlags="int",
defs["ImGuiContextHook"] = "struct ImGuiContextHook" ImGuiContext="struct ImGuiContext",
defs["ImGuiContextHookCallback"] = "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);" ImGuiContextHook="struct ImGuiContextHook",
defs["ImGuiDataAuthority"] = "int" ImGuiContextHookCallback="void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
defs["ImGuiDataType"] = "int" ImGuiDataType="int",
defs["ImGuiDataTypeInfo"] = "struct ImGuiDataTypeInfo" ImGuiDataTypeInfo="struct ImGuiDataTypeInfo",
defs["ImGuiDataTypeStorage"] = "struct ImGuiDataTypeStorage" ImGuiDataTypeStorage="struct ImGuiDataTypeStorage",
defs["ImGuiDataVarInfo"] = "struct ImGuiDataVarInfo" ImGuiDataVarInfo="struct ImGuiDataVarInfo",
defs["ImGuiDebugAllocEntry"] = "struct ImGuiDebugAllocEntry" ImGuiDeactivatedItemData="struct ImGuiDeactivatedItemData",
defs["ImGuiDebugAllocInfo"] = "struct ImGuiDebugAllocInfo" ImGuiDebugAllocEntry="struct ImGuiDebugAllocEntry",
defs["ImGuiDebugLogFlags"] = "int" ImGuiDebugAllocInfo="struct ImGuiDebugAllocInfo",
defs["ImGuiDockContext"] = "struct ImGuiDockContext" ImGuiDebugLogFlags="int",
defs["ImGuiDockNode"] = "struct ImGuiDockNode" ImGuiDragDropFlags="int",
defs["ImGuiDockNodeFlags"] = "int" ImGuiErrorCallback="void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
defs["ImGuiDockNodeSettings"] = "struct ImGuiDockNodeSettings" ImGuiErrorRecoveryState="struct ImGuiErrorRecoveryState",
defs["ImGuiDockRequest"] = "struct ImGuiDockRequest" ImGuiFocusRequestFlags="int",
defs["ImGuiDragDropFlags"] = "int" ImGuiFocusScopeData="struct ImGuiFocusScopeData",
defs["ImGuiErrorLogCallback"] = "void(*)(void* user_data,const char* fmt,...);" ImGuiFocusedFlags="int",
defs["ImGuiFocusRequestFlags"] = "int" ImGuiGroupData="struct ImGuiGroupData",
defs["ImGuiFocusScopeData"] = "struct ImGuiFocusScopeData" ImGuiHoveredFlags="int",
defs["ImGuiFocusedFlags"] = "int" ImGuiID="unsigned int",
defs["ImGuiGroupData"] = "struct ImGuiGroupData" ImGuiIDStackTool="struct ImGuiIDStackTool",
defs["ImGuiHoveredFlags"] = "int" ImGuiIO="struct ImGuiIO",
defs["ImGuiID"] = "unsigned int" ImGuiInputEvent="struct ImGuiInputEvent",
defs["ImGuiIDStackTool"] = "struct ImGuiIDStackTool" ImGuiInputEventAppFocused="struct ImGuiInputEventAppFocused",
defs["ImGuiIO"] = "struct ImGuiIO" ImGuiInputEventKey="struct ImGuiInputEventKey",
defs["ImGuiInputEvent"] = "struct ImGuiInputEvent" ImGuiInputEventMouseButton="struct ImGuiInputEventMouseButton",
defs["ImGuiInputEventAppFocused"] = "struct ImGuiInputEventAppFocused" ImGuiInputEventMousePos="struct ImGuiInputEventMousePos",
defs["ImGuiInputEventKey"] = "struct ImGuiInputEventKey" ImGuiInputEventMouseWheel="struct ImGuiInputEventMouseWheel",
defs["ImGuiInputEventMouseButton"] = "struct ImGuiInputEventMouseButton" ImGuiInputEventText="struct ImGuiInputEventText",
defs["ImGuiInputEventMousePos"] = "struct ImGuiInputEventMousePos" ImGuiInputFlags="int",
defs["ImGuiInputEventMouseViewport"] = "struct ImGuiInputEventMouseViewport" ImGuiInputTextCallback="int (*)(ImGuiInputTextCallbackData* data);",
defs["ImGuiInputEventMouseWheel"] = "struct ImGuiInputEventMouseWheel" ImGuiInputTextCallbackData="struct ImGuiInputTextCallbackData",
defs["ImGuiInputEventText"] = "struct ImGuiInputEventText" ImGuiInputTextDeactivateData="struct ImGuiInputTextDeactivateData",
defs["ImGuiInputFlags"] = "int" ImGuiInputTextDeactivatedState="struct ImGuiInputTextDeactivatedState",
defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData* data);" ImGuiInputTextFlags="int",
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData" ImGuiInputTextState="struct ImGuiInputTextState",
defs["ImGuiInputTextDeactivateData"] = "struct ImGuiInputTextDeactivateData" ImGuiItemFlags="int",
defs["ImGuiInputTextDeactivatedState"] = "struct ImGuiInputTextDeactivatedState" ImGuiItemStatusFlags="int",
defs["ImGuiInputTextFlags"] = "int" ImGuiKeyChord="int",
defs["ImGuiInputTextState"] = "struct ImGuiInputTextState" ImGuiKeyData="struct ImGuiKeyData",
defs["ImGuiItemFlags"] = "int" ImGuiKeyOwnerData="struct ImGuiKeyOwnerData",
defs["ImGuiItemStatusFlags"] = "int" ImGuiKeyRoutingData="struct ImGuiKeyRoutingData",
defs["ImGuiKeyChord"] = "int" ImGuiKeyRoutingIndex="ImS16",
defs["ImGuiKeyData"] = "struct ImGuiKeyData" ImGuiKeyRoutingTable="struct ImGuiKeyRoutingTable",
defs["ImGuiKeyOwnerData"] = "struct ImGuiKeyOwnerData" ImGuiLastItemData="struct ImGuiLastItemData",
defs["ImGuiKeyRoutingData"] = "struct ImGuiKeyRoutingData" ImGuiLayoutType="int",
defs["ImGuiKeyRoutingIndex"] = "ImS16" ImGuiListClipper="struct ImGuiListClipper",
defs["ImGuiKeyRoutingTable"] = "struct ImGuiKeyRoutingTable" ImGuiListClipperData="struct ImGuiListClipperData",
defs["ImGuiLastItemData"] = "struct ImGuiLastItemData" ImGuiListClipperRange="struct ImGuiListClipperRange",
defs["ImGuiLayoutType"] = "int" ImGuiLocEntry="struct ImGuiLocEntry",
defs["ImGuiListClipper"] = "struct ImGuiListClipper" ImGuiLogFlags="int",
defs["ImGuiListClipperData"] = "struct ImGuiListClipperData" ImGuiMemAllocFunc="void* (*)(size_t sz, void* user_data);",
defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange" ImGuiMemFreeFunc="void (*)(void* ptr, void* user_data);",
defs["ImGuiLocEntry"] = "struct ImGuiLocEntry" ImGuiMenuColumns="struct ImGuiMenuColumns",
defs["ImGuiMemAllocFunc"] = "void*(*)(size_t sz,void* user_data);" ImGuiMetricsConfig="struct ImGuiMetricsConfig",
defs["ImGuiMemFreeFunc"] = "void(*)(void* ptr,void* user_data);" ImGuiMouseButton="int",
defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns" ImGuiMouseCursor="int",
defs["ImGuiMetricsConfig"] = "struct ImGuiMetricsConfig" ImGuiMultiSelectFlags="int",
defs["ImGuiMouseButton"] = "int" ImGuiMultiSelectIO="struct ImGuiMultiSelectIO",
defs["ImGuiMouseCursor"] = "int" ImGuiMultiSelectState="struct ImGuiMultiSelectState",
defs["ImGuiNavHighlightFlags"] = "int" ImGuiMultiSelectTempData="struct ImGuiMultiSelectTempData",
defs["ImGuiNavItemData"] = "struct ImGuiNavItemData" ImGuiNavItemData="struct ImGuiNavItemData",
defs["ImGuiNavMoveFlags"] = "int" ImGuiNavMoveFlags="int",
defs["ImGuiNavTreeNodeData"] = "struct ImGuiNavTreeNodeData" ImGuiNavRenderCursorFlags="int",
defs["ImGuiNextItemData"] = "struct ImGuiNextItemData" ImGuiNextItemData="struct ImGuiNextItemData",
defs["ImGuiNextItemDataFlags"] = "int" ImGuiNextItemDataFlags="int",
defs["ImGuiNextWindowData"] = "struct ImGuiNextWindowData" ImGuiNextWindowData="struct ImGuiNextWindowData",
defs["ImGuiNextWindowDataFlags"] = "int" ImGuiNextWindowDataFlags="int",
defs["ImGuiOldColumnData"] = "struct ImGuiOldColumnData" ImGuiOldColumnData="struct ImGuiOldColumnData",
defs["ImGuiOldColumnFlags"] = "int" ImGuiOldColumnFlags="int",
defs["ImGuiOldColumns"] = "struct ImGuiOldColumns" ImGuiOldColumns="struct ImGuiOldColumns",
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame" ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame",
defs["ImGuiPayload"] = "struct ImGuiPayload" ImGuiPayload="struct ImGuiPayload",
defs["ImGuiPlatformIO"] = "struct ImGuiPlatformIO" ImGuiPlatformIO="struct ImGuiPlatformIO",
defs["ImGuiPlatformImeData"] = "struct ImGuiPlatformImeData" ImGuiPlatformImeData="struct ImGuiPlatformImeData",
defs["ImGuiPlatformMonitor"] = "struct ImGuiPlatformMonitor" ImGuiPopupData="struct ImGuiPopupData",
defs["ImGuiPopupData"] = "struct ImGuiPopupData" ImGuiPopupFlags="int",
defs["ImGuiPopupFlags"] = "int" ImGuiPtrOrIndex="struct ImGuiPtrOrIndex",
defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex" ImGuiScrollFlags="int",
defs["ImGuiScrollFlags"] = "int" ImGuiSelectableFlags="int",
defs["ImGuiSelectableFlags"] = "int" ImGuiSelectionBasicStorage="struct ImGuiSelectionBasicStorage",
defs["ImGuiSelectionUserData"] = "ImS64" ImGuiSelectionExternalStorage="struct ImGuiSelectionExternalStorage",
defs["ImGuiSeparatorFlags"] = "int" ImGuiSelectionRequest="struct ImGuiSelectionRequest",
defs["ImGuiSettingsHandler"] = "struct ImGuiSettingsHandler" ImGuiSelectionUserData="ImS64",
defs["ImGuiShrinkWidthItem"] = "struct ImGuiShrinkWidthItem" ImGuiSeparatorFlags="int",
defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);" ImGuiSettingsHandler="struct ImGuiSettingsHandler",
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData" ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem",
defs["ImGuiSliderFlags"] = "int" ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);",
defs["ImGuiStackLevelInfo"] = "struct ImGuiStackLevelInfo" ImGuiSizeCallbackData="struct ImGuiSizeCallbackData",
defs["ImGuiStackSizes"] = "struct ImGuiStackSizes" ImGuiSliderFlags="int",
defs["ImGuiStorage"] = "struct ImGuiStorage" ImGuiStackLevelInfo="struct ImGuiStackLevelInfo",
defs["ImGuiStoragePair"] = "struct ImGuiStoragePair" ImGuiStorage="struct ImGuiStorage",
defs["ImGuiStyle"] = "struct ImGuiStyle" ImGuiStoragePair="struct ImGuiStoragePair",
defs["ImGuiStyleMod"] = "struct ImGuiStyleMod" ImGuiStyle="struct ImGuiStyle",
defs["ImGuiStyleVar"] = "int" ImGuiStyleMod="struct ImGuiStyleMod",
defs["ImGuiTabBar"] = "struct ImGuiTabBar" ImGuiStyleVar="int",
defs["ImGuiTabBarFlags"] = "int" ImGuiTabBar="struct ImGuiTabBar",
defs["ImGuiTabItem"] = "struct ImGuiTabItem" ImGuiTabBarFlags="int",
defs["ImGuiTabItemFlags"] = "int" ImGuiTabItem="struct ImGuiTabItem",
defs["ImGuiTable"] = "struct ImGuiTable" ImGuiTabItemFlags="int",
defs["ImGuiTableBgTarget"] = "int" ImGuiTable="struct ImGuiTable",
defs["ImGuiTableCellData"] = "struct ImGuiTableCellData" ImGuiTableBgTarget="int",
defs["ImGuiTableColumn"] = "struct ImGuiTableColumn" ImGuiTableCellData="struct ImGuiTableCellData",
defs["ImGuiTableColumnFlags"] = "int" ImGuiTableColumn="struct ImGuiTableColumn",
defs["ImGuiTableColumnIdx"] = "ImS16" ImGuiTableColumnFlags="int",
defs["ImGuiTableColumnSettings"] = "struct ImGuiTableColumnSettings" ImGuiTableColumnIdx="ImS16",
defs["ImGuiTableColumnSortSpecs"] = "struct ImGuiTableColumnSortSpecs" ImGuiTableColumnSettings="struct ImGuiTableColumnSettings",
defs["ImGuiTableColumnsSettings"] = "struct ImGuiTableColumnsSettings" ImGuiTableColumnSortSpecs="struct ImGuiTableColumnSortSpecs",
defs["ImGuiTableDrawChannelIdx"] = "ImU16" ImGuiTableColumnsSettings="struct ImGuiTableColumnsSettings",
defs["ImGuiTableFlags"] = "int" ImGuiTableDrawChannelIdx="ImU16",
defs["ImGuiTableHeaderData"] = "struct ImGuiTableHeaderData" ImGuiTableFlags="int",
defs["ImGuiTableInstanceData"] = "struct ImGuiTableInstanceData" ImGuiTableHeaderData="struct ImGuiTableHeaderData",
defs["ImGuiTableRowFlags"] = "int" ImGuiTableInstanceData="struct ImGuiTableInstanceData",
defs["ImGuiTableSettings"] = "struct ImGuiTableSettings" ImGuiTableRowFlags="int",
defs["ImGuiTableSortSpecs"] = "struct ImGuiTableSortSpecs" ImGuiTableSettings="struct ImGuiTableSettings",
defs["ImGuiTableTempData"] = "struct ImGuiTableTempData" ImGuiTableSortSpecs="struct ImGuiTableSortSpecs",
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer" ImGuiTableTempData="struct ImGuiTableTempData",
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter" ImGuiTextBuffer="struct ImGuiTextBuffer",
defs["ImGuiTextFlags"] = "int" ImGuiTextFilter="struct ImGuiTextFilter",
defs["ImGuiTextIndex"] = "struct ImGuiTextIndex" ImGuiTextFlags="int",
defs["ImGuiTextRange"] = "struct ImGuiTextRange" ImGuiTextIndex="struct ImGuiTextIndex",
defs["ImGuiTooltipFlags"] = "int" ImGuiTextRange="struct ImGuiTextRange",
defs["ImGuiTreeNodeFlags"] = "int" ImGuiTooltipFlags="int",
defs["ImGuiTypingSelectFlags"] = "int" ImGuiTreeNodeFlags="int",
defs["ImGuiTypingSelectRequest"] = "struct ImGuiTypingSelectRequest" ImGuiTreeNodeStackData="struct ImGuiTreeNodeStackData",
defs["ImGuiTypingSelectState"] = "struct ImGuiTypingSelectState" ImGuiTypingSelectFlags="int",
defs["ImGuiViewport"] = "struct ImGuiViewport" ImGuiTypingSelectRequest="struct ImGuiTypingSelectRequest",
defs["ImGuiViewportFlags"] = "int" ImGuiTypingSelectState="struct ImGuiTypingSelectState",
defs["ImGuiViewportP"] = "struct ImGuiViewportP" ImGuiViewport="struct ImGuiViewport",
defs["ImGuiWindow"] = "struct ImGuiWindow" ImGuiViewportFlags="int",
defs["ImGuiWindowClass"] = "struct ImGuiWindowClass" ImGuiViewportP="struct ImGuiViewportP",
defs["ImGuiWindowDockStyle"] = "struct ImGuiWindowDockStyle" ImGuiWindow="struct ImGuiWindow",
defs["ImGuiWindowFlags"] = "int" ImGuiWindowFlags="int",
defs["ImGuiWindowRefreshFlags"] = "int" ImGuiWindowRefreshFlags="int",
defs["ImGuiWindowSettings"] = "struct ImGuiWindowSettings" ImGuiWindowSettings="struct ImGuiWindowSettings",
defs["ImGuiWindowStackData"] = "struct ImGuiWindowStackData" ImGuiWindowStackData="struct ImGuiWindowStackData",
defs["ImGuiWindowTempData"] = "struct ImGuiWindowTempData" ImGuiWindowTempData="struct ImGuiWindowTempData",
defs["ImPoolIdx"] = "int" ImPoolIdx="int",
defs["ImRect"] = "struct ImRect" ImRect="struct ImRect",
defs["ImS16"] = "signed short" ImS16="signed short",
defs["ImS32"] = "signed int" ImS32="signed int",
defs["ImS64"] = "signed long long" ImS64="signed long long",
defs["ImS8"] = "signed char" ImS8="signed char",
defs["ImTextureID"] = "void*" ImStbTexteditState="ImStb::STB_TexteditState",
defs["ImU16"] = "unsigned short" ImTextureID="ImU64",
defs["ImU32"] = "unsigned int" ImU16="unsigned short",
defs["ImU64"] = "unsigned long long" ImU32="unsigned int",
defs["ImU8"] = "unsigned char" ImU64="unsigned long long",
defs["ImVec1"] = "struct ImVec1" ImU8="unsigned char",
defs["ImVec2"] = "struct ImVec2" ImVec1="struct ImVec1",
defs["ImVec2ih"] = "struct ImVec2ih" ImVec2="struct ImVec2",
defs["ImVec4"] = "struct ImVec4" ImVec2ih="struct ImVec2ih",
defs["ImWchar"] = "ImWchar16" ImVec4="struct ImVec4",
defs["ImWchar16"] = "unsigned short" ImWchar="ImWchar16",
defs["ImWchar32"] = "unsigned int" ImWchar16="unsigned short",
defs["STB_TexteditState"] = "struct STB_TexteditState" ImWchar32="unsigned int",
defs["StbTexteditRow"] = "struct StbTexteditRow" STB_TexteditState="struct STB_TexteditState"}
defs["StbUndoRecord"] = "struct StbUndoRecord" return t
defs["StbUndoState"] = "struct StbUndoState"
defs["const_iterator"] = "const value_type*"
defs["iterator"] = "value_type*"
defs["value_type"] = "T"
return defs

2
imgui

Submodule imgui updated: 3369cbd277...5c1d2d1e4c