using System; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; namespace ImGuiNET { public unsafe partial struct ImDrawCmd { public Vector4 ClipRect; public IntPtr TextureId; public uint VtxOffset; public uint IdxOffset; public uint ElemCount; public IntPtr UserCallback; public void* UserCallbackData; } public unsafe partial struct ImDrawCmdPtr { public ImDrawCmd* NativePtr { get; } public ImDrawCmdPtr(ImDrawCmd* nativePtr) => NativePtr = nativePtr; public ImDrawCmdPtr(IntPtr nativePtr) => NativePtr = (ImDrawCmd*)nativePtr; public static implicit operator ImDrawCmdPtr(ImDrawCmd* nativePtr) => new ImDrawCmdPtr(nativePtr); public static implicit operator ImDrawCmd* (ImDrawCmdPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImDrawCmdPtr(IntPtr nativePtr) => new ImDrawCmdPtr(nativePtr); public ref Vector4 ClipRect => ref Unsafe.AsRef(&NativePtr->ClipRect); public ref IntPtr TextureId => ref Unsafe.AsRef(&NativePtr->TextureId); public ref uint VtxOffset => ref Unsafe.AsRef(&NativePtr->VtxOffset); public ref uint IdxOffset => ref Unsafe.AsRef(&NativePtr->IdxOffset); public ref uint ElemCount => ref Unsafe.AsRef(&NativePtr->ElemCount); public ref IntPtr UserCallback => ref Unsafe.AsRef(&NativePtr->UserCallback); public IntPtr UserCallbackData { get => (IntPtr)NativePtr->UserCallbackData; set => NativePtr->UserCallbackData = (void*)value; } public void Destroy() { ImGuiNative.ImDrawCmd_destroy((ImDrawCmd*)(NativePtr)); } public IntPtr GetTexID() { IntPtr ret = ImGuiNative.ImDrawCmd_GetTexID((ImDrawCmd*)(NativePtr)); return ret; } } }