From ab3699df272cb2c6044872777f3919c39a254fe6 Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Wed, 25 Mar 2020 12:21:04 +0100 Subject: [PATCH] take care of IMGUI_USE_WCHAR32 --- README.md | 2 +- cimgui.cpp | 35 ++++++++++++++++++++++++++++------- cimgui.h | 16 ++++++++++++---- generator/cimgui_template.cpp | 35 ++++++++++++++++++++++++++++------- generator/cimgui_template.h | 16 ++++++++++++---- generator/output/cimgui.cpp | 35 ++++++++++++++++++++++++++++------- generator/output/cimgui.h | 16 ++++++++++++---- 7 files changed, 121 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 99ef23f..77c9ba7 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Notes: * you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download * you can use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC) or not use a compiler (experimental nocompiler option) at all. (this repo was done with gcc) * update `imgui` folder to the version you desire. -* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, cl or nocompiler and to choose desired implementations and if imgui_internal is generated or no. +* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, cl or nocompiler and to choose desired implementations and if imgui_internal is generated or not. * edit config_generator.lua for adding includes needed by your chosen implementations. * Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH. * as a result some files are generated: `cimgui.cpp` and `cimgui.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the implementations info. diff --git a/cimgui.cpp b/cimgui.cpp index 6a8b724..2914ca6 100644 --- a/cimgui.cpp +++ b/cimgui.cpp @@ -4255,24 +4255,45 @@ CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,floa ImGui::ColorConvertHSVtoRGB(h,s,v,*out_r,*out_g,*out_b); } -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create() { - return IM_NEW(ImVector) (); + return IM_NEW(ImVector) (); } -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self) +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self) { IM_DELETE(self); } -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p) { - IM_PLACEMENT_NEW(p) ImVector(); + IM_PLACEMENT_NEW(p) ImVector(); } -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p) { - p->~ImVector(); + p->~ImVector(); } +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create() +{ + return IM_NEW(ImVector) (); +} + +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self) +{ + IM_DELETE(self); +} + +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p) +{ + IM_PLACEMENT_NEW(p) ImVector(); +} +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p) +{ + p->~ImVector(); +} +#endif #ifdef IMGUI_HAS_DOCK diff --git a/cimgui.h b/cimgui.h index 2f62550..1f19117 100644 --- a/cimgui.h +++ b/cimgui.h @@ -2806,10 +2806,18 @@ CIMGUI_API float igGET_FLT_MAX(); CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v); CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b); -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self); -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create(); +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self); +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p); +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p); +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create(); +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self); +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p); +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p); +#endif + #endif //CIMGUI_INCLUDED diff --git a/generator/cimgui_template.cpp b/generator/cimgui_template.cpp index 8221343..8a119c6 100644 --- a/generator/cimgui_template.cpp +++ b/generator/cimgui_template.cpp @@ -40,24 +40,45 @@ CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,floa ImGui::ColorConvertHSVtoRGB(h,s,v,*out_r,*out_g,*out_b); } -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create() { - return IM_NEW(ImVector) (); + return IM_NEW(ImVector) (); } -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self) +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self) { IM_DELETE(self); } -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p) { - IM_PLACEMENT_NEW(p) ImVector(); + IM_PLACEMENT_NEW(p) ImVector(); } -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p) { - p->~ImVector(); + p->~ImVector(); } +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create() +{ + return IM_NEW(ImVector) (); +} + +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self) +{ + IM_DELETE(self); +} + +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p) +{ + IM_PLACEMENT_NEW(p) ImVector(); +} +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p) +{ + p->~ImVector(); +} +#endif #ifdef IMGUI_HAS_DOCK diff --git a/generator/cimgui_template.h b/generator/cimgui_template.h index 287d0d6..0161139 100644 --- a/generator/cimgui_template.h +++ b/generator/cimgui_template.h @@ -82,10 +82,18 @@ CIMGUI_API float igGET_FLT_MAX(); CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v); CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b); -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self); -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create(); +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self); +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p); +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p); +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create(); +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self); +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p); +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p); +#endif + #endif //CIMGUI_INCLUDED diff --git a/generator/output/cimgui.cpp b/generator/output/cimgui.cpp index 6a8b724..2914ca6 100644 --- a/generator/output/cimgui.cpp +++ b/generator/output/cimgui.cpp @@ -4255,24 +4255,45 @@ CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,floa ImGui::ColorConvertHSVtoRGB(h,s,v,*out_r,*out_g,*out_b); } -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create() +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create() { - return IM_NEW(ImVector) (); + return IM_NEW(ImVector) (); } -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self) +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self) { IM_DELETE(self); } -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p) { - IM_PLACEMENT_NEW(p) ImVector(); + IM_PLACEMENT_NEW(p) ImVector(); } -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p) { - p->~ImVector(); + p->~ImVector(); } +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create() +{ + return IM_NEW(ImVector) (); +} + +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self) +{ + IM_DELETE(self); +} + +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p) +{ + IM_PLACEMENT_NEW(p) ImVector(); +} +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p) +{ + p->~ImVector(); +} +#endif #ifdef IMGUI_HAS_DOCK diff --git a/generator/output/cimgui.h b/generator/output/cimgui.h index 2f62550..1f19117 100644 --- a/generator/output/cimgui.h +++ b/generator/output/cimgui.h @@ -2806,10 +2806,18 @@ CIMGUI_API float igGET_FLT_MAX(); CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,float *out_s,float *out_v); CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b); -CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); -CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self); -CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); -CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); +#ifndef IMGUI_USE_WCHAR32 +CIMGUI_API ImVector_ImWchar16* ImVector_ImWchar16_create(); +CIMGUI_API void ImVector_ImWchar16_destroy(ImVector_ImWchar16* self); +CIMGUI_API void ImVector_ImWchar16_Init(ImVector_ImWchar16* p); +CIMGUI_API void ImVector_ImWchar16_UnInit(ImVector_ImWchar16* p); +#else +CIMGUI_API ImVector_ImWchar32* ImVector_ImWchar32_create(); +CIMGUI_API void ImVector_ImWchar32_destroy(ImVector_ImWchar32* self); +CIMGUI_API void ImVector_ImWchar32_Init(ImVector_ImWchar32* p); +CIMGUI_API void ImVector_ImWchar32_UnInit(ImVector_ImWchar32* p); +#endif + #endif //CIMGUI_INCLUDED