מנועי רינדור עמוד ניתנים לחיבור
HotPDF יכול לנתב רינדור bitmap של עמודים טעונים דרך מנוע שהוגדר על ידי היישום תוך שמירה על ה-renderer הקיים כברירת המחדל ללא תצורה וכפול-back אופציונלי
מנוע מקורי מובנה
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend חושף את ה-renderer המקורי המבוסס של Windows GDI דרך אותו חוזה backend ציבורי שמשמש מימושים חיצוניים
היכולות שלו מצהירות על prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement ו-prbcThreadSafe מבלי לטעון ל-prbcDeviceAcceleration
backend סריקה SIMD
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;
THPDFSIMDScanlineRenderBackend מבצע preflight לרשימת התצוגה המהודרת המלאה, ואז כותב מילויי מלבן נתמכים של DeviceRGB או DeviceGray ישירות אל משטח מפת הסיביות הסופית בת 32-bit דרך אצוות של 64 בייטים וזנבות וקטוריים של 16 בייטים
נתיבי מלבן מורכבים מצייתים לכלל המילוי nonzero או even-odd כפעולת צביעה אחת, תוך שימור חורים, כיוון subpath מומר ותוכן שצויר קודם; ה-rasterization בודקת ביטול באצוות תחומות ומשליכה משטחים חלקיים
ה-backend מקבל שמירה ושחזור של מצב גרפיקה, קנה מידה אורתוגונלי, מטריצות תרגום וסיבוב בזוויות ישרות, שינויי צבע מילוי, מלבנים, operators מילוי ואיפוס נתיב; טקסט, נתיבים שרירותיים, קווי מתאר, תמונות, שקיפות, חיתוך, תבניות, shadings, מרחבי צבע לא נתמכים וטרנספורמציות לא-אורתוגונליות נפסלים לפני הקצאת מפת סיביות
היכולות שלו מכריזות prbcSIMD, prbcThreadSafe ו-prbcDeterministic בלי לטעון להאצת device, שקיפות או ניהול צבע
THPDFSIMDRenderBackendStatistics מדווח על משטחים ישירים, מלבנים שרונדרו, בלוקים וקטוריים, פיקסלי זנב סקלריים ואת ה-operator הנדחה המדויק כשנדרש fallback
חוזה backend מותאם אישית
ממש את IHPDFPageRenderBackend והקצה אותו ל-THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest מספק את אינדקס העמוד וה-DPI המבוקשים, את ה-THPDFPageDisplayList המהודר ואת פותר THPDFRenderDocAccess עבור זרמים, תמונות, גופנים, תוכן אופציונלי, ניהול צבע וביטול
backend יכול לבדוק כל אופרטור מהודר דרך THPDFPageDisplayList.GetToken מבלי לנתח מחדש את תוכן העמוד
החזר True עם TBitmap שהוקצה זה עתה כדי להעביר ל-HotPDF את הבעלות על ה-bitmap; החזר False ללא bitmap כדי לדחות את הבקשה
מקביליות ו-fallback
מנועים המצהירים על prbcThreadSafe יכולים לרוץ במקביל דרך שני צינורות רינדור העמוד המקבילים
מנועים ללא יכולת זו מסודרים דרך מנעול קריאה ייעודי בעוד הידור ה-display-list נשאר מקביל
rbfpSoftwareFallback מנסה שוב בקשה לא זמינה, שנדחתה או שנכשלה עם ה-renderer הקיים, בעוד rbfpFail מעלה EHPDFRenderBackend
backend יכול באופן אופציונלי לממש IHPDFPageRenderBackendFailureInfo או להחזיר סיבה אבחונית לכל בקשה כך שפסילות מקבילות שומרות את הסיבה לניסיון הרינדור המדויק
שינוי המנוע פוסל ערכי מטמון עמודים מתוצרים בזיכרון ובמתמשך כך שתמונות מרנדרים שונים לעולם אינן מתערבבות
אבחון ושער חזותי
THPDFRenderBackendStatistics מדווח על ניסיונות, הצלחות, כשלים, fallbacks תוכנה, קריאות מסודרות, זמן שחלף, שם המנוע וסיבת הכשל האחרונה
מתקן ה-parity המובנה משתמש בשקיפות חופפת ומצהיר על Delta E מקסימלי 0, שגיאת RGB של compositing-alpha 0 וספירת פיקסלים שונים 0 מול ה-renderer ברירת המחדל ב-Win32 וב-Win64