// ------------------------------------------------------------------------------
//
// 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 ImGuiPlatformIO
{
///
/// To be documented.
///
public unsafe void* PlatformCreateWindow;
///
/// To be documented.
///
public unsafe void* PlatformDestroyWindow;
///
/// To be documented.
///
public unsafe void* PlatformShowWindow;
///
/// To be documented.
///
public unsafe void* PlatformSetWindowPos;
///
/// To be documented.
///
public unsafe void* PlatformGetWindowPos;
///
/// To be documented.
///
public unsafe void* PlatformSetWindowSize;
///
/// To be documented.
///
public unsafe void* PlatformGetWindowSize;
///
/// To be documented.
///
public unsafe void* PlatformSetWindowFocus;
///
/// To be documented.
///
public unsafe void* PlatformGetWindowFocus;
///
/// To be documented.
///
public unsafe void* PlatformGetWindowMinimized;
///
/// To be documented.
///
public unsafe void* PlatformSetWindowTitle;
///
/// To be documented.
///
public unsafe void* PlatformSetWindowAlpha;
///
/// To be documented.
///
public unsafe void* PlatformUpdateWindow;
///
/// To be documented.
///
public unsafe void* PlatformRenderWindow;
///
/// To be documented.
///
public unsafe void* PlatformSwapBuffers;
///
/// To be documented.
///
public unsafe void* PlatformGetWindowDpiScale;
///
/// To be documented.
///
public unsafe void* PlatformOnChangedViewport;
///
/// To be documented.
///
public unsafe void* PlatformCreateVkSurface;
///
/// To be documented.
///
public unsafe void* RendererCreateWindow;
///
/// To be documented.
///
public unsafe void* RendererDestroyWindow;
///
/// To be documented.
///
public unsafe void* RendererSetWindowSize;
///
/// To be documented.
///
public unsafe void* RendererRenderWindow;
///
/// To be documented.
///
public unsafe void* RendererSwapBuffers;
///
/// To be documented.
///
public ImVector Monitors;
///
/// To be documented.
///
public ImVector Viewports;
///
/// To be documented.
///
public unsafe ImGuiPlatformIO(delegate* platformCreatewindow = default, delegate* platformDestroywindow = default, delegate* platformShowwindow = default, delegate* platformSetwindowpos = default, delegate* platformGetwindowpos = default, delegate* platformSetwindowsize = default, delegate* platformGetwindowsize = default, delegate* platformSetwindowfocus = default, delegate* platformGetwindowfocus = default, delegate* platformGetwindowminimized = default, delegate* platformSetwindowtitle = default, delegate* platformSetwindowalpha = default, delegate* platformUpdatewindow = default, delegate* platformRenderwindow = default, delegate* platformSwapbuffers = default, delegate* platformGetwindowdpiscale = default, delegate* platformOnchangedviewport = default, delegate* platformCreatevksurface = default, delegate* rendererCreatewindow = default, delegate* rendererDestroywindow = default, delegate* rendererSetwindowsize = default, delegate* rendererRenderwindow = default, delegate* rendererSwapbuffers = default, ImVector monitors = default, ImVector viewports = default)
{
PlatformCreateWindow = (void*)platformCreatewindow;
PlatformDestroyWindow = (void*)platformDestroywindow;
PlatformShowWindow = (void*)platformShowwindow;
PlatformSetWindowPos = (void*)platformSetwindowpos;
PlatformGetWindowPos = (void*)platformGetwindowpos;
PlatformSetWindowSize = (void*)platformSetwindowsize;
PlatformGetWindowSize = (void*)platformGetwindowsize;
PlatformSetWindowFocus = (void*)platformSetwindowfocus;
PlatformGetWindowFocus = (void*)platformGetwindowfocus;
PlatformGetWindowMinimized = (void*)platformGetwindowminimized;
PlatformSetWindowTitle = (void*)platformSetwindowtitle;
PlatformSetWindowAlpha = (void*)platformSetwindowalpha;
PlatformUpdateWindow = (void*)platformUpdatewindow;
PlatformRenderWindow = (void*)platformRenderwindow;
PlatformSwapBuffers = (void*)platformSwapbuffers;
PlatformGetWindowDpiScale = (void*)platformGetwindowdpiscale;
PlatformOnChangedViewport = (void*)platformOnchangedviewport;
PlatformCreateVkSurface = (void*)platformCreatevksurface;
RendererCreateWindow = (void*)rendererCreatewindow;
RendererDestroyWindow = (void*)rendererDestroywindow;
RendererSetWindowSize = (void*)rendererSetwindowsize;
RendererRenderWindow = (void*)rendererRenderwindow;
RendererSwapBuffers = (void*)rendererSwapbuffers;
Monitors = monitors;
Viewports = viewports;
}
///
/// To be documented.
///
public unsafe void Destroy()
{
fixed (ImGuiPlatformIO* @this = &this)
{
ImGui.DestroyNative(@this);
}
}
}
///
/// To be documented.
///
#if NET5_0_OR_GREATER
[DebuggerDisplay("{DebuggerDisplay,nq}")]
#endif
public unsafe struct ImGuiPlatformIOPtr : IEquatable
{
public ImGuiPlatformIOPtr(ImGuiPlatformIO* handle) { Handle = handle; }
public ImGuiPlatformIO* Handle;
public bool IsNull => Handle == null;
public static ImGuiPlatformIOPtr Null => new ImGuiPlatformIOPtr(null);
public ImGuiPlatformIO this[int index] { get => Handle[index]; set => Handle[index] = value; }
public static implicit operator ImGuiPlatformIOPtr(ImGuiPlatformIO* handle) => new ImGuiPlatformIOPtr(handle);
public static implicit operator ImGuiPlatformIO*(ImGuiPlatformIOPtr handle) => handle.Handle;
public static bool operator ==(ImGuiPlatformIOPtr left, ImGuiPlatformIOPtr right) => left.Handle == right.Handle;
public static bool operator !=(ImGuiPlatformIOPtr left, ImGuiPlatformIOPtr right) => left.Handle != right.Handle;
public static bool operator ==(ImGuiPlatformIOPtr left, ImGuiPlatformIO* right) => left.Handle == right;
public static bool operator !=(ImGuiPlatformIOPtr left, ImGuiPlatformIO* right) => left.Handle != right;
public bool Equals(ImGuiPlatformIOPtr other) => Handle == other.Handle;
///
public override bool Equals(object obj) => obj is ImGuiPlatformIOPtr handle && Equals(handle);
///
public override int GetHashCode() => ((nuint)Handle).GetHashCode();
#if NET5_0_OR_GREATER
private string DebuggerDisplay => string.Format("ImGuiPlatformIOPtr [0x{0}]", ((nuint)Handle).ToString("X"));
#endif
///
/// To be documented.
///
public void* PlatformCreateWindow { get => Handle->PlatformCreateWindow; set => Handle->PlatformCreateWindow = value; }
///
/// To be documented.
///
public void* PlatformDestroyWindow { get => Handle->PlatformDestroyWindow; set => Handle->PlatformDestroyWindow = value; }
///
/// To be documented.
///
public void* PlatformShowWindow { get => Handle->PlatformShowWindow; set => Handle->PlatformShowWindow = value; }
///
/// To be documented.
///
public void* PlatformSetWindowPos { get => Handle->PlatformSetWindowPos; set => Handle->PlatformSetWindowPos = value; }
///
/// To be documented.
///
public void* PlatformGetWindowPos { get => Handle->PlatformGetWindowPos; set => Handle->PlatformGetWindowPos = value; }
///
/// To be documented.
///
public void* PlatformSetWindowSize { get => Handle->PlatformSetWindowSize; set => Handle->PlatformSetWindowSize = value; }
///
/// To be documented.
///
public void* PlatformGetWindowSize { get => Handle->PlatformGetWindowSize; set => Handle->PlatformGetWindowSize = value; }
///
/// To be documented.
///
public void* PlatformSetWindowFocus { get => Handle->PlatformSetWindowFocus; set => Handle->PlatformSetWindowFocus = value; }
///
/// To be documented.
///
public void* PlatformGetWindowFocus { get => Handle->PlatformGetWindowFocus; set => Handle->PlatformGetWindowFocus = value; }
///
/// To be documented.
///
public void* PlatformGetWindowMinimized { get => Handle->PlatformGetWindowMinimized; set => Handle->PlatformGetWindowMinimized = value; }
///
/// To be documented.
///
public void* PlatformSetWindowTitle { get => Handle->PlatformSetWindowTitle; set => Handle->PlatformSetWindowTitle = value; }
///
/// To be documented.
///
public void* PlatformSetWindowAlpha { get => Handle->PlatformSetWindowAlpha; set => Handle->PlatformSetWindowAlpha = value; }
///
/// To be documented.
///
public void* PlatformUpdateWindow { get => Handle->PlatformUpdateWindow; set => Handle->PlatformUpdateWindow = value; }
///
/// To be documented.
///
public void* PlatformRenderWindow { get => Handle->PlatformRenderWindow; set => Handle->PlatformRenderWindow = value; }
///
/// To be documented.
///
public void* PlatformSwapBuffers { get => Handle->PlatformSwapBuffers; set => Handle->PlatformSwapBuffers = value; }
///
/// To be documented.
///
public void* PlatformGetWindowDpiScale { get => Handle->PlatformGetWindowDpiScale; set => Handle->PlatformGetWindowDpiScale = value; }
///
/// To be documented.
///
public void* PlatformOnChangedViewport { get => Handle->PlatformOnChangedViewport; set => Handle->PlatformOnChangedViewport = value; }
///
/// To be documented.
///
public void* PlatformCreateVkSurface { get => Handle->PlatformCreateVkSurface; set => Handle->PlatformCreateVkSurface = value; }
///
/// To be documented.
///
public void* RendererCreateWindow { get => Handle->RendererCreateWindow; set => Handle->RendererCreateWindow = value; }
///
/// To be documented.
///
public void* RendererDestroyWindow { get => Handle->RendererDestroyWindow; set => Handle->RendererDestroyWindow = value; }
///
/// To be documented.
///
public void* RendererSetWindowSize { get => Handle->RendererSetWindowSize; set => Handle->RendererSetWindowSize = value; }
///
/// To be documented.
///
public void* RendererRenderWindow { get => Handle->RendererRenderWindow; set => Handle->RendererRenderWindow = value; }
///
/// To be documented.
///
public void* RendererSwapBuffers { get => Handle->RendererSwapBuffers; set => Handle->RendererSwapBuffers = value; }
///
/// To be documented.
///
public ref ImVector Monitors => ref Unsafe.AsRef>(&Handle->Monitors);
///
/// To be documented.
///
public ref ImVector Viewports => ref Unsafe.AsRef>(&Handle->Viewports);
///
/// To be documented.
///
public unsafe void Destroy()
{
ImGui.DestroyNative(Handle);
}
}
}