Compare commits

...

13 Commits

Author SHA1 Message Date
sonoro1234
bb4d4848b7 Merge branch 'docking_inter' 1.92.9dock 2026-08-10 12:34:00 +02:00
sonoro1234
2d96a3ed57 cpp2ffi: add forced_nonPOD, skip_template, skip_convert_gen (cimnodes_editor work) 2026-08-09 18:05:55 +02:00
sonoro1234
e48d428b16 cpp2ffi: opaque returns assign to static obj 2026-08-08 10:47:26 +02:00
sonoro1234
eee47a982e cpp2ffi: add VARGS0 to variadic struct functions, dont return on void return 2026-08-04 20:48:40 +02:00
sonoro1234
22bc54470a correct manual code error 2026-08-04 09:01:22 +02:00
sonoro1234
fedb6d334a cpp2ffi: test all overloads for varargs 2026-08-03 22:06:54 +02:00
sonoro1234
9f545f9520 cpp2ffi: add VARGS0 to definitions 2026-08-03 20:57:30 +02:00
sonoro1234
d658cc8699 cpp2ffi: ConvertTo and From take field size 2026-08-03 20:08:01 +02:00
sonoro1234
af684b6cb1 cpp2ffi: manuals not in module go to definitions 2026-08-03 19:29:35 +02:00
sonoro1234
bf9b984ef7 pull imgui 1.92.9bdock 2026-08-01 11:17:00 +02:00
sonoro1234
944385687d add STB_TexteditState 2026-07-30 10:46:20 +02:00
sonoro1234
b705b2465a cpp2ffi: modify argsT skips _c, added size 2026-07-29 10:46:06 +02:00
sonoro1234
1531eea44a AddnonUDT: modify definitions argsT 2026-07-29 10:33:17 +02:00
16 changed files with 3024 additions and 1479 deletions

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.92.9 of Dear ImGui with internal api] * currently this wrapper is based on version [1.92.9b 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.
@@ -108,6 +108,7 @@ Notes:
* [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) * [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui)
* [cimgui-go](https://github.com/AllenDang/cimgui-go) * [cimgui-go](https://github.com/AllenDang/cimgui-go)
* [Hexa.NET.ImGui](https://github.com/HexaEngine/Hexa.NET.ImGui) * [Hexa.NET.ImGui](https://github.com/HexaEngine/Hexa.NET.ImGui)
* [EvergineTeam/ImGui](https://github.com/EvergineTeam/ImGui.Net)
* [dear-imgui-rs](https://github.com/Latias94/dear-imgui-rs) * [dear-imgui-rs](https://github.com/Latias94/dear-imgui-rs)
* [CImGui.jl](https://github.com/Gnimuc/CImGui.jl) * [CImGui.jl](https://github.com/Gnimuc/CImGui.jl)
* [ImGui.NET](https://github.com/mellinoe/ImGui.NET) * [ImGui.NET](https://github.com/mellinoe/ImGui.NET)

View File

@@ -1,5 +1,5 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.92.9" 19290 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.92.9b" 19291 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api //with imgui_freetype.h api
@@ -650,7 +650,7 @@ CIMGUI_API void igText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igText0(const char* fmt) CIMGUI_API void igText0(const char* fmt)
{ {
return igText(fmt); igText(fmt);
} }
#endif #endif
CIMGUI_API void igTextV(const char* fmt,va_list args) CIMGUI_API void igTextV(const char* fmt,va_list args)
@@ -667,7 +667,7 @@ CIMGUI_API void igTextColored(const ImVec4_c col,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextColored0(const ImVec4_c col,const char* fmt) CIMGUI_API void igTextColored0(const ImVec4_c col,const char* fmt)
{ {
return igTextColored(col,fmt); igTextColored(col,fmt);
} }
#endif #endif
CIMGUI_API void igTextColoredV(const ImVec4_c col,const char* fmt,va_list args) CIMGUI_API void igTextColoredV(const ImVec4_c col,const char* fmt,va_list args)
@@ -684,7 +684,7 @@ CIMGUI_API void igTextDisabled(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextDisabled0(const char* fmt) CIMGUI_API void igTextDisabled0(const char* fmt)
{ {
return igTextDisabled(fmt); igTextDisabled(fmt);
} }
#endif #endif
CIMGUI_API void igTextDisabledV(const char* fmt,va_list args) CIMGUI_API void igTextDisabledV(const char* fmt,va_list args)
@@ -701,7 +701,7 @@ CIMGUI_API void igTextWrapped(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextWrapped0(const char* fmt) CIMGUI_API void igTextWrapped0(const char* fmt)
{ {
return igTextWrapped(fmt); igTextWrapped(fmt);
} }
#endif #endif
CIMGUI_API void igTextWrappedV(const char* fmt,va_list args) CIMGUI_API void igTextWrappedV(const char* fmt,va_list args)
@@ -718,7 +718,7 @@ CIMGUI_API void igLabelText(const char* label,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igLabelText0(const char* label,const char* fmt) CIMGUI_API void igLabelText0(const char* label,const char* fmt)
{ {
return igLabelText(label,fmt); igLabelText(label,fmt);
} }
#endif #endif
CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args) CIMGUI_API void igLabelTextV(const char* label,const char* fmt,va_list args)
@@ -735,7 +735,7 @@ CIMGUI_API void igBulletText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igBulletText0(const char* fmt) CIMGUI_API void igBulletText0(const char* fmt)
{ {
return igBulletText(fmt); igBulletText(fmt);
} }
#endif #endif
CIMGUI_API void igBulletTextV(const char* fmt,va_list args) CIMGUI_API void igBulletTextV(const char* fmt,va_list args)
@@ -1248,7 +1248,7 @@ CIMGUI_API void igSetTooltip(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igSetTooltip0(const char* fmt) CIMGUI_API void igSetTooltip0(const char* fmt)
{ {
return igSetTooltip(fmt); igSetTooltip(fmt);
} }
#endif #endif
CIMGUI_API void igSetTooltipV(const char* fmt,va_list args) CIMGUI_API void igSetTooltipV(const char* fmt,va_list args)
@@ -1269,7 +1269,7 @@ CIMGUI_API void igSetItemTooltip(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igSetItemTooltip0(const char* fmt) CIMGUI_API void igSetItemTooltip0(const char* fmt)
{ {
return igSetItemTooltip(fmt); igSetItemTooltip(fmt);
} }
#endif #endif
CIMGUI_API void igSetItemTooltipV(const char* fmt,va_list args) CIMGUI_API void igSetItemTooltipV(const char* fmt,va_list args)
@@ -1482,7 +1482,7 @@ CIMGUI_API void igLogText(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igLogText0(const char* fmt) CIMGUI_API void igLogText0(const char* fmt)
{ {
return igLogText(fmt); igLogText(fmt);
} }
#endif #endif
CIMGUI_API void igLogTextV(const char* fmt,va_list args) CIMGUI_API void igLogTextV(const char* fmt,va_list args)
@@ -1847,7 +1847,7 @@ CIMGUI_API void igDebugLog(const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igDebugLog0(const char* fmt) CIMGUI_API void igDebugLog0(const char* fmt)
{ {
return igDebugLog(fmt); igDebugLog(fmt);
} }
#endif #endif
CIMGUI_API void igDebugLogV(const char* fmt,va_list args) CIMGUI_API void igDebugLogV(const char* fmt,va_list args)
@@ -3114,7 +3114,7 @@ CIMGUI_API void igImFormatStringToTempBuffer(const char** out_buf,const char** o
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igImFormatStringToTempBuffer0(const char** out_buf,const char** out_buf_end,const char* fmt) CIMGUI_API void igImFormatStringToTempBuffer0(const char** out_buf,const char** out_buf_end,const char* fmt)
{ {
return igImFormatStringToTempBuffer(out_buf,out_buf_end,fmt); igImFormatStringToTempBuffer(out_buf,out_buf_end,fmt);
} }
#endif #endif
CIMGUI_API void igImFormatStringToTempBufferV(const char** out_buf,const char** out_buf_end,const char* fmt,va_list args) CIMGUI_API void igImFormatStringToTempBufferV(const char** out_buf,const char** out_buf_end,const char* fmt,va_list args)
@@ -5603,7 +5603,7 @@ CIMGUI_API void igTextAligned(float align_x,float size_x,const char* fmt,...)
#ifdef CIMGUI_VARGS0 #ifdef CIMGUI_VARGS0
CIMGUI_API void igTextAligned0(float align_x,float size_x,const char* fmt) CIMGUI_API void igTextAligned0(float align_x,float size_x,const char* fmt)
{ {
return igTextAligned(align_x,size_x,fmt); igTextAligned(align_x,size_x,fmt);
} }
#endif #endif
CIMGUI_API void igTextAlignedV(float align_x,float size_x,const char* fmt,va_list args) CIMGUI_API void igTextAlignedV(float align_x,float size_x,const char* fmt,va_list args)
@@ -6283,6 +6283,12 @@ CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt,
self->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt)
{
ImGuiTextBuffer_appendf(self,fmt);
}
#endif
CIMGUI_API float igGET_FLT_MAX() CIMGUI_API float igGET_FLT_MAX()
{ {

View File

@@ -1,5 +1,5 @@
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version "1.92.9" 19290 from Dear ImGui https://github.com/ocornut/imgui //based on imgui.h file version "1.92.9b" 19291 from Dear ImGui https://github.com/ocornut/imgui
//with imgui_internal.h api //with imgui_internal.h api
//with imgui_freetype.h api //with imgui_freetype.h api
#ifndef CIMGUI_INCLUDED #ifndef CIMGUI_INCLUDED
@@ -46,6 +46,12 @@ typedef unsigned __int64 ImU64;
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImColor_c ImColor;
typedef struct ImRect_c ImRect;
typedef struct ImTextureRef_c ImTextureRef;
typedef struct ImVec2_c ImVec2;
typedef struct ImVec2i_c ImVec2i;
typedef struct ImVec4_c ImVec4;
typedef struct ImDrawChannel ImDrawChannel; typedef struct ImDrawChannel ImDrawChannel;
typedef struct ImDrawCmd ImDrawCmd; typedef struct ImDrawCmd ImDrawCmd;
@@ -3618,6 +3624,45 @@ struct ImFontAtlasBuilder
ImFontAtlasRectId PackIdMouseCursors; ImFontAtlasRectId PackIdMouseCursors;
ImFontAtlasRectId PackIdLinesTexData; ImFontAtlasRectId PackIdLinesTexData;
}; };
typedef struct StbUndoRecord StbUndoRecord;
struct StbUndoRecord
{
int where;
int insert_length;
int delete_length;
int char_storage;
};
typedef struct StbUndoState StbUndoState;
struct StbUndoState
{
StbUndoRecord undo_rec [99];
char undo_char[999];
short undo_point, redo_point;
int undo_char_point, redo_char_point;
};
struct STB_TexteditState
{
int cursor;
int select_start;
int select_end;
unsigned char insert_mode;
int row_count_per_page;
unsigned char cursor_at_end_of_line;
unsigned char initialized;
unsigned char has_preferred_x;
unsigned char single_line;
unsigned char padding1, padding2, padding3;
float preferred_x;
StbUndoState undostate;
};
typedef struct StbTexteditRow StbTexteditRow;
struct StbTexteditRow
{
float x0,x1;
float baseline_y_delta;
float ymin,ymax;
int num_chars;
};
#ifdef IMGUI_ENABLE_FREETYPE #ifdef IMGUI_ENABLE_FREETYPE
struct ImFontAtlas; struct ImFontAtlas;
struct ImFontLoader; struct ImFontLoader;
@@ -5317,6 +5362,9 @@ CIMGUI_API bool ImGuiFreeType_DebugEditFontLoaderFlags(ImGuiFreeTypeLoaderFlags*
/////////////////////////hand written functions /////////////////////////hand written functions
//no appendfV //no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt);
#endif
//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

@@ -17,6 +17,12 @@ CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt,
self->appendfv(fmt, args); self->appendfv(fmt, args);
va_end(args); va_end(args);
} }
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt)
{
ImGuiTextBuffer_appendf(self,fmt);
}
#endif
CIMGUI_API float igGET_FLT_MAX() CIMGUI_API float igGET_FLT_MAX()
{ {

View File

@@ -56,6 +56,9 @@ PLACE_STRUCTS_C
/////////////////////////hand written functions /////////////////////////hand written functions
//no appendfV //no appendfV
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
#ifdef CIMGUI_VARGS0
CIMGUI_API void ImGuiTextBuffer_appendf0(ImGuiTextBuffer *self, const char *fmt);
#endif
//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

@@ -852,7 +852,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
local noname_counter = 0 local noname_counter = 0
for i,ar in ipairs(argsTa) do for i,ar in ipairs(argsTa) do
local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>") local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>")
if template then if template and not self.skip_template[ttype] then
if self.typenames[stname] ~= template then --rule out template typename if self.typenames[stname] ~= template then --rule out 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
@@ -998,7 +998,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
end end
end end
--if ismanual then M.prtable(argsArr) end -- print(cimguiname)
-- if ismanual then M.prtable("===================================\n",argsArr) end
defT.templated = self.typenames[stname] and true defT.templated = self.typenames[stname] and true
defT.namespace = namespace defT.namespace = namespace
@@ -1212,6 +1213,11 @@ local function get_nonPOD(FP)
end end
end end
end end
if FP.forced_nonPOD then
for k,v in pairs(FP.forced_nonPOD) do
nonPOD[k] = true
end
end
FP.structs_and_enums_table.nonPOD = nonPOD FP.structs_and_enums_table.nonPOD = nonPOD
if next(nonPOD) then if next(nonPOD) then
M.prtable("nonPOD",nonPOD) M.prtable("nonPOD",nonPOD)
@@ -1289,12 +1295,27 @@ local function gen_field_conversion(tab, struct,structs, FP, to,prefix)
for i,field in ipairs(struct) do for i,field in ipairs(struct) do
local ftype = field.type:gsub("*","") local ftype = field.type:gsub("*","")
if FP.nP_used[field.type] then if FP.nP_used[field.type] then
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..field.name..".") if not field.size then
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..field.name..".")
else
local fname = field.name:match("(.+)%[[^%[%]]+%]")
for j = 0,field.size-1 do
gen_field_conversion(tab, structs[field.type],structs,FP, to,prefix..fname.."["..tostring(j).."].")
end
end
elseif FP.nP_used[ftype] then elseif FP.nP_used[ftype] then
assert(not field.size, "size not worked in Convert")
local ftypec = field.type:gsub(ftype,not to and (ftype.."_c") or ftype) local ftypec = field.type:gsub(ftype,not to and (ftype.."_c") or ftype)
insert(tab, " dest."..prefix..field.name.." = reinterpret_cast<"..ftypec..">(src."..prefix..field.name..");") insert(tab, " dest."..prefix..field.name.." = reinterpret_cast<"..ftypec..">(src."..prefix..field.name..");")
else else
insert(tab," dest."..prefix..field.name.." = src."..prefix..field.name..";") if not field.size then
insert(tab," dest."..prefix..field.name.." = src."..prefix..field.name..";")
else
local fname = field.name:match("(.+)%[%d+%]")
for j = 0,field.size-1 do
insert(tab," dest."..prefix..fname.."["..tostring(j).."] = src."..prefix..fname.."["..tostring(j).."];")
end
end
end end
end end
end end
@@ -1313,6 +1334,7 @@ local function genConversions(FP)
local convers = {} local convers = {}
--for k,v in pairs(FP.nP_used) do --for k,v in pairs(FP.nP_used) do
M.table_do_sorted(FP.nP_used, function(k,v) M.table_do_sorted(FP.nP_used, function(k,v)
if not FP.skip_convert_gen[k] then
--print("genConversions",k) --print("genConversions",k)
insert(convers,"static inline "..k.." ConvertToCPP_"..k.."(const "..k.."_c& src)") insert(convers,"static inline "..k.." ConvertToCPP_"..k.."(const "..k.."_c& src)")
insert(convers,"{") insert(convers,"{")
@@ -1328,6 +1350,7 @@ local function genConversions(FP)
gen_field_conversion(convers,struct,structs,FP, false) gen_field_conversion(convers,struct,structs,FP, false)
insert(convers," return dest;") insert(convers," return dest;")
insert(convers,"}") insert(convers,"}")
end --skip_convert_gen
end) end)
--print(table.concat(convers,"\n")) --print(table.concat(convers,"\n"))
return table.concat(convers,"\n") return table.concat(convers,"\n")
@@ -1531,11 +1554,13 @@ local function ADDnonUDT(FP)
end end
--args --args
local caar,asp local caar,asp
local argsTN = {}
if #def.argsT > 0 then if #def.argsT > 0 then
caar = "(" caar = "("
asp = "(" asp = "("
for i,v in ipairs(def.argsT) do for i,v in ipairs(def.argsT) do
local name = v.name local name = v.name
argsTN[i] = deepcopy(v)
if v.ret then --function pointer if v.ret then --function pointer
local f_ = v.has_cdecl and "(__cdecl*" or "(*" local f_ = v.has_cdecl and "(__cdecl*" or "(*"
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. "," asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
@@ -1545,23 +1570,29 @@ local function ADDnonUDT(FP)
local typ2 = typ:gsub("*","") local typ2 = typ:gsub("*","")
--nonPOD arg -> convert --nonPOD arg -> convert
if FP.nP_args[v.type] then if FP.nP_args[v.type] then
local typ3 = v.type:gsub(typ,typ.."_c")
caar = caar .. "ConvertToCPP_"..typ.."("..name..")," caar = caar .. "ConvertToCPP_"..typ.."("..name.."),"
asp = asp .. v.type:gsub(typ,typ.."_c").." "..v.name.."," asp = asp .. typ3 .." "..v.name..","
--argsTN[i].type = typ3
--nonPOD* arg -> reinterpret_cast --nonPOD* arg -> reinterpret_cast
elseif FP.nP_args[typ2] then elseif FP.nP_args[typ2] then
local typ3 = v.type:gsub(typ2,typ2.."_c") local typ3 = v.type:gsub(typ2,typ2.."_c")
caar = caar .. "reinterpret_cast<"..v.type..">("..name..")," caar = caar .. "reinterpret_cast<"..v.type..">("..name.."),"
asp = asp .. typ3 .." "..v.name.."," asp = asp .. typ3 .." "..v.name..","
--argsTN[i].type = typ3
elseif v.type:match("std::string_view") then elseif v.type:match("std::string_view") then
argsTN[i].type = "const char*"
caar = caar ..name.."," caar = caar ..name..","
asp = asp .. "const char* "..v.name.."," asp = asp .. "const char* "..v.name..","
elseif v.type:match("std::string") then elseif v.type:match("std::string") then
argsTN[i].type = "const char*"
caar = caar .. "std::string("..name..")," caar = caar .. "std::string("..name.."),"
asp = asp .. "const char* "..v.name.."," asp = asp .. "const char* "..v.name..","
elseif v.type:match"std::function" then elseif v.type:match"std::function" then
local ca2,asp2,skip2 = get_std_function(v,def) local ca2,asp2,skip2 = get_std_function(v,def)
caar = caar .. ca2.."," caar = caar .. ca2..","
asp = asp .. asp2.."," asp = asp .. asp2..","
argsTN[i].type = asp2
if skip2 then skip = true end if skip2 then skip = true end
--skip = true --skip = true
elseif v.type:match("std::") then elseif v.type:match("std::") then
@@ -1575,11 +1606,13 @@ local function ADDnonUDT(FP)
local callname = "*"..name local callname = "*"..name
caar = caar .. callname .. "," caar = caar .. callname .. ","
asp = asp .. newt.." "..name .. "," asp = asp .. newt.." "..name .. ","
argsTN[i].type = newt
else else
local newt = v.type --v.type:gsub(typ2.."%s*%*",typ2.."_opq") local newt = v.type --v.type:gsub(typ2.."%s*%*",typ2.."_opq")
local callname = v.reftoptr and "*"..name or name local callname = v.reftoptr and "*"..name or name
caar = caar .. callname .. "," caar = caar .. callname .. ","
asp = asp .. newt.." "..name .. "," asp = asp .. newt.." "..name .. ","
argsTN[i].type = newt
end end
else else
local siz = v.type:match("(%[%d*%])") or "" local siz = v.type:match("(%[%d*%])") or ""
@@ -1587,6 +1620,7 @@ local function ADDnonUDT(FP)
asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. "," asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. ","
local callname = v.reftoptr and "*"..name or name local callname = v.reftoptr and "*"..name or name
caar = caar .. callname .. "," caar = caar .. callname .. ","
argsTN[i].type = typ .. siz
end end
end end
end end
@@ -1604,6 +1638,7 @@ local function ADDnonUDT(FP)
def.call_args_old = def.call_args def.call_args_old = def.call_args
def.call_args = caar def.call_args = caar
def.args = asp def.args = asp
def.argsT = argsTN
end end
end end
end end
@@ -1799,8 +1834,58 @@ local function json_prepare(defs)
return defs return defs
end end
local function paramListWithoutDots(params)
i, j = string.find(params, "%.%.%.")
while i > 1 do
i = i - 1
c = string.sub(params,i,i)
if c == "," then
return string.sub(params, 1, i-1) .. params:sub(j+1)
elseif c == "(" then
return string.sub(params, 1, i) .. params:sub(j+1)
end
end
error("paramListWithoutDots failed")
return "()"
end
local function save_output(self) local function save_output(self)
--add VARGS0
local defsVARG = {}
for k,defs in pairs(self.defsT) do
for i, def in ipairs(defs) do
if def.isvararg then
--print("vararg",k,#def)
local def1 = deepcopy(def)
def1.isvararg = nil
def1.isVARG0 = true
def1.argsT[#def1.argsT] = nil
def1.args = paramListWithoutDots(def1.args)
def1.call_args_old = paramListWithoutDots(def1.call_args_old)
def1.call_args = paramListWithoutDots(def1.call_args)
def1.signature = paramListWithoutDots(def1.signature)
def1.cimguiname = def1.cimguiname.."0"
def1.ov_cimguiname = def1.ov_cimguiname.."0"
defsVARG[k.."0"] = defsVARG[k.."0"] or {}
table.insert(defsVARG[k.."0"], def1)
end
end
end
for k,def in pairs(defsVARG) do
self.defsT[k] = def
end
--add manual not present in module
for k,v in pairs(self.manuals) do
if not self.defsT[k] then
--print("add manual",k)
self.defsT[k] = {v}
else
--print("skipped manual",k)
end
end
----------------------
save_data("./output/overloads.txt",self.overloadstxt) save_data("./output/overloads.txt",self.overloadstxt)
save_data("./output/definitions.lua",M.serializeTableF(self.defsT)) save_data("./output/definitions.lua",M.serializeTableF(self.defsT))
save_data("./output/structs_and_enums.lua",M.serializeTableF(self.structs_and_enums_table)) save_data("./output/structs_and_enums.lua",M.serializeTableF(self.structs_and_enums_table))
@@ -1841,6 +1926,9 @@ function M.Parser()
par.UDTs = {} par.UDTs = {}
par.opaque_structs = {} par.opaque_structs = {}
par.forced_opaque = {} par.forced_opaque = {}
par.forced_nonPOD = {}
par.skip_template = {}
par.skip_convert_gen = {}
par.save_output = save_output par.save_output = save_output
par.genConversors = genConversions par.genConversors = genConversions
@@ -2306,6 +2394,236 @@ function M.Parser()
function par:printItems() function par:printItems()
printItems(items) printItems(items)
end end
-- for manuals not present in original module
-- copied from parseFuncion
local function split_args(self, funcname, stname, args, ret)
print("split args",funcname, stname, args, ret)
args = clean_spaces(args)
args = moveptr(args)
ret = clean_spaces(ret)
ret = moveptr(ret)
if stname==true then stname="" end
local constructor = ret:match(stname) and true or nil
local argsp = args:sub(2,-2)..","
local argsTa = {}
for tynam in argsp:gmatch("([^,]+),") do
if tynam:match("%)") and not tynam:match("%b()") then
error"split_args"
--patenthesis not closed are merged in previous (happens in some defaults)
argsTa[#argsTa] = argsTa[#argsTa]..","..tynam
while argsTa[#argsTa]:match("%)") and not argsTa[#argsTa]:match("%b()") do
argsTa[#argsTa-1] = argsTa[#argsTa-1] .. "," .. argsTa[#argsTa]
argsTa[#argsTa] = nil
end
else
argsTa[#argsTa+1] = tynam
end
end
----------------------------
--get typ, name and defaults
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
local argsTa2 = {}
local noname_counter = 0
for i,ar in ipairs(argsTa) do
local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>")
if template then
error"manuals should not have templates"
if self.typenames[stname] ~= template then --rule out template typename
self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te
end
end
argsTa[i] = te and code2 or ar
local template_orig = te and ar or nil
ar = argsTa[i]
--avoid var name without space type&name -> type& name
-- also do type &name -> type& name
--ar = ar:gsub("(%S)&(%S)","%1& %2")
ar = ar:gsub("(%S)%s*&(%S)","%1& %2")
local typ,name,retf,sigf,reftoptr,defa,ar1
local has_cdecl = ar:match"__cdecl"
if has_cdecl then ar = ar:gsub("__cdecl","") end
if ar:match(functype_re) then
local t1,namef,t2 = ar:match(functype_reex)
local f_ = has_cdecl and "(__cdecl*)" or "(*)"
typ, name = t1..f_..t2, namef
retf = t1
sigf = t2
else
reftoptr = nil
if ar:match("&") then
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
local typ11,name11 = ar1:match("(.+)%s([^%s]+)")
typ11 = typ11:gsub("const ","")
typ11 = typ11:gsub("&","")
if ar:match("const") and not self.opaque_structs[typ11] then
--if ar:match"Palette" then print("--w---w--w",ar,typ11,name11) end
--print("--w---w--w",ar,cname)
ar = ar:gsub("&","")
else
ar = ar:gsub("&","*")
reftoptr = true
end
end
if ar:match("%.%.%.") then
typ, name = "...", "..."
else
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
typ,name = ar1:match("(.+)%s([^%s]+)")
end
if not typ or not name or name:match"%*" or M.c_types[name] or self.typedefs_dict[name] then
print("argument without name",funcname,typ,name,ar)
ar1,defa = ar:match"([^=]+)=([^=]+)"
ar1 = ar1 or ar
typ = ar1
noname_counter = noname_counter + 1
name = "noname"..noname_counter
end
--float name[2] to float[2] name
local siz = name:match("(%[%d*%])")
if siz then
typ = typ..siz
name = name:gsub("(%[%d*%])","")
end
end
if typ:match"::" then
local const,typsimp,ptr = typ:match("(const )([^%*&]+)([%*&]*)")
print("= = = = 0 = =typ",typ,const,typsimp,ptr)
if self.opaque_structs_inv and self.opaque_structs_inv[typsimp] then
print("(((())))))=======self.opaque",const,typsimp,ptr);
typ = (const or "")..self.opaque_structs_inv[typsimp]..(ptr or "")
end
end
argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf,has_cdecl=has_cdecl,template_orig=template_orig}
if ar:match("&") and not ar:match("const") then
--only post error if not manual
local cname = self.getCname(stname,funcname, namespace) --cimguiname
if not self.manuals[cname] then
print("reference to no const arg in",funcname,argscsinpars,ar)
end
end
end
local argsArr = argsTa2
--recreate argscsinpars, call_args and signature from argsArr
local asp, caar,signat
if #argsArr > 0 then
asp = "("
caar = "("
signat = "("
for i,v in ipairs(argsArr) do
if v.ret then --function pointer
local f_ = v.has_cdecl and "(__cdecl*" or "(*"
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
caar = caar .. v.name .. ","
signat = signat .. v.ret .. f_..")" .. clean_names_from_signature(self,v.signature) .. ","
else
local siz = v.type:match("(%[%d*%])") or ""
local typ = v.type:gsub("(%[%d*%])","")
asp = asp .. typ .. (v.name~="..." and " "..v.name or "") .. siz .. ","
local callname = v.reftoptr and "*"..v.name or v.name
caar = caar .. callname .. ","
signat = signat .. typ .. siz .. ","
end
end
asp = asp:sub(1,-2)..")"
caar = caar:sub(1,-2)..")"
signat = signat:sub(1,-2)..")" .. (extraconst or "")
else
asp = "()"
caar = "()"
signat = "()" .. (extraconst or "")
end
--if ismanual then print("manual",asp, caar, signat) end
----------------------------
--[[
if not ret and stname then --must be constructors
if not (stname == funcname or "~"..stname==funcname) then --break end
print("false constructor:",line);
print("b2:",ret,stname,funcname,args)
return --are function defs
end
end
--]]
local cimguiname = funcname --self.getCname(stname,funcname, namespace)
-- table.insert(self.funcdefs,{stname=stname,funcname=funcname,args=args,signature=signat,cimguiname=cimguiname,call_args=caar,ret =ret})
local funcdef = {stname=stname,funcname=funcname,args=args,signature=signat,cimguiname=cimguiname,call_args=caar,ret =ret}
-- local defsT = self.defsT
-- defsT[cimguiname] = defsT[cimguiname] or {}
-- table.insert(defsT[cimguiname],{})
-- local defT = defsT[cimguiname][#defsT[cimguiname]]
local defT = {constructor = constructor}
defT.defaults = {}
for i,ar in ipairs(argsArr) do
if ar.default then
--clean defaults
--do only if not a c string
local is_cstring = ar.default:sub(1,1)=='"' and ar.default:sub(-1,-1) =='"'
if not is_cstring then
ar.default = ar.default:gsub("%(%(void%s*%*%)0%)","NULL")
if ar.default:match"%(ImU32%)" and not ar.default:match"sizeof" then
ar.default = tostring(CleanImU32(ar.default))
end
end
defT.defaults[ar.name] = ar.default
ar.default = nil
end
end
-- print(cimguiname)
-- if ismanual then M.prtable("===================================\n",argsArr) end
defT.templated = self.typenames[stname] and true
defT.namespace = namespace
defT.cimguiname = cimguiname
defT.ov_cimguiname = cimguiname
defT.stname = stname
defT.is_static_function = is_static_function
defT.funcname = funcname
defT.argsoriginal = args
defT.args= asp
defT.signature = signat --signature
defT.call_args = caar --call_args
defT.isvararg = signat:match("%.%.%.%)$")
defT.location = locat
--local comentario = (itt.prevcomments or "")..(itt.comments or "")..(comment or "")
--if comentario=="" then comentario=nil end
--defT.comment = comentario
defT.argsT = argsArr
if self.get_manuals(defT) then
defT.manual = true
end
if self.get_skipped(defT) then
defT.skipped = true
end
---[[
if ret then
--defT.stdret = line:match("^\n*%s*std::")
--if ret:match"string" then print("parsefunction",defT.cimguiname, ret, line) end
defT.ret = clean_spaces(ret:gsub("&","*"))
--name_conversion
local rr = defT.ret:gsub("*","")
rr = rr:gsub("const ","")
if self.name_conversion and self.name_conversion[rr] then
defT.ret = defT.ret:gsub(rr,self.name_conversion[rr])
end
defT.retref = ret:match("&")
-- if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then
-- defT.ret = defT.ret.."_Simple"
-- end
end
--]]
--defsT[cimguiname][signat] = defT
--M.prtable(defT)
defT.call_args_old = defT.call_args
return defT --, funcdef
end
function par:set_manuals(manuals, modulen, erase) function par:set_manuals(manuals, modulen, erase)
erase = erase or {"CIMGUI_API"} erase = erase or {"CIMGUI_API"}
local moddata = read_data("./"..modulen.."_template.h") local moddata = read_data("./"..modulen.."_template.h")
@@ -2315,10 +2633,12 @@ function M.Parser()
ret = ret:gsub(ww,"") ret = ret:gsub(ww,"")
end end
local args = moddata:match(k.."%s*(%b())") local args = moddata:match(k.."%s*(%b())")
manuals[k] = {args = args, ret = ret} manuals[k] = split_args(self,k,v,args,ret)
--manuals[k] = {args = args, ret = ret, argsT = split_args(self,args), manual = true, stname = ""}
--print(k,args,ret) --print(k,args,ret)
end end
self.manuals = manuals self.manuals = manuals
M.prtable("manuals",manuals)
end end
par.parseFunction = parseFunction par.parseFunction = parseFunction
local uniques = {} local uniques = {}
@@ -2423,9 +2743,11 @@ function M.Parser()
--print("not doheader",ttype,template,te, self.typenames[ttype]) --print("not doheader",ttype,template,te, self.typenames[ttype])
--M.prtable(self.typenames) --M.prtable(self.typenames)
if self.typenames[ttype] and self.typenames[ttype] ~= template and self.typenames[ttype].."*" ~= template then --rule out T (template typename) if self.typenames[ttype] and self.typenames[ttype] ~= template and self.typenames[ttype].."*" ~= template then --rule out T (template typename)
if not self.skip_template[ttype] then
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 end
if doheader and self.templates[ttype] then if doheader and self.templates[ttype] then
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template]) local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
@@ -2434,7 +2756,7 @@ function M.Parser()
end end
--clean using --clean using
if it.re_name == "vardef_re" and it.item:match("using%s+([^=%s]+)%s*=%s*([^;]+);") then if it.re_name == "vardef_re" and it.item:match("using%s+([^=%s]+)%s*=%s*([^;]+);") then
print("===using",it.item) print("===using clean",it.item)
local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);") local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);")
print(typedef,assign) print(typedef,assign)
assign = assign:gsub("%w+::","") assign = assign:gsub("%w+::","")
@@ -2657,7 +2979,7 @@ function M.Parser()
end end
if it2:match("using") then if it2:match("using") then
local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);") local typedef, assign = it2:match("using%s+([^=%s]+)%s*=%s*([^;]+);")
print("====using",string.format("%q %q",typedef, assign)) print("====using as typedef",string.format("%q %q",typedef, assign))
if assign and assign:match"%(%s*%*%s*%)" then --function typedef if assign and assign:match"%(%s*%*%s*%)" then --function typedef
it2 = "\ntypedef "..assign:gsub("%(%s*%*%s*%)","(*"..typedef..")")..";" it2 = "\ntypedef "..assign:gsub("%(%s*%*%s*%)","(*"..typedef..")")..";"
end end
@@ -2716,9 +3038,19 @@ function M.Parser()
self:header_text_insert(outtab, tst, it) 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 if not self.forced_nonPOD[structname] then
if not (it.parent and (it.parent.re_name == "struct_re" or it.parent.re_name == "class_re")) then --dont insert child structs as they are inserted before parent struct
--table.insert(outtab,predec .. cleanst) if not (it.parent and (it.parent.re_name == "struct_re" or it.parent.re_name == "class_re")) then
--table.insert(outtab,predec .. cleanst)
self:header_text_insert(outtab, predec .. cleanst, it)
end
else
local tab = self.forced_nonPOD[structname]
local cleanst = "\nstruct "..structname.."\n{\n"
for i,v in ipairs(tab) do
cleanst = cleanst.." "..v.type.." "..v.name..";\n"
end
cleanst = cleanst .. "};"
self:header_text_insert(outtab, predec .. cleanst, it) self:header_text_insert(outtab, predec .. cleanst, it)
end end
end end
@@ -2769,6 +3101,13 @@ function M.Parser()
--table.insert(outtab,"\n/////outtab end\n") --table.insert(outtab,"\n/////outtab end\n")
local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"") local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"")
outtabprest = M.header_subs_nonPOD(self,outtabprest) outtabprest = M.header_subs_nonPOD(self,outtabprest)
local txt2 = ""
M.table_do_sorted(self.nP_used, function(k,v)
if v~="inherited" then
txt2 = txt2.."typedef struct "..k.."_c "..k..";\n"
end
end)
outtabprest = txt2..outtabprest
outtabst = M.header_subs_nonPOD(self,outtabst) outtabst = M.header_subs_nonPOD(self,outtabst)
self.structs_and_enums = {outtabprest, outtabst or ""} self.structs_and_enums = {outtabprest, outtabst or ""}
@@ -2959,14 +3298,18 @@ function M.Parser()
--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
if structname and not self.typenames[structname] then if structname and not self.typenames[structname] then
outtab.structs[structname] = {} if self.forced_nonPOD[structname] then
outtab.struct_comments[structname] = {sameline=it.comments,above=it.prevcomments} outtab.structs[structname] = self.forced_nonPOD[structname]
outtab.struct_comments[structname] = next(outtab.struct_comments[structname]) and outtab.struct_comments[structname] or nil else
outtab.locations[structname] = it.locat outtab.structs[structname] = {}
if strtab then outtab.struct_comments[structname] = {sameline=it.comments,above=it.prevcomments}
for j=3,#strtab-1 do outtab.struct_comments[structname] = next(outtab.struct_comments[structname]) and outtab.struct_comments[structname] or nil
self:parse_struct_line(strtab[j],outtab.structs[structname],comstab[j]) outtab.locations[structname] = it.locat
end if strtab then
for j=3,#strtab-1 do
self:parse_struct_line(strtab[j],outtab.structs[structname],comstab[j])
end
end
end end
-- if structname == "Change" then -- if structname == "Change" then
-- print(it.item) -- print(it.item)
@@ -3305,7 +3648,7 @@ function M.Parser()
M.prtable("typenames",self.typenames) M.prtable("typenames",self.typenames)
local outpre,outpost = self.structs_and_enums[1], self.structs_and_enums[2] local outpre,outpost = self.structs_and_enums[1], self.structs_and_enums[2]
local tdt = self:generate_templates() local tdt = self:generate_templates()
M.prtable("generate_templates",tdt) --M.prtable("generate_templates",tdt)
local cstructsstr = outpre..tdt..outpost local cstructsstr = outpre..tdt..outpost
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr) hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
@@ -3594,21 +3937,7 @@ local function location(file,locpathT,defines,COMPILER,keepemptylines)
end end
M.location = location M.location = location
---------------------- C writing functions ---------------------- C writing functions
local function paramListWithoutDots(params)
i, j = string.find(params, "%.%.%.")
while i > 1 do
i = i - 1
c = string.sub(params,i,i)
if c == "," then
return string.sub(params, 1, i-1) .. params:sub(j+1)
elseif c == "(" then
return string.sub(params, 1, i) .. params:sub(j+1)
end
end
error("paramListWithoutDots failed")
return "()"
end
local function ImGui_f_implementation(def) local function ImGui_f_implementation(def)
local outtab = {} local outtab = {}
local ptret = def.retref and "&" or "" local ptret = def.retref and "&" or ""
@@ -3634,7 +3963,9 @@ local function ImGui_f_implementation(def)
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n") table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n") table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n")
table.insert(outtab, "{\n") table.insert(outtab, "{\n")
table.insert(outtab, " return "..def.ov_cimguiname..paramListWithoutDots(def.call_args_old)..";\n") local returnword = "return "
if def.ret=="void" then returnword = "" end
table.insert(outtab, " "..returnword..def.ov_cimguiname..paramListWithoutDots(def.call_args_old)..";\n")
table.insert(outtab, "}\n") table.insert(outtab, "}\n")
table.insert(outtab, "#endif\n") table.insert(outtab, "#endif\n")
elseif def.nonUDT then elseif def.nonUDT then
@@ -3649,6 +3980,7 @@ local function ImGui_f_implementation(def)
insert(outtab," return str.c_str();\n") insert(outtab," return str.c_str();\n")
elseif def.nonUDT == "opaque" then elseif def.nonUDT == "opaque" then
insert(outtab," static auto opq = "..ptret..namespace..def.funcname..def.call_args..";\n") insert(outtab," static auto opq = "..ptret..namespace..def.funcname..def.call_args..";\n")
insert(outtab," opq = "..ptret..namespace..def.funcname..def.call_args..";\n")
insert(outtab," return &opq;\n") insert(outtab," return &opq;\n")
end end
table.insert(outtab,"}\n") table.insert(outtab,"}\n")
@@ -3681,6 +4013,16 @@ local function struct_f_implementation(def)
if def.ret~="void" then if def.ret~="void" then
table.insert(outtab," return ret;\n") table.insert(outtab," return ret;\n")
end end
table.insert(outtab,"}\n")
-- For variadic functions we add a function implementation with zero argumets, for compatibility with languages such as C#.
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args).."\n")
table.insert(outtab, "{\n")
local returnword = "return "
if def.ret=="void" then returnword = "" end
table.insert(outtab, " "..returnword..def.ov_cimguiname.."(self,"..paramListWithoutDots(def.call_args_old):sub(2,-1)..";\n")
table.insert(outtab, "}\n")
table.insert(outtab, "#endif\n")
elseif def.nonUDT then elseif def.nonUDT then
if def.nonUDT == 1 then if def.nonUDT == 1 then
--table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n") --table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
@@ -3694,12 +4036,15 @@ local function struct_f_implementation(def)
insert(outtab," return str.c_str();\n") insert(outtab," return str.c_str();\n")
elseif def.nonUDT == "opaque" then elseif def.nonUDT == "opaque" then
insert(outtab," static auto opq = "..ptret.."self->"..def.funcname..def.call_args..";\n") insert(outtab," static auto opq = "..ptret.."self->"..def.funcname..def.call_args..";\n")
insert(outtab," opq = "..ptret.."self->"..def.funcname..def.call_args..";\n")
insert(outtab," return &opq;\n") insert(outtab," return &opq;\n")
end end
table.insert(outtab,"}\n")
else --standard struct else --standard struct
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n") table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
table.insert(outtab,"}\n")
end end
table.insert(outtab,"}\n")
return table.concat(outtab, "") return table.concat(outtab, "")
end end
local function func_implementation(FP) local function func_implementation(FP)
@@ -3812,7 +4157,6 @@ local function func_header_generate_funcs(FP)
local outtab = {} local outtab = {}
for _,t in ipairs(FP.funcdefs) do for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then if t.cimguiname then
local cimf = FP.defsT[t.cimguiname] local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature] local def = cimf[t.signature]
@@ -3824,7 +4168,6 @@ local function func_header_generate_funcs(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) --and not (FP.opaque_structs[def.stname] and not def.is_static_function) if not custom and not manual and not def.templated and not FP.get_skipped(def) --and not (FP.opaque_structs[def.stname] and not def.is_static_function)
then then
local addcoment = "" --def.comment or "" local addcoment = "" --def.comment or ""
local empty = def.args:match("^%(%)") --no args local empty = def.args:match("^%(%)") --no args
if def.constructor then if def.constructor then
@@ -3848,6 +4191,12 @@ local function func_header_generate_funcs(FP)
end end
else else
table.insert(outtab,"CIMGUI_API "..ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n") table.insert(outtab,"CIMGUI_API "..ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
if def.isvararg then
-- For variadic functions we add a function implementation with zero argumets, for compatibility with languages such as C#.
table.insert(outtab, "#ifdef CIMGUI_VARGS0\n")
table.insert(outtab, "CIMGUI_API".." "..ret.." "..def.ov_cimguiname.."0"..paramListWithoutDots(def.args)..";\n")
table.insert(outtab, "#endif\n")
end
end end
end end
end end

View File

@@ -407,19 +407,20 @@ end
--generation --generation
print("------------------generation with "..COMPILER.."------------------------") print("------------------generation with "..COMPILER.."------------------------")
local parser1 local parser1
local headers = [[#include "]]..IMGUI_PATH..[[/imgui.h" local headers = [[#include "]]..IMGUI_PATH..[[/imgui.h"
]] ]]
local headersT = {[[imgui]]} local headersT = {[[imgui]]}
if INTERNAL_GENERATION then if INTERNAL_GENERATION then
headers = headers .. [[#include "]]..IMGUI_PATH..[[/imgui_internal.h" headers = headers .. [[#include "]]..IMGUI_PATH..[[/imgui_internal.h"
]] ]]
headers = headers .. [[#include "]]..IMGUI_PATH..[[/imstb_textedit.h"
]]
headersT[#headersT + 1] = [[imgui_internal]] headersT[#headersT + 1] = [[imgui_internal]]
headersT[#headersT + 1] = [[imstb_textedit]] headersT[#headersT + 1] = [[imstb_textedit]]
end end
if FREETYPE_GENERATION then if FREETYPE_GENERATION then
headers = headers .. [[ headers = headers .. [[#include "]]..IMGUI_PATH..[[/misc/freetype/imgui_freetype.h"
#include "]]..IMGUI_PATH..[[/misc/freetype/imgui_freetype.h" ]]
]]
headersT[#headersT + 1] = [[imgui_freetype]] headersT[#headersT + 1] = [[imgui_freetype]]
end end
save_data("headers.h",headers) save_data("headers.h",headers)

View File

@@ -20,11 +20,12 @@
"IMGUI_TABLE_MAX_COLUMNS": "512", "IMGUI_TABLE_MAX_COLUMNS": "512",
"IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)": "((void)0)", "IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)": "((void)0)",
"IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)": "((void)g)", "IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)": "((void)g)",
"IMGUI_VERSION": "\"1.92.9\"", "IMGUI_VERSION": "\"1.92.9b\"",
"IMGUI_VERSION_NUM": "19290", "IMGUI_VERSION_NUM": "19291",
"IMGUI_WINDOW_HARD_MIN_SIZE": "4.0f", "IMGUI_WINDOW_HARD_MIN_SIZE": "4.0f",
"IMSTB_TEXTEDIT_CHARTYPE": "char", "IMSTB_TEXTEDIT_CHARTYPE": "char",
"IMSTB_TEXTEDIT_GETWIDTH_NEWLINE": "(-1.0f)", "IMSTB_TEXTEDIT_GETWIDTH_NEWLINE": "(-1.0f)",
"IMSTB_TEXTEDIT_POSITIONTYPE": "int",
"IMSTB_TEXTEDIT_STRING": "ImGuiInputTextState", "IMSTB_TEXTEDIT_STRING": "ImGuiInputTextState",
"IMSTB_TEXTEDIT_UNDOCHARCOUNT": "999", "IMSTB_TEXTEDIT_UNDOCHARCOUNT": "999",
"IMSTB_TEXTEDIT_UNDOSTATECOUNT": "99", "IMSTB_TEXTEDIT_UNDOSTATECOUNT": "99",

View File

@@ -20,11 +20,12 @@ local t={
IMGUI_TABLE_MAX_COLUMNS="512", IMGUI_TABLE_MAX_COLUMNS="512",
["IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)"]="((void)0)", ["IMGUI_TEST_ENGINE_ITEM_ADD(_ID,_BB,_ITEM_DATA)"]="((void)0)",
["IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)"]="((void)g)", ["IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)"]="((void)g)",
IMGUI_VERSION="\"1.92.9\"", IMGUI_VERSION="\"1.92.9b\"",
IMGUI_VERSION_NUM="19290", IMGUI_VERSION_NUM="19291",
IMGUI_WINDOW_HARD_MIN_SIZE="4.0f", IMGUI_WINDOW_HARD_MIN_SIZE="4.0f",
IMSTB_TEXTEDIT_CHARTYPE="char", IMSTB_TEXTEDIT_CHARTYPE="char",
IMSTB_TEXTEDIT_GETWIDTH_NEWLINE="(-1.0f)", IMSTB_TEXTEDIT_GETWIDTH_NEWLINE="(-1.0f)",
IMSTB_TEXTEDIT_POSITIONTYPE="int",
IMSTB_TEXTEDIT_STRING="ImGuiInputTextState", IMSTB_TEXTEDIT_STRING="ImGuiInputTextState",
IMSTB_TEXTEDIT_UNDOCHARCOUNT="999", IMSTB_TEXTEDIT_UNDOCHARCOUNT="999",
IMSTB_TEXTEDIT_UNDOSTATECOUNT="99", IMSTB_TEXTEDIT_UNDOSTATECOUNT="99",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -5149,22 +5149,22 @@
"ImDrawVert": "imgui:3233", "ImDrawVert": "imgui:3233",
"ImFont": "imgui:3930", "ImFont": "imgui:3930",
"ImFontAtlas": "imgui:3728", "ImFontAtlas": "imgui:3728",
"ImFontAtlasBuilder": "imgui_internal:3987", "ImFontAtlasBuilder": "imgui_internal:3988",
"ImFontAtlasFlags_": "imgui:3701", "ImFontAtlasFlags_": "imgui:3701",
"ImFontAtlasPostProcessData": "imgui_internal:3960", "ImFontAtlasPostProcessData": "imgui_internal:3961",
"ImFontAtlasRect": "imgui:3691", "ImFontAtlasRect": "imgui:3691",
"ImFontAtlasRectEntry": "imgui_internal:3952", "ImFontAtlasRectEntry": "imgui_internal:3953",
"ImFontBaked": "imgui:3881", "ImFontBaked": "imgui:3881",
"ImFontConfig": "imgui:3610", "ImFontConfig": "imgui:3610",
"ImFontFlags_": "imgui:3916", "ImFontFlags_": "imgui:3916",
"ImFontGlyph": "imgui:3653", "ImFontGlyph": "imgui:3653",
"ImFontGlyphRangesBuilder": "imgui:3669", "ImFontGlyphRangesBuilder": "imgui:3669",
"ImFontLoader": "imgui_internal:3901", "ImFontLoader": "imgui_internal:3902",
"ImFontStackData": "imgui_internal:925", "ImFontStackData": "imgui_internal:925",
"ImGuiActivateFlags_": "imgui_internal:1718", "ImGuiActivateFlags_": "imgui_internal:1719",
"ImGuiAxis": "imgui_internal:1174", "ImGuiAxis": "imgui_internal:1174",
"ImGuiBackendFlags_": "imgui:1745", "ImGuiBackendFlags_": "imgui:1745",
"ImGuiBoxSelectState": "imgui_internal:1910", "ImGuiBoxSelectState": "imgui_internal:1911",
"ImGuiButtonFlagsPrivate_": "imgui_internal:1062", "ImGuiButtonFlagsPrivate_": "imgui_internal:1062",
"ImGuiButtonFlags_": "imgui:1888", "ImGuiButtonFlags_": "imgui:1888",
"ImGuiChildFlags_": "imgui:1220", "ImGuiChildFlags_": "imgui:1220",
@@ -5176,41 +5176,41 @@
"ImGuiComboPreviewData": "imgui_internal:1188", "ImGuiComboPreviewData": "imgui_internal:1188",
"ImGuiCond_": "imgui:2021", "ImGuiCond_": "imgui:2021",
"ImGuiConfigFlags_": "imgui:1726", "ImGuiConfigFlags_": "imgui:1726",
"ImGuiContext": "imgui_internal:2249", "ImGuiContext": "imgui_internal:2250",
"ImGuiContextHook": "imgui_internal:2232", "ImGuiContextHook": "imgui_internal:2233",
"ImGuiContextHookType": "imgui_internal:2230", "ImGuiContextHookType": "imgui_internal:2231",
"ImGuiDataTypeInfo": "imgui_internal:971", "ImGuiDataTypeInfo": "imgui_internal:971",
"ImGuiDataTypePrivate_": "imgui_internal:980", "ImGuiDataTypePrivate_": "imgui_internal:980",
"ImGuiDataTypeStorage": "imgui_internal:965", "ImGuiDataTypeStorage": "imgui_internal:965",
"ImGuiDataType_": "imgui:1531", "ImGuiDataType_": "imgui:1531",
"ImGuiDeactivatedItemData": "imgui_internal:1486", "ImGuiDeactivatedItemData": "imgui_internal:1487",
"ImGuiDebugAllocEntry": "imgui_internal:2153", "ImGuiDebugAllocEntry": "imgui_internal:2154",
"ImGuiDebugAllocInfo": "imgui_internal:2160", "ImGuiDebugAllocInfo": "imgui_internal:2161",
"ImGuiDebugItemPathQuery": "imgui_internal:2201", "ImGuiDebugItemPathQuery": "imgui_internal:2202",
"ImGuiDebugLogFlags_": "imgui_internal:2129", "ImGuiDebugLogFlags_": "imgui_internal:2130",
"ImGuiDir": "imgui:1549", "ImGuiDir": "imgui:1549",
"ImGuiDragDropFlags_": "imgui:1502", "ImGuiDragDropFlags_": "imgui:1502",
"ImGuiErrorRecoveryState": "imgui_internal:1441", "ImGuiErrorRecoveryState": "imgui_internal:1442",
"ImGuiFocusRequestFlags_": "imgui_internal:1134", "ImGuiFocusRequestFlags_": "imgui_internal:1134",
"ImGuiFocusScopeData": "imgui_internal:1807", "ImGuiFocusScopeData": "imgui_internal:1808",
"ImGuiFocusedFlags_": "imgui:1450", "ImGuiFocusedFlags_": "imgui:1450",
"ImGuiFreeTypeLoaderFlags_": "imgui_freetype:29", "ImGuiFreeTypeLoaderFlags_": "imgui_freetype:29",
"ImGuiGroupData": "imgui_internal:1201", "ImGuiGroupData": "imgui_internal:1201",
"ImGuiHoveredFlagsPrivate_": "imgui_internal:1045", "ImGuiHoveredFlagsPrivate_": "imgui_internal:1045",
"ImGuiHoveredFlags_": "imgui:1464", "ImGuiHoveredFlags_": "imgui:1464",
"ImGuiIDStackTool": "imgui_internal:2215", "ImGuiIDStackTool": "imgui_internal:2216",
"ImGuiIO": "imgui:2429", "ImGuiIO": "imgui:2429",
"ImGuiInputEvent": "imgui_internal:1579", "ImGuiInputEvent": "imgui_internal:1580",
"ImGuiInputEventAppFocused": "imgui_internal:1577", "ImGuiInputEventAppFocused": "imgui_internal:1578",
"ImGuiInputEventKey": "imgui_internal:1575", "ImGuiInputEventKey": "imgui_internal:1576",
"ImGuiInputEventMouseButton": "imgui_internal:1574", "ImGuiInputEventMouseButton": "imgui_internal:1575",
"ImGuiInputEventMousePos": "imgui_internal:1572", "ImGuiInputEventMousePos": "imgui_internal:1573",
"ImGuiInputEventMouseWheel": "imgui_internal:1573", "ImGuiInputEventMouseWheel": "imgui_internal:1574",
"ImGuiInputEventText": "imgui_internal:1576", "ImGuiInputEventText": "imgui_internal:1577",
"ImGuiInputEventType": "imgui_internal:1549", "ImGuiInputEventType": "imgui_internal:1550",
"ImGuiInputFlagsPrivate_": "imgui_internal:1645", "ImGuiInputFlagsPrivate_": "imgui_internal:1646",
"ImGuiInputFlags_": "imgui:1702", "ImGuiInputFlags_": "imgui:1702",
"ImGuiInputSource": "imgui_internal:1561", "ImGuiInputSource": "imgui_internal:1562",
"ImGuiInputTextCallbackData": "imgui:2676", "ImGuiInputTextCallbackData": "imgui:2676",
"ImGuiInputTextDeactivatedState": "imgui_internal:1239", "ImGuiInputTextDeactivatedState": "imgui_internal:1239",
"ImGuiInputTextFlagsPrivate_": "imgui_internal:1053", "ImGuiInputTextFlagsPrivate_": "imgui_internal:1053",
@@ -5221,49 +5221,49 @@
"ImGuiItemStatusFlags_": "imgui_internal:1017", "ImGuiItemStatusFlags_": "imgui_internal:1017",
"ImGuiKey": "imgui:1573", "ImGuiKey": "imgui:1573",
"ImGuiKeyData": "imgui:2421", "ImGuiKeyData": "imgui:2421",
"ImGuiKeyOwnerData": "imgui_internal:1632", "ImGuiKeyOwnerData": "imgui_internal:1633",
"ImGuiKeyRoutingData": "imgui_internal:1606", "ImGuiKeyRoutingData": "imgui_internal:1607",
"ImGuiKeyRoutingTable": "imgui_internal:1620", "ImGuiKeyRoutingTable": "imgui_internal:1621",
"ImGuiLastItemData": "imgui_internal:1410", "ImGuiLastItemData": "imgui_internal:1411",
"ImGuiLayoutType_": "imgui_internal:1155", "ImGuiLayoutType_": "imgui_internal:1155",
"ImGuiListClipper": "imgui:2894", "ImGuiListClipper": "imgui:2894",
"ImGuiListClipperData": "imgui_internal:1702", "ImGuiListClipperData": "imgui_internal:1703",
"ImGuiListClipperFlags_": "imgui:2868", "ImGuiListClipperFlags_": "imgui:2868",
"ImGuiListClipperRange": "imgui_internal:1689", "ImGuiListClipperRange": "imgui_internal:1690",
"ImGuiLocEntry": "imgui_internal:2100", "ImGuiLocEntry": "imgui_internal:2101",
"ImGuiLocKey": "imgui_internal:2082", "ImGuiLocKey": "imgui_internal:2083",
"ImGuiLogFlags_": "imgui_internal:1162", "ImGuiLogFlags_": "imgui_internal:1162",
"ImGuiMenuColumns": "imgui_internal:1220", "ImGuiMenuColumns": "imgui_internal:1220",
"ImGuiMetricsConfig": "imgui_internal:2170", "ImGuiMetricsConfig": "imgui_internal:2171",
"ImGuiMouseButton_": "imgui:1979", "ImGuiMouseButton_": "imgui:1979",
"ImGuiMouseCursor_": "imgui:1989", "ImGuiMouseCursor_": "imgui:1989",
"ImGuiMouseSource": "imgui:2010", "ImGuiMouseSource": "imgui:2010",
"ImGuiMultiSelectFlags_": "imgui:3063", "ImGuiMultiSelectFlags_": "imgui:3063",
"ImGuiMultiSelectIO": "imgui:3099", "ImGuiMultiSelectIO": "imgui:3099",
"ImGuiMultiSelectState": "imgui_internal:1970", "ImGuiMultiSelectState": "imgui_internal:1971",
"ImGuiMultiSelectTempData": "imgui_internal:1943", "ImGuiMultiSelectTempData": "imgui_internal:1944",
"ImGuiNavItemData": "imgui_internal:1790", "ImGuiNavItemData": "imgui_internal:1791",
"ImGuiNavLayer": "imgui_internal:1782", "ImGuiNavLayer": "imgui_internal:1783",
"ImGuiNavMoveFlags_": "imgui_internal:1760", "ImGuiNavMoveFlags_": "imgui_internal:1761",
"ImGuiNavRenderCursorFlags_": "imgui_internal:1745", "ImGuiNavRenderCursorFlags_": "imgui_internal:1746",
"ImGuiNextItemData": "imgui_internal:1388", "ImGuiNextItemData": "imgui_internal:1389",
"ImGuiNextItemDataFlags_": "imgui_internal:1377", "ImGuiNextItemDataFlags_": "imgui_internal:1378",
"ImGuiNextWindowData": "imgui_internal:1350", "ImGuiNextWindowData": "imgui_internal:1351",
"ImGuiNextWindowDataFlags_": "imgui_internal:1333", "ImGuiNextWindowDataFlags_": "imgui_internal:1334",
"ImGuiOldColumnData": "imgui_internal:1875", "ImGuiOldColumnData": "imgui_internal:1876",
"ImGuiOldColumnFlags_": "imgui_internal:1855", "ImGuiOldColumnFlags_": "imgui_internal:1856",
"ImGuiOldColumns": "imgui_internal:1885", "ImGuiOldColumns": "imgui_internal:1886",
"ImGuiOnceUponAFrame": "imgui:2757", "ImGuiOnceUponAFrame": "imgui:2757",
"ImGuiPackedDate": "imgui_internal:841", "ImGuiPackedDate": "imgui_internal:841",
"ImGuiPayload": "imgui:2722", "ImGuiPayload": "imgui:2722",
"ImGuiPlatformIO": "imgui:4043", "ImGuiPlatformIO": "imgui:4043",
"ImGuiPlatformImeData": "imgui:4110", "ImGuiPlatformImeData": "imgui:4110",
"ImGuiPlotType": "imgui_internal:1181", "ImGuiPlotType": "imgui_internal:1181",
"ImGuiPopupData": "imgui_internal:1506", "ImGuiPopupData": "imgui_internal:1507",
"ImGuiPopupFlags_": "imgui:1359", "ImGuiPopupFlags_": "imgui:1359",
"ImGuiPopupPositionPolicy": "imgui_internal:1498", "ImGuiPopupPositionPolicy": "imgui_internal:1499",
"ImGuiPtrOrIndex": "imgui_internal:1475", "ImGuiPtrOrIndex": "imgui_internal:1476",
"ImGuiScrollFlags_": "imgui_internal:1731", "ImGuiScrollFlags_": "imgui_internal:1732",
"ImGuiSelectableFlagsPrivate_": "imgui_internal:1101", "ImGuiSelectableFlagsPrivate_": "imgui_internal:1101",
"ImGuiSelectableFlags_": "imgui:1378", "ImGuiSelectableFlags_": "imgui:1378",
"ImGuiSelectionBasicStorage": "imgui:3145", "ImGuiSelectionBasicStorage": "imgui:3145",
@@ -5271,41 +5271,41 @@
"ImGuiSelectionRequest": "imgui:3119", "ImGuiSelectionRequest": "imgui:3119",
"ImGuiSelectionRequestType": "imgui:3111", "ImGuiSelectionRequestType": "imgui:3111",
"ImGuiSeparatorFlags_": "imgui_internal:1123", "ImGuiSeparatorFlags_": "imgui_internal:1123",
"ImGuiSettingsCleanupArgs": "imgui_internal:2050", "ImGuiSettingsCleanupArgs": "imgui_internal:2051",
"ImGuiSettingsHandler": "imgui_internal:2061", "ImGuiSettingsHandler": "imgui_internal:2062",
"ImGuiShrinkWidthItem": "imgui_internal:1468", "ImGuiShrinkWidthItem": "imgui_internal:1469",
"ImGuiSizeCallbackData": "imgui:2713", "ImGuiSizeCallbackData": "imgui:2713",
"ImGuiSliderFlagsPrivate_": "imgui_internal:1094", "ImGuiSliderFlagsPrivate_": "imgui_internal:1094",
"ImGuiSliderFlags_": "imgui:1960", "ImGuiSliderFlags_": "imgui:1960",
"ImGuiSortDirection": "imgui:1560", "ImGuiSortDirection": "imgui:1560",
"ImGuiStackLevelInfo": "imgui_internal:2190", "ImGuiStackLevelInfo": "imgui_internal:2191",
"ImGuiStorage": "imgui:2830", "ImGuiStorage": "imgui:2830",
"ImGuiStoragePair": "imgui:2813", "ImGuiStoragePair": "imgui:2813",
"ImGuiStyle": "imgui:2308", "ImGuiStyle": "imgui:2308",
"ImGuiStyleMod": "imgui_internal:952", "ImGuiStyleMod": "imgui_internal:952",
"ImGuiStyleVarInfo": "imgui_internal:936", "ImGuiStyleVarInfo": "imgui_internal:936",
"ImGuiStyleVar_": "imgui:1837", "ImGuiStyleVar_": "imgui:1837",
"ImGuiTabBar": "imgui_internal:2886", "ImGuiTabBar": "imgui_internal:2887",
"ImGuiTabBarFlagsPrivate_": "imgui_internal:2849", "ImGuiTabBarFlagsPrivate_": "imgui_internal:2850",
"ImGuiTabBarFlags_": "imgui:1411", "ImGuiTabBarFlags_": "imgui:1411",
"ImGuiTabItem": "imgui_internal:2867", "ImGuiTabItem": "imgui_internal:2868",
"ImGuiTabItemFlagsPrivate_": "imgui_internal:2857", "ImGuiTabItemFlagsPrivate_": "imgui_internal:2858",
"ImGuiTabItemFlags_": "imgui:1435", "ImGuiTabItemFlags_": "imgui:1435",
"ImGuiTable": "imgui_internal:3055", "ImGuiTable": "imgui_internal:3056",
"ImGuiTableBgTarget_": "imgui:2162", "ImGuiTableBgTarget_": "imgui:2162",
"ImGuiTableCellData": "imgui_internal:3023", "ImGuiTableCellData": "imgui_internal:3024",
"ImGuiTableColumn": "imgui_internal:2940", "ImGuiTableColumn": "imgui_internal:2941",
"ImGuiTableColumnFlags_": "imgui:2109", "ImGuiTableColumnFlags_": "imgui:2109",
"ImGuiTableColumnSettings": "imgui_internal:3213", "ImGuiTableColumnSettings": "imgui_internal:3214",
"ImGuiTableColumnSortSpecs": "imgui:2184", "ImGuiTableColumnSortSpecs": "imgui:2184",
"ImGuiTableFlags_": "imgui:2056", "ImGuiTableFlags_": "imgui:2056",
"ImGuiTableHeaderData": "imgui_internal:3032", "ImGuiTableHeaderData": "imgui_internal:3033",
"ImGuiTableInstanceData": "imgui_internal:3042", "ImGuiTableInstanceData": "imgui_internal:3043",
"ImGuiTableReconcileColumnData": "imgui_internal:3006", "ImGuiTableReconcileColumnData": "imgui_internal:3007",
"ImGuiTableRowFlags_": "imgui:2147", "ImGuiTableRowFlags_": "imgui:2147",
"ImGuiTableSettings": "imgui_internal:3239", "ImGuiTableSettings": "imgui_internal:3240",
"ImGuiTableSortSpecs": "imgui:2174", "ImGuiTableSortSpecs": "imgui:2174",
"ImGuiTableTempData": "imgui_internal:3184", "ImGuiTableTempData": "imgui_internal:3185",
"ImGuiTextBuffer": "imgui:2792", "ImGuiTextBuffer": "imgui:2792",
"ImGuiTextFilter": "imgui:2765", "ImGuiTextFilter": "imgui:2765",
"ImGuiTextFlags_": "imgui_internal:1141", "ImGuiTextFlags_": "imgui_internal:1141",
@@ -5314,20 +5314,20 @@
"ImGuiTooltipFlags_": "imgui_internal:1147", "ImGuiTooltipFlags_": "imgui_internal:1147",
"ImGuiTreeNodeFlagsPrivate_": "imgui_internal:1114", "ImGuiTreeNodeFlagsPrivate_": "imgui_internal:1114",
"ImGuiTreeNodeFlags_": "imgui:1320", "ImGuiTreeNodeFlags_": "imgui:1320",
"ImGuiTreeNodeStackData": "imgui_internal:1429", "ImGuiTreeNodeStackData": "imgui_internal:1430",
"ImGuiTypingSelectFlags_": "imgui_internal:1818", "ImGuiTypingSelectFlags_": "imgui_internal:1819",
"ImGuiTypingSelectRequest": "imgui_internal:1826", "ImGuiTypingSelectRequest": "imgui_internal:1827",
"ImGuiTypingSelectState": "imgui_internal:1837", "ImGuiTypingSelectState": "imgui_internal:1838",
"ImGuiViewport": "imgui:4017", "ImGuiViewport": "imgui:4017",
"ImGuiViewportFlags_": "imgui:4002", "ImGuiViewportFlags_": "imgui:4002",
"ImGuiViewportP": "imgui_internal:1998", "ImGuiViewportP": "imgui_internal:1999",
"ImGuiWindow": "imgui_internal:2714", "ImGuiWindow": "imgui_internal:2715",
"ImGuiWindowBgClickFlags_": "imgui_internal:1327", "ImGuiWindowBgClickFlags_": "imgui_internal:1328",
"ImGuiWindowFlags_": "imgui:1171", "ImGuiWindowFlags_": "imgui:1171",
"ImGuiWindowRefreshFlags_": "imgui_internal:1318", "ImGuiWindowRefreshFlags_": "imgui_internal:1319",
"ImGuiWindowSettings": "imgui_internal:2035", "ImGuiWindowSettings": "imgui_internal:2036",
"ImGuiWindowStackData": "imgui_internal:1459", "ImGuiWindowStackData": "imgui_internal:1460",
"ImGuiWindowTempData": "imgui_internal:2660", "ImGuiWindowTempData": "imgui_internal:2661",
"ImRect": "imgui_internal:591", "ImRect": "imgui_internal:591",
"ImTextureData": "imgui:3564", "ImTextureData": "imgui:3564",
"ImTextureFormat": "imgui:3532", "ImTextureFormat": "imgui:3532",
@@ -5340,7 +5340,11 @@
"ImVec2ih": "imgui_internal:581", "ImVec2ih": "imgui_internal:581",
"ImVec4": "imgui:308", "ImVec4": "imgui:308",
"ImWcharClass": "imgui_internal:452", "ImWcharClass": "imgui_internal:452",
"stbrp_context_opaque": "imgui_internal:3984" "STB_TexteditState": "imstb_textedit:342",
"StbTexteditRow": "imstb_textedit:389",
"StbUndoRecord": "imstb_textedit:324",
"StbUndoState": "imstb_textedit:333",
"stbrp_context_opaque": "imgui_internal:3985"
}, },
"nonPOD": { "nonPOD": {
"ImBitArray": true, "ImBitArray": true,
@@ -12381,6 +12385,136 @@
"type": "float" "type": "float"
} }
], ],
"STB_TexteditState": [
{
"name": "cursor",
"type": "int"
},
{
"name": "select_start",
"type": "int"
},
{
"name": "select_end",
"type": "int"
},
{
"name": "insert_mode",
"type": "unsigned char"
},
{
"name": "row_count_per_page",
"type": "int"
},
{
"name": "cursor_at_end_of_line",
"type": "unsigned char"
},
{
"name": "initialized",
"type": "unsigned char"
},
{
"name": "has_preferred_x",
"type": "unsigned char"
},
{
"name": "single_line",
"type": "unsigned char"
},
{
"name": "padding1",
"type": "unsigned char"
},
{
"name": "padding2",
"type": "unsigned char"
},
{
"name": "padding3",
"type": "unsigned char"
},
{
"name": "preferred_x",
"type": "float"
},
{
"name": "undostate",
"type": "StbUndoState"
}
],
"StbTexteditRow": [
{
"name": "x0",
"type": "float"
},
{
"name": "x1",
"type": "float"
},
{
"name": "baseline_y_delta",
"type": "float"
},
{
"name": "ymin",
"type": "float"
},
{
"name": "ymax",
"type": "float"
},
{
"name": "num_chars",
"type": "int"
}
],
"StbUndoRecord": [
{
"name": "where",
"type": "int"
},
{
"name": "insert_length",
"type": "int"
},
{
"name": "delete_length",
"type": "int"
},
{
"name": "char_storage",
"type": "int"
}
],
"StbUndoState": [
{
"name": "undo_rec[99]",
"size": 99,
"type": "StbUndoRecord"
},
{
"name": "undo_char[999]",
"size": 999,
"type": "char"
},
{
"name": "undo_point",
"type": "short"
},
{
"name": "redo_point",
"type": "short"
},
{
"name": "undo_char_point",
"type": "int"
},
{
"name": "redo_char_point",
"type": "int"
}
],
"stbrp_context_opaque": [ "stbrp_context_opaque": [
{ {
"name": "data[80]", "name": "data[80]",

View File

@@ -4072,22 +4072,22 @@ local t={
ImDrawVert="imgui:3233", ImDrawVert="imgui:3233",
ImFont="imgui:3930", ImFont="imgui:3930",
ImFontAtlas="imgui:3728", ImFontAtlas="imgui:3728",
ImFontAtlasBuilder="imgui_internal:3987", ImFontAtlasBuilder="imgui_internal:3988",
ImFontAtlasFlags_="imgui:3701", ImFontAtlasFlags_="imgui:3701",
ImFontAtlasPostProcessData="imgui_internal:3960", ImFontAtlasPostProcessData="imgui_internal:3961",
ImFontAtlasRect="imgui:3691", ImFontAtlasRect="imgui:3691",
ImFontAtlasRectEntry="imgui_internal:3952", ImFontAtlasRectEntry="imgui_internal:3953",
ImFontBaked="imgui:3881", ImFontBaked="imgui:3881",
ImFontConfig="imgui:3610", ImFontConfig="imgui:3610",
ImFontFlags_="imgui:3916", ImFontFlags_="imgui:3916",
ImFontGlyph="imgui:3653", ImFontGlyph="imgui:3653",
ImFontGlyphRangesBuilder="imgui:3669", ImFontGlyphRangesBuilder="imgui:3669",
ImFontLoader="imgui_internal:3901", ImFontLoader="imgui_internal:3902",
ImFontStackData="imgui_internal:925", ImFontStackData="imgui_internal:925",
ImGuiActivateFlags_="imgui_internal:1718", ImGuiActivateFlags_="imgui_internal:1719",
ImGuiAxis="imgui_internal:1174", ImGuiAxis="imgui_internal:1174",
ImGuiBackendFlags_="imgui:1745", ImGuiBackendFlags_="imgui:1745",
ImGuiBoxSelectState="imgui_internal:1910", ImGuiBoxSelectState="imgui_internal:1911",
ImGuiButtonFlagsPrivate_="imgui_internal:1062", ImGuiButtonFlagsPrivate_="imgui_internal:1062",
ImGuiButtonFlags_="imgui:1888", ImGuiButtonFlags_="imgui:1888",
ImGuiChildFlags_="imgui:1220", ImGuiChildFlags_="imgui:1220",
@@ -4099,41 +4099,41 @@ local t={
ImGuiComboPreviewData="imgui_internal:1188", ImGuiComboPreviewData="imgui_internal:1188",
ImGuiCond_="imgui:2021", ImGuiCond_="imgui:2021",
ImGuiConfigFlags_="imgui:1726", ImGuiConfigFlags_="imgui:1726",
ImGuiContext="imgui_internal:2249", ImGuiContext="imgui_internal:2250",
ImGuiContextHook="imgui_internal:2232", ImGuiContextHook="imgui_internal:2233",
ImGuiContextHookType="imgui_internal:2230", ImGuiContextHookType="imgui_internal:2231",
ImGuiDataTypeInfo="imgui_internal:971", ImGuiDataTypeInfo="imgui_internal:971",
ImGuiDataTypePrivate_="imgui_internal:980", ImGuiDataTypePrivate_="imgui_internal:980",
ImGuiDataTypeStorage="imgui_internal:965", ImGuiDataTypeStorage="imgui_internal:965",
ImGuiDataType_="imgui:1531", ImGuiDataType_="imgui:1531",
ImGuiDeactivatedItemData="imgui_internal:1486", ImGuiDeactivatedItemData="imgui_internal:1487",
ImGuiDebugAllocEntry="imgui_internal:2153", ImGuiDebugAllocEntry="imgui_internal:2154",
ImGuiDebugAllocInfo="imgui_internal:2160", ImGuiDebugAllocInfo="imgui_internal:2161",
ImGuiDebugItemPathQuery="imgui_internal:2201", ImGuiDebugItemPathQuery="imgui_internal:2202",
ImGuiDebugLogFlags_="imgui_internal:2129", ImGuiDebugLogFlags_="imgui_internal:2130",
ImGuiDir="imgui:1549", ImGuiDir="imgui:1549",
ImGuiDragDropFlags_="imgui:1502", ImGuiDragDropFlags_="imgui:1502",
ImGuiErrorRecoveryState="imgui_internal:1441", ImGuiErrorRecoveryState="imgui_internal:1442",
ImGuiFocusRequestFlags_="imgui_internal:1134", ImGuiFocusRequestFlags_="imgui_internal:1134",
ImGuiFocusScopeData="imgui_internal:1807", ImGuiFocusScopeData="imgui_internal:1808",
ImGuiFocusedFlags_="imgui:1450", ImGuiFocusedFlags_="imgui:1450",
ImGuiFreeTypeLoaderFlags_="imgui_freetype:29", ImGuiFreeTypeLoaderFlags_="imgui_freetype:29",
ImGuiGroupData="imgui_internal:1201", ImGuiGroupData="imgui_internal:1201",
ImGuiHoveredFlagsPrivate_="imgui_internal:1045", ImGuiHoveredFlagsPrivate_="imgui_internal:1045",
ImGuiHoveredFlags_="imgui:1464", ImGuiHoveredFlags_="imgui:1464",
ImGuiIDStackTool="imgui_internal:2215", ImGuiIDStackTool="imgui_internal:2216",
ImGuiIO="imgui:2429", ImGuiIO="imgui:2429",
ImGuiInputEvent="imgui_internal:1579", ImGuiInputEvent="imgui_internal:1580",
ImGuiInputEventAppFocused="imgui_internal:1577", ImGuiInputEventAppFocused="imgui_internal:1578",
ImGuiInputEventKey="imgui_internal:1575", ImGuiInputEventKey="imgui_internal:1576",
ImGuiInputEventMouseButton="imgui_internal:1574", ImGuiInputEventMouseButton="imgui_internal:1575",
ImGuiInputEventMousePos="imgui_internal:1572", ImGuiInputEventMousePos="imgui_internal:1573",
ImGuiInputEventMouseWheel="imgui_internal:1573", ImGuiInputEventMouseWheel="imgui_internal:1574",
ImGuiInputEventText="imgui_internal:1576", ImGuiInputEventText="imgui_internal:1577",
ImGuiInputEventType="imgui_internal:1549", ImGuiInputEventType="imgui_internal:1550",
ImGuiInputFlagsPrivate_="imgui_internal:1645", ImGuiInputFlagsPrivate_="imgui_internal:1646",
ImGuiInputFlags_="imgui:1702", ImGuiInputFlags_="imgui:1702",
ImGuiInputSource="imgui_internal:1561", ImGuiInputSource="imgui_internal:1562",
ImGuiInputTextCallbackData="imgui:2676", ImGuiInputTextCallbackData="imgui:2676",
ImGuiInputTextDeactivatedState="imgui_internal:1239", ImGuiInputTextDeactivatedState="imgui_internal:1239",
ImGuiInputTextFlagsPrivate_="imgui_internal:1053", ImGuiInputTextFlagsPrivate_="imgui_internal:1053",
@@ -4144,49 +4144,49 @@ local t={
ImGuiItemStatusFlags_="imgui_internal:1017", ImGuiItemStatusFlags_="imgui_internal:1017",
ImGuiKey="imgui:1573", ImGuiKey="imgui:1573",
ImGuiKeyData="imgui:2421", ImGuiKeyData="imgui:2421",
ImGuiKeyOwnerData="imgui_internal:1632", ImGuiKeyOwnerData="imgui_internal:1633",
ImGuiKeyRoutingData="imgui_internal:1606", ImGuiKeyRoutingData="imgui_internal:1607",
ImGuiKeyRoutingTable="imgui_internal:1620", ImGuiKeyRoutingTable="imgui_internal:1621",
ImGuiLastItemData="imgui_internal:1410", ImGuiLastItemData="imgui_internal:1411",
ImGuiLayoutType_="imgui_internal:1155", ImGuiLayoutType_="imgui_internal:1155",
ImGuiListClipper="imgui:2894", ImGuiListClipper="imgui:2894",
ImGuiListClipperData="imgui_internal:1702", ImGuiListClipperData="imgui_internal:1703",
ImGuiListClipperFlags_="imgui:2868", ImGuiListClipperFlags_="imgui:2868",
ImGuiListClipperRange="imgui_internal:1689", ImGuiListClipperRange="imgui_internal:1690",
ImGuiLocEntry="imgui_internal:2100", ImGuiLocEntry="imgui_internal:2101",
ImGuiLocKey="imgui_internal:2082", ImGuiLocKey="imgui_internal:2083",
ImGuiLogFlags_="imgui_internal:1162", ImGuiLogFlags_="imgui_internal:1162",
ImGuiMenuColumns="imgui_internal:1220", ImGuiMenuColumns="imgui_internal:1220",
ImGuiMetricsConfig="imgui_internal:2170", ImGuiMetricsConfig="imgui_internal:2171",
ImGuiMouseButton_="imgui:1979", ImGuiMouseButton_="imgui:1979",
ImGuiMouseCursor_="imgui:1989", ImGuiMouseCursor_="imgui:1989",
ImGuiMouseSource="imgui:2010", ImGuiMouseSource="imgui:2010",
ImGuiMultiSelectFlags_="imgui:3063", ImGuiMultiSelectFlags_="imgui:3063",
ImGuiMultiSelectIO="imgui:3099", ImGuiMultiSelectIO="imgui:3099",
ImGuiMultiSelectState="imgui_internal:1970", ImGuiMultiSelectState="imgui_internal:1971",
ImGuiMultiSelectTempData="imgui_internal:1943", ImGuiMultiSelectTempData="imgui_internal:1944",
ImGuiNavItemData="imgui_internal:1790", ImGuiNavItemData="imgui_internal:1791",
ImGuiNavLayer="imgui_internal:1782", ImGuiNavLayer="imgui_internal:1783",
ImGuiNavMoveFlags_="imgui_internal:1760", ImGuiNavMoveFlags_="imgui_internal:1761",
ImGuiNavRenderCursorFlags_="imgui_internal:1745", ImGuiNavRenderCursorFlags_="imgui_internal:1746",
ImGuiNextItemData="imgui_internal:1388", ImGuiNextItemData="imgui_internal:1389",
ImGuiNextItemDataFlags_="imgui_internal:1377", ImGuiNextItemDataFlags_="imgui_internal:1378",
ImGuiNextWindowData="imgui_internal:1350", ImGuiNextWindowData="imgui_internal:1351",
ImGuiNextWindowDataFlags_="imgui_internal:1333", ImGuiNextWindowDataFlags_="imgui_internal:1334",
ImGuiOldColumnData="imgui_internal:1875", ImGuiOldColumnData="imgui_internal:1876",
ImGuiOldColumnFlags_="imgui_internal:1855", ImGuiOldColumnFlags_="imgui_internal:1856",
ImGuiOldColumns="imgui_internal:1885", ImGuiOldColumns="imgui_internal:1886",
ImGuiOnceUponAFrame="imgui:2757", ImGuiOnceUponAFrame="imgui:2757",
ImGuiPackedDate="imgui_internal:841", ImGuiPackedDate="imgui_internal:841",
ImGuiPayload="imgui:2722", ImGuiPayload="imgui:2722",
ImGuiPlatformIO="imgui:4043", ImGuiPlatformIO="imgui:4043",
ImGuiPlatformImeData="imgui:4110", ImGuiPlatformImeData="imgui:4110",
ImGuiPlotType="imgui_internal:1181", ImGuiPlotType="imgui_internal:1181",
ImGuiPopupData="imgui_internal:1506", ImGuiPopupData="imgui_internal:1507",
ImGuiPopupFlags_="imgui:1359", ImGuiPopupFlags_="imgui:1359",
ImGuiPopupPositionPolicy="imgui_internal:1498", ImGuiPopupPositionPolicy="imgui_internal:1499",
ImGuiPtrOrIndex="imgui_internal:1475", ImGuiPtrOrIndex="imgui_internal:1476",
ImGuiScrollFlags_="imgui_internal:1731", ImGuiScrollFlags_="imgui_internal:1732",
ImGuiSelectableFlagsPrivate_="imgui_internal:1101", ImGuiSelectableFlagsPrivate_="imgui_internal:1101",
ImGuiSelectableFlags_="imgui:1378", ImGuiSelectableFlags_="imgui:1378",
ImGuiSelectionBasicStorage="imgui:3145", ImGuiSelectionBasicStorage="imgui:3145",
@@ -4194,41 +4194,41 @@ local t={
ImGuiSelectionRequest="imgui:3119", ImGuiSelectionRequest="imgui:3119",
ImGuiSelectionRequestType="imgui:3111", ImGuiSelectionRequestType="imgui:3111",
ImGuiSeparatorFlags_="imgui_internal:1123", ImGuiSeparatorFlags_="imgui_internal:1123",
ImGuiSettingsCleanupArgs="imgui_internal:2050", ImGuiSettingsCleanupArgs="imgui_internal:2051",
ImGuiSettingsHandler="imgui_internal:2061", ImGuiSettingsHandler="imgui_internal:2062",
ImGuiShrinkWidthItem="imgui_internal:1468", ImGuiShrinkWidthItem="imgui_internal:1469",
ImGuiSizeCallbackData="imgui:2713", ImGuiSizeCallbackData="imgui:2713",
ImGuiSliderFlagsPrivate_="imgui_internal:1094", ImGuiSliderFlagsPrivate_="imgui_internal:1094",
ImGuiSliderFlags_="imgui:1960", ImGuiSliderFlags_="imgui:1960",
ImGuiSortDirection="imgui:1560", ImGuiSortDirection="imgui:1560",
ImGuiStackLevelInfo="imgui_internal:2190", ImGuiStackLevelInfo="imgui_internal:2191",
ImGuiStorage="imgui:2830", ImGuiStorage="imgui:2830",
ImGuiStoragePair="imgui:2813", ImGuiStoragePair="imgui:2813",
ImGuiStyle="imgui:2308", ImGuiStyle="imgui:2308",
ImGuiStyleMod="imgui_internal:952", ImGuiStyleMod="imgui_internal:952",
ImGuiStyleVarInfo="imgui_internal:936", ImGuiStyleVarInfo="imgui_internal:936",
ImGuiStyleVar_="imgui:1837", ImGuiStyleVar_="imgui:1837",
ImGuiTabBar="imgui_internal:2886", ImGuiTabBar="imgui_internal:2887",
ImGuiTabBarFlagsPrivate_="imgui_internal:2849", ImGuiTabBarFlagsPrivate_="imgui_internal:2850",
ImGuiTabBarFlags_="imgui:1411", ImGuiTabBarFlags_="imgui:1411",
ImGuiTabItem="imgui_internal:2867", ImGuiTabItem="imgui_internal:2868",
ImGuiTabItemFlagsPrivate_="imgui_internal:2857", ImGuiTabItemFlagsPrivate_="imgui_internal:2858",
ImGuiTabItemFlags_="imgui:1435", ImGuiTabItemFlags_="imgui:1435",
ImGuiTable="imgui_internal:3055", ImGuiTable="imgui_internal:3056",
ImGuiTableBgTarget_="imgui:2162", ImGuiTableBgTarget_="imgui:2162",
ImGuiTableCellData="imgui_internal:3023", ImGuiTableCellData="imgui_internal:3024",
ImGuiTableColumn="imgui_internal:2940", ImGuiTableColumn="imgui_internal:2941",
ImGuiTableColumnFlags_="imgui:2109", ImGuiTableColumnFlags_="imgui:2109",
ImGuiTableColumnSettings="imgui_internal:3213", ImGuiTableColumnSettings="imgui_internal:3214",
ImGuiTableColumnSortSpecs="imgui:2184", ImGuiTableColumnSortSpecs="imgui:2184",
ImGuiTableFlags_="imgui:2056", ImGuiTableFlags_="imgui:2056",
ImGuiTableHeaderData="imgui_internal:3032", ImGuiTableHeaderData="imgui_internal:3033",
ImGuiTableInstanceData="imgui_internal:3042", ImGuiTableInstanceData="imgui_internal:3043",
ImGuiTableReconcileColumnData="imgui_internal:3006", ImGuiTableReconcileColumnData="imgui_internal:3007",
ImGuiTableRowFlags_="imgui:2147", ImGuiTableRowFlags_="imgui:2147",
ImGuiTableSettings="imgui_internal:3239", ImGuiTableSettings="imgui_internal:3240",
ImGuiTableSortSpecs="imgui:2174", ImGuiTableSortSpecs="imgui:2174",
ImGuiTableTempData="imgui_internal:3184", ImGuiTableTempData="imgui_internal:3185",
ImGuiTextBuffer="imgui:2792", ImGuiTextBuffer="imgui:2792",
ImGuiTextFilter="imgui:2765", ImGuiTextFilter="imgui:2765",
ImGuiTextFlags_="imgui_internal:1141", ImGuiTextFlags_="imgui_internal:1141",
@@ -4237,20 +4237,20 @@ local t={
ImGuiTooltipFlags_="imgui_internal:1147", ImGuiTooltipFlags_="imgui_internal:1147",
ImGuiTreeNodeFlagsPrivate_="imgui_internal:1114", ImGuiTreeNodeFlagsPrivate_="imgui_internal:1114",
ImGuiTreeNodeFlags_="imgui:1320", ImGuiTreeNodeFlags_="imgui:1320",
ImGuiTreeNodeStackData="imgui_internal:1429", ImGuiTreeNodeStackData="imgui_internal:1430",
ImGuiTypingSelectFlags_="imgui_internal:1818", ImGuiTypingSelectFlags_="imgui_internal:1819",
ImGuiTypingSelectRequest="imgui_internal:1826", ImGuiTypingSelectRequest="imgui_internal:1827",
ImGuiTypingSelectState="imgui_internal:1837", ImGuiTypingSelectState="imgui_internal:1838",
ImGuiViewport="imgui:4017", ImGuiViewport="imgui:4017",
ImGuiViewportFlags_="imgui:4002", ImGuiViewportFlags_="imgui:4002",
ImGuiViewportP="imgui_internal:1998", ImGuiViewportP="imgui_internal:1999",
ImGuiWindow="imgui_internal:2714", ImGuiWindow="imgui_internal:2715",
ImGuiWindowBgClickFlags_="imgui_internal:1327", ImGuiWindowBgClickFlags_="imgui_internal:1328",
ImGuiWindowFlags_="imgui:1171", ImGuiWindowFlags_="imgui:1171",
ImGuiWindowRefreshFlags_="imgui_internal:1318", ImGuiWindowRefreshFlags_="imgui_internal:1319",
ImGuiWindowSettings="imgui_internal:2035", ImGuiWindowSettings="imgui_internal:2036",
ImGuiWindowStackData="imgui_internal:1459", ImGuiWindowStackData="imgui_internal:1460",
ImGuiWindowTempData="imgui_internal:2660", ImGuiWindowTempData="imgui_internal:2661",
ImRect="imgui_internal:591", ImRect="imgui_internal:591",
ImTextureData="imgui:3564", ImTextureData="imgui:3564",
ImTextureFormat="imgui:3532", ImTextureFormat="imgui:3532",
@@ -4263,7 +4263,11 @@ local t={
ImVec2ih="imgui_internal:581", ImVec2ih="imgui_internal:581",
ImVec4="imgui:308", ImVec4="imgui:308",
ImWcharClass="imgui_internal:452", ImWcharClass="imgui_internal:452",
stbrp_context_opaque="imgui_internal:3984"}, STB_TexteditState="imstb_textedit:342",
StbTexteditRow="imstb_textedit:389",
StbUndoRecord="imstb_textedit:324",
StbUndoState="imstb_textedit:333",
stbrp_context_opaque="imgui_internal:3985"},
nonPOD={ nonPOD={
ImBitArray=true, ImBitArray=true,
ImColor=true, ImColor=true,
@@ -9551,6 +9555,102 @@ local t={
[4]={ [4]={
name="w", name="w",
type="float"}}, type="float"}},
STB_TexteditState={
[1]={
name="cursor",
type="int"},
[2]={
name="select_start",
type="int"},
[3]={
name="select_end",
type="int"},
[4]={
name="insert_mode",
type="unsigned char"},
[5]={
name="row_count_per_page",
type="int"},
[6]={
name="cursor_at_end_of_line",
type="unsigned char"},
[7]={
name="initialized",
type="unsigned char"},
[8]={
name="has_preferred_x",
type="unsigned char"},
[9]={
name="single_line",
type="unsigned char"},
[10]={
name="padding1",
type="unsigned char"},
[11]={
name="padding2",
type="unsigned char"},
[12]={
name="padding3",
type="unsigned char"},
[13]={
name="preferred_x",
type="float"},
[14]={
name="undostate",
type="StbUndoState"}},
StbTexteditRow={
[1]={
name="x0",
type="float"},
[2]={
name="x1",
type="float"},
[3]={
name="baseline_y_delta",
type="float"},
[4]={
name="ymin",
type="float"},
[5]={
name="ymax",
type="float"},
[6]={
name="num_chars",
type="int"}},
StbUndoRecord={
[1]={
name="where",
type="int"},
[2]={
name="insert_length",
type="int"},
[3]={
name="delete_length",
type="int"},
[4]={
name="char_storage",
type="int"}},
StbUndoState={
[1]={
name="undo_rec[99]",
size=99,
type="StbUndoRecord"},
[2]={
name="undo_char[999]",
size=999,
type="char"},
[3]={
name="undo_point",
type="short"},
[4]={
name="redo_point",
type="short"},
[5]={
name="undo_char_point",
type="int"},
[6]={
name="redo_char_point",
type="int"}},
stbrp_context_opaque={ stbrp_context_opaque={
[1]={ [1]={
name="data[80]", name="data[80]",

View File

@@ -214,6 +214,9 @@
"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",
"stbrp_context_opaque": "struct stbrp_context_opaque", "stbrp_context_opaque": "struct stbrp_context_opaque",
"stbrp_node": "struct stbrp_node", "stbrp_node": "struct stbrp_node",
"stbrp_node_im": "stbrp_node" "stbrp_node_im": "stbrp_node"

View File

@@ -214,6 +214,9 @@ local t={
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",
stbrp_context_opaque="struct stbrp_context_opaque", stbrp_context_opaque="struct stbrp_context_opaque",
stbrp_node="struct stbrp_node", stbrp_node="struct stbrp_node",
stbrp_node_im="stbrp_node"} stbrp_node_im="stbrp_node"}

2
imgui

Submodule imgui updated: a9e7a8c880...f1cc2ae15e