EngBitBlt 函式 (winddi.h)
EngBitBlt函式提供裝置管理介面之間或裝置管理介面與 GDI 管理標準格式點陣圖之間的一般位區塊傳輸功能。
語法
ENGAPI BOOL EngBitBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclTrg,
POINTL *pptlSrc,
POINTL *pptlMask,
BRUSHOBJ *pbo,
POINTL *pptlBrush,
[in] ROP4 rop4
);
參數
psoTrg
SURFOBJ結構的指標,可識別要繪製的介面。
psoSrc
如果 rop4 需要它,則指向定義位區塊傳輸作業來源的 SURFOBJ 結構指標。
psoMask
SURFOBJ 結構的指標,定義要當做遮罩使用的介面。 遮罩會定義為每個圖元 1 位的點陣圖。 一般而言,遮罩會限制目的地介面中要修改的區域。 遮罩是由 rop4 選取,其值為 0xAACC。 當遮罩為零時,目的地表面不會受到影響。
遮罩夠大,足以涵蓋目的地矩形。
如果此參數的值是 Null ,且 rop4需要遮罩,則會使用筆刷中的隱含遮罩。 如果需要遮罩, psoMask 會覆寫筆刷中的隱含遮罩。
pco
CLIPOBJ結構的指標。 系統會提供 CLIPOBJ_Xxx服務常式,以將剪輯區域列舉為一組矩形。 此列舉會限制將修改之目的地的區域。 可能的話,GDI 可簡化涉及的裁剪;例如,永遠不會使用單一裁剪矩形呼叫此函式。 GDI 會先裁剪目的地矩形,再呼叫此函式,因此不需要進行額外的裁剪。
pxlo
XLATEOBJ結構的指標,指出來源和目標介面之間應該如何轉譯色彩索引。
prclTrg
目的地介面座標系統中 RECTL 結構的指標,定義要修改的區域。 矩形是由兩個點所定義;左上方和右下角。 這個矩形的下邊緣和右邊緣不是位區塊傳輸的一部分,這表示矩形是右下角獨佔的。
EngBitBlt 永遠不會使用空的目的地矩形呼叫。 定義矩形的兩個點一律會妥善排序。
pptlSrc
如果來源存在,則定義來源矩形左上角的 POINTL 結構的指標。 如果沒有來源,驅動程式應該忽略此參數。
pptlMask
POINTL 結構的指標,定義遮罩中的哪個圖元對應至目的地矩形的左上角。 如果 psoMask 中未指定遮罩,驅動程式應該忽略此參數。
pbo
要用來定義位區塊傳輸模式的 BRUSHOBJ 結構的指標。 GDI 的BRUSHOBJ_pvGetRbrush 服務常式會擷取裝置的筆刷實現。 如果 rop4 參數不需要模式,驅動程式可以忽略此參數。
pptlBrush
POINTL結構的指標,定義目的地介面中的筆刷原點。 筆刷的左上方圖元此時對齊,筆刷會根據其維度重複。 如果 rop4 參數不需要模式,請忽略此參數。
[in] rop4
表示點陣作業,定義遮罩、圖樣、來源和目的地圖元的結合方式,以將輸出圖元寫入目的地介面。
這是四元數點陣運算,這是一般三元 Rop3 作業的自然延伸。 Rop4 有 16 個相關位,類似于 Rop3 的 8 個定義位。 (忽略另一個 Rop3 的備援位。) 實作 Rop4 的最簡單方式是個別考慮其 2 個位元組。 下層位元組會指定應該在遮罩為 1 的位置計算的 Rop3。 高位元組指定可在遮罩為 0 的位置計算並套用的 Rop3。
傳回值
如果函式成功,則傳回值為 TRUE 。 否則,它會是 FALSE,並記錄錯誤碼。
備註
如果裝置的介面組織成標準格式點陣圖,驅動程式可以呼叫 EngBitBlt來要求 GDI 執行位區塊傳輸。 如果驅動程式有特殊硬體可快速處理簡單傳輸,但不想處理具有複雜傳輸的呼叫,則驅動程式可能會這麼做。
如需點陣作業的詳細資訊,請參閱Microsoft Windows SDK檔。
規格需求
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。 |
目標平台 | Universal |
標頭 | winddi.h (包括 Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |