using System; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; namespace ImGuiNET { public unsafe partial struct ImGuiViewport { public uint ID; public ImGuiViewportFlags Flags; public Vector2 Pos; public Vector2 Size; public Vector2 WorkPos; public Vector2 WorkSize; public float DpiScale; public uint ParentViewportId; public ImDrawData* DrawData; public void* RendererUserData; public void* PlatformUserData; public void* PlatformHandle; public void* PlatformHandleRaw; public byte PlatformRequestMove; public byte PlatformRequestResize; public byte PlatformRequestClose; } public unsafe partial struct ImGuiViewportPtr { public ImGuiViewport* NativePtr { get; } public ImGuiViewportPtr(ImGuiViewport* nativePtr) => NativePtr = nativePtr; public ImGuiViewportPtr(IntPtr nativePtr) => NativePtr = (ImGuiViewport*)nativePtr; public static implicit operator ImGuiViewportPtr(ImGuiViewport* nativePtr) => new ImGuiViewportPtr(nativePtr); public static implicit operator ImGuiViewport* (ImGuiViewportPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImGuiViewportPtr(IntPtr nativePtr) => new ImGuiViewportPtr(nativePtr); public ref uint ID => ref Unsafe.AsRef(&NativePtr->ID); public ref ImGuiViewportFlags Flags => ref Unsafe.AsRef(&NativePtr->Flags); public ref Vector2 Pos => ref Unsafe.AsRef(&NativePtr->Pos); public ref Vector2 Size => ref Unsafe.AsRef(&NativePtr->Size); public ref Vector2 WorkPos => ref Unsafe.AsRef(&NativePtr->WorkPos); public ref Vector2 WorkSize => ref Unsafe.AsRef(&NativePtr->WorkSize); public ref float DpiScale => ref Unsafe.AsRef(&NativePtr->DpiScale); public ref uint ParentViewportId => ref Unsafe.AsRef(&NativePtr->ParentViewportId); public ImDrawDataPtr DrawData => new ImDrawDataPtr(NativePtr->DrawData); public IntPtr RendererUserData { get => (IntPtr)NativePtr->RendererUserData; set => NativePtr->RendererUserData = (void*)value; } public IntPtr PlatformUserData { get => (IntPtr)NativePtr->PlatformUserData; set => NativePtr->PlatformUserData = (void*)value; } public IntPtr PlatformHandle { get => (IntPtr)NativePtr->PlatformHandle; set => NativePtr->PlatformHandle = (void*)value; } public IntPtr PlatformHandleRaw { get => (IntPtr)NativePtr->PlatformHandleRaw; set => NativePtr->PlatformHandleRaw = (void*)value; } public ref bool PlatformRequestMove => ref Unsafe.AsRef(&NativePtr->PlatformRequestMove); public ref bool PlatformRequestResize => ref Unsafe.AsRef(&NativePtr->PlatformRequestResize); public ref bool PlatformRequestClose => ref Unsafe.AsRef(&NativePtr->PlatformRequestClose); public void Destroy() { ImGuiNative.ImGuiViewport_destroy((ImGuiViewport*)(NativePtr)); } public Vector2 GetCenter() { Vector2 __retval; ImGuiNative.ImGuiViewport_GetCenter(&__retval, (ImGuiViewport*)(NativePtr)); return __retval; } public Vector2 GetWorkCenter() { Vector2 __retval; ImGuiNative.ImGuiViewport_GetWorkCenter(&__retval, (ImGuiViewport*)(NativePtr)); return __retval; } } }