Bump to 1.72b (NuGet version 1.72.0).

internals
Eric Mellino 5 years ago
parent 5e9d6be61d
commit 35aabdc9b8
  1. 3
      .gitignore
  2. BIN
      deps/cimgui/linux-x64/cimgui.so
  3. BIN
      deps/cimgui/osx-x64/cimgui.dylib
  4. BIN
      deps/cimgui/win-x64/cimgui.dll
  5. BIN
      deps/cimgui/win-x86/cimgui.dll
  6. 2
      src/CodeGenerator/CodeGenerator.csproj
  7. 4
      src/CodeGenerator/Program.cs
  8. 5552
      src/CodeGenerator/definitions.json
  9. 150
      src/CodeGenerator/structs_and_enums.json
  10. 8
      src/ImGui.NET.SampleProgram.XNA/ImGui.NET.SampleProgram.XNA.csproj
  11. 2
      src/ImGui.NET.SampleProgram/ImGuiController.cs
  12. 1
      src/ImGui.NET/Generated/ImDrawCornerFlags.gen.cs
  13. 44
      src/ImGui.NET/Generated/ImDrawList.gen.cs
  14. 20
      src/ImGui.NET/Generated/ImFontAtlas.gen.cs
  15. 20
      src/ImGui.NET/Generated/ImFontAtlasCustomRect.gen.cs
  16. 22
      src/ImGui.NET/Generated/ImGui.gen.cs
  17. 4
      src/ImGui.NET/Generated/ImGuiIO.gen.cs
  18. 15
      src/ImGui.NET/Generated/ImGuiKey.gen.cs
  19. 70
      src/ImGui.NET/Generated/ImGuiNative.gen.cs
  20. 2
      src/ImGui.NET/Generated/ImGuiStorage.gen.cs
  21. 2
      src/ImGui.NET/Generated/ImGuiStyle.gen.cs
  22. 2
      src/ImGui.NET/Generated/ImGuiTextFilter.gen.cs
  23. 40
      src/ImGui.NET/Generated/ImGuiTextRange.gen.cs
  24. 50
      src/ImGui.NET/Generated/TextRange.gen.cs
  25. 2
      src/ImGui.NET/ImGui.NET.csproj
  26. 12
      src/ImGui.NET/Pair.cs

3
.gitignore vendored

@ -260,3 +260,6 @@ Session.vim
# download dir # download dir
deps/ deps/
# VS Launch
launchSettings.json

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>

@ -56,7 +56,7 @@ namespace CodeGenerator
"ImVector", "ImVector",
"ImVec2", "ImVec2",
"ImVec4", "ImVec4",
"Pair", "ImGuiStoragePair",
}; };
private static readonly Dictionary<string, string> s_wellKnownDefaultValues = new Dictionary<string, string>() private static readonly Dictionary<string, string> s_wellKnownDefaultValues = new Dictionary<string, string>()
@ -70,7 +70,7 @@ namespace CodeGenerator
{ "ImVec2(0,1)", "new Vector2(0, 1)" }, { "ImVec2(0,1)", "new Vector2(0, 1)" },
{ "ImVec4(0,0,0,0)", "new Vector4()" }, { "ImVec4(0,0,0,0)", "new Vector4()" },
{ "ImVec4(1,1,1,1)", "new Vector4(1, 1, 1, 1)" }, { "ImVec4(1,1,1,1)", "new Vector4(1, 1, 1, 1)" },
{ "ImDrawCornerFlags_All", "(int)ImDrawCornerFlags.All" }, { "ImDrawCornerFlags_All", "ImDrawCornerFlags.All" },
{ "FLT_MAX", "float.MaxValue" }, { "FLT_MAX", "float.MaxValue" },
{ "(((ImU32)(255)<<24)|((ImU32)(255)<<16)|((ImU32)(255)<<8)|((ImU32)(255)<<0))", "0xFFFFFFFF" } { "(((ImU32)(255)<<24)|((ImU32)(255)<<16)|((ImU32)(255)<<8)|((ImU32)(255)<<0))", "0xFFFFFFFF" }
}; };

File diff suppressed because it is too large Load Diff

