From 36e0d7a41e0dcc4cccaceb9e74c624d558376391 Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Wed, 27 Jan 2021 10:21:07 +0100 Subject: [PATCH 1/3] generator: take care of FLT_MIN --- generator/cimgui_template.cpp | 5 +++++ generator/cimgui_template.h | 2 ++ generator/generator.lua | 6 ++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/generator/cimgui_template.cpp b/generator/cimgui_template.cpp index c6b2ffa..ef981e0 100644 --- a/generator/cimgui_template.cpp +++ b/generator/cimgui_template.cpp @@ -35,6 +35,11 @@ CIMGUI_API float igGET_FLT_MAX() return FLT_MAX; } +CIMGUI_API float igGET_FLT_MIN() +{ + return FLT_MIN; +} + CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() { diff --git a/generator/cimgui_template.h b/generator/cimgui_template.h index 6d5e879..73c483a 100644 --- a/generator/cimgui_template.h +++ b/generator/cimgui_template.h @@ -55,6 +55,8 @@ CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...); //for getting FLT_MAX in bindings CIMGUI_API float igGET_FLT_MAX(); +//for getting FLT_MIN in bindings +CIMGUI_API float igGET_FLT_MIN(); CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); diff --git a/generator/generator.lua b/generator/generator.lua index 7863010..74a7925 100644 --- a/generator/generator.lua +++ b/generator/generator.lua @@ -168,13 +168,15 @@ local function get_defines(t) end return ret end - --subtitution of FLT_MAX value for FLT_MAX + --subtitution of FLT_MAX value for FLT_MAX or FLT_MIN local function set_defines(fdefs) for k,defT in pairs(fdefs) do for i,def in ipairs(defT) do for name,default in pairs(def.defaults) do if default == gdefines.FLT_MAX then def.defaults[name] = "FLT_MAX" + elseif default == gdefines.FLT_MIN then + def.defaults[name] = "FLT_MIN" end end end @@ -330,7 +332,7 @@ end -------------------------------------------------------- --get imgui.h version and IMGUI_HAS_DOCK-------------------------- --get some defines wont work for cl ---------------- -gdefines = get_defines{"IMGUI_VERSION","FLT_MAX","IMGUI_HAS_DOCK"} +gdefines = get_defines{"IMGUI_VERSION","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK"} --this will work for cl local pipe,err = io.open("../imgui/imgui.h","r") if not pipe then From c4d1f5423efd9487e7cdc0aa77ac2e12cf96f3f9 Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Wed, 27 Jan 2021 10:48:25 +0100 Subject: [PATCH 2/3] generator: replace FLT_MIN in substring --- generator/generator.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/generator/generator.lua b/generator/generator.lua index 74a7925..670a419 100644 --- a/generator/generator.lua +++ b/generator/generator.lua @@ -170,13 +170,14 @@ local function get_defines(t) end --subtitution of FLT_MAX value for FLT_MAX or FLT_MIN local function set_defines(fdefs) + local FLT_MINpat = gdefines.FLT_MIN:gsub("([%.%-])","%%%1") for k,defT in pairs(fdefs) do for i,def in ipairs(defT) do for name,default in pairs(def.defaults) do if default == gdefines.FLT_MAX then def.defaults[name] = "FLT_MAX" - elseif default == gdefines.FLT_MIN then - def.defaults[name] = "FLT_MIN" + elseif default:match(FLT_MINpat) then + def.defaults[name] = default:gsub(FLT_MINpat,"FLT_MIN") end end end From 86112e0b453346ef1ecab85acb38034526d19ff7 Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Wed, 27 Jan 2021 10:48:46 +0100 Subject: [PATCH 3/3] generation --- cimgui.cpp | 5 +++++ cimgui.h | 2 ++ generator/output/definitions.json | 2 +- generator/output/definitions.lua | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cimgui.cpp b/cimgui.cpp index a0bbd59..42e780e 100644 --- a/cimgui.cpp +++ b/cimgui.cpp @@ -4680,6 +4680,11 @@ CIMGUI_API float igGET_FLT_MAX() return FLT_MAX; } +CIMGUI_API float igGET_FLT_MIN() +{ + return FLT_MIN; +} + CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() { diff --git a/cimgui.h b/cimgui.h index b6f07ae..dcc86c1 100644 --- a/cimgui.h +++ b/cimgui.h @@ -3704,6 +3704,8 @@ CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...); //for getting FLT_MAX in bindings CIMGUI_API float igGET_FLT_MAX(); +//for getting FLT_MIN in bindings +CIMGUI_API float igGET_FLT_MIN(); CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); diff --git a/generator/output/definitions.json b/generator/output/definitions.json index 84d3978..22c33bd 100644 --- a/generator/output/definitions.json +++ b/generator/output/definitions.json @@ -25027,7 +25027,7 @@ "cimguiname": "igProgressBar", "defaults": { "overlay": "NULL", - "size_arg": "ImVec2(-1.17549435082228750796873653722224568e-38F,0)" + "size_arg": "ImVec2(-FLT_MIN,0)" }, "funcname": "ProgressBar", "location": "imgui:481", diff --git a/generator/output/definitions.lua b/generator/output/definitions.lua index 5309f43..c1a5f5d 100644 --- a/generator/output/definitions.lua +++ b/generator/output/definitions.lua @@ -21219,7 +21219,7 @@ defs["igProgressBar"][1]["call_args"] = "(fraction,size_arg,overlay)" defs["igProgressBar"][1]["cimguiname"] = "igProgressBar" defs["igProgressBar"][1]["defaults"] = {} defs["igProgressBar"][1]["defaults"]["overlay"] = "NULL" -defs["igProgressBar"][1]["defaults"]["size_arg"] = "ImVec2(-1.17549435082228750796873653722224568e-38F,0)" +defs["igProgressBar"][1]["defaults"]["size_arg"] = "ImVec2(-FLT_MIN,0)" defs["igProgressBar"][1]["funcname"] = "ProgressBar" defs["igProgressBar"][1]["location"] = "imgui:481" defs["igProgressBar"][1]["namespace"] = "ImGui"