From 18af68901e7b8608f3c69a5b2993610c03317083 Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Fri, 4 Sep 2020 10:53:15 +0200 Subject: [PATCH] generation with new recursive parser --- cimgui.cpp | 4 +- cimgui.h | 110 +++++++++++++++------------- generator/output/cimgui.cpp | 4 +- generator/output/cimgui.h | 110 +++++++++++++++------------- generator/output/definitions.json | 7 +- generator/output/definitions.lua | 16 ++-- generator/output/typedefs_dict.json | 4 + generator/output/typedefs_dict.lua | 4 + 8 files changed, 139 insertions(+), 120 deletions(-) diff --git a/cimgui.cpp b/cimgui.cpp index 1f99685..55a0f8f 100644 --- a/cimgui.cpp +++ b/cimgui.cpp @@ -1761,9 +1761,9 @@ CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a) { return self->SetHSV(h,s,v,a); } -CIMGUI_API void ImColor_HSV(ImColor *pOut,ImColor* self,float h,float s,float v,float a) +CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a) { - *pOut = self->HSV(h,s,v,a); + *pOut = ImColor::HSV(h,s,v,a); } CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void) { diff --git a/cimgui.h b/cimgui.h index 2772c80..64ff8e2 100644 --- a/cimgui.h +++ b/cimgui.h @@ -42,16 +42,15 @@ typedef unsigned __int64 ImU64; #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS -typedef struct ImGuiStoragePair ImGuiStoragePair; -typedef struct ImGuiTextRange ImGuiTextRange; typedef struct ImGuiPtrOrIndex ImGuiPtrOrIndex; typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; typedef struct ImGuiDataTypeTempStorage ImGuiDataTypeTempStorage; typedef struct ImVec2ih ImVec2ih; typedef struct ImVec1 ImVec1; -typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect; -typedef struct ImVec4 ImVec4; -typedef struct ImVec2 ImVec2; +typedef struct StbTexteditRow StbTexteditRow; +typedef struct STB_TexteditState STB_TexteditState; +typedef struct StbUndoState StbUndoState; +typedef struct StbUndoRecord StbUndoRecord; typedef struct ImGuiWindowSettings ImGuiWindowSettings; typedef struct ImGuiWindowTempData ImGuiWindowTempData; typedef struct ImGuiWindow ImGuiWindow; @@ -74,6 +73,11 @@ typedef struct ImGuiColorMod ImGuiColorMod; typedef struct ImDrawDataBuilder ImDrawDataBuilder; typedef struct ImRect ImRect; typedef struct ImBitVector ImBitVector; +typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect; +typedef struct ImGuiStoragePair ImGuiStoragePair; +typedef struct ImGuiTextRange ImGuiTextRange; +typedef struct ImVec4 ImVec4; +typedef struct ImVec2 ImVec2; typedef struct ImGuiTextFilter ImGuiTextFilter; typedef struct ImGuiTextBuffer ImGuiTextBuffer; typedef struct ImGuiStyle ImGuiStyle; @@ -244,41 +248,6 @@ typedef struct ImVector_char {int Size;int Capacity;char* Data;} ImVector_char; typedef struct ImVector_ImGuiWindowSettings {int Size;int Capacity;ImGuiWindowSettings* Data;} ImVector_ImGuiWindowSettings; typedef struct ImChunkStream_ImGuiWindowSettings {ImVector_ImGuiWindowSettings Buf;} ImChunkStream_ImGuiWindowSettings; -typedef struct -{ - int where; - int insert_length; - int delete_length; - int char_storage; -} StbUndoRecord; -typedef struct -{ - StbUndoRecord undo_rec [99]; - ImWchar undo_char[999]; - short undo_point, redo_point; - int undo_char_point, redo_char_point; -} StbUndoState; -typedef struct -{ - int cursor; - int select_start; - int select_end; - unsigned char insert_mode; - 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; -} STB_TexteditState; -typedef struct -{ - float x0,x1; - float baseline_y_delta; - float ymin,ymax; - int num_chars; -} StbTexteditRow; struct ImVec2 { float x, y; @@ -860,6 +829,11 @@ struct ImGuiTextFilter ImVector_ImGuiTextRange Filters; int CountGrep; }; +struct ImGuiTextRange +{ + const char* b; + const char* e; +}; struct ImGuiTextBuffer { ImVector_char Buf; @@ -870,6 +844,11 @@ struct ImGuiStorage }; typedef struct ImVector_ImGuiTabBar {int Size;int Capacity;ImGuiTabBar* Data;} ImVector_ImGuiTabBar; typedef struct ImPool_ImGuiTabBar {ImVector_ImGuiTabBar Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_ImGuiTabBar; +struct ImGuiStoragePair +{ + ImGuiID key; + union { int val_i; float val_f; void* val_p; }; +}; struct ImGuiListClipper { int DisplayStart, DisplayEnd; @@ -1045,6 +1024,41 @@ struct ImFont int MetricsTotalSurface; ImU8 Used4kPagesMap[(0xFFFF +1)/4096/8]; }; +struct StbUndoRecord +{ + int where; + int insert_length; + int delete_length; + int char_storage; +}; +struct StbUndoState +{ + StbUndoRecord undo_rec [99]; + ImWchar 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; + 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; +}; +struct StbTexteditRow +{ + float x0,x1; + float baseline_y_delta; + float ymin,ymax; + int num_chars; +}; struct ImVec1 { float x; @@ -1778,16 +1792,6 @@ struct ImGuiTabBar ImVec2 FramePadding; ImGuiTextBuffer TabsNames; }; -struct ImGuiTextRange -{ - const char* b; - const char* e; -}; -struct ImGuiStoragePair -{ - ImGuiID key; - union { int val_i; float val_f; void* val_p; }; -}; #else struct GLFWwindow; struct SDL_Window; @@ -1796,7 +1800,11 @@ typedef union SDL_Event SDL_Event; #ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS typedef ImGuiStorage::ImGuiStoragePair ImGuiStoragePair; +typedef ImStb::StbUndoState StbUndoState; +typedef ImStb::StbUndoRecord StbUndoRecord; typedef ImGuiTextFilter::ImGuiTextRange ImGuiTextRange; +typedef ImStb::STB_TexteditState STB_TexteditState; +typedef ImStb::StbTexteditRow StbTexteditRow; typedef ImVector ImVector_float; typedef ImVector ImVector_ImWchar; typedef ImVector ImVector_ImDrawVert; @@ -2261,7 +2269,7 @@ CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba); CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a); CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col); CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a); -CIMGUI_API void ImColor_HSV(ImColor *pOut,ImColor* self,float h,float s,float v,float a); +CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a); CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void); CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self); CIMGUI_API ImDrawListSplitter* ImDrawListSplitter_ImDrawListSplitter(void); diff --git a/generator/output/cimgui.cpp b/generator/output/cimgui.cpp index 1f99685..55a0f8f 100644 --- a/generator/output/cimgui.cpp +++ b/generator/output/cimgui.cpp @@ -1761,9 +1761,9 @@ CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a) { return self->SetHSV(h,s,v,a); } -CIMGUI_API void ImColor_HSV(ImColor *pOut,ImColor* self,float h,float s,float v,float a) +CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a) { - *pOut = self->HSV(h,s,v,a); + *pOut = ImColor::HSV(h,s,v,a); } CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void) { diff --git a/generator/output/cimgui.h b/generator/output/cimgui.h index 2772c80..64ff8e2 100644 --- a/generator/output/cimgui.h +++ b/generator/output/cimgui.h @@ -42,16 +42,15 @@ typedef unsigned __int64 ImU64; #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS -typedef struct ImGuiStoragePair ImGuiStoragePair; -typedef struct ImGuiTextRange ImGuiTextRange; typedef struct ImGuiPtrOrIndex ImGuiPtrOrIndex; typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; typedef struct ImGuiDataTypeTempStorage ImGuiDataTypeTempStorage; typedef struct ImVec2ih ImVec2ih; typedef struct ImVec1 ImVec1; -typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect; -typedef struct ImVec4 ImVec4; -typedef struct ImVec2 ImVec2; +typedef struct StbTexteditRow StbTexteditRow; +typedef struct STB_TexteditState STB_TexteditState; +typedef struct StbUndoState StbUndoState; +typedef struct StbUndoRecord StbUndoRecord; typedef struct ImGuiWindowSettings ImGuiWindowSettings; typedef struct ImGuiWindowTempData ImGuiWindowTempData; typedef struct ImGuiWindow ImGuiWindow; @@ -74,6 +73,11 @@ typedef struct ImGuiColorMod ImGuiColorMod; typedef struct ImDrawDataBuilder ImDrawDataBuilder; typedef struct ImRect ImRect; typedef struct ImBitVector ImBitVector; +typedef struct ImFontAtlasCustomRect ImFontAtlasCustomRect; +typedef struct ImGuiStoragePair ImGuiStoragePair; +typedef struct ImGuiTextRange ImGuiTextRange; +typedef struct ImVec4 ImVec4; +typedef struct ImVec2 ImVec2; typedef struct ImGuiTextFilter ImGuiTextFilter; typedef struct ImGuiTextBuffer ImGuiTextBuffer; typedef struct ImGuiStyle ImGuiStyle; @@ -244,41 +248,6 @@ typedef struct ImVector_char {int Size;int Capacity;char* Data;} ImVector_char; typedef struct ImVector_ImGuiWindowSettings {int Size;int Capacity;ImGuiWindowSettings* Data;} ImVector_ImGuiWindowSettings; typedef struct ImChunkStream_ImGuiWindowSettings {ImVector_ImGuiWindowSettings Buf;} ImChunkStream_ImGuiWindowSettings; -typedef struct -{ - int where; - int insert_length; - int delete_length; - int char_storage; -} StbUndoRecord; -typedef struct -{ - StbUndoRecord undo_rec [99]; - ImWchar undo_char[999]; - short undo_point, redo_point; - int undo_char_point, redo_char_point; -} StbUndoState; -typedef struct -{ - int cursor; - int select_start; - int select_end; - unsigned char insert_mode; - 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; -} STB_TexteditState; -typedef struct -{ - float x0,x1; - float baseline_y_delta; - float ymin,ymax; - int num_chars; -} StbTexteditRow; struct ImVec2 { float x, y; @@ -860,6 +829,11 @@ struct ImGuiTextFilter ImVector_ImGuiTextRange Filters; int CountGrep; }; +struct ImGuiTextRange +{ + const char* b; + const char* e; +}; struct ImGuiTextBuffer { ImVector_char Buf; @@ -870,6 +844,11 @@ struct ImGuiStorage }; typedef struct ImVector_ImGuiTabBar {int Size;int Capacity;ImGuiTabBar* Data;} ImVector_ImGuiTabBar; typedef struct ImPool_ImGuiTabBar {ImVector_ImGuiTabBar Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_ImGuiTabBar; +struct ImGuiStoragePair +{ + ImGuiID key; + union { int val_i; float val_f; void* val_p; }; +}; struct ImGuiListClipper { int DisplayStart, DisplayEnd; @@ -1045,6 +1024,41 @@ struct ImFont int MetricsTotalSurface; ImU8 Used4kPagesMap[(0xFFFF +1)/4096/8]; }; +struct StbUndoRecord +{ + int where; + int insert_length; + int delete_length; + int char_storage; +}; +struct StbUndoState +{ + StbUndoRecord undo_rec [99]; + ImWchar 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; + 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; +}; +struct StbTexteditRow +{ + float x0,x1; + float baseline_y_delta; + float ymin,ymax; + int num_chars; +}; struct ImVec1 { float x; @@ -1778,16 +1792,6 @@ struct ImGuiTabBar ImVec2 FramePadding; ImGuiTextBuffer TabsNames; }; -struct ImGuiTextRange -{ - const char* b; - const char* e; -}; -struct ImGuiStoragePair -{ - ImGuiID key; - union { int val_i; float val_f; void* val_p; }; -}; #else struct GLFWwindow; struct SDL_Window; @@ -1796,7 +1800,11 @@ typedef union SDL_Event SDL_Event; #ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS typedef ImGuiStorage::ImGuiStoragePair ImGuiStoragePair; +typedef ImStb::StbUndoState StbUndoState; +typedef ImStb::StbUndoRecord StbUndoRecord; typedef ImGuiTextFilter::ImGuiTextRange ImGuiTextRange; +typedef ImStb::STB_TexteditState STB_TexteditState; +typedef ImStb::StbTexteditRow StbTexteditRow; typedef ImVector ImVector_float; typedef ImVector ImVector_ImWchar; typedef ImVector ImVector_ImDrawVert; @@ -2261,7 +2269,7 @@ CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba); CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a); CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col); CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a); -CIMGUI_API void ImColor_HSV(ImColor *pOut,ImColor* self,float h,float s,float v,float a); +CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a); CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void); CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self); CIMGUI_API ImDrawListSplitter* ImDrawListSplitter_ImDrawListSplitter(void); diff --git a/generator/output/definitions.json b/generator/output/definitions.json index 9a8e54a..efe461a 100644 --- a/generator/output/definitions.json +++ b/generator/output/definitions.json @@ -362,16 +362,12 @@ ], "ImColor_HSV": [ { - "args": "(ImColor *pOut,ImColor* self,float h,float s,float v,float a)", + "args": "(ImColor *pOut,float h,float s,float v,float a)", "argsT": [ { "name": "pOut", "type": "ImColor*" }, - { - "name": "self", - "type": "ImColor*" - }, { "name": "h", "type": "float" @@ -396,6 +392,7 @@ "a": "1.0f" }, "funcname": "HSV", + "is_static_function": true, "location": "imgui", "nonUDT": 1, "ov_cimguiname": "ImColor_HSV", diff --git a/generator/output/definitions.lua b/generator/output/definitions.lua index 63f77d1..c53d1a4 100644 --- a/generator/output/definitions.lua +++ b/generator/output/definitions.lua @@ -308,32 +308,30 @@ defs["ImChunkStream_size"][1]["templated"] = true defs["ImChunkStream_size"]["()const"] = defs["ImChunkStream_size"][1] defs["ImColor_HSV"] = {} defs["ImColor_HSV"][1] = {} -defs["ImColor_HSV"][1]["args"] = "(ImColor *pOut,ImColor* self,float h,float s,float v,float a)" +defs["ImColor_HSV"][1]["args"] = "(ImColor *pOut,float h,float s,float v,float a)" defs["ImColor_HSV"][1]["argsT"] = {} defs["ImColor_HSV"][1]["argsT"][1] = {} defs["ImColor_HSV"][1]["argsT"][1]["name"] = "pOut" defs["ImColor_HSV"][1]["argsT"][1]["type"] = "ImColor*" defs["ImColor_HSV"][1]["argsT"][2] = {} -defs["ImColor_HSV"][1]["argsT"][2]["name"] = "self" -defs["ImColor_HSV"][1]["argsT"][2]["type"] = "ImColor*" +defs["ImColor_HSV"][1]["argsT"][2]["name"] = "h" +defs["ImColor_HSV"][1]["argsT"][2]["type"] = "float" defs["ImColor_HSV"][1]["argsT"][3] = {} -defs["ImColor_HSV"][1]["argsT"][3]["name"] = "h" +defs["ImColor_HSV"][1]["argsT"][3]["name"] = "s" defs["ImColor_HSV"][1]["argsT"][3]["type"] = "float" defs["ImColor_HSV"][1]["argsT"][4] = {} -defs["ImColor_HSV"][1]["argsT"][4]["name"] = "s" +defs["ImColor_HSV"][1]["argsT"][4]["name"] = "v" defs["ImColor_HSV"][1]["argsT"][4]["type"] = "float" defs["ImColor_HSV"][1]["argsT"][5] = {} -defs["ImColor_HSV"][1]["argsT"][5]["name"] = "v" +defs["ImColor_HSV"][1]["argsT"][5]["name"] = "a" defs["ImColor_HSV"][1]["argsT"][5]["type"] = "float" -defs["ImColor_HSV"][1]["argsT"][6] = {} -defs["ImColor_HSV"][1]["argsT"][6]["name"] = "a" -defs["ImColor_HSV"][1]["argsT"][6]["type"] = "float" defs["ImColor_HSV"][1]["argsoriginal"] = "(float h,float s,float v,float a=1.0f)" defs["ImColor_HSV"][1]["call_args"] = "(h,s,v,a)" defs["ImColor_HSV"][1]["cimguiname"] = "ImColor_HSV" defs["ImColor_HSV"][1]["defaults"] = {} defs["ImColor_HSV"][1]["defaults"]["a"] = "1.0f" defs["ImColor_HSV"][1]["funcname"] = "HSV" +defs["ImColor_HSV"][1]["is_static_function"] = true defs["ImColor_HSV"][1]["location"] = "imgui" defs["ImColor_HSV"][1]["nonUDT"] = 1 defs["ImColor_HSV"][1]["ov_cimguiname"] = "ImColor_HSV" diff --git a/generator/output/typedefs_dict.json b/generator/output/typedefs_dict.json index 0620457..18d0d2c 100644 --- a/generator/output/typedefs_dict.json +++ b/generator/output/typedefs_dict.json @@ -115,6 +115,10 @@ "ImWchar": "ImWchar16", "ImWchar16": "unsigned short", "ImWchar32": "unsigned int", + "STB_TexteditState": "struct STB_TexteditState", + "StbTexteditRow": "struct StbTexteditRow", + "StbUndoRecord": "struct StbUndoRecord", + "StbUndoState": "struct StbUndoState", "const_iterator": "const value_type*", "iterator": "value_type*", "value_type": "T" diff --git a/generator/output/typedefs_dict.lua b/generator/output/typedefs_dict.lua index f8d9445..6a84e14 100644 --- a/generator/output/typedefs_dict.lua +++ b/generator/output/typedefs_dict.lua @@ -115,6 +115,10 @@ defs["ImVec4"] = "struct ImVec4" defs["ImWchar"] = "ImWchar16" defs["ImWchar16"] = "unsigned short" defs["ImWchar32"] = "unsigned int" +defs["STB_TexteditState"] = "struct STB_TexteditState" +defs["StbTexteditRow"] = "struct StbTexteditRow" +defs["StbUndoRecord"] = "struct StbUndoRecord" +defs["StbUndoState"] = "struct StbUndoState" defs["const_iterator"] = "const value_type*" defs["iterator"] = "value_type*" defs["value_type"] = "T"