private static CompactFontFormat0FdSelect ReadFormat0FdSelect(CompactFontFormatData data, int numberOfGlyphs,
                                                                      RegistryOrderingSupplement registryOrderingSupplement)
        {
            var dictionaries = new int[numberOfGlyphs];

            for (var i = 0; i < numberOfGlyphs; i++)
            {
                dictionaries[i] = data.ReadCard8();
            }

            return(new CompactFontFormat0FdSelect(registryOrderingSupplement, dictionaries));
        }
 public CompactFontFormat3FdSelect(RegistryOrderingSupplement registryOrderingSupplement, IReadOnlyList <Range3> ranges, int sentinel)
 {
     RegistryOrderingSupplement = registryOrderingSupplement ?? throw new ArgumentNullException(nameof(registryOrderingSupplement));
     Ranges   = ranges ?? throw new ArgumentNullException(nameof(ranges));
     Sentinel = sentinel;
 }
 public CompactFontFormat0FdSelect(RegistryOrderingSupplement registryOrderingSupplement, IReadOnlyList <int> fontDictionaries)
 {
     RegistryOrderingSupplement = registryOrderingSupplement ?? throw new ArgumentNullException(nameof(registryOrderingSupplement));
     FontDictionaries           = fontDictionaries ?? throw new ArgumentNullException(nameof(fontDictionaries));
 }
        private static CompactFontFormat3FdSelect ReadFormat3FdSelect(CompactFontFormatData data, RegistryOrderingSupplement registryOrderingSupplement)
        {
            var numberOfRanges = data.ReadCard16();
            var ranges         = new CompactFontFormat3FdSelect.Range3[numberOfRanges];

            for (var i = 0; i < numberOfRanges; i++)
            {
                var first      = data.ReadCard16();
                var dictionary = data.ReadCard8();

                ranges[i] = new CompactFontFormat3FdSelect.Range3(first, dictionary);
            }

            var sentinel = data.ReadCard16();

            return(new CompactFontFormat3FdSelect(registryOrderingSupplement, ranges, sentinel));
        }