Megjelenítési listák és nyomdai gyártás

A HotPDF a betöltött oldalfolyamokat újra felhasználható THPDFPageDisplayList példányokká fordítja THPDFDisplayListInfo metrikákkal és tartalomobjektum-határoló dobozokkal

A dokumentum-renderelés gyorsítótárazza a lefordított listákat, míg a hívók ismételt végrehajtáshoz vagy regionális objektum-lekérdezésekhez függetlenül tulajdonolt listát kérhetnek

Shared production interpreter

Non-progressive bitmap, direct-DC, Form and display-list replay all pass pre-tokenised content through HPDFInterpretContentTokensDevice, which owns operator traversal and cancellation boundaries

THPDFPageRenderer implements IHPDFContentOperatorDevice, so the shared traversal invokes its complete graphics, text, resource, clipping, pattern, transparency, marked-content and image state machine without reducing production rendering to the smaller semantic callback surface

Display lists cache operator token indexes while streams are compiled and replay only those indexes, avoiding repeated operand scans; THPDFPageDisplayList.OperatorCount and THPDFDisplayListInfo.OperatorCount expose the cached command count

Semantic devices that implement only IHPDFContentDevice

Korlátozott és párhuzamos renderelés

A THPDFRenderTileEvent egyszerre egy hívó által méretezett csempét vagy vízszintes sávot kap, így a csúcs rasztermemória független marad a teljes oldalmérettől

A RenderLoadedPagesParallel átfedi a megjelenítési lista fordítását a lejátszással, az első kész oldalt a teljes fordítási gát megvárása nélkül indítja el, dinamikusan egyensúlyozza mindkét szakaszt korlátozott feldolgozókon, és THPDFBitmapArray értéket ad vissza bemeneti sorrendben

A fordítás a megjelenítési lista gyorsítótárzárán kívül fut, míg a dupla ellenőrzésű felvétel és a védett használatszámlálók lehetővé teszik, hogy a nem kapcsolódó oldalak párhuzamosan forduljanak a közzétett bejegyzések duplikálása vagy egy lista lejátszás közbeni kitakarítása nélkül

A THPDFParallelRenderPipelineInfo elérhetővé teszi a gyorsítótár-találatokat, a fordításokat, a befejezéseket, a csúcs fordítási és renderelési párhuzamosságot, az első eredménynél lefordított oldalakat, az első eredmény késleltetését és a teljes eltelt időt

A RenderLoadedPagesParallelOrdered a visszahívásokat bemeneti sorrendben, a hívószálon szállítja, és minden kölcsönzött bittérképet a visszahívás visszatérése után szabadít fel, míg a hívó által kiválasztott kimeneti mélység termelői visszanyomást alkalmaz, és egy helyet tartalékol a következő szükséges oldalnak, így egy lassú korai oldal nem akadhat el a későbbi eredmények mögött

A rendezett folyamatos feldolgozás legfeljebb egy megjelenítési listát és aktív renderelést tart fenn feldolgozónként, valamint a korlátozott befejezett-bittérkép-sort, ahelyett hogy a teljes feladatkimenetet rezidensen tartaná

Pluggable render backends ugyanazokat a lefordított listákat fogyasztja egy nem tulajdonló dokumentum-erőforrás-nézeten keresztül, így a szinkron és párhuzamos útvonalak elkerülik az oldaltartalom újraelemzését, miközben a háttér-képességek határozzák meg, hogy a hívások átfedhetők-e vagy soros kiosztást igényelnek

A folyamatszintű csúcsmemória-ütemező mostantól mindkét párhuzamos API-t korlátozza: a legnagyobb oldalbecslés csökkenti a kezdeti feldolgozószámot, minden igényelt oldal lefoglalja a teljes becsült munkakészletét, és a rendezett kimenet a visszahívás-szállításig megtartja azt a foglalást

Az ütemező-megszakítás felébreszti a költségvetés-várakozókat a visszahívás-megszakítás vagy a feldolgozó-hiba esetén, míg a telemetria elérhetővé teszi a kért és hatékony feldolgozókat, a csúcs foglalási súlyt, a késleltetett oldalakat és az aggregált várakozási időt

