EngStretchBltROP 函式 (winddi.h)
EngStretchBltROP 函式會使用 ROP 執行延展位區塊傳輸。
語法
ENGAPI BOOL EngStretchBltROP(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlHTOrg,
[in] RECTL *prclDest,
[in] RECTL *prclSrc,
POINTL *pptlMask,
[in] ULONG iMode,
BRUSHOBJ *pbo,
[in] DWORD rop4
);
參數
psoDest
SURFOBJ 結構的指標,描述要繪製的介面。
psoSrc
SURFOBJ 結構的指標,描述位區塊傳輸的來源介面。
psoMask
為來源表面定義遮罩之 SURFOBJ 結構的指標。 遮罩是由邏輯對應所定義,這是每個圖元 1 位的點陣圖。 一般而言,遮罩會限制目的地介面中要修改的區域。 此遮罩的大小應該一律與來源表面相同。
pco
CLIPOBJ 結構的指標,限制在目的地中修改區域。 系統會提供 CLIPOBJ_Xxx 服務例程,將 剪輯區域 列舉為一組矩形。
可能的話,GDI 會簡化相關的裁剪。 不過,不同於 EngBitBlt,可以使用單一裁剪矩形呼叫 EngStretchBltROP 。 這可防止裁剪輸出時發生捨入錯誤。
pxlo
XLATEOBJ 結構的指標,指定如何在來源和目標表面之間轉譯色彩索引。
您也可以查詢這個 XLATEOBJ 結構,以尋找任何來源索引的 RGB 色彩。 在某些情況下,高品質的延展位區塊傳輸需要插補色彩。
pca
COLORADJUSTMENT 結構的指標,定義要套用至來源位圖的色彩調整值,再延展位。 如需詳細資訊,請參閱 Windows SDK 檔。
pptlHTOrg
POINTL 結構的指標,定義目的地介面上半色調筆刷的原點。 使用半色調筆刷時,GDI 會在此時對齊筆刷圖樣左上角的圖元,並根據其尺寸重複筆刷。 如果 rop4 參數不需要模式,GDI 會忽略此參數。
[in] prclDest
RECTL 結構的指標,定義要修改的矩形區域。 這個矩形是在目的地介面的座標系統中指定,並由兩個點定義:左上方和右下角。 定義矩形的兩個點不一定是妥善排序的,這表示第二個點的座標不一定大於第一個點的座標。 如果目的地矩形的排序不正確,GDI 會讓它變成這樣。
矩形的右下角是獨佔的;也就是說,其下邊緣和右邊緣不是複本的一部分。
EngStretchBltROP 絕對不能使用空的目的地矩形來呼叫。
[in] prclSrc
RECTL 結構的指標,定義要複製的區域。 這個矩形是在來源介面的座標系統中指定,並由兩個點定義:左上方和右下角。 定義矩形的兩個點一律會妥善排序。
矩形的右下角是獨佔的;也就是說,其下邊緣和右邊緣不是複本的一部分。
此矩形會對應至 中國指向 的矩形。
EngStretchBltROP 絕對不能使用空的來源矩形來呼叫。
pptlMask
POINTL 結構的指標,定義 中國Mask 所指向之遮罩中的圖元。 此像素會對應至 中國lSrc 指向的來源矩形左上方圖元。 如果未指定遮罩,則會忽略此參數;也就是說,GDI 會在中國Mask 為 NULL 時忽略 pptlMask。
[in] iMode
指定如何結合來源圖元以取得輸出圖元。 HALFTONE 模式比其他模式慢,但會產生高品質的影像。 此參數可以是下列其中一個值:
值 | 意義 |
---|---|
BLACKONWHITE | 在壓縮位區塊傳輸上,GDI 會將圖元與布爾 AND 作業結合。 在延展位區塊傳輸上,會復寫圖元。 |
COLORONCOLOR | 在壓縮位區塊傳輸上,GDI 會忽略足夠的圖元,因此不需要合併圖元。 在延展位區塊傳輸上,會復寫圖元。 |
半 色調 | GDI 會使用輸出介面中的圖元群組,以最接近輸入的色彩或灰色層級。 |
WHITEONBLACK | 在壓縮位區塊傳輸上,圖元應該與布爾值 OR 作業結合。 在延展位區塊傳輸上,應該復寫圖元。 |
pbo
用於定義位區塊傳輸模式的 BRUSHOBJ 結構的指標。 GDI 的 BRUSHOBJ_pvGetRbrush 服務例程會擷取裝置的筆刷實現。 如果 rop4 參數不需要模式,GDI 會忽略此參數。
[in] rop4
表示點陣作業,定義如何結合遮罩、圖樣、來源和目的地圖元,以將輸出圖元寫入目的地表面。
這是四元數點陣運算,這是一般三元 Rop3 作業的自然延伸。 Rop4 有 16 個相關位,類似於 Rop3 的 8 個定義位。 (會忽略 Rop3 的其他備援位。) 實作 Rop4 的最簡單方式是分別考慮其 2 個字節。 下層位元組會指定 Rop3,應該在 psoMask 點為 1 的遮罩位置計算。 高位元組會指定 Rop3,可在遮罩為零的位置計算和套用。
傳回值
EngStretchBltROP 會在成功時傳回 TRUE 。 否則,它會報告錯誤並傳回 FALSE。
備註
如果驅動程式已連結DrvStretchBltROP,但無法支援所有作業,驅動程式應該呼叫EngStretchBltROP。
對應是由 中國lSrc 和 中國lDest 所定義。 在中國lDest 和中國lSrc 中指定的點位於對應至圖元中心的整數座標上。 由兩個這類點定義的矩形會被視為具有兩個頂點的幾何矩形,其座標是指定的點,但每個座標都會減去0.5。 (POINTL 結構是用來指定這些小數座標頂點的速記表示法。)
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 2000 和更新版本的 Windows 作業系統。 |
目標平台 | Universal |
標頭 | winddi.h (包含Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |