共用方式為


drvPlgBlt 函式 (winddi.h)

DrvPlgBlt函式提供裝置管理和 GDI 管理介面組合之間的旋轉位區塊傳輸功能。

語法

BOOL DrvPlgBlt(
  [in, out]      SURFOBJ         *psoTrg,
  [in, out]      SURFOBJ         *psoSrc,
  [in, optional] SURFOBJ         *psoMsk,
  [in]           CLIPOBJ         *pco,
  [in, optional] XLATEOBJ        *pxlo,
  [in, optional] COLORADJUSTMENT *pca,
  [in, optional] POINTL          *pptlBrushOrg,
  [in]           POINTFIX        *pptfx,
  [in]           RECTL           *prcl,
  [in, optional] POINTL          *pptl,
  [in]           ULONG           iMode
);

參數

[in, out] psoTrg

SURFOBJ結構的指標,描述要繪製的介面。

[in, out] psoSrc

SURFOBJ 結構的指標,描述位區塊傳輸作業的來源。

[in, optional] psoMsk

選擇性的 SURFOBJ 結構的指標,代表來源的遮罩。 它是由邏輯對應所定義,這是每個圖元一個位的點陣圖。

此遮罩會限制複製的來源區域。 遮罩具有隱含 的 rop4 0xCCAA,這表示應該在遮罩為 1 的位置複製來源,但目的地應該留在遮罩的零位置。

如果此參數為 Nullrop4 會隱含地0xCCCC,這表示來源應該複製到來源矩形中的每個位置。

遮罩一律夠大,足以包含相關的來源;不必要並排。

[in] pco

CLIPOBJ結構的指標,此結構會限制要修改目的地的區域。 GDI 函式會將 剪輯區域 列舉為一組矩形。

可能的話,GDI 會簡化相關的裁剪。 不同于 DrvBitBlt 函式,您可以使用單一裁剪矩形呼叫 DrvPlgBlt 。 這可防止裁剪輸出時發生舍入錯誤。

[in, optional] pxlo

XLATEOBJ結構的指標,定義來源和目標表面之間色彩索引的轉譯方式。 您也可以查詢 XLATEOBJ 來尋找任何來源索引的 RGB 色彩。 如果 pxloNull,則不需要翻譯。

需要高品質的旋轉位區塊傳輸,才能插補色彩。

[in, optional] pca

COLORADJUSTMENT 結構的指標,定義要套用至來源點陣圖的色彩調整值,再延展位。 如需此結構的詳細資訊,請參閱Microsoft Windows SDK檔。

[in, optional] pptlBrushOrg

BRUSHOBJ結構的指標,表示半色調筆刷的來源。 使用半色調筆刷的設備磁碟機應該對齊筆刷圖樣左上方圖元與裝置介面上的這個點。

[in] pptfx

指向三個 POINTFIX 結構的指標,該結構定義目的地介面中的平行投影。 將 pptfx[0] 定義為 A、 pptfx[1] 定義為 B,並將 pptfx[2] 定義為 C。A、B 和 C 會定義平行投影的三個頂點。 第四個隱含頂點會指定為:

    D = B + C − A

DrvPlgBlt 永遠不會使用 A、B 和 C 共弦值來呼叫。

[in] prcl

RECTL結構的指標,定義來源介面座標系統中要複製的區域。 來源矩形的點已妥善排序。 DrvPlgBlt 永遠不會獲得空的來源矩形。

[in, optional] pptl

POINTL結構的指標,指定指定遮罩中的哪個圖元對應至來源矩形中的左上方圖元。 如果未指定 psoMsk, 請忽略此參數。

[in] iMode

定義如何結合來源圖元以取得輸出圖元。 這個值可以是下列其中一個值:

意義
BLACKONWHITE 在壓縮位區塊傳輸上,圖元應該與 AND 作業結合。 在延展位區塊傳輸上,應該複寫圖元。
COLORONCOLOR 在壓縮位區塊傳輸上,應該忽略足夠的圖元,因此不需要合併圖元。 在延展位區塊傳輸上,應該複寫圖元。
半 色調 驅動程式可以使用輸出介面中的圖元群組,以最接近輸入的色彩或灰色層級。
WHITEONBLACK 在壓縮位區塊傳輸上,圖元應該與 OR 作業結合。 在延展位區塊傳輸上,應該複寫圖元。
 

WHITEONBLACK、BLACKONWHITE 和 COLORONCOLOR 方法可為舊應用程式提供相容性,但不會產生色彩表面的最佳結果。

傳回值

DrvPlgBlt 會在成功時傳回 TRUE 。 否則,它會報告錯誤並傳回 FALSE

備註

DrvStretchBlt類似, DrvPlgBlt 可讓設備磁碟機寫入 GDI 點陣圖,特別是在驅動程式可以執行半形處理時。

若要轉換點陣圖,此函式會執行從 中國所 定義之矩形到任何平行投影的位區塊傳輸。 平行投影是由 pptfx所定義,指向三個點的陣列。

中國的來源矩形會被視為幾何矩形,其邊角會由指定的整數座標 (-0.5,-0.5) 所取代。 這完全符合 DrvStretchBlt的來源矩形。 來源矩形一律會妥善排序。

來源矩形的左上角會對應至第一個點 A。來源矩形的右上角會對應至第二個點 B。來源矩形的左下角會對應至第三個點 C。來源矩形的右下角會對應至平行投影中定義的隱含點,方法是將三個指定點視為向量和運算:

    D = B + C - A

請注意,延展 blt 可以完全表示為平行投影 blt,但目的地指定的座標會有 0.5 的分數部分。

DrvPlgBlt 是圖形驅動程式的選擇性專案。 它僅適用于特定類型的旋轉。 如果呼叫 DrvPlgBlt來執行不支援的作業,驅動程式應該呼叫EngPlgBlt

規格需求

   
目標平台 桌上型
標頭 winddi.h (包含 Winddi.h)

另請參閱

DrvAlphaBlend

DrvBitBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngPlgBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt