// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ using System; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using HexaGen.Runtime; using System.Numerics; namespace Dalamud.Bindings.ImGui { /// /// To be documented. /// [StructLayout(LayoutKind.Sequential)] public partial struct ImDrawListSplitter { /// /// To be documented. /// public int Current; /// /// To be documented. /// public int Count; /// /// To be documented. /// public ImVector Channels; /// /// To be documented. /// public unsafe ImDrawListSplitter(int current = default, int count = default, ImVector channels = default) { Current = current; Count = count; Channels = channels; } /// /// To be documented. /// public unsafe void Clear() { fixed (ImDrawListSplitter* @this = &this) { ImGui.ClearNative(@this); } } /// /// To be documented. /// public unsafe void ClearFreeMemory() { fixed (ImDrawListSplitter* @this = &this) { ImGui.ClearFreeMemoryNative(@this); } } /// /// To be documented. /// public unsafe void Destroy() { fixed (ImDrawListSplitter* @this = &this) { ImGui.DestroyNative(@this); } } /// /// To be documented. /// public unsafe void Merge(ImDrawListPtr drawList) { fixed (ImDrawListSplitter* @this = &this) { ImGui.MergeNative(@this, drawList); } } /// /// To be documented. /// public unsafe void Merge(ref ImDrawList drawList) { fixed (ImDrawListSplitter* @this = &this) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.MergeNative(@this, (ImDrawList*)pdrawList); } } } /// /// To be documented. /// public unsafe void SetCurrentChannel(ImDrawListPtr drawList, int channelIdx) { fixed (ImDrawListSplitter* @this = &this) { ImGui.SetCurrentChannelNative(@this, drawList, channelIdx); } } /// /// To be documented. /// public unsafe void SetCurrentChannel(ref ImDrawList drawList, int channelIdx) { fixed (ImDrawListSplitter* @this = &this) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.SetCurrentChannelNative(@this, (ImDrawList*)pdrawList, channelIdx); } } } /// /// To be documented. /// public unsafe void Split(ImDrawListPtr drawList, int count) { fixed (ImDrawListSplitter* @this = &this) { ImGui.SplitNative(@this, drawList, count); } } /// /// To be documented. /// public unsafe void Split(ref ImDrawList drawList, int count) { fixed (ImDrawListSplitter* @this = &this) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.SplitNative(@this, (ImDrawList*)pdrawList, count); } } } } /// /// To be documented. /// #if NET5_0_OR_GREATER [DebuggerDisplay("{DebuggerDisplay,nq}")] #endif public unsafe struct ImDrawListSplitterPtr : IEquatable { public ImDrawListSplitterPtr(ImDrawListSplitter* handle) { Handle = handle; } public ImDrawListSplitter* Handle; public bool IsNull => Handle == null; public static ImDrawListSplitterPtr Null => new ImDrawListSplitterPtr(null); public ImDrawListSplitter this[int index] { get => Handle[index]; set => Handle[index] = value; } public static implicit operator ImDrawListSplitterPtr(ImDrawListSplitter* handle) => new ImDrawListSplitterPtr(handle); public static implicit operator ImDrawListSplitter*(ImDrawListSplitterPtr handle) => handle.Handle; public static bool operator ==(ImDrawListSplitterPtr left, ImDrawListSplitterPtr right) => left.Handle == right.Handle; public static bool operator !=(ImDrawListSplitterPtr left, ImDrawListSplitterPtr right) => left.Handle != right.Handle; public static bool operator ==(ImDrawListSplitterPtr left, ImDrawListSplitter* right) => left.Handle == right; public static bool operator !=(ImDrawListSplitterPtr left, ImDrawListSplitter* right) => left.Handle != right; public bool Equals(ImDrawListSplitterPtr other) => Handle == other.Handle; /// public override bool Equals(object obj) => obj is ImDrawListSplitterPtr handle && Equals(handle); /// public override int GetHashCode() => ((nuint)Handle).GetHashCode(); #if NET5_0_OR_GREATER private string DebuggerDisplay => string.Format("ImDrawListSplitterPtr [0x{0}]", ((nuint)Handle).ToString("X")); #endif /// /// To be documented. /// public ref int Current => ref Unsafe.AsRef(&Handle->Current); /// /// To be documented. /// public ref int Count => ref Unsafe.AsRef(&Handle->Count); /// /// To be documented. /// public ref ImVector Channels => ref Unsafe.AsRef>(&Handle->Channels); /// /// To be documented. /// public unsafe void Clear() { ImGui.ClearNative(Handle); } /// /// To be documented. /// public unsafe void ClearFreeMemory() { ImGui.ClearFreeMemoryNative(Handle); } /// /// To be documented. /// public unsafe void Destroy() { ImGui.DestroyNative(Handle); } /// /// To be documented. /// public unsafe void Merge(ImDrawListPtr drawList) { ImGui.MergeNative(Handle, drawList); } /// /// To be documented. /// public unsafe void Merge(ref ImDrawList drawList) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.MergeNative(Handle, (ImDrawList*)pdrawList); } } /// /// To be documented. /// public unsafe void SetCurrentChannel(ImDrawListPtr drawList, int channelIdx) { ImGui.SetCurrentChannelNative(Handle, drawList, channelIdx); } /// /// To be documented. /// public unsafe void SetCurrentChannel(ref ImDrawList drawList, int channelIdx) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.SetCurrentChannelNative(Handle, (ImDrawList*)pdrawList, channelIdx); } } /// /// To be documented. /// public unsafe void Split(ImDrawListPtr drawList, int count) { ImGui.SplitNative(Handle, drawList, count); } /// /// To be documented. /// public unsafe void Split(ref ImDrawList drawList, int count) { fixed (ImDrawList* pdrawList = &drawList) { ImGui.SplitNative(Handle, (ImDrawList*)pdrawList, count); } } } }