// ------------------------------------------------------------------------------
//
// 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 ImFontGlyphHotData
{
///
/// To be documented.
///
public float AdvanceX;
///
/// To be documented.
///
public float OccupiedWidth;
public uint RawBits0;
///
/// To be documented.
///
public unsafe ImFontGlyphHotData(float advanceX = default, float occupiedWidth = default, uint kerningPairUseBisect = default, uint kerningPairOffset = default, uint kerningPairCount = default)
{
AdvanceX = advanceX;
OccupiedWidth = occupiedWidth;
KerningPairUseBisect = kerningPairUseBisect;
KerningPairOffset = kerningPairOffset;
KerningPairCount = kerningPairCount;
}
public uint KerningPairUseBisect { get => Bitfield.Get(RawBits0, 0, 1); set => Bitfield.Set(ref RawBits0, value, 0, 1); }
public uint KerningPairOffset { get => Bitfield.Get(RawBits0, 1, 19); set => Bitfield.Set(ref RawBits0, value, 1, 19); }
public uint KerningPairCount { get => Bitfield.Get(RawBits0, 20, 12); set => Bitfield.Set(ref RawBits0, value, 20, 12); }
}
///
/// To be documented.
///
#if NET5_0_OR_GREATER
[DebuggerDisplay("{DebuggerDisplay,nq}")]
#endif
public unsafe struct ImFontGlyphHotDataPtr : IEquatable
{
public ImFontGlyphHotDataPtr(ImFontGlyphHotData* handle) { Handle = handle; }
public ImFontGlyphHotData* Handle;
public bool IsNull => Handle == null;
public static ImFontGlyphHotDataPtr Null => new ImFontGlyphHotDataPtr(null);
public ImFontGlyphHotData this[int index] { get => Handle[index]; set => Handle[index] = value; }
public static implicit operator ImFontGlyphHotDataPtr(ImFontGlyphHotData* handle) => new ImFontGlyphHotDataPtr(handle);
public static implicit operator ImFontGlyphHotData*(ImFontGlyphHotDataPtr handle) => handle.Handle;
public static bool operator ==(ImFontGlyphHotDataPtr left, ImFontGlyphHotDataPtr right) => left.Handle == right.Handle;
public static bool operator !=(ImFontGlyphHotDataPtr left, ImFontGlyphHotDataPtr right) => left.Handle != right.Handle;
public static bool operator ==(ImFontGlyphHotDataPtr left, ImFontGlyphHotData* right) => left.Handle == right;
public static bool operator !=(ImFontGlyphHotDataPtr left, ImFontGlyphHotData* right) => left.Handle != right;
public bool Equals(ImFontGlyphHotDataPtr other) => Handle == other.Handle;
///
public override bool Equals(object obj) => obj is ImFontGlyphHotDataPtr handle && Equals(handle);
///
public override int GetHashCode() => ((nuint)Handle).GetHashCode();
#if NET5_0_OR_GREATER
private string DebuggerDisplay => string.Format("ImFontGlyphHotDataPtr [0x{0}]", ((nuint)Handle).ToString("X"));
#endif
///
/// To be documented.
///
public ref float AdvanceX => ref Unsafe.AsRef(&Handle->AdvanceX);
///
/// To be documented.
///
public ref float OccupiedWidth => ref Unsafe.AsRef(&Handle->OccupiedWidth);
///
/// To be documented.
///
public uint KerningPairUseBisect { get => Handle->KerningPairUseBisect; set => Handle->KerningPairUseBisect = value; }
///
/// To be documented.
///
public uint KerningPairOffset { get => Handle->KerningPairOffset; set => Handle->KerningPairOffset = value; }
///
/// To be documented.
///
public uint KerningPairCount { get => Handle->KerningPairCount; set => Handle->KerningPairCount = value; }
}
}