@ -1,6 +1,11 @@
{ {
"enums": { "enums": {
"ImDrawCornerFlags_": [ "ImDrawCornerFlags_": [
{
"calc_value": 0,
"name": "ImDrawCornerFlags_None",
"value": "0"
},
{ {
"calc_value": 1, "calc_value": 1,
"name": "ImDrawCornerFlags_TopLeft", "name": "ImDrawCornerFlags_TopLeft",
@ -1033,38 +1038,43 @@
}, },
{ {
"calc_value": 15, "calc_value": 15,
"name": "ImGuiKey_A", "name": "ImGuiKey_KeyPadEnter",
"value": 15 "value": 15
}, },
{ {
"calc_value": 16, "calc_value": 16,
"name": "ImGuiKey_C", "name": "ImGuiKey_A",
"value": 16 "value": 16
}, },
{ {
"calc_value": 17, "calc_value": 17,
"name": "ImGuiKey_V", "name": "ImGuiKey_C",
"value": 17 "value": 17
}, },
{ {
"calc_value": 18, "calc_value": 18,
"name": "ImGuiKey_X", "name": "ImGuiKey_V",
"value": 18 "value": 18
}, },
{ {
"calc_value": 19, "calc_value": 19,
"name": "ImGuiKey_Y", "name": "ImGuiKey_X",
"value": 19 "value": 19
}, },
{ {
"calc_value": 20, "calc_value": 20,
"name": "ImGuiKey_Z", "name": "ImGuiKey_Y",
"value": 20 "value": 20
}, },
{ {
"calc_value": 21, "calc_value": 21,
"name": "ImGuiKey_COUNT", "name": "ImGuiKey_Z",
"value": 21 "value": 21
},
{
"calc_value": 22,
"name": "ImGuiKey_COUNT",
"value": 22
} }
], ],
"ImGuiMouseCursor_": [ "ImGuiMouseCursor_": [
@ -1700,40 +1710,6 @@
] ]
}, },
"structs": { "structs": {
"CustomRect": [
{
"name": "ID",
"type": "unsigned int"
},
{
"name": "Width",
"type": "unsigned short"
},
{
"name": "Height",
"type": "unsigned short"
},
{
"name": "X",
"type": "unsigned short"
},
{
"name": "Y",
"type": "unsigned short"
},
{
"name": "GlyphAdvanceX",
"type": "float"
},
{
"name": "GlyphOffset",
"type": "ImVec2"
},
{
"name": "Font",
"type": "ImFont*"
}
],
"ImColor": [ "ImColor": [
{ {
"name": "Value", "name": "Value",
@ -2030,8 +2006,8 @@
}, },
{ {
"name": "CustomRects", "name": "CustomRects",
"template_type": "CustomRect", "template_type": "ImFontAtlasCustomRect",
"type": "ImVector_CustomRect" "type": "ImVector_ImFontAtlasCustomRect"
}, },
{ {
"name": "ConfigData", "name": "ConfigData",
@ -2044,6 +2020,40 @@
"type": "int" "type": "int"
} }
], ],
"ImFontAtlasCustomRect": [
{
"name": "ID",
"type": "unsigned int"
},
{
"name": "Width",
"type": "unsigned short"
},
{
"name": "Height",
"type": "unsigned short"
},
{
"name": "X",
"type": "unsigned short"
},
{
"name": "Y",
"type": "unsigned short"
},
{
"name": "GlyphAdvanceX",
"type": "float"
},
{
"name": "GlyphOffset",
"type": "ImVec2"
},
{
"name": "Font",
"type": "ImFont*"
}
],
"ImFontConfig": [ "ImFontConfig": [
{ {
"name": "FontData", "name": "FontData",
@ -2211,7 +2221,7 @@
}, },
{ {
"name": "KeyMap[ImGuiKey_COUNT]", "name": "KeyMap[ImGuiKey_COUNT]",
"size": 21, "size": 22,
"type": "int" "type": "int"
}, },
{ {
@ -2632,8 +2642,18 @@
"ImGuiStorage": [ "ImGuiStorage": [
{ {
"name": "Data", "name": "Data",
"template_type": "Pair", "template_type": "ImGuiStoragePair",
"type": "ImVector_Pair" "type": "ImVector_ImGuiStoragePair"
}
],
"ImGuiStoragePair": [
{
"name": "key",
"type": "ImGuiID"
},
{
"name": "",
"type": "union { int val_i; float val_f; void* val_p;}"
} }
], ],
"ImGuiStyle": [ "ImGuiStyle": [
@ -2737,6 +2757,10 @@
"name": "TabBorderSize", "name": "TabBorderSize",
"type": "float" "type": "float"
}, },
{
"name": "ColorButtonPosition",
"type": "ImGuiDir"
},
{ {
"name": "ButtonTextAlign", "name": "ButtonTextAlign",
"type": "ImVec2" "type": "ImVec2"
@ -2790,14 +2814,24 @@
}, },
{ {
"name": "Filters", "name": "Filters",
"template_type": "TextRange", "template_type": "ImGuiTextRange",
"type": "ImVector_TextRange" "type": "ImVector_ImGuiTextRange"
}, },
{ {
"name": "CountGrep", "name": "CountGrep",
"type": "int" "type": "int"
} }
], ],
"ImGuiTextRange": [
{
"name": "b",
"type": "const char*"
},
{
"name": "e",
"type": "const char*"
}
],
"ImVec2": [ "ImVec2": [
{ {
"name": "x", "name": "x",
@ -2825,26 +2859,6 @@
"name": "w", "name": "w",
"type": "float" "type": "float"
} }
],
"Pair": [
{
"name": "key",
"type": "ImGuiID"
},
{
"name": "",
"type": "union { int val_i; float val_f; void* val_p;}"
}
],
"TextRange": [
{
"name": "b",
"type": "const char*"
},
{
"name": "e",
"type": "const char*"
}
] ]
} }
} }

@ -5,7 +5,7 @@
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AssemblyName>ImGuiNET.SampleProgram.XNA</AssemblyName> <AssemblyName>ImGuiNET.SampleProgram.XNA</AssemblyName>
<RootNamespace>ImGuiNET.SampleProgram.XNA</RootNamespace> <RootNamespace>ImGuiNET.SampleProgram.XNA</RootNamespace>
<TargetFramework>net462</TargetFramework> <TargetFramework>net472</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>
@ -15,10 +15,8 @@
<ItemGroup> <ItemGroup>
<Content Include="$(RepositoryRootDirectory)/deps/cimgui/win-x64/cimgui.dll" CopyToOutputDirectory="PreserveNewest" /> <Content Include="$(RepositoryRootDirectory)/deps/cimgui/win-x64/cimgui.dll" CopyToOutputDirectory="PreserveNewest" />
<Content Include="$(RepositoryRootDirectory)/deps/cimgui/osx-x64/cimgui.dylib" CopyToOutputDirectory="PreserveNewest" <Content Include="$(RepositoryRootDirectory)/deps/cimgui/osx-x64/cimgui.dylib" CopyToOutputDirectory="PreserveNewest" Link="lib%(Filename)%(Extension)" />
Link="lib%(Filename)%(Extension)" /> <Content Include="$(RepositoryRootDirectory)/deps/cimgui/linux-x64/cimgui.so" CopyToOutputDirectory="PreserveNewest" Link="lib%(Filename)%(Extension)" />
<Content Include="$(RepositoryRootDirectory)/deps/cimgui/linux-x64/cimgui.so" CopyToOutputDirectory="PreserveNewest"
Link="lib%(Filename)%(Extension)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -61,7 +61,7 @@ namespace ImGuiNET
IntPtr context = ImGui.CreateContext(); IntPtr context = ImGui.CreateContext();
ImGui.SetCurrentContext(context); ImGui.SetCurrentContext(context);
var fonts = ImGui.GetIO().Fonts;
ImGui.GetIO().Fonts.AddFontDefault(); ImGui.GetIO().Fonts.AddFontDefault();
CreateDeviceResources(gd, outputDescription); CreateDeviceResources(gd, outputDescription);

@ -3,6 +3,7 @@ namespace ImGuiNET
[System.Flags] [System.Flags]
public enum ImDrawCornerFlags public enum ImDrawCornerFlags
{ {
None = 0,
TopLeft = 1 << 0, TopLeft = 1 << 0,
TopRight = 1 << 1, TopRight = 1 << 1,
BotLeft = 1 << 2, BotLeft = 1 << 2,

@ -156,10 +156,10 @@ namespace ImGuiNET
} }
public void AddImageRounded(IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding) public void AddImageRounded(IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding)
{ {
int rounding_corners = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
ImGuiNative.ImDrawList_AddImageRounded(NativePtr, user_texture_id, a, b, uv_a, uv_b, col, rounding, rounding_corners); ImGuiNative.ImDrawList_AddImageRounded(NativePtr, user_texture_id, a, b, uv_a, uv_b, col, rounding, rounding_corners);
} }
public void AddImageRounded(IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding, int rounding_corners) public void AddImageRounded(IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding, ImDrawCornerFlags rounding_corners)
{ {
ImGuiNative.ImDrawList_AddImageRounded(NativePtr, user_texture_id, a, b, uv_a, uv_b, col, rounding, rounding_corners); ImGuiNative.ImDrawList_AddImageRounded(NativePtr, user_texture_id, a, b, uv_a, uv_b, col, rounding, rounding_corners);
} }
@ -196,39 +196,39 @@ namespace ImGuiNET
public void AddRect(Vector2 a, Vector2 b, uint col) public void AddRect(Vector2 a, Vector2 b, uint col)
{ {
float rounding = 0.0f; float rounding = 0.0f;
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
float thickness = 1.0f; float thickness = 1.0f;
ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners_flags, thickness); ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners, thickness);
} }
public void AddRect(Vector2 a, Vector2 b, uint col, float rounding) public void AddRect(Vector2 a, Vector2 b, uint col, float rounding)
{ {
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
float thickness = 1.0f; float thickness = 1.0f;
ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners_flags, thickness); ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners, thickness);
} }
public void AddRect(Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags) public void AddRect(Vector2 a, Vector2 b, uint col, float rounding, ImDrawCornerFlags rounding_corners)
{ {
float thickness = 1.0f; float thickness = 1.0f;
ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners_flags, thickness); ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners, thickness);
} }
public void AddRect(Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags, float thickness) public void AddRect(Vector2 a, Vector2 b, uint col, float rounding, ImDrawCornerFlags rounding_corners, float thickness)
{ {
ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners_flags, thickness); ImGuiNative.ImDrawList_AddRect(NativePtr, a, b, col, rounding, rounding_corners, thickness);
} }
public void AddRectFilled(Vector2 a, Vector2 b, uint col) public void AddRectFilled(Vector2 a, Vector2 b, uint col)
{ {
float rounding = 0.0f; float rounding = 0.0f;
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners);
} }
public void AddRectFilled(Vector2 a, Vector2 b, uint col, float rounding) public void AddRectFilled(Vector2 a, Vector2 b, uint col, float rounding)
{ {
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners);
} }
public void AddRectFilled(Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags) public void AddRectFilled(Vector2 a, Vector2 b, uint col, float rounding, ImDrawCornerFlags rounding_corners)
{ {
ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_AddRectFilled(NativePtr, a, b, col, rounding, rounding_corners);
} }
public void AddRectFilledMultiColor(Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left) public void AddRectFilledMultiColor(Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left)
{ {
@ -327,17 +327,17 @@ namespace ImGuiNET
public void PathRect(Vector2 rect_min, Vector2 rect_max) public void PathRect(Vector2 rect_min, Vector2 rect_max)
{ {
float rounding = 0.0f; float rounding = 0.0f;
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners);
} }
public void PathRect(Vector2 rect_min, Vector2 rect_max, float rounding) public void PathRect(Vector2 rect_min, Vector2 rect_max, float rounding)
{ {
int rounding_corners_flags = (int)ImDrawCornerFlags.All; ImDrawCornerFlags rounding_corners = ImDrawCornerFlags.All;
ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners);
} }
public void PathRect(Vector2 rect_min, Vector2 rect_max, float rounding, int rounding_corners_flags) public void PathRect(Vector2 rect_min, Vector2 rect_max, float rounding, ImDrawCornerFlags rounding_corners)
{ {
ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners_flags); ImGuiNative.ImDrawList_PathRect(NativePtr, rect_min, rect_max, rounding, rounding_corners);
} }
public void PathStroke(uint col, bool closed) public void PathStroke(uint col, bool closed)
{ {

@ -43,7 +43,7 @@ namespace ImGuiNET
public ref Vector2 TexUvScale => ref Unsafe.AsRef<Vector2>(&NativePtr->TexUvScale); public ref Vector2 TexUvScale => ref Unsafe.AsRef<Vector2>(&NativePtr->TexUvScale);
public ref Vector2 TexUvWhitePixel => ref Unsafe.AsRef<Vector2>(&NativePtr->TexUvWhitePixel); public ref Vector2 TexUvWhitePixel => ref Unsafe.AsRef<Vector2>(&NativePtr->TexUvWhitePixel);
public ImVector<ImFontPtr> Fonts => new ImVector<ImFontPtr>(NativePtr->Fonts); public ImVector<ImFontPtr> Fonts => new ImVector<ImFontPtr>(NativePtr->Fonts);
public ImVector<CustomRect> CustomRects => new ImVector<CustomRect>(NativePtr->CustomRects); public ImPtrVector<ImFontAtlasCustomRectPtr> CustomRects => new ImPtrVector<ImFontAtlasCustomRectPtr>(NativePtr->CustomRects, Unsafe.SizeOf<ImFontAtlasCustomRect>());
public ImPtrVector<ImFontConfigPtr> ConfigData => new ImPtrVector<ImFontConfigPtr>(NativePtr->ConfigData, Unsafe.SizeOf<ImFontConfig>()); public ImPtrVector<ImFontConfigPtr> ConfigData => new ImPtrVector<ImFontConfigPtr>(NativePtr->ConfigData, Unsafe.SizeOf<ImFontConfig>());
public RangeAccessor<int> CustomRectIds => new RangeAccessor<int>(NativePtr->CustomRectIds, 1); public RangeAccessor<int> CustomRectIds => new RangeAccessor<int>(NativePtr->CustomRectIds, 1);
public int AddCustomRectFontGlyph(ImFontPtr font, ushort id, int width, int height, float advance_x) public int AddCustomRectFontGlyph(ImFontPtr font, ushort id, int width, int height, float advance_x)
@ -309,16 +309,14 @@ namespace ImGuiNET
byte ret = ImGuiNative.ImFontAtlas_Build(NativePtr); byte ret = ImGuiNative.ImFontAtlas_Build(NativePtr);
return ret != 0; return ret != 0;
} }
public void CalcCustomRectUV(ref CustomRect rect, out Vector2 out_uv_min, out Vector2 out_uv_max) public void CalcCustomRectUV(ImFontAtlasCustomRectPtr rect, out Vector2 out_uv_min, out Vector2 out_uv_max)
{ {
fixed (CustomRect* native_rect = &rect) ImFontAtlasCustomRect* native_rect = rect.NativePtr;
fixed (Vector2* native_out_uv_min = &out_uv_min)
{ {
fixed (Vector2* native_out_uv_min = &out_uv_min) fixed (Vector2* native_out_uv_max = &out_uv_max)
{ {
fixed (Vector2* native_out_uv_max = &out_uv_max) ImGuiNative.ImFontAtlas_CalcCustomRectUV(NativePtr, native_rect, native_out_uv_min, native_out_uv_max);
{
ImGuiNative.ImFontAtlas_CalcCustomRectUV(NativePtr, native_rect, native_out_uv_min, native_out_uv_max);
}
} }
} }
} }
@ -342,10 +340,10 @@ namespace ImGuiNET
{ {
ImGuiNative.ImFontAtlas_destroy(NativePtr); ImGuiNative.ImFontAtlas_destroy(NativePtr);
} }
public CustomRect* GetCustomRectByIndex(int index) public ImFontAtlasCustomRectPtr GetCustomRectByIndex(int index)
{ {
CustomRect* ret = ImGuiNative.ImFontAtlas_GetCustomRectByIndex(NativePtr, index); ImFontAtlasCustomRect* ret = ImGuiNative.ImFontAtlas_GetCustomRectByIndex(NativePtr, index);
return ret; return new ImFontAtlasCustomRectPtr(ret);
} }
public IntPtr GetGlyphRangesChineseFull() public IntPtr GetGlyphRangesChineseFull()
{ {

@ -5,7 +5,7 @@ using System.Text;
namespace ImGuiNET namespace ImGuiNET
{ {
public unsafe partial struct CustomRect public unsafe partial struct ImFontAtlasCustomRect
{ {
public uint ID; public uint ID;
public ushort Width; public ushort Width;
@ -16,14 +16,14 @@ namespace ImGuiNET
public Vector2 GlyphOffset; public Vector2 GlyphOffset;
public ImFont* Font; public ImFont* Font;
} }
public unsafe partial struct CustomRectPtr public unsafe partial struct ImFontAtlasCustomRectPtr
{ {
public CustomRect* NativePtr { get; } public ImFontAtlasCustomRect* NativePtr { get; }
public CustomRectPtr(CustomRect* nativePtr) => NativePtr = nativePtr; public ImFontAtlasCustomRectPtr(ImFontAtlasCustomRect* nativePtr) => NativePtr = nativePtr;
public CustomRectPtr(IntPtr nativePtr) => NativePtr = (CustomRect*)nativePtr; public ImFontAtlasCustomRectPtr(IntPtr nativePtr) => NativePtr = (ImFontAtlasCustomRect*)nativePtr;
public static implicit operator CustomRectPtr(CustomRect* nativePtr) => new CustomRectPtr(nativePtr); public static implicit operator ImFontAtlasCustomRectPtr(ImFontAtlasCustomRect* nativePtr) => new ImFontAtlasCustomRectPtr(nativePtr);
public static implicit operator CustomRect* (CustomRectPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImFontAtlasCustomRect* (ImFontAtlasCustomRectPtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator CustomRectPtr(IntPtr nativePtr) => new CustomRectPtr(nativePtr); public static implicit operator ImFontAtlasCustomRectPtr(IntPtr nativePtr) => new ImFontAtlasCustomRectPtr(nativePtr);
public ref uint ID => ref Unsafe.AsRef<uint>(&NativePtr->ID); public ref uint ID => ref Unsafe.AsRef<uint>(&NativePtr->ID);
public ref ushort Width => ref Unsafe.AsRef<ushort>(&NativePtr->Width); public ref ushort Width => ref Unsafe.AsRef<ushort>(&NativePtr->Width);
public ref ushort Height => ref Unsafe.AsRef<ushort>(&NativePtr->Height); public ref ushort Height => ref Unsafe.AsRef<ushort>(&NativePtr->Height);
@ -34,11 +34,11 @@ namespace ImGuiNET
public ImFontPtr Font => new ImFontPtr(NativePtr->Font); public ImFontPtr Font => new ImFontPtr(NativePtr->Font);
public void Destroy() public void Destroy()
{ {
ImGuiNative.CustomRect_destroy(NativePtr); ImGuiNative.ImFontAtlasCustomRect_destroy(NativePtr);
} }
public bool IsPacked() public bool IsPacked()
{ {
byte ret = ImGuiNative.CustomRect_IsPacked(NativePtr); byte ret = ImGuiNative.ImFontAtlasCustomRect_IsPacked(NativePtr);
return ret != 0; return ret != 0;
} }
} }

@ -10470,6 +10470,15 @@ namespace ImGuiNET
void* native_custom_callback_data = (void*)custom_callback_data.ToPointer(); void* native_custom_callback_data = (void*)custom_callback_data.ToPointer();
ImGuiNative.igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, native_custom_callback_data); ImGuiNative.igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, native_custom_callback_data);
} }
public static void SetScrollFromPosX(float local_x)
{
float center_x_ratio = 0.5f;
ImGuiNative.igSetScrollFromPosX(local_x, center_x_ratio);
}
public static void SetScrollFromPosX(float local_x, float center_x_ratio)
{
ImGuiNative.igSetScrollFromPosX(local_x, center_x_ratio);
}
public static void SetScrollFromPosY(float local_y) public static void SetScrollFromPosY(float local_y)
{ {
float center_y_ratio = 0.5f; float center_y_ratio = 0.5f;
@ -10479,6 +10488,15 @@ namespace ImGuiNET
{ {
ImGuiNative.igSetScrollFromPosY(local_y, center_y_ratio); ImGuiNative.igSetScrollFromPosY(local_y, center_y_ratio);
} }
public static void SetScrollHereX()
{
float center_x_ratio = 0.5f;
ImGuiNative.igSetScrollHereX(center_x_ratio);
}
public static void SetScrollHereX(float center_x_ratio)
{
ImGuiNative.igSetScrollHereX(center_x_ratio);
}
public static void SetScrollHereY() public static void SetScrollHereY()
{ {
float center_y_ratio = 0.5f; float center_y_ratio = 0.5f;
@ -12561,10 +12579,6 @@ namespace ImGuiNET
Util.Free(native_fmt); Util.Free(native_fmt);
} }
} }
public static void TreeAdvanceToLabelPos()
{
ImGuiNative.igTreeAdvanceToLabelPos();
}
public static bool TreeNode(string label) public static bool TreeNode(string label)
{ {
byte* native_label; byte* native_label;

@ -17,7 +17,7 @@ namespace ImGuiNET
public float MouseDoubleClickTime; public float MouseDoubleClickTime;
public float MouseDoubleClickMaxDist; public float MouseDoubleClickMaxDist;
public float MouseDragThreshold; public float MouseDragThreshold;
public fixed int KeyMap[21]; public fixed int KeyMap[22];
public float KeyRepeatDelay; public float KeyRepeatDelay;
public float KeyRepeatRate; public float KeyRepeatRate;
public void* UserData; public void* UserData;
@ -110,7 +110,7 @@ namespace ImGuiNET
public ref float MouseDoubleClickTime => ref Unsafe.AsRef<float>(&NativePtr->MouseDoubleClickTime); public ref float MouseDoubleClickTime => ref Unsafe.AsRef<float>(&NativePtr->MouseDoubleClickTime);
public ref float MouseDoubleClickMaxDist => ref Unsafe.AsRef<float>(&NativePtr->MouseDoubleClickMaxDist); public ref float MouseDoubleClickMaxDist => ref Unsafe.AsRef<float>(&NativePtr->MouseDoubleClickMaxDist);
public ref float MouseDragThreshold => ref Unsafe.AsRef<float>(&NativePtr->MouseDragThreshold); public ref float MouseDragThreshold => ref Unsafe.AsRef<float>(&NativePtr->MouseDragThreshold);
public RangeAccessor<int> KeyMap => new RangeAccessor<int>(NativePtr->KeyMap, 21); public RangeAccessor<int> KeyMap => new RangeAccessor<int>(NativePtr->KeyMap, 22);
public ref float KeyRepeatDelay => ref Unsafe.AsRef<float>(&NativePtr->KeyRepeatDelay); public ref float KeyRepeatDelay => ref Unsafe.AsRef<float>(&NativePtr->KeyRepeatDelay);
public ref float KeyRepeatRate => ref Unsafe.AsRef<float>(&NativePtr->KeyRepeatRate); public ref float KeyRepeatRate => ref Unsafe.AsRef<float>(&NativePtr->KeyRepeatRate);
public IntPtr UserData { get => (IntPtr)NativePtr->UserData; set => NativePtr->UserData = (void*)value; } public IntPtr UserData { get => (IntPtr)NativePtr->UserData; set => NativePtr->UserData = (void*)value; }

@ -17,12 +17,13 @@ namespace ImGuiNET
Space = 12, Space = 12,
Enter = 13, Enter = 13,
Escape = 14, Escape = 14,
A = 15, KeyPadEnter = 15,
C = 16, A = 16,
V = 17, C = 17,
X = 18, V = 18,
Y = 19, X = 19,
Z = 20, Y = 20,
COUNT = 21, Z = 21,
COUNT = 22,
} }
} }

