Skip to content

Commit 578c0f4

Browse files
committed
Update to version 1.50 of cimgui/imgui.
1 parent 829b7a4 commit 578c0f4

File tree

4 files changed

+126
-31
lines changed

4 files changed

+126
-31
lines changed

deps/cimgui/win7-x64/cimgui.dll

25 KB
Binary file not shown.

src/ImGui.NET/FontConfig.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public unsafe struct FontConfig
5050
/// </summary>
5151
public Vector2 GlyphExtraSpacing;
5252
/// <summary>
53+
/// Offset all glyphs from this font input.
54+
/// Set to (0, 0).
55+
/// </summary>
56+
public Vector2 GlyphOffset;
57+
/// <summary>
5358
/// List of Unicode range (2 value per range, values are inclusive, zero-terminated list).
5459
/// </summary>
5560
public char* GlyphRanges;
@@ -58,11 +63,6 @@ public unsafe struct FontConfig
5863
/// Set to false.
5964
/// </summary>
6065
public bool MergeMode;
61-
/// <summary>
62-
/// When merging (multiple ImFontInput for one ImFont), vertically center new glyphs instead of aligning their baseline.
63-
/// Set to false.
64-
/// </summary>
65-
public bool MergeGlyphCenterV;
6666

6767
// [Internal]
6868
/// <summary>

src/ImGui.NET/ImGuiNative.cs

+100-15
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public static unsafe class ImGuiNative
103103
public static extern void igSetNextWindowCollapsed(bool collapsed, SetCondition cond);
104104
[DllImport(cimguiLib)]
105105
public static extern void igSetNextWindowFocus();
106-
[DllImport(cimguiLib)]
106+
[DllImport(cimguiLib)]
107107
public static extern void igSetWindowPos(Vector2 pos, SetCondition cond); //(not recommended)
108108
[DllImport(cimguiLib)]
109109
public static extern void igSetWindowSize(Vector2 size, SetCondition cond); //(not recommended)
@@ -473,10 +473,10 @@ public static unsafe class ImGuiNative
473473
[DllImport(cimguiLib)]
474474
[return: MarshalAs(UnmanagedType.I1)]
475475
public static extern bool igTreeNode(string str_label_id);
476-
476+
477477
[DllImport(cimguiLib)]
478478
[return: MarshalAs(UnmanagedType.I1)]
479-
public static extern bool igTreeNodeEx(string label, TreeNodeFlags flags = 0);
479+
public static extern bool igTreeNodeEx(string label, TreeNodeFlags flags = 0);
480480

481481
[DllImport(cimguiLib)]
482482
[return: MarshalAs(UnmanagedType.I1)]
@@ -630,7 +630,7 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
630630

631631
// Clipping
632632
[DllImport(cimguiLib)]
633-
public static extern void igPushClipRect(Vector2 clip_rect_min, Vector2 clip_rect_max, byte intersect_with_current_clip_rect);
633+
public static extern void igPushClipRect(Vector2 clip_rect_min, Vector2 clip_rect_max, byte intersect_with_current_clip_rect);
634634
[DllImport(cimguiLib)]
635635
public static extern void igPopClipRect();
636636

@@ -685,6 +685,9 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
685685
public static extern bool igIsRectVisible(Vector2 item_size);
686686
[DllImport(cimguiLib)]
687687
[return: MarshalAs(UnmanagedType.I1)]
688+
public static extern bool igIsRectVisible2(Vector2* rect_min, Vector2* rect_max);
689+
[DllImport(cimguiLib)]
690+
[return: MarshalAs(UnmanagedType.I1)]
688691
public static extern bool igIsPosHoveringAnyWindow(Vector2 pos);
689692
[DllImport(cimguiLib)]
690693
public static extern float igGetTime();
@@ -715,16 +718,16 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
715718
public static extern void igColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b);
716719

