FPC Native Codecs and Parallel Rendering

Windows FPC 빌드는 TIFF, JPEG, JPEG 2000, LittleCMS color 변환, JBIG2 인코딩/디코딩, Zopfli 압축에 HotPDFFPCCodecs.dll을 쓸 수 있습니다

bridge는 저장소에 포함된 third-party 소스를 static C runtime으로 빌드한 것이고, 맞는 Win32나 Win64 binary를 만들 때는 Lib/thirdparty/FPC/Build-Codecs.ps1을 사용하세요

맞는 DLL은 애플리케이션 실행 파일 옆에 배치하고, loader는 그 명시적 경로를 쓰면서 네이티브 codec을 켜기 전에 ABI 버전, pointer 폭, 전체 export set을 검사합니다

없거나 호환되지 않는 네이티브 라이브러리는 해당 capability를 안전하게 끄고, 지원되는 Pascal fallback은 계속 쓸 수 있으며 지원하지 않는 codec 호출은 명시적으로 실패합니다

병렬 PDF rendering

FPC page, ordered-page, tile, band rendering은 이제 명시적 worker thread를 쓰며, Delphi pipeline과 같은 메모리 admission, 상한 있는 출력 queue, caller thread 순서 전달, 취소, exception 정리를 갖춥니다

연산 설정, ICC 배열, cancellation token 참조는 시작 시점에 capture되고, 각 worker는 자기 renderer를 소유하는 동안 immutable display list와 동기화된 cache는 공유합니다

병렬 render가 도는 동안에는 문서를 살려 두고 page 내용을 편집하지 마세요

JPEG 2000 tiled 디코딩도 명시적 FPC worker thread를 쓰며, serial/parallel pixel 동등성과 협조적 취소를 갖춥니다

검증

Tests/FPC/Run-NativeCodecTests.ps1은 양쪽 architecture, 네이티브 codec round trip, 없거나 호환되지 않는 DLL, reduced JPEG 디코딩, 실제 thread 겹침, serial/parallel pixel 동등성, callback 순서, 예산, 취소, callback 오류 뒤 복구를 실제로 돌려 봅니다