Нативні кодеки FPC і паралельний рендеринг

Збірки FPC під Windows можуть використовувати HotPDFFPCCodecs.dll для TIFF, JPEG, JPEG 2000, перетворення кольорів LittleCMS, кодування/декодування JBIG2 і компресії Zopfli

Міст збирається з постачаних у репозиторії сторонніх джерел зі статичним C-рантаймом; для генерації відповідних бінарників Win32 або Win64 використовуйте Lib/thirdparty/FPC/Build-Codecs.ps1

Розгорніть відповідну DLL поруч із виконуваним файлом застосунку; завантажувач бере саме цей явний шлях і перевіряє версію ABI, розрядність вказівника та повний набір експортів, перш ніж увімкнути нативні кодеки

Відсутні або несумісні нативні бібліотеки безпечно вимикають свої можливості; підтримувані Pascal-резерви залишаються доступними, а виклики непідтримуваних кодеків падають із явною помилкою

Паралельний рендеринг PDF

Рендеринг сторінок, упорядкованих сторінок, тайлів і смуг у FPC тепер використовує явні робочі потоки з тими самими, що й конвеєр Delphi, допуском пам'яті, обмеженими чергами виводу, упорядкованою доставкою в поток викликача, скасуванням та прибиранням після винятків

Конфігурація операції, масиви ICC і посилання на токени скасування фіксуються на старті; кожен робочий потік володіє власним рендерером, тоді як незмінні display lists і синхронізовані кеші є спільними

Утримуйте документ живим і не редагуйте вміст його сторінок, доки триває паралельний рендеринг

Тайлове декодування JPEG 2000 також використовує явні робочі потоки FPC, з еквівалентністю послідовних/паралельних пікселів і кооперативним скасуванням

Перевірка

Tests/FPC/Run-NativeCodecTests.ps1 перевіряє обидві архітектури, проходи туди й назад для нативних кодеків, відсутні/несумісні DLL, скорочене декодування JPEG, справжнє перекриття потоків, рівність послідовних/паралельних пікселів, порядок колбеків, бюджети, скасування та відновлення після помилок колбеків