RenderLoadedPageTilesParallel and RenderLoadedPageBandsParallel deliver borrowed row-major tiles or top-to-bottom bands across isolated workers while each worker owns at most one tile and a caller-supplied working-memory cap reduces concurrency before the first claim

Parallel render contexts copy immutable Type 3 glyph token sequences and halftone threshold screens from one bounded LRU cache, preserving renderer-local ownership for mutable graphics state and GDI resources

SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded, and SaveLoadedPagesToTiffStreamBanded consume the same band renderer through streaming PNG or TIFF encoders, so very large pages emit compressed output row by row without holding a complete framebuffer while THPDFBandImageExportInfo

A megosztott képdekódolás külön koordinálódik, így a vektoros oldalmunka párhuzamos marad anélkül, hogy megsértené a dekódolt kép-gyorsítótár bejegyzéseit

A PrefetchLoadedPages dedikált megszakítási tokennel melegíti a raszter-bejegyzéseket, miközben a gyorsítótárzárón kívül fordít és renderel, és az előtér-oldal-renderelés a késleltetés-érzékeny munka megkezdése előtt megelőzi a feldolgozót

A THPDFLoadedPagePrefetchInfo jelenti az ütemezett, indított, befejezett, gyorsítótárazott, renderelt, hibás, megszakított és előtér-megelőzött munkát, valamint az utolsó és csúcs megszakítási késleltetést

Átlátszóság és nyomtatási vezérlők

Az átlátszóság-laposítás először ellenőrzi a megjelenítési lista átlátszósági számát és egy hívó által definiált pixelplafont, majd az oldalfestést veszteségmentes, Flate-tömörített kalibrált RGB képre cseréli

A Separation vagy DeviceN színanyagokat tartalmazó oldalak vektoros tartalomként maradnak, az észlelt színanyagokkal és megőrzési állapottal, amelyek elérhetők a hívó számára

A renderelő átviteli függvényeket és az ExtGState 1., 5., 6., 10. vagy 16. típusú féltónus-szótárait hajtja végre, miközben megőrzi a független RGB-képernyőket és azok átviteli felülbírálásait a q és Q között

A THPDFInkCoverageInfo jelenti az átlagos CMYK-lefedettséget, a maximális teljes területlefedettséget és a kiválasztott küszöb feletti pixelek számát

A folyamat- és spotlemez-kimenet támogatja a DeviceCMYK, Separation és DeviceN színanyagokat

Loaded-page colour rewrite ugyanazt a teljes renderelőt használja az összetett oldalak Gray, RGB vagy CMYK konverziójához, miközben az egyszerű eszközszínű oldaltartalmat vektorként tartja meg, és explicit spotlemez-szabályzatot alkalmaz

A THPDFTrappingInfo kombinálja a dokumentum-trapping-deklarációkat, az oldalmetadátumokat és a TrapNet strukturális diagnosztikát

ICC-munkafolyamat

A renderelési transzformáció kombinálhat egy PDF forrásprofilt, keverési színteret, próbaprofil, kimeneti profilt és sRGB raszter-célhelyet

Mind a négy ICC-renderelési szándék és a valódi feketepont-kompenzáció konzisztensen kerül alkalmazásra a vektorszínekre és a képmintákra a csővezeték során

A teljes transzformációk megosztottak a vektoros, kép-, oldal- és párhuzamos renderelési útvonalak között egy szálbiztos 64 MiB-os LRU-gyorsítótáron keresztül, amelyet a forrás-, próba- és kimeneti profil tartalma, a hatékony renderelési szándék és a feketepont-kompenzáció kulcsol

Az átlátszóság-laposítás ugyanazt a transzformációs csővezetéket használja újra, majd varratmentes D65 CalRGB csempéket bocsát ki a hívó által vezérelt teljes-raszter és csempénkénti pixelköltségvetések alatt

Elsődleges API-k