minesweeper_game/Library/PackageCache/com.unity.ugui@22ebcc83720a/Runtime/TMP/FontFeatureCommonGSUB.cs
2025-03-15 14:30:26 -04:00

108 lines
3.4 KiB
C#

using System;
using UnityEngine;
#pragma warning disable CS0660, CS0661
namespace TMPro
{
/// <summary>
/// The SingleSubstitutionRecord defines the substitution of a single glyph by another.
/// </summary>
[Serializable]
public struct SingleSubstitutionRecord
{
//
}
/// <summary>
/// The MultipleSubstitutionRecord defines the substitution of a single glyph by multiple glyphs.
/// </summary>
[Serializable]
public struct MultipleSubstitutionRecord
{
/// <summary>
/// The index of the target glyph being substituted.
/// </summary>
public uint targetGlyphID { get { return m_TargetGlyphID; } set { m_TargetGlyphID = value; } }
/// <summary>
/// Array that contains the index of the glyphs replacing the single target glyph.
/// </summary>
public uint[] substituteGlyphIDs { get { return m_SubstituteGlyphIDs; } set { m_SubstituteGlyphIDs = value; } }
// =============================================
// Private backing fields for public properties.
// =============================================
[SerializeField]
private uint m_TargetGlyphID;
[SerializeField]
private uint[] m_SubstituteGlyphIDs;
}
/// <summary>
/// The AlternateSubstitutionRecord defines the substitution of a single glyph by several potential alternative glyphs.
/// </summary>
[Serializable]
public struct AlternateSubstitutionRecord
{
}
/// <summary>
/// The LigatureSubstitutionRecord defines the substitution of multiple glyphs by a single glyph.
/// </summary>
[Serializable]
public struct LigatureSubstitutionRecord
{
/// <summary>
/// Array that contains the index of the glyphs being substituted.
/// </summary>
public uint[] componentGlyphIDs { get { return m_ComponentGlyphIDs; } set { m_ComponentGlyphIDs = value; } }
/// <summary>
/// The index of the replacement glyph.
/// </summary>
public uint ligatureGlyphID { get { return m_LigatureGlyphID; } set { m_LigatureGlyphID = value; } }
// =============================================
// Private backing fields for public properties.
// =============================================
[SerializeField]
private uint[] m_ComponentGlyphIDs;
[SerializeField]
private uint m_LigatureGlyphID;
// =============================================
// Operator overrides
// =============================================
public static bool operator==(LigatureSubstitutionRecord lhs, LigatureSubstitutionRecord rhs)
{
if (lhs.ligatureGlyphID != rhs.m_LigatureGlyphID)
return false;
int lhsComponentCount = lhs.m_ComponentGlyphIDs.Length;
if (lhsComponentCount != rhs.m_ComponentGlyphIDs.Length)
return false;
for (int i = 0; i < lhsComponentCount; i++)
{
if (lhs.m_ComponentGlyphIDs[i] != rhs.m_ComponentGlyphIDs[i])
return false;
}
return true;
}
public static bool operator!=(LigatureSubstitutionRecord lhs, LigatureSubstitutionRecord rhs)
{
return !(lhs == rhs);
}
}
}