33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace ImGuiNET
|
|
{
|
|
public struct ImGuiStoragePair
|
|
{
|
|
public uint Key;
|
|
public UnionValue Value;
|
|
}
|
|
|
|
public unsafe struct ImGuiStoragePairPtr
|
|
{
|
|
public ImGuiStoragePair* NativePtr { get; }
|
|
public ImGuiStoragePairPtr(ImGuiStoragePair* nativePtr) => NativePtr = nativePtr;
|
|
public ImGuiStoragePairPtr(IntPtr nativePtr) => NativePtr = (ImGuiStoragePair*)nativePtr;
|
|
public static implicit operator ImGuiStoragePairPtr(ImGuiStoragePair* nativePtr) => new ImGuiStoragePairPtr(nativePtr);
|
|
public static implicit operator ImGuiStoragePair*(ImGuiStoragePairPtr wrappedPtr) => wrappedPtr.NativePtr;
|
|
public static implicit operator ImGuiStoragePairPtr(IntPtr nativePtr) => new ImGuiStoragePairPtr(nativePtr);
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Explicit)]
|
|
public struct UnionValue
|
|
{
|
|
[FieldOffset(0)]
|
|
public int ValueI32;
|
|
[FieldOffset(0)]
|
|
public float ValueF32;
|
|
[FieldOffset(0)]
|
|
public IntPtr ValuePtr;
|
|
}
|
|
}
|