using System; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; namespace ImGuiNET { public unsafe partial struct ImDrawData { public byte Valid; public int CmdListsCount; public int TotalIdxCount; public int TotalVtxCount; public ImDrawList** CmdLists; public Vector2 DisplayPos; public Vector2 DisplaySize; public Vector2 FramebufferScale; public ImGuiViewport* OwnerViewport; } public unsafe partial struct ImDrawDataPtr { public ImDrawData* NativePtr { get; } public ImDrawDataPtr(ImDrawData* nativePtr) => NativePtr = nativePtr; public ImDrawDataPtr(IntPtr nativePtr) => NativePtr = (ImDrawData*)nativePtr; public static implicit operator ImDrawDataPtr(ImDrawData* nativePtr) => new ImDrawDataPtr(nativePtr); public static implicit operator ImDrawData* (ImDrawDataPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImDrawDataPtr(IntPtr nativePtr) => new ImDrawDataPtr(nativePtr); public ref bool Valid => ref Unsafe.AsRef(&NativePtr->Valid); public ref int CmdListsCount => ref Unsafe.AsRef(&NativePtr->CmdListsCount); public ref int TotalIdxCount => ref Unsafe.AsRef(&NativePtr->TotalIdxCount); public ref int TotalVtxCount => ref Unsafe.AsRef(&NativePtr->TotalVtxCount); public IntPtr CmdLists { get => (IntPtr)NativePtr->CmdLists; set => NativePtr->CmdLists = (ImDrawList**)value; } public ref Vector2 DisplayPos => ref Unsafe.AsRef(&NativePtr->DisplayPos); public ref Vector2 DisplaySize => ref Unsafe.AsRef(&NativePtr->DisplaySize); public ref Vector2 FramebufferScale => ref Unsafe.AsRef(&NativePtr->FramebufferScale); public ImGuiViewportPtr OwnerViewport => new ImGuiViewportPtr(NativePtr->OwnerViewport); public void Clear() { ImGuiNative.ImDrawData_Clear((ImDrawData*)(NativePtr)); } public void DeIndexAllBuffers() { ImGuiNative.ImDrawData_DeIndexAllBuffers((ImDrawData*)(NativePtr)); } public void Destroy() { ImGuiNative.ImDrawData_destroy((ImDrawData*)(NativePtr)); } public void ScaleClipRects(Vector2 fb_scale) { ImGuiNative.ImDrawData_ScaleClipRects((ImDrawData*)(NativePtr), fb_scale); } } }