@ -6,12 +6,6 @@ namespace ImGuiNET
{ {
public static unsafe partial class ImGuiNative public static unsafe partial class ImGuiNative
{ {
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern CustomRect* CustomRect_CustomRect();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void CustomRect_destroy(CustomRect* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte CustomRect_IsPacked(CustomRect* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiPayload* igAcceptDragDropPayload(byte* type, ImGuiDragDropFlags flags); public static extern ImGuiPayload* igAcceptDragDropPayload(byte* type, ImGuiDragDropFlags flags);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -549,8 +543,12 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetNextWindowSizeConstraints(Vector2 size_min, Vector2 size_max, ImGuiSizeCallback custom_callback, void* custom_callback_data); public static extern void igSetNextWindowSizeConstraints(Vector2 size_min, Vector2 size_max, ImGuiSizeCallback custom_callback, void* custom_callback_data);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetScrollFromPosX(float local_x, float center_x_ratio);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetScrollFromPosY(float local_y, float center_y_ratio); public static extern void igSetScrollFromPosY(float local_y, float center_y_ratio);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetScrollHereX(float center_x_ratio);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetScrollHereY(float center_y_ratio); public static extern void igSetScrollHereY(float center_y_ratio);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igSetScrollX(float scroll_x); public static extern void igSetScrollX(float scroll_x);
@ -637,8 +635,6 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igTextWrapped(byte* fmt); public static extern void igTextWrapped(byte* fmt);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void igTreeAdvanceToLabelPos();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte igTreeNodeStr(byte* label); public static extern byte igTreeNodeStr(byte* label);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte igTreeNodeStrStr(byte* str_id, byte* fmt); public static extern byte igTreeNodeStrStr(byte* str_id, byte* fmt);
@ -719,7 +715,7 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddImageQuad(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 c, Vector2 d, Vector2 uv_a, Vector2 uv_b, Vector2 uv_c, Vector2 uv_d, uint col); public static extern void ImDrawList_AddImageQuad(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 c, Vector2 d, Vector2 uv_a, Vector2 uv_b, Vector2 uv_c, Vector2 uv_d, uint col);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddImageRounded(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding, int rounding_corners); public static extern void ImDrawList_AddImageRounded(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding, ImDrawCornerFlags rounding_corners);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddLine(ImDrawList* self, Vector2 a, Vector2 b, uint col, float thickness); public static extern void ImDrawList_AddLine(ImDrawList* self, Vector2 a, Vector2 b, uint col, float thickness);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -729,9 +725,9 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddQuadFilled(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, Vector2 d, uint col); public static extern void ImDrawList_AddQuadFilled(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, Vector2 d, uint col);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddRect(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags, float thickness); public static extern void ImDrawList_AddRect(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, ImDrawCornerFlags rounding_corners, float thickness);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddRectFilled(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags); public static extern void ImDrawList_AddRectFilled(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, ImDrawCornerFlags rounding_corners);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_AddRectFilledMultiColor(ImDrawList* self, Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left); public static extern void ImDrawList_AddRectFilledMultiColor(ImDrawList* self, Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -777,7 +773,7 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self, Vector2 pos); public static extern void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self, Vector2 pos);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_PathRect(ImDrawList* self, Vector2 rect_min, Vector2 rect_max, float rounding, int rounding_corners_flags); public static extern void ImDrawList_PathRect(ImDrawList* self, Vector2 rect_min, Vector2 rect_max, float rounding, ImDrawCornerFlags rounding_corners);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImDrawList_PathStroke(ImDrawList* self, uint col, byte closed, float thickness); public static extern void ImDrawList_PathStroke(ImDrawList* self, uint col, byte closed, float thickness);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -875,7 +871,7 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte ImFontAtlas_Build(ImFontAtlas* self); public static extern byte ImFontAtlas_Build(ImFontAtlas* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self, CustomRect* rect, Vector2* out_uv_min, Vector2* out_uv_max); public static extern void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self, ImFontAtlasCustomRect* rect, Vector2* out_uv_min, Vector2* out_uv_max);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontAtlas_Clear(ImFontAtlas* self); public static extern void ImFontAtlas_Clear(ImFontAtlas* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -887,7 +883,7 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontAtlas_destroy(ImFontAtlas* self); public static extern void ImFontAtlas_destroy(ImFontAtlas* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self, int index); public static extern ImFontAtlasCustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self, int index);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ushort* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* self); public static extern ushort* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
@ -921,6 +917,12 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontAtlas_SetTexID(ImFontAtlas* self, IntPtr id); public static extern void ImFontAtlas_SetTexID(ImFontAtlas* self, IntPtr id);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontAtlasCustomRect_destroy(ImFontAtlasCustomRect* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImFontAtlasCustomRect* ImFontAtlasCustomRect_ImFontAtlasCustomRect();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte ImFontAtlasCustomRect_IsPacked(ImFontAtlasCustomRect* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImFontConfig_destroy(ImFontConfig* self); public static extern void ImFontConfig_destroy(ImFontConfig* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImFontConfig* ImFontConfig_ImFontConfig(); public static extern ImFontConfig* ImFontConfig_ImFontConfig();
@ -1019,6 +1021,14 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImGuiStorage_SetVoidPtr(ImGuiStorage* self, uint key, void* val); public static extern void ImGuiStorage_SetVoidPtr(ImGuiStorage* self, uint key, void* val);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImGuiStoragePair_destroy(ImGuiStoragePair* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairInt(uint _key, int _val_i);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairFloat(uint _key, float _val_f);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiStoragePair* ImGuiStoragePair_ImGuiStoragePairPtr(uint _key, void* _val_p);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImGuiStyle_destroy(ImGuiStyle* self); public static extern void ImGuiStyle_destroy(ImGuiStyle* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiStyle* ImGuiStyle_ImGuiStyle(); public static extern ImGuiStyle* ImGuiStyle_ImGuiStyle();
@ -1061,6 +1071,16 @@ namespace ImGuiNET
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte ImGuiTextFilter_PassFilter(ImGuiTextFilter* self, byte* text, byte* text_end); public static extern byte ImGuiTextFilter_PassFilter(ImGuiTextFilter* self, byte* text, byte* text_end);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImGuiTextRange_destroy(ImGuiTextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte ImGuiTextRange_empty(ImGuiTextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiTextRange* ImGuiTextRange_ImGuiTextRange();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern ImGuiTextRange* ImGuiTextRange_ImGuiTextRangeStr(byte* _b, byte* _e);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImGuiTextRange_split(ImGuiTextRange* self, byte separator, ImVector* @out);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void ImVec2_destroy(Vector2* self); public static extern void ImVec2_destroy(Vector2* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern Vector2* ImVec2_ImVec2(); public static extern Vector2* ImVec2_ImVec2();
@ -1072,27 +1092,5 @@ namespace ImGuiNET
public static extern Vector4* ImVec4_ImVec4(); public static extern Vector4* ImVec4_ImVec4();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)] [DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern Vector4* ImVec4_ImVec4Float(float _x, float _y, float _z, float _w); public static extern Vector4* ImVec4_ImVec4Float(float _x, float _y, float _z, float _w);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void Pair_destroy(Pair* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern Pair* Pair_PairInt(uint _key, int _val_i);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern Pair* Pair_PairFloat(uint _key, float _val_f);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern Pair* Pair_PairPtr(uint _key, void* _val_p);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte* TextRange_begin(TextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void TextRange_destroy(TextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte TextRange_empty(TextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern byte* TextRange_end(TextRange* self);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern void TextRange_split(TextRange* self, byte separator, ImVector* @out);
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern TextRange* TextRange_TextRange();
[DllImport("cimgui", CallingConvention = CallingConvention.Cdecl)]
public static extern TextRange* TextRange_TextRangeStr(byte* _b, byte* _e);
} }
} }

@ -17,7 +17,7 @@ namespace ImGuiNET
public static implicit operator ImGuiStoragePtr(ImGuiStorage* nativePtr) => new ImGuiStoragePtr(nativePtr); public static implicit operator ImGuiStoragePtr(ImGuiStorage* nativePtr) => new ImGuiStoragePtr(nativePtr);
public static implicit operator ImGuiStorage* (ImGuiStoragePtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImGuiStorage* (ImGuiStoragePtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator ImGuiStoragePtr(IntPtr nativePtr) => new ImGuiStoragePtr(nativePtr); public static implicit operator ImGuiStoragePtr(IntPtr nativePtr) => new ImGuiStoragePtr(nativePtr);
public ImVector<Pair> Data => new ImVector<Pair>(NativePtr->Data); public ImPtrVector<ImGuiStoragePairPtr> Data => new ImPtrVector<ImGuiStoragePairPtr>(NativePtr->Data, Unsafe.SizeOf<ImGuiStoragePair>());
public void BuildSortByKey() public void BuildSortByKey()
{ {
ImGuiNative.ImGuiStorage_BuildSortByKey(NativePtr); ImGuiNative.ImGuiStorage_BuildSortByKey(NativePtr);

@ -32,6 +32,7 @@ namespace ImGuiNET
public float GrabRounding; public float GrabRounding;
public float TabRounding; public float TabRounding;
public float TabBorderSize; public float TabBorderSize;
public ImGuiDir ColorButtonPosition;
public Vector2 ButtonTextAlign; public Vector2 ButtonTextAlign;
public Vector2 SelectableTextAlign; public Vector2 SelectableTextAlign;
public Vector2 DisplayWindowPadding; public Vector2 DisplayWindowPadding;
@ -122,6 +123,7 @@ namespace ImGuiNET
public ref float GrabRounding => ref Unsafe.AsRef<float>(&NativePtr->GrabRounding); public ref float GrabRounding => ref Unsafe.AsRef<float>(&NativePtr->GrabRounding);
public ref float TabRounding => ref Unsafe.AsRef<float>(&NativePtr->TabRounding); public ref float TabRounding => ref Unsafe.AsRef<float>(&NativePtr->TabRounding);
public ref float TabBorderSize => ref Unsafe.AsRef<float>(&NativePtr->TabBorderSize); public ref float TabBorderSize => ref Unsafe.AsRef<float>(&NativePtr->TabBorderSize);
public ref ImGuiDir ColorButtonPosition => ref Unsafe.AsRef<ImGuiDir>(&NativePtr->ColorButtonPosition);
public ref Vector2 ButtonTextAlign => ref Unsafe.AsRef<Vector2>(&NativePtr->ButtonTextAlign); public ref Vector2 ButtonTextAlign => ref Unsafe.AsRef<Vector2>(&NativePtr->ButtonTextAlign);
public ref Vector2 SelectableTextAlign => ref Unsafe.AsRef<Vector2>(&NativePtr->SelectableTextAlign); public ref Vector2 SelectableTextAlign => ref Unsafe.AsRef<Vector2>(&NativePtr->SelectableTextAlign);
public ref Vector2 DisplayWindowPadding => ref Unsafe.AsRef<Vector2>(&NativePtr->DisplayWindowPadding); public ref Vector2 DisplayWindowPadding => ref Unsafe.AsRef<Vector2>(&NativePtr->DisplayWindowPadding);

@ -20,7 +20,7 @@ namespace ImGuiNET
public static implicit operator ImGuiTextFilter* (ImGuiTextFilterPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImGuiTextFilter* (ImGuiTextFilterPtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator ImGuiTextFilterPtr(IntPtr nativePtr) => new ImGuiTextFilterPtr(nativePtr); public static implicit operator ImGuiTextFilterPtr(IntPtr nativePtr) => new ImGuiTextFilterPtr(nativePtr);
public RangeAccessor<byte> InputBuf => new RangeAccessor<byte>(NativePtr->InputBuf, 256); public RangeAccessor<byte> InputBuf => new RangeAccessor<byte>(NativePtr->InputBuf, 256);
public ImVector<TextRange> Filters => new ImVector<TextRange>(NativePtr->Filters); public ImPtrVector<ImGuiTextRangePtr> Filters => new ImPtrVector<ImGuiTextRangePtr>(NativePtr->Filters, Unsafe.SizeOf<ImGuiTextRange>());
public ref int CountGrep => ref Unsafe.AsRef<int>(&NativePtr->CountGrep); public ref int CountGrep => ref Unsafe.AsRef<int>(&NativePtr->CountGrep);
public void Build() public void Build()
{ {

@ -0,0 +1,40 @@
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
namespace ImGuiNET
{
public unsafe partial struct ImGuiTextRange
{
public byte* b;
public byte* e;
}
public unsafe partial struct ImGuiTextRangePtr
{
public ImGuiTextRange* NativePtr { get; }
public ImGuiTextRangePtr(ImGuiTextRange* nativePtr) => NativePtr = nativePtr;
public ImGuiTextRangePtr(IntPtr nativePtr) => NativePtr = (ImGuiTextRange*)nativePtr;
public static implicit operator ImGuiTextRangePtr(ImGuiTextRange* nativePtr) => new ImGuiTextRangePtr(nativePtr);
public static implicit operator ImGuiTextRange* (ImGuiTextRangePtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator ImGuiTextRangePtr(IntPtr nativePtr) => new ImGuiTextRangePtr(nativePtr);
public IntPtr b { get => (IntPtr)NativePtr->b; set => NativePtr->b = (byte*)value; }
public IntPtr e { get => (IntPtr)NativePtr->e; set => NativePtr->e = (byte*)value; }
public void Destroy()
{
ImGuiNative.ImGuiTextRange_destroy(NativePtr);
}
public bool empty()
{
byte ret = ImGuiNative.ImGuiTextRange_empty(NativePtr);
return ret != 0;
}
public void split(byte separator, out ImVector @out)
{
fixed (ImVector* native_out = &@out)
{
ImGuiNative.ImGuiTextRange_split(NativePtr, separator, native_out);
}
}
}
}

@ -1,50 +0,0 @@
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
namespace ImGuiNET
{
public unsafe partial struct TextRange
{
public byte* b;
public byte* e;
}
public unsafe partial struct TextRangePtr
{
public TextRange* NativePtr { get; }
public TextRangePtr(TextRange* nativePtr) => NativePtr = nativePtr;
public TextRangePtr(IntPtr nativePtr) => NativePtr = (TextRange*)nativePtr;
public static implicit operator TextRangePtr(TextRange* nativePtr) => new TextRangePtr(nativePtr);
public static implicit operator TextRange* (TextRangePtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator TextRangePtr(IntPtr nativePtr) => new TextRangePtr(nativePtr);
public IntPtr b { get => (IntPtr)NativePtr->b; set => NativePtr->b = (byte*)value; }
public IntPtr e { get => (IntPtr)NativePtr->e; set => NativePtr->e = (byte*)value; }
public string begin()
{
byte* ret = ImGuiNative.TextRange_begin(NativePtr);
return Util.StringFromPtr(ret);
}
public void Destroy()
{
ImGuiNative.TextRange_destroy(NativePtr);
}
public bool empty()
{
byte ret = ImGuiNative.TextRange_empty(NativePtr);
return ret != 0;
}
public string end()
{
byte* ret = ImGuiNative.TextRange_end(NativePtr);
return Util.StringFromPtr(ret);
}
public void split(byte separator, out ImVector @out)
{
fixed (ImVector* native_out = &@out)
{
ImGuiNative.TextRange_split(NativePtr, separator, native_out);
}
}
}
}

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Description>A .NET wrapper for the Dear ImGui library.</Description> <Description>A .NET wrapper for the Dear ImGui library.</Description>
<AssemblyVersion>1.71.0</AssemblyVersion> <AssemblyVersion>1.72.0</AssemblyVersion>
<Authors>Eric Mellino</Authors> <Authors>Eric Mellino</Authors>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

@ -3,12 +3,22 @@ using System.Runtime.InteropServices;
namespace ImGuiNET namespace ImGuiNET
{ {
public struct Pair public struct ImGuiStoragePair
{ {
public uint Key; public uint Key;
public UnionValue Value; public UnionValue Value;
} }
public unsafe struct ImGuiStoragePairPtr
{
public ImGuiStoragePair* NativePtr { get; }
public ImGuiStoragePairPtr(ImGuiStoragePair* nativePtr) => NativePtr = nativePtr;
public ImGuiStoragePairPtr(IntPtr nativePtr) => NativePtr = (ImGuiStoragePair*)nativePtr;
public static implicit operator ImGuiStoragePairPtr(ImGuiStoragePair* nativePtr) => new ImGuiStoragePairPtr(nativePtr);
public static implicit operator ImGuiStoragePair*(ImGuiStoragePairPtr wrappedPtr) => wrappedPtr.NativePtr;
public static implicit operator ImGuiStoragePairPtr(IntPtr nativePtr) => new ImGuiStoragePairPtr(nativePtr);
}
[StructLayout(LayoutKind.Explicit)] [StructLayout(LayoutKind.Explicit)]
public struct UnionValue public struct UnionValue
{ {

Loading…
Cancel
Save