Share via


drvStrokePath 函式 (winddi.h)

DrvStrokePath 函式 (大綱) 路徑。

語法

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

參數

[in, out] pso

SURFOBJ 結構的指標,可識別要繪製的介面。

[in] ppo

PATHOBJ 結構的指標。 提供 GDI PATHOBJ_Xxx 服務例程來列舉組成路徑的線條、Bezier 曲線和其他數據。 這表示要繪製的內容。

[in] pco

CLIPOBJ 結構的指標。 提供 GDI CLIPOBJ_Xxx 服務例程,以列舉 裁剪區域 作為一組矩形。 或者,路徑中的所有行都可以在CLIPOBJ結構中預先列舉。 這表示驅動程式可以讓 GDI 執行所有線條裁剪計算。

[in, optional] pxo

XFORMOBJ 結構的指標。 只有在繪製幾何寬線時,才需要此專案。 它會指定將世界座標對應到裝置座標的轉換。 這是必要的,因為路徑是在裝置座標中提供,但幾何寬線實際上是在世界座標中擴展。

您可以查詢 XFORMOBJ 結構來尋找轉換。

[in] pbo

BRUSHOBJ 結構的指標,指定繪製路徑時要使用的筆刷。

[in] pptlBrushOrg

POINTL 結構的指標,指定用來對齊裝置上筆刷圖樣的筆刷原點。

[in] plineattrs

LINEATTRS 結構的指標。 請注意,如果線條已設定樣式,這個結構的 elStyleState 成員就必須更新為此函式的一部分。 另請注意,如果要繪製單一像素寬度外觀線條,就必須更新 ptlLastPel 成員。

[in] mix

混合模式,定義用於筆刷的前景和背景點陣作業。 如需混合模式的詳細資訊,請參閱。

傳回值

如果驅動程式能夠筆劃路徑,則傳回值為 TRUE 。 如果 GDI 應該改為筆劃路徑,則傳回值為 FALSE,但不會記錄任何錯誤碼。 如果驅動程式遇到錯誤,則會DDI_ERROR傳回值,並報告錯誤碼。

備註

如果驅動程式已連結函式,而且已設定適當的 GCAPS,GDI 會在 GDI 使用任何一組屬性繪製線條或曲線時呼叫 DrvStrokePath

如果驅動程式支援此進入點,它也應該支援使用任意裁剪繪製外觀寬線。 使用提供的 GDI 函式,呼叫可以細分成一組具有預先計算裁剪的單圖元寬度線條。

如果要在 裝置管理的介面上完成任何繪圖,則需要此函式。

進階裝置的驅動程式可以選擇性地接收此呼叫,以繪製包含 Bezier 曲線和幾何寬線的路徑。 GDI 會測試 DEVINFO 結構之 flGraphicsCaps 成員的GCAPS_BEZIERS和GCAPS_GEOMETRICWIDE旗標,以決定是否應該呼叫此函式。 (位的四個組合會決定此呼叫的四個功能層級。) 如果驅動程式取得包含 Bezier 曲線或幾何寬線的進階呼叫,則可以決定不處理呼叫,並傳回 FALSE。 如果路徑或裁剪太複雜,裝置無法處理,就可能會發生這種情況。 如果呼叫傳回 FALSE,GDI 會將呼叫細分為更容易處理的簡單呼叫。

針對裝置管理的介面,函式必須使用純色筆刷,以最少方式支援單圖元寬純色和樣式外觀線條。

混合模式會定義傳入模式應該如何與裝置介面上的數據混合。 MIX 數據類型包含兩個二進位點陣運算, (ROP2) 封裝成單一 ULONG 的值。 最低順序位元組會定義前景點陣運算;下一個字節會定義背景點陣作業。 如需點陣作業碼的詳細資訊,請參閱 Microsoft Windows SDK 檔。

規格需求

需求
目標平台 桌面
標頭 winddi.h (包含Winddi.h)

另請參閱

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