Pluggable Page Render Backends
HotPDF gali nukreipti įkeltų puslapių taškų atvaizdavimą per programos nustatytą posistemę, palikdamas esamą atvaizduoklį kaip bekonfigūracionį numatytąjį ir neprivalomą atsarginį
Integruotoji savoji posistemė
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend atskleidžia įsitvirtinusią Windows savąją GDI atvaizduoklę per tą pačią viešąją posistemės sąsają, kurią naudoja išorinės implementacijos
Jos galimybės deklaruoja prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement ir prbcThreadSafe, nereikalaudamos prbcDeviceAcceleration
SIMD eilučių posistemė
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;
THPDFSIMDScanlineRenderBackend pirmiausiai atlieka pirminę visos sukompiliuotos display-list patikrą, paskui palaikomus DeviceRGB arba DeviceGray stačiakampių užpildymus rašo tiesiai į galutinį 32 bitų bitmap paviršių 64 baitų porcijomis ir 16 baitų vektoriniais galiniais
Sudėtiniai stačiakampių kontūrai laikosi nonzero arba even-odd užpildymo taisyklės kaip vienas piešimo veiksmas, išsaugodami angas, transformuotą path dalies kryptį ir anksčiau nupieštą turinį; rastravimas patikrina atšaukimą apribotomis porcijomis ir išmeta dalinius paviršius
Posistemė priima grafikos būsenos išsaugojimą ir atkūrimą, ortogonalius mastelio, postūmio ir stačiakampio pasukimo matricas, užpildymo spalvos keitimus, stačiakampius, užpildymo operatorius ir kontūro atstatymą; tekstą, savavales kontūrus, brūkšnius, vaizdus, permatomumą, apkarpytį, raštus, šydymus, nepalaikomas spalvų erdves ir neortogonaliąsias transformacijas atmeta dar prieš skirdama bitmap
Jos gebėjimai deklaruoja prbcSIMD, prbcThreadSafe ir prbcDeterministic, nereikalaudami įrenginio spartintuvo, permatomumo ar spalvų valdymo
THPDFSIMDRenderBackendStatistics praneša tiesioginius paviršius, atvaizduotus stačiakampius, vektorinius blokus, skaliarinius galinius taškus ir tikslų atmestąjį operatorių, kai reikia atsarginio kelio
Savas posistemės (backend) kontraktas
Įgyvendinkite IHPDFPageRenderBackend ir priskirkite jį THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest pateikia pageidaujamąjį puslapio indeksą ir DPI, sukompiliuotąjį THPDFPageDisplayList ir THPDFRenderDocAccess sprėndėją srautams, vaizdams, šriftams, pasirinktajam turiniui, spalvų valdymui ir atšaukimui
Posistemė gali apžiūrėti kiekvieną sukompiliuotą operatorių per THPDFPageDisplayList.GetToken, vėl neanalizuodama puslapio turinio
Grąžinkite True su naujai skirtu TBitmap, kad bitmap nuosavybę perduotumėte HotPDF; grąžinkite False be bitmap, jei atmetate užklausą
Lygiagretumas ir atsarginis kelias
Posistemės, deklaruojančios prbcThreadSafe, gali dirbti lygiagrečiai per abu lygiagrečius puslapių atvaizdavimo konvejerius
Posistemės be to gebėjimo suretikalinamos per atskirą kvietimų raktą, o display-list kompiliavimas lieka lygiagretus
rbfpSoftwareFallback neprieinamą, atmestą arba nesėkmingą posistemės užklausą pakartoja su esama atvaizduokle, o rbfpFail iškelia EHPDFRenderBackend
Posistemė gali papildomai įgyvendinti IHPDFPageRenderBackendFailureInfo arba grąžinti atskirai užklausai skiriamą diagnostikos priežastį, tad lygiagretūs atmetimai išlaiko tikslaus atvaizdavimo bandymo priežastį
Posistemės pakeitimas panaikina atmintyje ir nuolatiniame podėlyje saugomus atvaizduotų puslapių įrašus, tad skirtingų atvaizduoklių vaizdai niekada nesimaišo
Diagnostika ir vaizdo vartai
THPDFRenderBackendStatistics praneša bandymus, sėkmes, nesėkmes, programinius atsarginius kelius, suretikalintus kvietimus, praėjusį laiką, posistemės vardą ir paskutinės nesėkmės priežastį
Įtaisytasis atitikmens fiksatorius naudoja persidengiantį permatomumą ir deklaruoja didžiausiąjį Delta E 0, alfa komponavimo RGB paklaidą 0 ir besiskiriančių taškų skaičių 0, lyginant su numatytąja atvaizduokle Win32 ir Win64 aplinkose