共用方式為


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 會在中國MaskNULL 時忽略 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

另請參閱

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngPlgBlt

EngStretchBlt

EngTransparentBlt