虛擬向量圖形支援
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
不支持真實向量圖形的裝置可以利用 Unidrv 針對虛擬向量圖形所提供的支援。 當您使用這項功能時,Unidrv 會將實心黑色矩形和水準和垂直線直接下載到非向量圖形裝置,以減少在點陣表面呈現這些數位的額外負荷。 這也會減少輸出數據的大小,這可以改善無法有效率地處理點陣數據的裝置的印表機輸送量。
若要受益於這項功能,非函式圖形裝置的迷你驅動程式只需要支援 CmdRectBlackFill 命令。 當印表機屬性頁的 [進階] 索引標籤中的 [列印優化] 功能關閉時,會停用此功能。
虛擬函式圖形功能會攔截對DrvBitBlt、DrvStrokePath和DrvLineTo的呼叫,以判斷要繪製實心黑色矩形或垂直或水平線。 當 Unidrv 將圖形辨識為有效的矩形時(一個是實心黑色,沒有複雜的裁剪,而且不使用目前目的地位的 ROP),它會儲存在矩形陣列中,而不是在表面上繪製。
虛擬浮點圖形功能最困難的層面是避免由必須繪製在先前繪製物件之上的物件所造成的迭置順序問題。 頂端的物件可能需要清除或覆寫黑色矩形的一部分。 如果黑色矩形已經下載到裝置,系統介面上稍後繪製的物件可能無法正確繪製。
此問題的解決方案是暫時儲存有效的矩形,而不是立即在表面上繪製它。 當新的物件要繪製在表面上時,Unidrv 會檢查它,以查看物件是否與任何黑色矩形重疊。 如果是的話,黑色矩形的重疊部分會先繪製在介面上,然後再繪製新的物件,藉此維持正確的 Z 順序。 先繪製矩形也會考慮繪製新物件可能與該矩形有關聯的 ROP,包括與目的地互動的物件。
此外,可以繪製新的 物件包含複雜的裁剪,讓產生的圖形不再是矩形。 當頻帶或頁面轉譯完成時,任何剩餘的黑色矩形都可以直接下載到裝置,而不會造成任何迭置順序問題。 Unidrv 會維護每個帶最多 256 個矩形的清單,並盡可能串連 BitBlt 矩形。
Pseudovector 圖形問題
虛擬函式圖形功能在某些情況下可能會改變迭置順序,特別是當文字直接下載到裝置,而具有複雜裁剪的後續對象必須與該文字互動時。