123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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);
- }
- }
- }
|