Beispiel #1
0
 /// <summary>
 /// フォント・エントリーに値を設定する。
 /// </summary>
 /// <param name="data">フォント・エントリーのコレクション</param>
 public void SetEntries(FsbFontEntries data)
 {
     foreach (var newEntry in data.Items.Values)
     {
         if (this.Items.ContainsKey(newEntry.CharacterID))
         {
             //// CharacterIDが登録済みの場合は更新する。
             var oldEntry = this.Items[newEntry.CharacterID];
             oldEntry.CharacterID = newEntry.CharacterID;
             oldEntry.PosX        = newEntry.PosX;
             oldEntry.PosY        = newEntry.PosY;
             oldEntry.Width       = newEntry.Width;
             oldEntry.Height      = newEntry.Height;
             oldEntry.OffsetX     = newEntry.OffsetX;
             oldEntry.OffsetY     = newEntry.OffsetY;
             oldEntry.AdvanceX    = newEntry.AdvanceX;
             oldEntry.Channel     = newEntry.Channel;
             oldEntry.Kernings.Clear();
             foreach (var newKernPair in newEntry.Kernings)
             {
                 oldEntry.Kernings.Add(newKernPair);
             }
         }
         else
         {
             //// 未登録の場合は追加する。
             this.Items.Add(newEntry.CharacterID, newEntry);
         }
     }
 }
Beispiel #2
0
        public FsbFontEntries Clone()
        {
            var fsbFontEntries = new FsbFontEntries();

            foreach (var entry in this.Items.Values)
            {
                var newEntry = entry.Clone();
                fsbFontEntries.AddEntry(newEntry);
            }

            return(fsbFontEntries);
        }