EngPlgBlt 函式 (winddi.h)
EngPlgBlt 函式會導致 GDI 執行旋轉位區塊傳輸。
語法
ENGAPI BOOL EngPlgBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMsk,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlBrushOrg,
POINTFIX *pptfx,
RECTL *prcl,
POINTL *pptl,
[in] ULONG iMode
);
參數
psoTrg
SURFOBJ 結構的指標,描述要繪製的介面。
psoSrc
SURFOBJ 結構的指標,描述位區塊傳輸作業的來源介面。
psoMsk
選擇性的 SURFOBJ 結構的指標,代表來源的遮罩。 它是由邏輯對應所定義,這是每個圖元一個位的點陣圖。
此遮罩會限制複製的來源區域。 遮罩具有隱含 的 rop4 0xCCAA,這表示應該在遮罩為 1 的位置複製來源,但目的地應該在遮罩為零的位置單獨保留。
如果此參數為 NULL,則有隱含的 rop4 0xCCCC,這表示來源應該複製到來源矩形的任何地方。
遮罩一律夠大,足以包含相關的來源;不必要並排。
pco
CLIPOBJ 結構的指標,此結構會限制要修改目的地的區域。 GDI 函式會將 剪輯區域 列舉為一組矩形。
可能的話,GDI 會簡化相關的裁剪。 不同於 DrvBitBlt 函式,可以使用單一裁剪矩形呼叫 EngPlgBlt 。 這可防止裁剪輸出時發生捨入錯誤。
pxlo
XLATEOBJ 結構的指標,定義來源和目標表面之間色彩索引的轉譯方式。 您可以查詢這個 XLATEOBJ 結構,以尋找任何來源索引的 RGB 色彩。
需要高品質的旋轉位區塊傳輸,才能插補色彩。
pca
COLORADJUSTMENT 結構的指標,定義要套用至來源位圖的色彩調整值,再延展位。 如需詳細資訊,請參閱 Microsoft Windows SDK 檔。
pptlBrushOrg
POINTL 結構的指標,指定半色調筆刷的原點。 使用半色調筆刷的驅動程序應該對齊筆刷圖樣左上方圖元與裝置介面上的這個點。
pptfx
指向三個 POINTFIX 結構的指標,該結構定義目的地介面中的平行投影。 第四個隱含頂點會指定為:D = B + C - A。如需此數據類型的描述,請參閱 GDI 數據類型。
EngPlgBlt 永遠不會使用 A、B 和 C 共弦值來呼叫。
prcl
在來源介面的座標系統中,定義要複製之區域的 RECTL 結構的指標。 來源矩形的點已妥善排序。 EngPlgBlt 永遠不會獲得空的來源矩形。
pptl
POINTL 結構的指標,指定指定遮罩中的哪個像素對應至來源矩形中的左上方圖元。 如果 psoMsk 為 NULL,請忽略此參數。
[in] iMode
定義如何結合來源圖元以取得輸出圖元。 此參數可以是下列其中一個值:
值 | 意義 |
---|---|
BLACKONWHITE | 在壓縮位區塊傳輸上,圖元應該與 AND 作業結合。 在延展位區塊傳輸圖元上,應該複寫。 |
COLORONCOLOR | 在壓縮位區塊傳輸上,應該忽略足夠的圖元,因此不需要合併圖元。 在延展位區塊傳輸上,應該復寫圖元。 |
半 色調 | 驅動程式可以使用輸出介面中的圖元群組,以最接近輸入的色彩或灰色層級。 |
WHITEONBLACK | 在壓縮位區塊傳輸上,圖元應該與 OR 作業結合。 在延展區塊傳輸上,應該復寫圖元。 |
WHITEONBLACK、BLACKONWHITE 和 COLORONCOLOR 方法很簡單,而且提供舊應用程式的相容性,但不會產生最適合色彩表面的結果。
傳回值
如果函式成功,則傳回值為 TRUE 。 否則為 FALSE ,並報告錯誤碼。
備註
EngPlgBlt 只會執行特定類型的旋轉。
此函式會執行從 中國所 定義之矩形到任何平行投影的位區塊傳輸。 平行投影是由 pptfx所定義,指向三個點的陣列。
中國的來源矩形會被視為幾何矩形,其邊角會由指定的整數座標 (-0.5,-0.5) 所取代。 這完全符合 EngStretchBlt 的來源矩形。 來源矩形一律會妥善排序。
來源矩形的左上角會對應至第一個點 A。來源矩形的右上角會對應至第二個點 B。來源矩形的左下角會對應至第三個點 C。來源矩形的右下角會對應至平行方塊中定義的隱含點,方法是將三個指定點視為向量和運算:
D = B + C - A
請注意,延展blit可以完全表示為平行投影blit,但為目的地指定的座標會由五除。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 2000 和更新版本的 Windows 作業系統。 |
目標平台 | Universal |
標頭 | winddi.h (包含Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |