From 2a4dcaf2a21c4c970fbcdcff06b1c05f7ff3b31b Mon Sep 17 00:00:00 2001 From: sonoro1234 Date: Wed, 17 Oct 2018 20:08:40 +0200 Subject: [PATCH] add constructors and destructor --- cimgui.cpp | 197 ++++++++++++++++++++++++++++++-- cimgui.h | 57 ++++++++-- generator/cimgui_template.cpp | 18 +++ generator/cimgui_template.h | 6 + generator/generator.lua | 95 +++++++++++----- generator/output/cimgui.cpp | 206 ++++++++++++++++++++++++++++++++++ generator/output/cimgui.h | 53 +++++++++ 7 files changed, 591 insertions(+), 41 deletions(-) diff --git a/cimgui.cpp b/cimgui.cpp index b32ae79..5012d94 100644 --- a/cimgui.cpp +++ b/cimgui.cpp @@ -5,6 +5,30 @@ #include "./imgui/imgui_internal.h" +CIMGUI_API ImVec2* ImVec2_ImVec2(void) +{ + return IM_NEW(ImVec2)(); +} +CIMGUI_API void ImVec2_destroy(ImVec2* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y) +{ + return IM_NEW(ImVec2)(_x,_y); +} +CIMGUI_API ImVec4* ImVec4_ImVec4(void) +{ + return IM_NEW(ImVec4)(); +} +CIMGUI_API void ImVec4_destroy(ImVec4* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w) +{ + return IM_NEW(ImVec4)(_x,_y,_z,_w); +} CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas) { return ImGui::CreateContext(shared_font_atlas); @@ -1374,6 +1398,14 @@ CIMGUI_API void igMemFree(void* ptr) { return ImGui::MemFree(ptr); } +CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void) +{ + return IM_NEW(ImGuiStyle)(); +} +CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor) { return self->ScaleAllSizes(scale_factor); @@ -1390,6 +1422,26 @@ CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self) { return self->ClearInputCharacters(); } +CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void) +{ + return IM_NEW(ImGuiIO)(); +} +CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void) +{ + return IM_NEW(ImGuiOnceUponAFrame)(); +} +CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter) +{ + return IM_NEW(ImGuiTextFilter)(default_filter); +} CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width) { return self->Draw(label,width); @@ -1410,6 +1462,18 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self) { return self->IsActive(); } +CIMGUI_API TextRange* TextRange_TextRange(void) +{ + return IM_NEW(TextRange)(); +} +CIMGUI_API void TextRange_destroy(TextRange* self) +{ + IM_DELETE(self); +} +CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e) +{ + return IM_NEW(TextRange)(_b,_e); +} CIMGUI_API const char* TextRange_begin(TextRange* self) { return self->begin(); @@ -1426,6 +1490,14 @@ CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRang { return self->split(separator,out); } +CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void) +{ + return IM_NEW(ImGuiTextBuffer)(); +} +CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self) +{ + IM_DELETE(self); +} CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self) { return self->begin(); @@ -1458,6 +1530,18 @@ CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,v { return self->appendfv(fmt,args); } +CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i) +{ + return IM_NEW(Pair)(_key,_val_i); +} +CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f) +{ + return IM_NEW(Pair)(_key,_val_f); +} +CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p) +{ + return IM_NEW(Pair)(_key,_val_p); +} CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self) { return self->Clear(); @@ -1518,6 +1602,14 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self) { return self->BuildSortByKey(); } +CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void) +{ + return IM_NEW(ImGuiInputTextCallbackData)(); +} +CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count) { return self->DeleteChars(pos,bytes_count); @@ -1530,6 +1622,14 @@ CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackDa { return self->HasSelection(); } +CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void) +{ + return IM_NEW(ImGuiPayload)(); +} +CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self) { return self->Clear(); @@ -1546,6 +1646,30 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self) { return self->IsDelivery(); } +CIMGUI_API ImColor* ImColor_ImColor(void) +{ + return IM_NEW(ImColor)(); +} +CIMGUI_API void ImColor_destroy(ImColor* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a) +{ + return IM_NEW(ImColor)(r,g,b,a); +} +CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba) +{ + return IM_NEW(ImColor)(rgba); +} +CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a) +{ + return IM_NEW(ImColor)(r,g,b,a); +} +CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col) +{ + return IM_NEW(ImColor)(col); +} CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a) { return self->SetHSV(h,s,v,a); @@ -1554,6 +1678,10 @@ CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a) { return self->HSV(h,s,v,a); } +CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height) +{ + return IM_NEW(ImGuiListClipper)(items_count,items_height); +} CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self) { return self->Step(); @@ -1566,6 +1694,18 @@ CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self) { return self->End(); } +CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void) +{ + return IM_NEW(ImDrawCmd)(); +} +CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data) +{ + return IM_NEW(ImDrawList)(shared_data); +} CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect) { return self->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect); @@ -1770,6 +1910,14 @@ CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self) { return self->UpdateTextureID(); } +CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void) +{ + return IM_NEW(ImDrawData)(); +} +CIMGUI_API void ImDrawData_destroy(ImDrawData* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImDrawData_Clear(ImDrawData* self) { return self->Clear(); @@ -1782,6 +1930,22 @@ CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc) { return self->ScaleClipRects(sc); } +CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void) +{ + return IM_NEW(ImFontConfig)(); +} +CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void) +{ + return IM_NEW(ImFontAtlas)(); +} +CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self) +{ + IM_DELETE(self); +} CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg) { return self->AddFont(font_cfg); @@ -1870,6 +2034,14 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self) { return self->GetGlyphRangesThai(); } +CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void) +{ + return IM_NEW(GlyphRangesBuilder)(); +} +CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self) +{ + IM_DELETE(self); +} CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n) { return self->GetBit(n); @@ -1894,6 +2066,14 @@ CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector { return self->BuildRanges(out_ranges); } +CIMGUI_API CustomRect* CustomRect_CustomRect(void) +{ + return IM_NEW(CustomRect)(); +} +CIMGUI_API void CustomRect_destroy(CustomRect* self) +{ + IM_DELETE(self); +} CIMGUI_API bool CustomRect_IsPacked(CustomRect* self) { return self->IsPacked(); @@ -1918,6 +2098,14 @@ CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCu { return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill); } +CIMGUI_API ImFont* ImFont_ImFont(void) +{ + return IM_NEW(ImFont)(); +} +CIMGUI_API void ImFont_destroy(ImFont* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImFont_ClearOutputData(ImFont* self) { return self->ClearOutputData(); @@ -2252,11 +2440,4 @@ CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) { p->~ImVector(); } -CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_create() -{ - return IM_NEW(GlyphRangesBuilder)(); -} -CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* p) -{ - IM_DELETE(p); -} \ No newline at end of file + diff --git a/cimgui.h b/cimgui.h index 48b62f9..33a9bfc 100644 --- a/cimgui.h +++ b/cimgui.h @@ -834,13 +834,14 @@ typedef ImVector ImVector_TextRange; typedef ImVector ImVector_ImWchar; #else //CIMGUI_DEFINE_ENUMS_AND_STRUCTS typedef ImVector ImVector_TextRange; -//typedef ImVector ImVector_ImWchar; -typedef struct { - int Size; - int Capacity; - ImWchar * Data; -} ImVector_ImWchar; +typedef ImVector ImVector_ImWchar; #endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS +CIMGUI_API ImVec2* ImVec2_ImVec2(void); +CIMGUI_API void ImVec2_destroy(ImVec2* self); +CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y); +CIMGUI_API ImVec4* ImVec4_ImVec4(void); +CIMGUI_API void ImVec4_destroy(ImVec4* self); +CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w); CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas); CIMGUI_API void igDestroyContext(ImGuiContext* ctx); CIMGUI_API ImGuiContext* igGetCurrentContext(void); @@ -1174,19 +1175,31 @@ CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size); CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data); CIMGUI_API void* igMemAlloc(size_t size); CIMGUI_API void igMemFree(void* ptr); +CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void); +CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self); CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor); CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c); CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars); CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self); +CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void); +CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self); +CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void); +CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self); +CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter); CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width); CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end); CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self); CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self); CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self); +CIMGUI_API TextRange* TextRange_TextRange(void); +CIMGUI_API void TextRange_destroy(TextRange* self); +CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e); CIMGUI_API const char* TextRange_begin(TextRange* self); CIMGUI_API const char* TextRange_end(TextRange* self); CIMGUI_API bool TextRange_empty(TextRange* self); CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out); +CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void); +CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self); CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self); CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self); CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self); @@ -1195,6 +1208,9 @@ CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self); CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity); CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self); CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args); +CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i); +CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f); +CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p); CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self); CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val); CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val); @@ -1210,18 +1226,32 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val); CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val); CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self); +CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void); +CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self); CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count); CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end); CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self); +CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void); +CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self); CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type); CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self); +CIMGUI_API ImColor* ImColor_ImColor(void); +CIMGUI_API void ImColor_destroy(ImColor* self); +CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a); +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 ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a); +CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height); CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self); CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height); CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self); +CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void); +CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self); +CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data); CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect); CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self); CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self); @@ -1273,9 +1303,15 @@ CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx); CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col); CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self); CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self); +CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void); +CIMGUI_API void ImDrawData_destroy(ImDrawData* self); CIMGUI_API void ImDrawData_Clear(ImDrawData* self); CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self); CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc); +CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void); +CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self); +CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void); +CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self); CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg); CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg); CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); @@ -1298,18 +1334,24 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* sel CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self); CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self); CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self); +CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void); +CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self); CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n); CIMGUI_API void GlyphRangesBuilder_SetBit(GlyphRangesBuilder* self,int n); CIMGUI_API void GlyphRangesBuilder_AddChar(GlyphRangesBuilder* self,ImWchar c); CIMGUI_API void GlyphRangesBuilder_AddText(GlyphRangesBuilder* self,const char* text,const char* text_end); CIMGUI_API void GlyphRangesBuilder_AddRanges(GlyphRangesBuilder* self,const ImWchar* ranges); CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector_ImWchar* out_ranges); +CIMGUI_API CustomRect* CustomRect_CustomRect(void); +CIMGUI_API void CustomRect_destroy(CustomRect* self); CIMGUI_API bool CustomRect_IsPacked(CustomRect* self); CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,unsigned int id,int width,int height); CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset); CIMGUI_API const CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index); CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const CustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max); CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]); +CIMGUI_API ImFont* ImFont_ImFont(void); +CIMGUI_API void ImFont_destroy(ImFont* self); CIMGUI_API void ImFont_ClearOutputData(ImFont* self); CIMGUI_API void ImFont_BuildLookupTable(ImFont* self); CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c); @@ -1387,8 +1429,7 @@ CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(); CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* p); CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); -CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_create(); -CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* p); + diff --git a/generator/cimgui_template.cpp b/generator/cimgui_template.cpp index 77756e4..26fadd0 100644 --- a/generator/cimgui_template.cpp +++ b/generator/cimgui_template.cpp @@ -41,3 +41,21 @@ 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() +{ + return IM_NEW(ImVector) (); +} +CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* p) +{ + IM_DELETE(p); +} +CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p) +{ + IM_PLACEMENT_NEW(p) ImVector(); +} +CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) +{ + p->~ImVector(); +} + diff --git a/generator/cimgui_template.h b/generator/cimgui_template.h index cc26d80..237d6bf 100644 --- a/generator/cimgui_template.h +++ b/generator/cimgui_template.h @@ -82,5 +82,11 @@ 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* p); +CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); +CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); + + diff --git a/generator/generator.lua b/generator/generator.lua index ef84ea2..1bc124c 100644 --- a/generator/generator.lua +++ b/generator/generator.lua @@ -792,7 +792,7 @@ local function ADDnonUDT(FP) defT2.retref = nil defsT[t.cimguiname][#defsT[t.cimguiname] + 1] = defT2 defsT[t.cimguiname][t.signature.."nonUDT"] = defT2 - table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT",cimguiname=t.cimguiname,call_args=call_args,ret =ret,comment=comment}) + table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT",cimguiname=t.cimguiname,call_args=call_args,ret =t.ret,comment=comment}) --converting to Simple type---------------------------------------------------- local defT3 = {} --first strings @@ -813,7 +813,7 @@ local function ADDnonUDT(FP) defT3.retref = nil defsT[t.cimguiname][#defsT[t.cimguiname] + 1] = defT3 defsT[t.cimguiname][t.signature.."nonUDT2"] = defT3 - table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT2",cimguiname=t.cimguiname,call_args=call_args,ret =ret,comment=comment}) + table.insert(newcdefs,{stname=t.stname,funcname=t.funcname,args=args,argsc=argscsinpars,signature=t.signature.."nonUDT2",cimguiname=t.cimguiname,call_args=call_args,ret =t.ret,comment=comment}) end end end @@ -1155,18 +1155,32 @@ local function func_header_generate(FP) local cimf = FP.defsT[t.cimguiname] local def = cimf[t.signature] local manual = get_manuals(def) - if not manual and def.ret then --not constructor - local addcoment = def.comment or "" + if not manual then + local addcoment = def.comment or "" local empty = def.args:match("^%(%)") --no args - if def.stname == "ImGui" or def.stname == "" then --ImGui namespace or top level - table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args)..";"..addcoment.."\n") - else - - --local imgui_stname = embeded_structs[def.stname] or def.stname - local imgui_stname = def.stname - local args = def.args:gsub("^%(","("..imgui_stname.."* self"..(empty and "" or ",")) - table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args..";"..addcoment.."\n") - end + if def.ret then --not constructor + if def.stname == "ImGui" or def.stname == "" then --ImGui namespace or top level + table.insert(outtab,"CIMGUI_API "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args)..";"..addcoment.."\n") + else + --local imgui_stname = embeded_structs[def.stname] or def.stname + local imgui_stname = def.stname + local args = def.args:gsub("^%(","("..imgui_stname.."* self"..(empty and "" or ",")) + table.insert(outtab,"CIMGUI_API "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args..";"..addcoment.."\n") + end + else --constructor + assert(def.stname ~= "ImGui" and def.stname ~= "","constructor without struct") + if not def.funcname:match("~") then --constructor + table.insert(outtab,"CIMGUI_API "..def.stname.."* "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args)..";"..addcoment.."\n") + if empty then + --make destructor also only once + local args = "("..def.stname.."* self)" + local fname = def.stname.."_destroy" + table.insert(outtab,"CIMGUI_API void "..fname..args..";"..addcoment.."\n") + end + else --destructor + --already done + end + end end else --not cimguiname table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub @@ -1226,13 +1240,13 @@ local function func_implementation(FP) table.insert(outtab," return ret2;\n") table.insert(outtab,"}\n") end - else + else --standard ImGui table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..def.args.."\n") table.insert(outtab,"{\n") table.insert(outtab," return "..castret..ptret.."ImGui::"..def.funcname..def.call_args..";\n") table.insert(outtab,"}\n") end - else + else -- stname local empty = def.args:match("^%(%)") --no args --local imgui_stname = embeded_structs[def.stname] or def.stname local imgui_stname = def.stname @@ -1268,13 +1282,33 @@ local function func_implementation(FP) table.insert(outtab," return ret2;\n") table.insert(outtab,"}\n") end - else + else --standard struct table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..(def.ov_cimguiname or def.cimguiname)..args.."\n") table.insert(outtab,"{\n") table.insert(outtab," return "..castret..ptret.."self->"..def.funcname..def.call_args..";\n") table.insert(outtab,"}\n") end end + elseif not manual and not def.ret then --constructor and destructors + assert(def.stname ~= "ImGui" and def.stname ~= "","constructor without struct") + local empty = def.args:match("^%(%)") --no args + if not def.funcname:match("~") then --constructor + table.insert(outtab,"CIMGUI_API "..def.stname.."* "..(def.ov_cimguiname or def.cimguiname)..(empty and "(void)" or def.args).."\n") + table.insert(outtab,"{\n") + table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n") + table.insert(outtab,"}\n") + if empty then + --do destructor only once + local args = "("..def.stname.."* self)" + local fname = def.stname.."_destroy" + table.insert(outtab,"CIMGUI_API void "..fname..args.."\n") + table.insert(outtab,"{\n") + table.insert(outtab," IM_DELETE(self);\n") + table.insert(outtab,"}\n") + end + else --destructor + --already done + end end until true end @@ -1504,7 +1538,7 @@ local function json_prepare(defs) end return defs end - +---[[ local json = require"json" save_data("./output/definitions.json",json.encode(json_prepare(pFP.defsT))) save_data("./output/structs_and_enums.json",json.encode(structs_and_enums_table)) @@ -1512,7 +1546,7 @@ save_data("./output/typedefs_dict.json",json.encode(typedefs_dict)) if iFP then save_data("./output/impl_definitions.json",json.encode(json_prepare(iFP.defsT))) end - +--]] copyfile("./output/cimgui.h", "../cimgui.h") copyfile("./output/cimgui.cpp", "../cimgui.cpp") print"all done!!" @@ -1520,26 +1554,37 @@ print"all done!!" ---dump some infos----------------------------------------------------------------------- ------------------------------------------------------------------------------------ print"//-------alltypes--------------------------------------------------------------------" -FP:dump_alltypes() +pFP:dump_alltypes() print"//embeded_structs---------------------------------------------------------------------------" -for k,v in pairs(FP.embeded_structs) do +for k,v in pairs(pFP.embeded_structs) do --print(k,v) io.write("typedef ",v," ",k,";\n") end print"//templates---------------------------------------------------------------------------" -for k,v in pairs(FP.ImVector_templates) do +for k,v in pairs(pFP.ImVector_templates) do --print(k,v) io.write("typedef ImVector<",k,"> ImVector_",k,";\n") end - +for k,v in pairs(pSTP.ImVector_templates) do + --print(k,v) + io.write("typedef ImVector<",k,"> ImVector_",k,";\n") +end +require"anima.utils" print"//constructors------------------------------------------------------------------" -for i,t in ipairs(FP.cdefs) do +for i,t in ipairs(pFP.cdefs) do if t.cimguiname and not t.ret then - print(t.cimguiname,"\t",t.signature,"\t",t.args,"\t",t.argsc,"\t",t.call_args,"\t",t.ret) + local cimf = pFP.defsT[t.cimguiname] + local def = cimf[t.signature] + if not def.ret then + print(t.cimguiname,"\t",t.signature,t.ret) + else + print"constructor error" + prtable(def) + end end end print"//-------------------------------------------------------------------------------------" -for i,t in ipairs(FP.cdefs) do +for i,t in ipairs(pFP.cdefs) do --print(t.cimguiname," ",t.funcname,"\t",t.signature,"\t",t.args,"\t",t.argsc,"\t",t.call_args,"\t",t.ret) end --------------------------------------------------------------------------------------------- diff --git a/generator/output/cimgui.cpp b/generator/output/cimgui.cpp index 4a9bbdf..5012d94 100644 --- a/generator/output/cimgui.cpp +++ b/generator/output/cimgui.cpp @@ -5,6 +5,30 @@ #include "./imgui/imgui_internal.h" +CIMGUI_API ImVec2* ImVec2_ImVec2(void) +{ + return IM_NEW(ImVec2)(); +} +CIMGUI_API void ImVec2_destroy(ImVec2* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y) +{ + return IM_NEW(ImVec2)(_x,_y); +} +CIMGUI_API ImVec4* ImVec4_ImVec4(void) +{ + return IM_NEW(ImVec4)(); +} +CIMGUI_API void ImVec4_destroy(ImVec4* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w) +{ + return IM_NEW(ImVec4)(_x,_y,_z,_w); +} CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas) { return ImGui::CreateContext(shared_font_atlas); @@ -1374,6 +1398,14 @@ CIMGUI_API void igMemFree(void* ptr) { return ImGui::MemFree(ptr); } +CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void) +{ + return IM_NEW(ImGuiStyle)(); +} +CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor) { return self->ScaleAllSizes(scale_factor); @@ -1390,6 +1422,26 @@ CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self) { return self->ClearInputCharacters(); } +CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void) +{ + return IM_NEW(ImGuiIO)(); +} +CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void) +{ + return IM_NEW(ImGuiOnceUponAFrame)(); +} +CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter) +{ + return IM_NEW(ImGuiTextFilter)(default_filter); +} CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width) { return self->Draw(label,width); @@ -1410,6 +1462,18 @@ CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self) { return self->IsActive(); } +CIMGUI_API TextRange* TextRange_TextRange(void) +{ + return IM_NEW(TextRange)(); +} +CIMGUI_API void TextRange_destroy(TextRange* self) +{ + IM_DELETE(self); +} +CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e) +{ + return IM_NEW(TextRange)(_b,_e); +} CIMGUI_API const char* TextRange_begin(TextRange* self) { return self->begin(); @@ -1426,6 +1490,14 @@ CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRang { return self->split(separator,out); } +CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void) +{ + return IM_NEW(ImGuiTextBuffer)(); +} +CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self) +{ + IM_DELETE(self); +} CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self) { return self->begin(); @@ -1458,6 +1530,18 @@ CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,v { return self->appendfv(fmt,args); } +CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i) +{ + return IM_NEW(Pair)(_key,_val_i); +} +CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f) +{ + return IM_NEW(Pair)(_key,_val_f); +} +CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p) +{ + return IM_NEW(Pair)(_key,_val_p); +} CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self) { return self->Clear(); @@ -1518,6 +1602,14 @@ CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self) { return self->BuildSortByKey(); } +CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void) +{ + return IM_NEW(ImGuiInputTextCallbackData)(); +} +CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count) { return self->DeleteChars(pos,bytes_count); @@ -1530,6 +1622,14 @@ CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackDa { return self->HasSelection(); } +CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void) +{ + return IM_NEW(ImGuiPayload)(); +} +CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self) { return self->Clear(); @@ -1546,6 +1646,30 @@ CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self) { return self->IsDelivery(); } +CIMGUI_API ImColor* ImColor_ImColor(void) +{ + return IM_NEW(ImColor)(); +} +CIMGUI_API void ImColor_destroy(ImColor* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a) +{ + return IM_NEW(ImColor)(r,g,b,a); +} +CIMGUI_API ImColor* ImColor_ImColorU32(ImU32 rgba) +{ + return IM_NEW(ImColor)(rgba); +} +CIMGUI_API ImColor* ImColor_ImColorFloat(float r,float g,float b,float a) +{ + return IM_NEW(ImColor)(r,g,b,a); +} +CIMGUI_API ImColor* ImColor_ImColorVec4(const ImVec4 col) +{ + return IM_NEW(ImColor)(col); +} CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a) { return self->SetHSV(h,s,v,a); @@ -1554,6 +1678,10 @@ CIMGUI_API ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a) { return self->HSV(h,s,v,a); } +CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height) +{ + return IM_NEW(ImGuiListClipper)(items_count,items_height); +} CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self) { return self->Step(); @@ -1566,6 +1694,18 @@ CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self) { return self->End(); } +CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void) +{ + return IM_NEW(ImDrawCmd)(); +} +CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data) +{ + return IM_NEW(ImDrawList)(shared_data); +} CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect) { return self->PushClipRect(clip_rect_min,clip_rect_max,intersect_with_current_clip_rect); @@ -1770,6 +1910,14 @@ CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self) { return self->UpdateTextureID(); } +CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void) +{ + return IM_NEW(ImDrawData)(); +} +CIMGUI_API void ImDrawData_destroy(ImDrawData* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImDrawData_Clear(ImDrawData* self) { return self->Clear(); @@ -1782,6 +1930,22 @@ CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc) { return self->ScaleClipRects(sc); } +CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void) +{ + return IM_NEW(ImFontConfig)(); +} +CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void) +{ + return IM_NEW(ImFontAtlas)(); +} +CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self) +{ + IM_DELETE(self); +} CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg) { return self->AddFont(font_cfg); @@ -1870,6 +2034,14 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self) { return self->GetGlyphRangesThai(); } +CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void) +{ + return IM_NEW(GlyphRangesBuilder)(); +} +CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self) +{ + IM_DELETE(self); +} CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n) { return self->GetBit(n); @@ -1894,6 +2066,14 @@ CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector { return self->BuildRanges(out_ranges); } +CIMGUI_API CustomRect* CustomRect_CustomRect(void) +{ + return IM_NEW(CustomRect)(); +} +CIMGUI_API void CustomRect_destroy(CustomRect* self) +{ + IM_DELETE(self); +} CIMGUI_API bool CustomRect_IsPacked(CustomRect* self) { return self->IsPacked(); @@ -1918,6 +2098,14 @@ CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCu { return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill); } +CIMGUI_API ImFont* ImFont_ImFont(void) +{ + return IM_NEW(ImFont)(); +} +CIMGUI_API void ImFont_destroy(ImFont* self) +{ + IM_DELETE(self); +} CIMGUI_API void ImFont_ClearOutputData(ImFont* self) { return self->ClearOutputData(); @@ -2235,3 +2423,21 @@ 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() +{ + return IM_NEW(ImVector) (); +} +CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* p) +{ + IM_DELETE(p); +} +CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p) +{ + IM_PLACEMENT_NEW(p) ImVector(); +} +CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p) +{ + p->~ImVector(); +} + diff --git a/generator/output/cimgui.h b/generator/output/cimgui.h index 917e221..33a9bfc 100644 --- a/generator/output/cimgui.h +++ b/generator/output/cimgui.h @@ -836,6 +836,12 @@ typedef ImVector ImVector_ImWchar; typedef ImVector ImVector_TextRange; typedef ImVector ImVector_ImWchar; #endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS +CIMGUI_API ImVec2* ImVec2_ImVec2(void); +CIMGUI_API void ImVec2_destroy(ImVec2* self); +CIMGUI_API ImVec2* ImVec2_ImVec2Float(float _x,float _y); +CIMGUI_API ImVec4* ImVec4_ImVec4(void); +CIMGUI_API void ImVec4_destroy(ImVec4* self); +CIMGUI_API ImVec4* ImVec4_ImVec4Float(float _x,float _y,float _z,float _w); CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas); CIMGUI_API void igDestroyContext(ImGuiContext* ctx); CIMGUI_API ImGuiContext* igGetCurrentContext(void); @@ -1169,19 +1175,31 @@ CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size); CIMGUI_API void igSetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data); CIMGUI_API void* igMemAlloc(size_t size); CIMGUI_API void igMemFree(void* ptr); +CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void); +CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self); CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor); CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,ImWchar c); CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* utf8_chars); CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self); +CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void); +CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self); +CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void); +CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self); +CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter); CIMGUI_API bool ImGuiTextFilter_Draw(ImGuiTextFilter* self,const char* label,float width); CIMGUI_API bool ImGuiTextFilter_PassFilter(ImGuiTextFilter* self,const char* text,const char* text_end); CIMGUI_API void ImGuiTextFilter_Build(ImGuiTextFilter* self); CIMGUI_API void ImGuiTextFilter_Clear(ImGuiTextFilter* self); CIMGUI_API bool ImGuiTextFilter_IsActive(ImGuiTextFilter* self); +CIMGUI_API TextRange* TextRange_TextRange(void); +CIMGUI_API void TextRange_destroy(TextRange* self); +CIMGUI_API TextRange* TextRange_TextRangeStr(const char* _b,const char* _e); CIMGUI_API const char* TextRange_begin(TextRange* self); CIMGUI_API const char* TextRange_end(TextRange* self); CIMGUI_API bool TextRange_empty(TextRange* self); CIMGUI_API void TextRange_split(TextRange* self,char separator,ImVector_TextRange* out); +CIMGUI_API ImGuiTextBuffer* ImGuiTextBuffer_ImGuiTextBuffer(void); +CIMGUI_API void ImGuiTextBuffer_destroy(ImGuiTextBuffer* self); CIMGUI_API const char* ImGuiTextBuffer_begin(ImGuiTextBuffer* self); CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self); CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self); @@ -1190,6 +1208,9 @@ CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self); CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity); CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self); CIMGUI_API void ImGuiTextBuffer_appendfv(ImGuiTextBuffer* self,const char* fmt,va_list args); +CIMGUI_API Pair* Pair_PairInt(ImGuiID _key,int _val_i); +CIMGUI_API Pair* Pair_PairFloat(ImGuiID _key,float _val_f); +CIMGUI_API Pair* Pair_PairPtr(ImGuiID _key,void* _val_p); CIMGUI_API void ImGuiStorage_Clear(ImGuiStorage* self); CIMGUI_API int ImGuiStorage_GetInt(ImGuiStorage* self,ImGuiID key,int default_val); CIMGUI_API void ImGuiStorage_SetInt(ImGuiStorage* self,ImGuiID key,int val); @@ -1205,18 +1226,32 @@ CIMGUI_API float* ImGuiStorage_GetFloatRef(ImGuiStorage* self,ImGuiID key,float CIMGUI_API void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self,ImGuiID key,void* default_val); CIMGUI_API void ImGuiStorage_SetAllInt(ImGuiStorage* self,int val); CIMGUI_API void ImGuiStorage_BuildSortByKey(ImGuiStorage* self); +CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void); +CIMGUI_API void ImGuiInputTextCallbackData_destroy(ImGuiInputTextCallbackData* self); CIMGUI_API void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self,int pos,int bytes_count); CIMGUI_API void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self,int pos,const char* text,const char* text_end); CIMGUI_API bool ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self); +CIMGUI_API ImGuiPayload* ImGuiPayload_ImGuiPayload(void); +CIMGUI_API void ImGuiPayload_destroy(ImGuiPayload* self); CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type); CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self); +CIMGUI_API ImColor* ImColor_ImColor(void); +CIMGUI_API void ImColor_destroy(ImColor* self); +CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a); +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 ImColor ImColor_HSV(ImColor* self,float h,float s,float v,float a); +CIMGUI_API ImGuiListClipper* ImGuiListClipper_ImGuiListClipper(int items_count,float items_height); CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self); CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height); CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self); +CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void); +CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self); +CIMGUI_API ImDrawList* ImDrawList_ImDrawList(const ImDrawListSharedData* shared_data); CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* self,ImVec2 clip_rect_min,ImVec2 clip_rect_max,bool intersect_with_current_clip_rect); CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* self); CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* self); @@ -1268,9 +1303,15 @@ CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* self,ImDrawIdx idx); CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* self,const ImVec2 pos,const ImVec2 uv,ImU32 col); CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* self); CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* self); +CIMGUI_API ImDrawData* ImDrawData_ImDrawData(void); +CIMGUI_API void ImDrawData_destroy(ImDrawData* self); CIMGUI_API void ImDrawData_Clear(ImDrawData* self); CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* self); CIMGUI_API void ImDrawData_ScaleClipRects(ImDrawData* self,const ImVec2 sc); +CIMGUI_API ImFontConfig* ImFontConfig_ImFontConfig(void); +CIMGUI_API void ImFontConfig_destroy(ImFontConfig* self); +CIMGUI_API ImFontAtlas* ImFontAtlas_ImFontAtlas(void); +CIMGUI_API void ImFontAtlas_destroy(ImFontAtlas* self); CIMGUI_API ImFont* ImFontAtlas_AddFont(ImFontAtlas* self,const ImFontConfig* font_cfg); CIMGUI_API ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self,const ImFontConfig* font_cfg); CIMGUI_API ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self,const char* filename,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges); @@ -1293,18 +1334,24 @@ CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* sel CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self); CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self); CIMGUI_API const ImWchar* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self); +CIMGUI_API GlyphRangesBuilder* GlyphRangesBuilder_GlyphRangesBuilder(void); +CIMGUI_API void GlyphRangesBuilder_destroy(GlyphRangesBuilder* self); CIMGUI_API bool GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self,int n); CIMGUI_API void GlyphRangesBuilder_SetBit(GlyphRangesBuilder* self,int n); CIMGUI_API void GlyphRangesBuilder_AddChar(GlyphRangesBuilder* self,ImWchar c); CIMGUI_API void GlyphRangesBuilder_AddText(GlyphRangesBuilder* self,const char* text,const char* text_end); CIMGUI_API void GlyphRangesBuilder_AddRanges(GlyphRangesBuilder* self,const ImWchar* ranges); CIMGUI_API void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self,ImVector_ImWchar* out_ranges); +CIMGUI_API CustomRect* CustomRect_CustomRect(void); +CIMGUI_API void CustomRect_destroy(CustomRect* self); CIMGUI_API bool CustomRect_IsPacked(CustomRect* self); CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,unsigned int id,int width,int height); CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset); CIMGUI_API const CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index); CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const CustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max); CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]); +CIMGUI_API ImFont* ImFont_ImFont(void); +CIMGUI_API void ImFont_destroy(ImFont* self); CIMGUI_API void ImFont_ClearOutputData(ImFont* self); CIMGUI_API void ImFont_BuildLookupTable(ImFont* self); CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c); @@ -1378,5 +1425,11 @@ 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* p); +CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); +CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); + +