|
Cross-Platform C Library Integration
Pregled
HotPDF koristi HPDFCLibs.pas kao Pascal most između Delphi-ja i statički povezanih C objektnog fajlova koje koriste HPDFZLib.pas, HPDFJpeg.pas i HPDFTiff.pas. Jedinica izlaže runtime simbole koje te biblioteke očekuju, uz jednu doslednu Pascal deklaracionu sloj i za Win32 i za Win64 buildove
Key Features
- Deljeni runtime most za zlib-ng u zlib-kompatibilnom režimu, zlib-ng 64-bitni runtime SIMD dispatch, libjpeg-turbo 3.1.90 sa NASM SIMD objektima i libtiff 4.7.1
- Memory, stdio, string/character, and selected math/runtime helper coverage
- 32-byte aligned malloc, free, realloc, and calloc bridging for SIMD-friendly native buffers
- Win32 kompatibilnost sa zlib-ng OMF objektima napravljenim pomoću bcc32c i JPEG/TIFF OMF objektima napravljenim pomoću bcc32 iz Lib\thirdparty\Win32
- Win64 kompatibilnost sa COFF64 obj fajlovima iz Lib\thirdparty\Win64 i zlib-ng COFF objektima iz Lib\thirdparty\Win64x
- Pomoćni tipovi veličine pokazivača i Pascal stubovi za simbole koje Delphi linker ne može direktno da uveze
JPEG pozadina visokih performansi
Standardni JPEG tokovi rada podržani su preko libjpeg-turbo 3.1.90 kroz klasični libjpeg-kompatibilan API izložen u HPDFJpeg.pas. OMF izgradnje za Win32, Win64 i Win64x uključuju odgovarajuće NASM SIMD akceleracione objekte, a isti priloženi skup objekata dostupan je i sloju za integraciju TIFF-a za rukovanje JPEG-komprimovanim TIFF-ovima
Napomene o zlib-ng mostu
Win64 Flate tokovi slike koriste mali C most oko zlib-ng jednokratne kompresije. Most čuva izvorne zlib-ng tipove dužine unutar C-ja, a istovremeno zadržava Pascal-izložene 32-bitne dužine bafera i maksimalno ponašanje kompresije HotPDF-a
Win64x i dijagnostičke MSVC Win64 zlib-ng izgradnje objekata uključuju SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ i AVX2 implementacije sa generičkim rezervnim opcijama. Win32 zadržava generičke zlib-ng OMF objekte radi kompatibilnosti sa bcc32c, dok Win32 JPEG/TIFF put ostaje na klasičnim bcc32 OMF objektima
Podržane grupe funkcija
- Memory Management: malloc, free, realloc, calloc with 32-byte aligned allocation
- File and Stream Operations: fopen, fclose, fputc, fread, fwrite, fflush, ferror
- String and Character Functions: strcpy, sprintf, memcpy, memmove, memset, tolower, toupper, towlower, towupper, getenv, atoi
- Runtime Helpers: ftol, setjmp, log, snprintf, memcmp
Architecture Support
- Win32: Pascal omotači i WinAPI podržani pomoćnici koji odgovaraju bcc32c i bcc32 OMF objektima povezanim sa svakom podržanom Delphi Win32 verzijom
- Win64: msvcrt.dll imports plus small helper stubs required by the MSVC-generated COFF64 objects
- Common Types: PtrInt and PtrUInt keep pointer-sized declarations aligned across both targets
Vidi i
|