This commit is contained in:
sonoro1234
2025-11-08 09:53:51 +01:00
parent 0d6a84344c
commit 26c3254fcb
7 changed files with 357 additions and 302 deletions

View File

@@ -1119,14 +1119,18 @@ local function gen_structs_c(FP)
end
insert(tabs,"};")
end)
if #tabs > 0 then
insert(tabs,1,"#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS")
insert(tabs,"#endif")
end
if #tabs_c > 0 then
insert(tabs_c,1,"#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS")
insert(tabs_c,"#endif")
end
--print(table.concat(tabs_c,"\n"))
--print(table.concat(tabs,"\n"))
--return table.concat(tabs_c,"\n").."\n"..table.concat(tabs,"\n")
return table.concat(tabs,"\n")
return table.concat(tabs_c,"\n").."\n"..table.concat(tabs,"\n")
--return table.concat(tabs,"\n")
end
local function gen_field_conversion(tab, struct, FP, prefix)
prefix = prefix or ""
@@ -1163,7 +1167,7 @@ local function genConversions(FP)
return table.concat(convers,"\n")
end
local function get_nonPODused(FP)
print("get_nonPODused-----------------------------")
--print("get_nonPODused-----------------------------")
local nonPOD = FP.structs_and_enums_table.nonPOD
--M.prtable(nonPOD)
local typeargs = {}
@@ -1219,16 +1223,35 @@ local function get_nonPODused(FP)
-- M.prtable(typeargs2_ret)
end
local function header_subs_nonPOD(FP,txt)
--print("----------header_subs_nonPOD")
--M.prtable(FP.nP_used)
for k,v in pairs(FP.nP_used) do
--txt = txt:gsub("([%s;])"..k,"%1"..k.."_c")
for i=1,2 do
txt = txt:gsub("([%s;])"..k.."([%s;%*])", "%1"..k.."_c%2")
end
--txt = txt:gsub("%s"..k..";", " "..k.."_c;")
--txt = txt:gsub("%s"..k.."%*", " "..k.."_c*")
end
return txt
end
M.header_subs_nonPOD = header_subs_nonPOD
local function ADDnonUDT(FP)
local nonPOD = get_nonPOD(FP)
get_nonPODused(FP)
for k,defs in pairs(FP.defsT) do
for i, def in ipairs(defs) do
--ret
local rets = (def.ret or ""):gsub("const ","")
rets = rets:gsub("*","")
if FP.nP_ret[def.ret] then
def.conv = (def.ret):gsub("const ","")
def.ret = FP.nP_ret[def.ret]
def.nonUDT = 1
elseif FP.nP_ret[rets] then
def.ret = def.ret:gsub(rets, FP.nP_ret[rets])
def.nonUDT = 2
end
--args
local caar,asp
@@ -1242,10 +1265,15 @@ local function ADDnonUDT(FP)
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
caar = caar .. name .. ","
else
local typ = v.type:gsub("const ","")
local typ2 = typ:gsub("*","")
if FP.nP_args[v.type] then
local typ = v.type:gsub("const ","")
caar = caar .. "ConvertToCPP_"..typ.."("..name.."),"
asp = asp .. v.type:gsub(typ,typ.."_c").." "..v.name..","
elseif FP.nP_args[typ2] then
local typ3 = v.type:gsub(typ2,typ2.."_c")
caar = caar .. "reinterpret_cast<"..v.type..">("..name.."),"
asp = asp .. typ3 .." "..v.name..","
else
local siz = v.type:match("(%[%d*%])") or ""
local typ = v.type:gsub("(%[%d*%])","")
@@ -2013,13 +2041,15 @@ function M.Parser()
if not structname then print("NO NAME",cleanst,it.item) end
--if not void stname or templated
if structname and not self.typenames[structname] then
--table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
local tst = "\ntypedef struct "..structname.." "..structname..";"
if check_unique_typedefs(tst,uniques) then
--table.insert(outtab,tst)
self:header_text_insert(outtab, tst, it)
end
--dont add typedef to non POD
local tst = ""
--if not self.nP_used[structname] then
tst = "\ntypedef struct "..structname.." "..structname..";"
--end
if check_unique_typedefs(tst,uniques) then
--table.insert(outtab,tst)
self:header_text_insert(outtab, tst, it)
end
self.typedefs_dict[structname]="struct "..structname
--dont insert child structs as they are inserted before parent struct
if not (it.parent and it.parent.re_name == "struct_re") then
@@ -2064,6 +2094,8 @@ function M.Parser()
--check arg detection failure if no name in function declaration
check_arg_detection(self.defsT,self.typedefs_dict)
local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"")
outtabprest = M.header_subs_nonPOD(self,outtabprest)
outtabst = M.header_subs_nonPOD(self,outtabst)
self.structs_and_enums = {outtabprest, outtabst or ""}
return outtabprest, outtabst
@@ -2860,6 +2892,8 @@ local function ImGui_f_implementation(def)
if def.nonUDT == 1 then
--table.insert(outtab," *pOut = "..namespace..def.funcname..def.call_args..";\n")
insert(outtab," return ConvertFromCPP_"..def.conv.."("..namespace..def.funcname..def.call_args..");\n")
elseif def.nonUDT == 2 then
insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret..namespace..def.funcname..def.call_args..");\n")
end
table.insert(outtab,"}\n")
else --standard ImGui
@@ -2896,6 +2930,8 @@ local function struct_f_implementation(def)
--table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
--local typret = (def.ret):gsub("const ","")
insert(outtab," return ConvertFromCPP_"..def.conv.."(self->"..def.funcname..def.call_args..");\n")
elseif def.nonUDT == 2 then
insert(outtab," return reinterpret_cast<"..def.ret..">("..ptret.."self->"..def.funcname..def.call_args..");\n")
end
else --standard struct
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
@@ -2971,7 +3007,7 @@ M.table_do_sorted = table_do_sorted
local function func_header_generate_structs(FP)
local outtab = {}
local outtab = {}--"\n/////func_header_generate_structs\n"}
table_do_sorted(FP.embeded_structs,function(k,v)
table.insert(outtab,"typedef "..v.." "..k..";\n")
@@ -2989,6 +3025,7 @@ local function func_header_generate_structs(FP)
end
M.func_header_generate_structs = func_header_generate_structs
local function func_header_generate_funcs(FP)
local outtab = {}
@@ -3052,8 +3089,10 @@ local function func_header_generate(FP)
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
local outtabf = func_header_generate_funcs(FP)
local cfuncsstr = table.concat(outtab)..table.concat(outtabf)
outtabf = table.concat(outtabf)
assert(type(outtabf)=="string")
--outtabf = M.header_subs_nonPOD(FP,outtabf)
local cfuncsstr = table.concat(outtab)..outtabf
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr
end

View File

@@ -286,6 +286,7 @@ local function cimgui_generation(parser)
local tdt = parser:generate_templates()
--local cstructsstr = "\n//7777estio es outpre\n"..outpre.."\n///////////////tdt\n"..tdt.."\n////////////////////outpost\n"..outpost
local cstructsstr = outpre..tdt..outpost
if gdefines.IMGUI_HAS_DOCK then

View File

@@ -1457,7 +1457,7 @@
],
"ImDrawList_AddConcavePolyFilled": [
{
"args": "(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)",
"args": "(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col)",
"argsT": [
{
"name": "self",
@@ -1477,7 +1477,7 @@
}
],
"argsoriginal": "(const ImVec2* points,int num_points,ImU32 col)",
"call_args": "(points,num_points,col)",
"call_args": "(reinterpret_cast<const ImVec2*>(points),num_points,col)",
"cimguiname": "ImDrawList_AddConcavePolyFilled",
"defaults": {},
"funcname": "AddConcavePolyFilled",
@@ -1490,7 +1490,7 @@
],
"ImDrawList_AddConvexPolyFilled": [
{
"args": "(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)",
"args": "(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col)",
"argsT": [
{
"name": "self",
@@ -1510,7 +1510,7 @@
}
],
"argsoriginal": "(const ImVec2* points,int num_points,ImU32 col)",
"call_args": "(points,num_points,col)",
"call_args": "(reinterpret_cast<const ImVec2*>(points),num_points,col)",
"cimguiname": "ImDrawList_AddConvexPolyFilled",
"defaults": {},
"funcname": "AddConvexPolyFilled",
@@ -1927,7 +1927,7 @@
],
"ImDrawList_AddPolyline": [
{
"args": "(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
"args": "(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
"argsT": [
{
"name": "self",
@@ -1955,7 +1955,7 @@
}
],
"argsoriginal": "(const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
"call_args": "(points,num_points,col,flags,thickness)",
"call_args": "(reinterpret_cast<const ImVec2*>(points),num_points,col,flags,thickness)",
"cimguiname": "ImDrawList_AddPolyline",
"defaults": {},
"funcname": "AddPolyline",
@@ -11538,8 +11538,9 @@
"defaults": {},
"funcname": "AsVec4",
"location": "imgui_internal:619",
"nonUDT": 2,
"ov_cimguiname": "ImRect_AsVec4",
"ret": "const ImVec4*",
"ret": "const ImVec4_c*",
"retref": "&",
"signature": "()const",
"stname": "ImRect"
@@ -19053,7 +19054,7 @@
],
"igDockContextCalcDropPosForDocking": [
{
"args": "(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2* out_pos)",
"args": "(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2_c* out_pos)",
"argsT": [
{
"name": "target",
@@ -19085,7 +19086,7 @@
}
],
"argsoriginal": "(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2* out_pos)",
"call_args": "(target,target_node,payload_window,payload_node,split_dir,split_outer,out_pos)",
"call_args": "(target,target_node,payload_window,payload_node,split_dir,split_outer,reinterpret_cast<ImVec2*>(out_pos))",
"cimguiname": "igDockContextCalcDropPosForDocking",
"defaults": {},
"funcname": "DockContextCalcDropPosForDocking",
@@ -23279,8 +23280,9 @@
"funcname": "GetStyleColorVec4",
"location": "imgui:557",
"namespace": "ImGui",
"nonUDT": 2,
"ov_cimguiname": "igGetStyleColorVec4",
"ret": "const ImVec4*",
"ret": "const ImVec4_c*",
"retref": "&",
"signature": "(ImGuiCol)",
"stname": ""
@@ -25380,7 +25382,7 @@
],
"igImFontAtlasGetMouseCursorTexData": [
{
"args": "(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
"args": "(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2_c* out_offset,ImVec2_c* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
"argsT": [
{
"name": "atlas",
@@ -25408,7 +25410,7 @@
}
],
"argsoriginal": "(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
"call_args": "(atlas,cursor_type,out_offset,out_size,out_uv_border,out_uv_fill)",
"call_args": "(atlas,cursor_type,reinterpret_cast<ImVec2*>(out_offset),reinterpret_cast<ImVec2*>(out_size),out_uv_border,out_uv_fill)",
"cimguiname": "igImFontAtlasGetMouseCursorTexData",
"defaults": {},
"funcname": "ImFontAtlasGetMouseCursorTexData",
@@ -26104,7 +26106,7 @@
],
"igImFontCalcTextSizeEx": [
{
"args": "(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2* out_offset,ImDrawTextFlags flags)",
"args": "(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2_c* out_offset,ImDrawTextFlags flags)",
"argsT": [
{
"name": "font",
@@ -26148,7 +26150,7 @@
}
],
"argsoriginal": "(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2* out_offset,ImDrawTextFlags flags)",
"call_args": "(font,size,max_width,wrap_width,text_begin,text_end_display,text_end,out_remaining,out_offset,flags)",
"call_args": "(font,size,max_width,wrap_width,text_begin,text_end_display,text_end,out_remaining,reinterpret_cast<ImVec2*>(out_offset),flags)",
"cimguiname": "igImFontCalcTextSizeEx",
"conv": "ImVec2",
"defaults": {},
@@ -30129,7 +30131,7 @@
],
"igIsMousePosValid": [
{
"args": "(const ImVec2* mouse_pos)",
"args": "(const ImVec2_c* mouse_pos)",
"argsT": [
{
"name": "mouse_pos",
@@ -30137,7 +30139,7 @@
}
],
"argsoriginal": "(const ImVec2* mouse_pos=((void*)0))",
"call_args": "(mouse_pos)",
"call_args": "(reinterpret_cast<const ImVec2*>(mouse_pos))",
"cimguiname": "igIsMousePosValid",
"defaults": {
"mouse_pos": "NULL"
@@ -31048,7 +31050,7 @@
],
"igLogRenderedText": [
{
"args": "(const ImVec2* ref_pos,const char* text,const char* text_end)",
"args": "(const ImVec2_c* ref_pos,const char* text,const char* text_end)",
"argsT": [
{
"name": "ref_pos",
@@ -31064,7 +31066,7 @@
}
],
"argsoriginal": "(const ImVec2* ref_pos,const char* text,const char* text_end=((void*)0))",
"call_args": "(ref_pos,text,text_end)",
"call_args": "(reinterpret_cast<const ImVec2*>(ref_pos),text,text_end)",
"cimguiname": "igLogRenderedText",
"defaults": {
"text_end": "NULL"
@@ -33843,7 +33845,7 @@
],
"igRenderTextClipped": [
{
"args": "(const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
"args": "(const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2_c* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
"argsT": [
{
"name": "pos_min",
@@ -33875,7 +33877,7 @@
}
],
"argsoriginal": "(const ImVec2& pos_min,const ImVec2& pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2& align=ImVec2(0,0),const ImRect* clip_rect=((void*)0))",
"call_args": "(ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,text_size_if_known,ConvertToCPP_ImVec2(align),clip_rect)",
"call_args": "(ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known),ConvertToCPP_ImVec2(align),clip_rect)",
"cimguiname": "igRenderTextClipped",
"defaults": {
"align": "ImVec2(0,0)",
@@ -33892,7 +33894,7 @@
],
"igRenderTextClippedEx": [
{
"args": "(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
"args": "(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2_c* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
"argsT": [
{
"name": "draw_list",
@@ -33928,7 +33930,7 @@
}
],
"argsoriginal": "(ImDrawList* draw_list,const ImVec2& pos_min,const ImVec2& pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2& align=ImVec2(0,0),const ImRect* clip_rect=((void*)0))",
"call_args": "(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,text_size_if_known,ConvertToCPP_ImVec2(align),clip_rect)",
"call_args": "(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known),ConvertToCPP_ImVec2(align),clip_rect)",
"cimguiname": "igRenderTextClippedEx",
"defaults": {
"align": "ImVec2(0,0)",
@@ -33945,7 +33947,7 @@
],
"igRenderTextEllipsis": [
{
"args": "(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known)",
"args": "(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2_c* text_size_if_known)",
"argsT": [
{
"name": "draw_list",
@@ -33977,7 +33979,7 @@
}
],
"argsoriginal": "(ImDrawList* draw_list,const ImVec2& pos_min,const ImVec2& pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known)",
"call_args": "(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),ellipsis_max_x,text,text_end,text_size_if_known)",
"call_args": "(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),ellipsis_max_x,text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known))",
"cimguiname": "igRenderTextEllipsis",
"defaults": {},
"funcname": "RenderTextEllipsis",

View File

@@ -1231,7 +1231,7 @@ local t={
["(const ImVec2,float,ImU32,int)"]=nil},
ImDrawList_AddConcavePolyFilled={
[1]={
args="(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)",
args="(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col)",
argsT={
[1]={
name="self",
@@ -1246,7 +1246,7 @@ local t={
name="col",
type="ImU32"}},
argsoriginal="(const ImVec2* points,int num_points,ImU32 col)",
call_args="(points,num_points,col)",
call_args="(reinterpret_cast<const ImVec2*>(points),num_points,col)",
cimguiname="ImDrawList_AddConcavePolyFilled",
defaults={},
funcname="AddConcavePolyFilled",
@@ -1258,7 +1258,7 @@ local t={
["(const ImVec2*,int,ImU32)"]=nil},
ImDrawList_AddConvexPolyFilled={
[1]={
args="(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)",
args="(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col)",
argsT={
[1]={
name="self",
@@ -1273,7 +1273,7 @@ local t={
name="col",
type="ImU32"}},
argsoriginal="(const ImVec2* points,int num_points,ImU32 col)",
call_args="(points,num_points,col)",
call_args="(reinterpret_cast<const ImVec2*>(points),num_points,col)",
cimguiname="ImDrawList_AddConvexPolyFilled",
defaults={},
funcname="AddConvexPolyFilled",
@@ -1607,7 +1607,7 @@ local t={
["(const ImVec2,float,ImU32,int)"]=nil},
ImDrawList_AddPolyline={
[1]={
args="(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
args="(ImDrawList* self,const ImVec2_c* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
argsT={
[1]={
name="self",
@@ -1628,7 +1628,7 @@ local t={
name="thickness",
type="float"}},
argsoriginal="(const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness)",
call_args="(points,num_points,col,flags,thickness)",
call_args="(reinterpret_cast<const ImVec2*>(points),num_points,col,flags,thickness)",
cimguiname="ImDrawList_AddPolyline",
defaults={},
funcname="AddPolyline",
@@ -9763,8 +9763,9 @@ local t={
defaults={},
funcname="AsVec4",
location="imgui_internal:619",
nonUDT=2,
ov_cimguiname="ImRect_AsVec4",
ret="const ImVec4*",
ret="const ImVec4_c*",
retref="&",
signature="()const",
stname="ImRect"},
@@ -16153,7 +16154,7 @@ local t={
["(ImGuiID,ImGuiDir,float,ImGuiID*,ImGuiID*)"]=nil},
igDockContextCalcDropPosForDocking={
[1]={
args="(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2* out_pos)",
args="(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2_c* out_pos)",
argsT={
[1]={
name="target",
@@ -16177,7 +16178,7 @@ local t={
name="out_pos",
type="ImVec2*"}},
argsoriginal="(ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload_window,ImGuiDockNode* payload_node,ImGuiDir split_dir,bool split_outer,ImVec2* out_pos)",
call_args="(target,target_node,payload_window,payload_node,split_dir,split_outer,out_pos)",
call_args="(target,target_node,payload_window,payload_node,split_dir,split_outer,reinterpret_cast<ImVec2*>(out_pos))",
cimguiname="igDockContextCalcDropPosForDocking",
defaults={},
funcname="DockContextCalcDropPosForDocking",
@@ -19836,8 +19837,9 @@ local t={
funcname="GetStyleColorVec4",
location="imgui:557",
namespace="ImGui",
nonUDT=2,
ov_cimguiname="igGetStyleColorVec4",
ret="const ImVec4*",
ret="const ImVec4_c*",
retref="&",
signature="(ImGuiCol)",
stname=""},
@@ -21624,7 +21626,7 @@ local t={
["()"]=nil},
igImFontAtlasGetMouseCursorTexData={
[1]={
args="(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
args="(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2_c* out_offset,ImVec2_c* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
argsT={
[1]={
name="atlas",
@@ -21645,7 +21647,7 @@ local t={
name="out_uv_fill",
type="ImVec2[2]"}},
argsoriginal="(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])",
call_args="(atlas,cursor_type,out_offset,out_size,out_uv_border,out_uv_fill)",
call_args="(atlas,cursor_type,reinterpret_cast<ImVec2*>(out_offset),reinterpret_cast<ImVec2*>(out_size),out_uv_border,out_uv_fill)",
cimguiname="igImFontAtlasGetMouseCursorTexData",
defaults={},
funcname="ImFontAtlasGetMouseCursorTexData",
@@ -22223,7 +22225,7 @@ local t={
["(ImFontAtlas*,int,bool)"]=nil},
igImFontCalcTextSizeEx={
[1]={
args="(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2* out_offset,ImDrawTextFlags flags)",
args="(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2_c* out_offset,ImDrawTextFlags flags)",
argsT={
[1]={
name="font",
@@ -22256,7 +22258,7 @@ local t={
name="flags",
type="ImDrawTextFlags"}},
argsoriginal="(ImFont* font,float size,float max_width,float wrap_width,const char* text_begin,const char* text_end_display,const char* text_end,const char** out_remaining,ImVec2* out_offset,ImDrawTextFlags flags)",
call_args="(font,size,max_width,wrap_width,text_begin,text_end_display,text_end,out_remaining,out_offset,flags)",
call_args="(font,size,max_width,wrap_width,text_begin,text_end_display,text_end,out_remaining,reinterpret_cast<ImVec2*>(out_offset),flags)",
cimguiname="igImFontCalcTextSizeEx",
conv="ImVec2",
defaults={},
@@ -25605,13 +25607,13 @@ local t={
["(ImGuiKey)"]=nil},
igIsMousePosValid={
[1]={
args="(const ImVec2* mouse_pos)",
args="(const ImVec2_c* mouse_pos)",
argsT={
[1]={
name="mouse_pos",
type="const ImVec2*"}},
argsoriginal="(const ImVec2* mouse_pos=((void*)0))",
call_args="(mouse_pos)",
call_args="(reinterpret_cast<const ImVec2*>(mouse_pos))",
cimguiname="igIsMousePosValid",
defaults={
mouse_pos="NULL"},
@@ -26386,7 +26388,7 @@ local t={
["()"]=nil},
igLogRenderedText={
[1]={
args="(const ImVec2* ref_pos,const char* text,const char* text_end)",
args="(const ImVec2_c* ref_pos,const char* text,const char* text_end)",
argsT={
[1]={
name="ref_pos",
@@ -26398,7 +26400,7 @@ local t={
name="text_end",
type="const char*"}},
argsoriginal="(const ImVec2* ref_pos,const char* text,const char* text_end=((void*)0))",
call_args="(ref_pos,text,text_end)",
call_args="(reinterpret_cast<const ImVec2*>(ref_pos),text,text_end)",
cimguiname="igLogRenderedText",
defaults={
text_end="NULL"},
@@ -28754,7 +28756,7 @@ local t={
["(ImVec2,const char*,const char*,bool)"]=nil},
igRenderTextClipped={
[1]={
args="(const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
args="(const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2_c* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
argsT={
[1]={
name="pos_min",
@@ -28778,7 +28780,7 @@ local t={
name="clip_rect",
type="const ImRect*"}},
argsoriginal="(const ImVec2& pos_min,const ImVec2& pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2& align=ImVec2(0,0),const ImRect* clip_rect=((void*)0))",
call_args="(ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,text_size_if_known,ConvertToCPP_ImVec2(align),clip_rect)",
call_args="(ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known),ConvertToCPP_ImVec2(align),clip_rect)",
cimguiname="igRenderTextClipped",
defaults={
align="ImVec2(0,0)",
@@ -28793,7 +28795,7 @@ local t={
["(const ImVec2,const ImVec2,const char*,const char*,const ImVec2*,const ImVec2,const ImRect*)"]=nil},
igRenderTextClippedEx={
[1]={
args="(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
args="(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,const char* text,const char* text_end,const ImVec2_c* text_size_if_known,const ImVec2_c align,const ImRect* clip_rect)",
argsT={
[1]={
name="draw_list",
@@ -28820,7 +28822,7 @@ local t={
name="clip_rect",
type="const ImRect*"}},
argsoriginal="(ImDrawList* draw_list,const ImVec2& pos_min,const ImVec2& pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2& align=ImVec2(0,0),const ImRect* clip_rect=((void*)0))",
call_args="(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,text_size_if_known,ConvertToCPP_ImVec2(align),clip_rect)",
call_args="(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known),ConvertToCPP_ImVec2(align),clip_rect)",
cimguiname="igRenderTextClippedEx",
defaults={
align="ImVec2(0,0)",
@@ -28835,7 +28837,7 @@ local t={
["(ImDrawList*,const ImVec2,const ImVec2,const char*,const char*,const ImVec2*,const ImVec2,const ImRect*)"]=nil},
igRenderTextEllipsis={
[1]={
args="(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known)",
args="(ImDrawList* draw_list,const ImVec2_c pos_min,const ImVec2_c pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2_c* text_size_if_known)",
argsT={
[1]={
name="draw_list",
@@ -28859,7 +28861,7 @@ local t={
name="text_size_if_known",
type="const ImVec2*"}},
argsoriginal="(ImDrawList* draw_list,const ImVec2& pos_min,const ImVec2& pos_max,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known)",
call_args="(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),ellipsis_max_x,text,text_end,text_size_if_known)",
call_args="(draw_list,ConvertToCPP_ImVec2(pos_min),ConvertToCPP_ImVec2(pos_max),ellipsis_max_x,text,text_end,reinterpret_cast<const ImVec2*>(text_size_if_known))",
cimguiname="igRenderTextEllipsis",
defaults={},
funcname="RenderTextEllipsis",