drvTransparentBlt 函式 (winddi.h)
DrvTransparentBlt 函式提供透明度的位區塊傳輸功能。
語法
BOOL DrvTransparentBlt(
[in, out] SURFOBJ *psoDst,
[in] SURFOBJ *psoSrc,
[in] CLIPOBJ *pco,
[in, optional] XLATEOBJ *pxlo,
[in] RECTL *prclDst,
[in] RECTL *prclSrc,
[in] ULONG iTransColor,
[in] ULONG ulReserved
);
參數
[in, out] psoDst
SURFOBJ 結構的指標,可識別要繪製的目標表面。
[in] psoSrc
可識別位區塊傳輸來源介面之 SURFOBJ 結構的指標。
[in] pco
CLIPOBJ 結構的指標。 系統會提供 CLIPOBJ_Xxx 服務例程,將 剪輯區域 列舉為一組矩形。 此列舉會限制已修改之目的地的區域。 可能的話,GDI 會簡化相關的裁剪。
[in, optional] pxlo
XLATEOBJ 結構的指標,指出來源色彩索引應該如何轉譯以寫入目標表面。 如果 pxlo 為 NULL,則不需要翻譯。
[in] prclDst
RECTL 結構的指標,定義要修改的矩形區域。 這個矩形是在目的地介面的座標系統中指定,並由兩個點定義:左上方和右下角。 矩形的右下角是獨佔的;也就是說,其下邊緣和右邊緣不是位區塊傳輸的一部分。 定義矩形的兩個點一律會妥善排序。
DrvTransparentBlt 永遠不會使用空的目的地矩形來呼叫。
[in] prclSrc
RECTL 結構的指標,定義要複製的矩形區域。 這個矩形是在來源介面的座標系統中指定,並由兩個點定義:左上方和右下角。 定義矩形的兩個點一律會妥善排序。
來源矩形永遠不會超過來源表面的界限,因此永遠不會過度加總來源表面。
此矩形會對應至 中國lDst 所定義的目的地矩形。 DrvTransparentBlt 永遠不會使用空的來源矩形來呼叫。
[in] iTransColor
指定來源介面格式的實體透明色彩。 對於具有調色盤的裝置,此值為調色盤索引。 對於沒有調色盤的裝置,這個值是來源介面中使用的格式 RGB 色彩。 例如,如果來源表面格式為 5:6:5 RGB 格式,則此參數中的值也會採用相同的形式。
[in] ulReserved
保留;此參數必須設定為零。
傳回值
DrvTransparentBlt 會在成功時傳回 TRUE 。 否則會傳回 FALSE。
備註
您可以選擇性地在圖形驅動程式中實作 DrvTransparentBlt 函式。
在兩個裝置管理的介面之間,或受裝置管理的介面與 GDI 管理的標準格式位圖之間,支援具有透明度的位塊傳輸。 建議驅動程式寫入器支援從視訊記憶體中的螢幕外裝置位圖到視訊記憶體中的其他表面;所有其他案例都可以插入 至 EngTransparentBlt ,但效能會降低。 驅動程式可以對 EngTransparentBlt 進行涉及裝置管理介面的標點呼叫。
不會複製符合 iTransColor 所指定透明色彩的來源介面上任何圖元。 如需透明 blts 的詳細說明,請參閱 複製位圖。
驅動程序永遠不會使用相同的表面重疊的來源和目的地矩形來呼叫。
驅動程序應該忽略色彩索引鍵比較中的任何未使用位,例如當點圖格式為 5:5:5 (每一個紅色、綠色和藍色) 的 5:5:5 (5 位時。
驅動程式會在呼叫 EngAssociateSurface 時設定 HOOK_TRANSPARENTBLT 旗標,以攔截 DrvTransparentBlt。 如果驅動程式已攔截 DrvTransparentBlt ,並呼叫 來執行不支援的作業,驅動程式應該透過將呼叫 EngTransparentBlt 中的數據轉送至 GDI 來處理作業。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winddi.h (包含Winddi.h) |