@@ -24,6 +24,8 @@ type argumentWrapper func(arg ArgDef) ArgumentWrapperData
2424
2525func argWrapper (argType string ) (wrapper argumentWrapper , err error ) {
2626 argWrapperMap := map [string ]argumentWrapper {
27+ "char" : simpleW ("rune" , "C.char" ),
28+ "char[5]" : simplePtrArrayW (5 , "C.char" , "rune" ),
2729 "char*" : constCharW ,
2830 "const char*" : constCharW ,
2931 "const char**" : charPtrPtrW ,
@@ -32,7 +34,8 @@ func argWrapper(argType string) (wrapper argumentWrapper, err error) {
3234 "unsigned char**" : uCharPtrW ,
3335 "size_t" : simpleW ("uint64" , "C.xulong" ),
3436 "size_t*" : sizeTPtrW ,
35- "float" : floatW ,
37+ "float" : simpleW ("float32" , "C.float" ),
38+ "const float" : simpleW ("float32" , "C.float" ),
3639 "float*" : floatPtrW ,
3740 "const float*" : floatArrayW ,
3841 "short" : simpleW ("int" , "C.short" ),
@@ -51,6 +54,7 @@ func argWrapper(argType string) (wrapper argumentWrapper, err error) {
5154 "const ImS16*" : simplePtrSliceW ("C.ImS16" , "int" ),
5255 "ImS32" : simpleW ("int" , "C.ImS32" ),
5356 "const ImS32*" : simplePtrSliceW ("C.ImS32" , "int32" ),
57+ "ImS64" : simpleW ("int64" , "C.ImS64" ),
5458 "const ImS64*" : int64ArrayW ,
5559 "int" : simpleW ("int32" , "C.int" ),
5660 "int*" : simplePtrW ("int32" , "C.int" ),
@@ -67,16 +71,22 @@ func argWrapper(argType string) (wrapper argumentWrapper, err error) {
6771 "float[2]" : simplePtrArrayW (2 , "C.float" , "float32" ),
6872 "float[3]" : simplePtrArrayW (3 , "C.float" , "float32" ),
6973 "float[4]" : simplePtrArrayW (4 , "C.float" , "float32" ),
70- "ImWchar" : simpleW ("Wchar" , "C.ImWchar" ),
71- "const ImWchar*" : simpleW ("*Wchar" , "(*C.ImWchar)" ),
72- "ImGuiID" : simpleW ("ImGuiID" , "C.ImGuiID" ),
74+ "ImWchar" : simpleW ("rune" , "C.ImWchar" ),
75+ "ImWchar16" : simpleW ("rune" , "C.ImWchar16" ),
76+ "const ImWchar*" : simplePtrW ("rune" , "C.ImWchar" ),
77+ "ImGuiID" : simpleW ("ID" , "C.ImGuiID" ),
78+ "ImGuiID*" : simplePtrW ("ID" , "C.ImGuiID" ),
7379 "ImTextureID" : simpleW ("TextureID" , "C.ImTextureID" ),
7480 "ImDrawIdx" : simpleW ("DrawIdx" , "C.ImDrawIdx" ),
7581 "ImGuiTableColumnIdx" : simpleW ("TableColumnIdx" , "C.ImGuiTableColumnIdx" ),
7682 "ImGuiTableDrawChannelIdx" : simpleW ("TableDrawChannelIdx" , "C.ImGuiTableDrawChannelIdx" ),
7783 "ImGuiKeyChord" : simpleW ("KeyChord" , "C.ImGuiKeyChord" ),
7884 "void*" : simpleW ("unsafe.Pointer" , "" ),
7985 "const void*" : simpleW ("unsafe.Pointer" , "" ),
86+ "const ImVec1" : wrappableW ("Vec1" ),
87+ "const ImVec1*" : wrappablePtrW ("*Vec1" , "C.ImVec1" ),
88+ "ImVec1" : wrappableW ("Vec1" ),
89+ "ImVec1*" : wrappablePtrW ("*Vec1" , "C.ImVec1" ),
8090 "const ImVec2" : wrappableW ("Vec2" ),
8191 "const ImVec2*" : wrappablePtrW ("*Vec2" , "C.ImVec2" ),
8292 "ImVec2" : wrappableW ("Vec2" ),
@@ -90,6 +100,7 @@ func argWrapper(argType string) (wrapper argumentWrapper, err error) {
90100 "ImRect" : wrappableW ("Rect" ),
91101 "const ImRect" : wrappableW ("Rect" ),
92102 "ImRect*" : wrappablePtrW ("*Rect" , "C.ImRect" ),
103+ "const ImRect*" : wrappablePtrW ("*Rect" , "C.ImRect" ),
93104 "ImPlotPoint" : wrappableW ("PlotPoint" ),
94105 "const ImPlotPoint" : wrappableW ("PlotPoint" ),
95106 "ImPlotPoint*" : wrappablePtrW ("*PlotPoint" , "C.ImPlotPoint" ),
@@ -136,13 +147,6 @@ func sizeTPtrW(arg ArgDef) ArgumentWrapperData {
136147 }
137148}
138149
139- func floatW (arg ArgDef ) ArgumentWrapperData {
140- return ArgumentWrapperData {
141- ArgType : "float32" ,
142- VarName : fmt .Sprintf ("C.float(%s)" , arg .Name ),
143- }
144- }
145-
146150// leave this for now because of https://github.com/AllenDang/cimgui-go/issues/31
147151func floatPtrW (arg ArgDef ) ArgumentWrapperData {
148152 return simplePtrW ("float32" , "C.float" )(arg )
0 commit comments