// ------------------------------------------------------------------------------
//
// 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
}
}