Natywne kodeki FPC i równoległe renderowanie

Buildy FPC na Windows mogą używać HotPDFFPCCodecs.dll do TIFF, JPEG, JPEG 2000, konwersji kolorów LittleCMS, kodowania i dekodowania JBIG2 oraz kompresji Zopfli

Most jest budowany z dołączonych do repozytorium źródeł third-party, ze statycznym runtime C; użyj Lib/thirdparty/FPC/Build-Codecs.ps1, żeby wygenerować pasujące binarki Win32 albo Win64

Pasującą bibliotekę DLL wdróż obok pliku wykonywalnego aplikacji; loader korzysta z tej jawnej ścieżki i przed włączeniem kodeków natywnych sprawdza wersję ABI, szerokość wskaźnika i kompletny zestaw eksportów

Brakujące albo niekompatybilne biblioteki natywne bezpiecznie wyłączają swoje możliwości; obsługiwane fallbacki Pascal pozostają dostępne, a wywołania nieobsługiwanych kodeków zawodzą jawnie

Równoległe renderowanie PDF

Renderowanie stron, stron uporządkowanych, kafli i pasów w FPC używa teraz jawnych wątków roboczych, z tą samą kontrolą przyjęcia pamięci, ograniczonymi kolejkami wyjściowymi, uporządkowanym doręczaniem do wątku wywołującego, anulowaniem i sprzątaniem po wyjątkach, co pipeline Delphi

Konfiguracja operacji, tablice ICC i referencje tokenów anulowania są przechwytywane na starcie; każdy worker posiada własny renderer, podczas gdy niemutowalne listy wyświetlania i zsynchronizowane cache są współdzielone

Utrzymuj dokument przy życiu i nie edytuj zawartości jego stron, dopóki trwa równoległy render

Dekodowanie kafelkowe JPEG 2000 również używa jawnych wątków roboczych FPC, z równoważnością pikseli między trybem szeregowym i równoległym oraz kooperatywnym anulowaniem

Weryfikacja

Tests/FPC/Run-NativeCodecTests.ps1 przećwicza obie architektury, rundy kodeków natywnych, brakujące i niekompatybilne DLL, zredukowane dekodowanie JPEG, rzeczywiste nakładanie się wątków, równość pikseli między trybem szeregowym i równoległym, kolejność callbacków, budżety, anulowanie i odzyskiwanie po błędach callbacków