DJ VK писал(а):экономия 33%. Неплохая оптимизация размера хедера...
Ну, способ как бы не мной придуман. Если не ошибаюсь в ttf формате так информация об отдельных глифах задается. То есть есть диапазон глифов, но некоторых может не быть и вот для них смещение просто равно смещению на следующий глиф.
DJ VK писал(а):А как себя ведет та же беркли в случае больше 2гб?
Понятия не имею. Подозреваю что просто растут без ограничения, а может доп файлы появляются. Тут же два разных ограничения: 1. Файловая система может ограничивать 2 Гб, но это уже не часто встречается, только на флешках с FAT. 2. Ограничения на величину смещению у тебя инт, соответственно максимум 4 Гб.
DJ VK писал(а):Идеально решение - вынести размер тома в тайлах в параметр.
Ну, такой вариант всегда есть. Проблема в том, что если этот параметр задан один на все тайлохранилище, то если при экспорте на бог знает каком томе столкнулись с проблемой - то все нужно переделывать.
Идеально было бы придумать адаптивный режим, который бы не сильно усложнял потом чтение, но при этом позволял некоторые тома разбить на 4. Но для такого режима лучше именование файлов взять qrts (типа как в GMV, но еще с разбивкой по папкам) или 0123, а не то которое используется в Беркли.
Например так:
Зум задает сколько символов(qrts) должно быть в полном имени тайла. Для упрощения обычно делают Z+1 и всегда начинается с t. 1 символ на нулевом зуме и 24 максимум на 23-м.
Под имя тома и нумерацию внутри тома откусываем 10 символов справа, а остальное используем под имя папки. Если под имя папки осталось больше 8 символов, то разделяем на два уровня иерархи.
Имя тома по-умолчанию +2 символа, то есть в томе выходит 256*256 тайлов, но если где-то слишком много, то разбиваем конкретный том на 4, с добавлением к имени каждого файла 1-го символа. Если все равно не влазим, то можно каждый разбивать на 4 и тд на пару уровней.
При чтении получается, что если нет файла с дефолтной длинной имени, то нужно проверять с добавлением 1-го, 2-х, 3-х символов (может больше, но вряд ли имеет смысл)
Но это весьма большое усложнение чтения. И вряд ли того стоит. Просто умозрительные упражнения.