TTileKey.Create объединяет DocumentRevision, PageNumber, Zoom, Rotation, RenderOptions, TileLeft, TileTop, TileWidth и TileHeight в стабильный ключ фрагмента рендеринга
Equals сравнивает все поля ключа и допускает расхождения масштаба меньше микроуровня
| Method | Description |
|---|---|
Create(Capacity: Integer = 64) | Создаёт ограниченный кэш с минимальной ёмкостью в один фрагмент |
Create(Capacity: Integer; Governor: TPdfCacheGovernor) | Создаёт кэш, который дополнительно конкурирует за общий бюджет байтов |
Destroy | Очищает кэш и освобождает каждый принадлежащий ему битмап |
Get(const Key: TTileKey): TBitmap | Возвращает кэшированный битмап без передачи владения и обновляет локальную и общую давность использования |
Put(const Key: TTileKey; Bitmap: TBitmap) | Передаёт владение битмапом кэшу и удерживает его только когда позволяют и ёмкость записей, и общий бюджет байтов |
InvalidatePage(PageNumber: Integer) | Удаляет все фрагменты одной страницы |
InvalidateRevision(DocumentRevision: Int64) | Оставляет только фрагменты, принадлежащие указанной редакции документа |
Clear | Освобождает все кэшированные битмапы и токены губернатора |
| Property | Type | Description |
|---|---|---|
Capacity | Integer | Максимальное число фрагментов |
Count | Integer | Текущее число фрагментов |
StoredBytes | Int64 | Текущий учёт битмапов: ширина умножить на высоту умножить на четыре байта |
CacheGovernor | TPdfCacheGovernor | Необязательный общий губернатор; назначение сперва очищает существующие записи |
Кэш никогда не владеет CacheGovernor
Губернатор должен переживать кэш, либо свойство нужно сбросить в nil до освобождения губернатора