// ------------------------------------------------------------------------------ // // 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 { /// /// - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows.
/// - With multi-viewport enabled, we extend this concept to have multiple active viewports.
/// - In the future we will extend this concept further to also represent Platform Monitor and support a "no main platform window" operation mode.
/// - About Main Area vs Work Area:
/// - Main Area = entire viewport.
/// - Work Area = entire viewport minus sections used by main menu bars (for platform windows), or by task bar (for platform monitor).
/// - Windows are generally trying to stay within the Work Area of their host viewport.
///
[StructLayout(LayoutKind.Sequential)] public partial struct ImGuiViewport { /// /// To be documented. /// public uint ID; /// /// To be documented. /// public ImGuiViewportFlags Flags; /// /// To be documented. /// public Vector2 Pos; /// /// To be documented. /// public Vector2 Size; /// /// To be documented. /// public Vector2 WorkPos; /// /// To be documented. /// public Vector2 WorkSize; /// /// To be documented. /// public float DpiScale; /// /// To be documented. /// public uint ParentViewportId; /// /// To be documented. /// public unsafe ImDrawData* DrawData; /// /// To be documented. /// public unsafe void* RendererUserData; /// /// To be documented. /// public unsafe void* PlatformUserData; /// /// To be documented. /// public unsafe void* PlatformHandle; /// /// To be documented. /// public unsafe void* PlatformHandleRaw; /// /// To be documented. /// public byte PlatformRequestMove; /// /// To be documented. /// public byte PlatformRequestResize; /// /// To be documented. /// public byte PlatformRequestClose; /// /// To be documented. /// public unsafe ImGuiViewport(uint id = default, ImGuiViewportFlags flags = default, Vector2 pos = default, Vector2 size = default, Vector2 workPos = default, Vector2 workSize = default, float dpiScale = default, uint parentViewportId = default, ImDrawDataPtr drawData = default, void* rendererUserData = default, void* platformUserData = default, void* platformHandle = default, void* platformHandleRaw = default, bool platformRequestMove = default, bool platformRequestResize = default, bool platformRequestClose = default) { ID = id; Flags = flags; Pos = pos; Size = size; WorkPos = workPos; WorkSize = workSize; DpiScale = dpiScale; ParentViewportId = parentViewportId; DrawData = drawData; RendererUserData = rendererUserData; PlatformUserData = platformUserData; PlatformHandle = platformHandle; PlatformHandleRaw = platformHandleRaw; PlatformRequestMove = platformRequestMove ? (byte)1 : (byte)0; PlatformRequestResize = platformRequestResize ? (byte)1 : (byte)0; PlatformRequestClose = platformRequestClose ? (byte)1 : (byte)0; } /// /// To be documented. /// public unsafe void Destroy() { fixed (ImGuiViewport* @this = &this) { ImGui.DestroyNative(@this); } } } /// /// To be documented. /// #if NET5_0_OR_GREATER [DebuggerDisplay("{DebuggerDisplay,nq}")] #endif public unsafe struct ImGuiViewportPtr : IEquatable { public ImGuiViewportPtr(ImGuiViewport* handle) { Handle = handle; } public ImGuiViewport* Handle; public bool IsNull => Handle == null; public static ImGuiViewportPtr Null => new ImGuiViewportPtr(null); public ImGuiViewport this[int index] { get => Handle[index]; set => Handle[index] = value; } public static implicit operator ImGuiViewportPtr(ImGuiViewport* handle) => new ImGuiViewportPtr(handle); public static implicit operator ImGuiViewport*(ImGuiViewportPtr handle) => handle.Handle; public static bool operator ==(ImGuiViewportPtr left, ImGuiViewportPtr right) => left.Handle == right.Handle; public static bool operator !=(ImGuiViewportPtr left, ImGuiViewportPtr right) => left.Handle != right.Handle; public static bool operator ==(ImGuiViewportPtr left, ImGuiViewport* right) => left.Handle == right; public static bool operator !=(ImGuiViewportPtr left, ImGuiViewport* right) => left.Handle != right; public bool Equals(ImGuiViewportPtr other) => Handle == other.Handle; /// public override bool Equals(object obj) => obj is ImGuiViewportPtr handle && Equals(handle); /// public override int GetHashCode() => ((nuint)Handle).GetHashCode(); #if NET5_0_OR_GREATER private string DebuggerDisplay => string.Format("ImGuiViewportPtr [0x{0}]", ((nuint)Handle).ToString("X")); #endif /// /// To be documented. /// public ref uint ID => ref Unsafe.AsRef(&Handle->ID); /// /// To be documented. /// public ref ImGuiViewportFlags Flags => ref Unsafe.AsRef(&Handle->Flags); /// /// To be documented. /// public ref Vector2 Pos => ref Unsafe.AsRef(&Handle->Pos); /// /// To be documented. /// public ref Vector2 Size => ref Unsafe.AsRef(&Handle->Size); /// /// To be documented. /// public ref Vector2 WorkPos => ref Unsafe.AsRef(&Handle->WorkPos); /// /// To be documented. /// public ref Vector2 WorkSize => ref Unsafe.AsRef(&Handle->WorkSize); /// /// To be documented. /// public ref float DpiScale => ref Unsafe.AsRef(&Handle->DpiScale); /// /// To be documented. /// public ref uint ParentViewportId => ref Unsafe.AsRef(&Handle->ParentViewportId); /// /// To be documented. /// public ref ImDrawDataPtr DrawData => ref Unsafe.AsRef(&Handle->DrawData); /// /// To be documented. /// public void* RendererUserData { get => Handle->RendererUserData; set => Handle->RendererUserData = value; } /// /// To be documented. /// public void* PlatformUserData { get => Handle->PlatformUserData; set => Handle->PlatformUserData = value; } /// /// To be documented. /// public void* PlatformHandle { get => Handle->PlatformHandle; set => Handle->PlatformHandle = value; } /// /// To be documented. /// public void* PlatformHandleRaw { get => Handle->PlatformHandleRaw; set => Handle->PlatformHandleRaw = value; } /// /// To be documented. /// public ref bool PlatformRequestMove => ref Unsafe.AsRef(&Handle->PlatformRequestMove); /// /// To be documented. /// public ref bool PlatformRequestResize => ref Unsafe.AsRef(&Handle->PlatformRequestResize); /// /// To be documented. /// public ref bool PlatformRequestClose => ref Unsafe.AsRef(&Handle->PlatformRequestClose); /// /// To be documented. /// public unsafe void Destroy() { ImGui.DestroyNative(Handle); } } /// /// To be documented. /// #if NET5_0_OR_GREATER [DebuggerDisplay("{DebuggerDisplay,nq}")] #endif public unsafe struct ImGuiViewportPtrPtr : IEquatable { public ImGuiViewportPtrPtr(ImGuiViewport** handle) { Handle = handle; } public ImGuiViewport** Handle; public bool IsNull => Handle == null; public static ImGuiViewportPtrPtr Null => new ImGuiViewportPtrPtr(null); public ImGuiViewport* this[int index] { get => Handle[index]; set => Handle[index] = value; } public static implicit operator ImGuiViewportPtrPtr(ImGuiViewport** handle) => new ImGuiViewportPtrPtr(handle); public static implicit operator ImGuiViewport**(ImGuiViewportPtrPtr handle) => handle.Handle; public static bool operator ==(ImGuiViewportPtrPtr left, ImGuiViewportPtrPtr right) => left.Handle == right.Handle; public static bool operator !=(ImGuiViewportPtrPtr left, ImGuiViewportPtrPtr right) => left.Handle != right.Handle; public static bool operator ==(ImGuiViewportPtrPtr left, ImGuiViewport** right) => left.Handle == right; public static bool operator !=(ImGuiViewportPtrPtr left, ImGuiViewport** right) => left.Handle != right; public bool Equals(ImGuiViewportPtrPtr other) => Handle == other.Handle; /// public override bool Equals(object obj) => obj is ImGuiViewportPtrPtr handle && Equals(handle); /// public override int GetHashCode() => ((nuint)Handle).GetHashCode(); #if NET5_0_OR_GREATER private string DebuggerDisplay => string.Format("ImGuiViewportPtrPtr [0x{0}]", ((nuint)Handle).ToString("X")); #endif } }