717720
[DllImport(cimguiLib)]
718-
public static extern int igGetKeyIndex(int key);
721+
public static extern int igGetKeyIndex(int imgui_key);
719722
[DllImport(cimguiLib)]
720723
[return: MarshalAs(UnmanagedType.I1)]
721-
public static extern bool igIsKeyDown(int key_index);
724+
public static extern bool igIsKeyDown(int user_key_index);
722725
[DllImport(cimguiLib)]
723726
[return: MarshalAs(UnmanagedType.I1)]
724-
public static extern bool igIsKeyPressed(int key_index, bool repeat);
727+
public static extern bool igIsKeyPressed(int user_key_index, bool repeat);
725728
[DllImport(cimguiLib)]
726729
[return: MarshalAs(UnmanagedType.I1)]
727-
public static extern bool igIsKeyReleased(int key_index);
730+
public static extern bool igIsKeyReleased(int user_key_index);
728731
[DllImport(cimguiLib)]
729732
[return: MarshalAs(UnmanagedType.I1)]
730733
public static extern bool igIsMouseDown(int button);
@@ -796,7 +799,7 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
796799
public static extern void ImFontAtlas_GetTexDataAsAlpha8(NativeFontAtlas* atlas, byte** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
797800

798801
[DllImport(cimguiLib)]
799-
public static extern void ImFontAtlas_SetTexID(NativeFontAtlas* atlas, void* tex);
802+
public static extern void ImFontAtlas_SetTexID(NativeFontAtlas* atlas, void* id);
800803

801804
[DllImport(cimguiLib)]
802805
public static extern NativeFont* ImFontAtlas_AddFont(NativeFontAtlas* atlas, ref FontConfig font_cfg);
@@ -818,7 +821,18 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
818821
public static extern void ImFontAtlas_ClearTexData(NativeFontAtlas* atlas);
819822
[DllImport(cimguiLib)]
820823
public static extern void ImFontAtlas_Clear(NativeFontAtlas* atlas);
821-
824+
[DllImport(cimguiLib)]
825+
public static extern char* ImFontAtlas_GetGlyphRangesDefault(NativeFontAtlas* atlas);
826+
[DllImport(cimguiLib)]
827+
public static extern char* ImFontAtlas_GetGlyphRangesKorean(NativeFontAtlas* atlas);
828+
[DllImport(cimguiLib)]
829+
public static extern char* ImFontAtlas_GetGlyphRangesJapanese(NativeFontAtlas* atlas);
830+
[DllImport(cimguiLib)]
831+
public static extern char* ImFontAtlas_GetGlyphRangesChinese(NativeFontAtlas* atlas);
832+
[DllImport(cimguiLib)]
833+
public static extern char* ImFontAtlas_GetGlyphRangesCyrillic(NativeFontAtlas* atlas);
834+
[DllImport(cimguiLib)]
835+
public static extern char* ImFontAtlas_GetGlyphRangesThai(NativeFontAtlas* atlas);
822836

823837
[DllImport(cimguiLib)]
824838
public static extern void ImGuiIO_AddInputCharacter(ushort c);
@@ -842,6 +856,8 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
842856
[DllImport(cimguiLib)]
843857
public static extern void ImDrawData_DeIndexAllBuffers(DrawData* drawData);
844858
[DllImport(cimguiLib)]
859+
public static extern void ImDrawData_ScaleClipRects(DrawData* drawData, Vector2 sc);
860+
[DllImport(cimguiLib)]
845861
public static extern void ImDrawList_Clear(NativeDrawList* list);
846862
[DllImport(cimguiLib)]
847863
public static extern void ImDrawList_ClearFreeMemory(NativeDrawList* list);
@@ -858,9 +874,9 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
858874
[DllImport(cimguiLib)]
859875
public static extern void ImDrawList_AddLine(NativeDrawList* list, Vector2 a, Vector2 b, uint col, float thickness);
860876
[DllImport(cimguiLib)]
861-
public static extern void ImDrawList_AddRect(NativeDrawList* list, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners, float thickness);
877+
public static extern void ImDrawList_AddRect(NativeDrawList* list, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags, float thickness);
862878
[DllImport(cimguiLib)]
863-
public static extern void ImDrawList_AddRectFilled(NativeDrawList* list, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners);
879+
public static extern void ImDrawList_AddRectFilled(NativeDrawList* list, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags);
864880
[DllImport(cimguiLib)]
865881
public static extern void ImDrawList_AddRectFilledMultiColor(NativeDrawList* list, Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left);
866882
[DllImport(cimguiLib)]
@@ -880,7 +896,9 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
880896
[DllImport(cimguiLib)]
881897
public static extern void ImDrawList_AddTextExt(NativeDrawList* list, NativeFont* font, float font_size, Vector2 pos, uint col, byte* text_begin, byte* text_end, float wrap_width, Vector4* cpu_fine_clip_rect);
882898
[DllImport(cimguiLib)]
883-
public static extern void ImDrawList_AddImage(NativeDrawList* list, void* user_texture_id, Vector2 a, Vector2 b, Vector2 uv0, Vector2 uv1, uint col);
899+
public static extern void ImDrawList_AddImage(NativeDrawList* list, void* user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col);
900+
[DllImport(cimguiLib)]
901+
public static extern void ImDrawList_AddImageQuad(NativeDrawList* list, void* 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);
884902
[DllImport(cimguiLib)]
885903
public static extern void ImDrawList_AddPolyline(NativeDrawList* list, Vector2* points, int num_points, uint col, byte closed, float thickness, byte anti_aliased);
886904
[DllImport(cimguiLib)]
@@ -894,7 +912,7 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
894912
[DllImport(cimguiLib)]
895913
public static extern void ImDrawList_PathLineToMergeDuplicate(NativeDrawList* list, Vector2 pos);
896914
[DllImport(cimguiLib)]
897-
public static extern void ImDrawList_PathFill(NativeDrawList* list, uint col);
915+
public static extern void ImDrawList_PathFillConvex(NativeDrawList* list, uint col);
898916
[DllImport(cimguiLib)]
899917
public static extern void ImDrawList_PathStroke(NativeDrawList* list, uint col, byte closed, float thickness);
900918
[DllImport(cimguiLib)]
@@ -904,7 +922,7 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
904922
[DllImport(cimguiLib)]
905923
public static extern void ImDrawList_PathBezierCurveTo(NativeDrawList* list, Vector2 p1, Vector2 p2, Vector2 p3, int num_segments);
906924
[DllImport(cimguiLib)]
907-
public static extern void ImDrawList_PathRect(NativeDrawList* list, Vector2 rect_min, Vector2 rect_max, float rounding, int rounding_corners);
925+
public static extern void ImDrawList_PathRect(NativeDrawList* list, Vector2 rect_min, Vector2 rect_max, float rounding, int rounding_corners_flags);
908926
[DllImport(cimguiLib)]
909927
public static extern void ImDrawList_ChannelsSplit(NativeDrawList* list, int channels_count);
910928
[DllImport(cimguiLib)]
@@ -933,6 +951,73 @@ public static bool igBeginPopupModal(string name, ref bool p_opened, WindowFlags
933951
public static extern void ImDrawList_UpdateClipRect(NativeDrawList* list);
934952
[DllImport(cimguiLib)]
935953
public static extern void ImDrawList_UpdateTextureID(NativeDrawList* list);
954+
955+
// List Clipper
956+
[DllImport(cimguiLib)]
957+
public static extern void ImGuiListClipper_Begin(void* clipper, int count, float items_height);
958+
[DllImport(cimguiLib)]
959+
public static extern void ImGuiListClipper_End(void* clipper);
960+
[DllImport(cimguiLib)]
961+
[return: MarshalAs(UnmanagedType.I1)]
962+
public static extern bool ImGuiListClipper_Step(void* clipper);
963+
[DllImport(cimguiLib)]
964+
public static extern int ImGuiListClipper_GetDisplayStart(void* clipper);
965+
[DllImport(cimguiLib)]
966+
public static extern int ImGuiListClipper_GetDisplayEnd(void* clipper);
967+
968+
// ImGuiTextFilter
969+
[DllImport(cimguiLib)]
970+
public static extern void ImGuiTextFilter_Init(void* filter, char* default_filter);
971+
[DllImport(cimguiLib)]
972+
public static extern void ImGuiTextFilter_Clear(void* filter);
973+
[DllImport(cimguiLib)]
974+
public static extern bool ImGuiTextFilter_Draw(void* filter, char* label, float width);
975+
[DllImport(cimguiLib)]
976+
public static extern bool ImGuiTextFilter_PassFilter(void* filter, char* text, char* text_end);
977+
[DllImport(cimguiLib)]
978+
public static extern bool ImGuiTextFilter_IsActive(void* filter);
979+
[DllImport(cimguiLib)]
980+
public static extern void ImGuiTextFilter_Build(void* filter);
981+
982+
// ImGuiTextEditCallbackData
983+
[DllImport(cimguiLib)]
984+
public static extern void ImGuiTextEditCallbackData_DeleteChars(void* data, int pos, int bytes_count);
985+
[DllImport(cimguiLib)]
986+
public static extern void ImGuiTextEditCallbackData_InsertChars(void* data, int pos, char* text, char* text_end);
987+
[DllImport(cimguiLib)]
988+
public static extern bool ImGuiTextEditCallbackData_HasSelection(void* data);
989+
990+
// ImGuiStorage
991+
[DllImport(cimguiLib)]
992+
public static extern void ImGuiStorage_Init(void* storage);
993+
[DllImport(cimguiLib)]
994+
public static extern void ImGuiStorage_Clear(void* storage);
995+
[DllImport(cimguiLib)]
996+
public static extern int ImGuiStorage_GetInt(void* storage, uint key, int default_val);
997+
[DllImport(cimguiLib)]
998+
public static extern void ImGuiStorage_SetInt(void* storage, uint key, int val);
999+
[DllImport(cimguiLib)]
1000+
public static extern bool ImGuiStorage_GetBool(void* storage, uint key, bool default_val);
1001+
[DllImport(cimguiLib)]
1002+
public static extern void ImGuiStorage_SetBool(void* storage, uint key, bool val);
1003+
[DllImport(cimguiLib)]
1004+
public static extern float ImGuiStorage_GetFloat(void* storage, uint key, float default_val);
1005+
[DllImport(cimguiLib)]
1006+
public static extern void ImGuiStorage_SetFloat(void* storage, uint key, float val);
1007+
[DllImport(cimguiLib)]
1008+
public static extern void* ImGuiStorage_GetVoidPtr(void* storage, uint key);
1009+
[DllImport(cimguiLib)]
1010+
public static extern void ImGuiStorage_SetVoidPtr(void* storage, uint key, void* val);
1011+
[DllImport(cimguiLib)]
1012+
public static extern int* ImGuiStorage_GetIntRef(void* storage, uint key, int default_val);
1013+
[DllImport(cimguiLib)]
1014+
public static extern bool* ImGuiStorage_GetBoolRef(void* storage, uint key, bool default_val);
1015+
[DllImport(cimguiLib)]
1016+
public static extern float* ImGuiStorage_GetFloatRef(void* storage, uint key, float default_val);
1017+
[DllImport(cimguiLib)]
1018+
public static extern void** ImGuiStorage_GetVoidPtrRef(void* storage, uint key, void* default_val);
1019+
[DllImport(cimguiLib)]
1020+
public static extern void ImGuiStorage_SetAllInt(void* storage, int val);
9361021
}
9371022

9381023
public delegate bool ItemSelectedCallback(IntPtr data, int index, string out_text);

src/ImGui.NET/NativeIO.cs

+21-11
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ public unsafe struct NativeIO
8989
/// </summary>
9090
public byte FontAllowUserScaling;
9191
/// <summary>
92+
/// Font to use on NewFrame(). Use NULL to uses Fonts->Fonts[0].
93+
/// Default value: null.
94+
/// </summary>
95+
public NativeFont* FontDefault;
96+
/// <summary>
9297
/// For retina display or other situations where window coordinates are different from framebuffer coordinates.
9398
/// User storage only, presently not used by ImGui.
9499
/// Default value: (1.0f, 1.0f).
@@ -103,13 +108,16 @@ public unsafe struct NativeIO
103108
/// If the values are the same, we defaults to Min=0.0f) and Max=DisplaySize.
104109
/// Default value: (0.0f, 0.0f).
105110
/// </summary>
106-
public Vector2 DisplayVisibleMax; // <unset> (0.0f,0.0f) // If the values are the same, we defaults to Min=(0.0f) and Max=DisplaySize
107-
108-
public byte WordMovementUsesAltKey; // = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl
109-
public byte ShortcutsUseSuperKey; // = defined(__APPLE__) // OS X style: Shortcuts using Cmd/Super instead of Ctrl
110-
public byte DoubleClickSelectsWord; // = defined(__APPLE__) // OS X style: Double click selects by word instead of selecting whole text
111-
public byte MultiSelectUsesSuperKey; // = defined(__APPLE__) // OS X style: Multi-selection in lists uses Cmd/Super instead of Ctrl [unused yet]
112-
111+
public Vector2 DisplayVisibleMax;
112+
/// <summary>
113+
/// OS X style: Text editing cursor movement using Alt instead of Ctrl,
114+
/// Shortcuts using Cmd/Super instead of Ctrl,
115+
/// Line/Text Start and End using Cmd+Arrows instead of Home/End,
116+
/// Double click selects by word instead of selecting whole text,
117+
/// Multi-selection in lists uses Cmd/Super instead of Ctrl
118+
/// Default value: True on OSX; false otherwise.
119+
/// </summary>
120+
public byte OSXBehaviors;
113121

114122
//------------------------------------------------------------------
115123
// User Functions
@@ -131,6 +139,7 @@ public unsafe struct NativeIO
131139
/// (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)
132140
/// </summary>
133141
public IntPtr SetClipboardTextFn;
142+
public IntPtr ClipboardUserData;
134143

135144
/// <summary>
136145
/// Optional: override memory allocations. MemFreeFn() may be called with a NULL pointer.
@@ -234,6 +243,11 @@ public unsafe struct NativeIO
234243
/// Number of visible windows (exclude child windows)
235244
/// </summary>
236245
public int MetricsActiveWindows;
246+
/// <summary>
247+
/// Mouse delta. Note that this is zero if either current or previous position are negative,
248+
/// so a disappearing/reappearing mouse won't have a huge delta for one frame.
249+
/// </summary>
250+
public Vector2 MouseDelta;
237251

238252
//------------------------------------------------------------------
239253
// [Internal] ImGui will maintain those fields for you
@@ -244,10 +258,6 @@ public unsafe struct NativeIO
244258
/// </summary>
245259
public Vector2 MousePosPrev;
246260
/// <summary>
247-
/// Mouse delta. Note that this is zero if either current or previous position are negative to allow mouse enabling/disabling.
248-
/// </summary>
249-
public Vector2 MouseDelta;
250-
/// <summary>
251261
/// Mouse button went from !Down to Down
252262
/// </summary>
253263
public fixed byte MouseClicked[5];

0 commit comments

Comments
 (0)