DrvStrokeAndFillPath 関数 (winddi.h)
DrvStrokeAndFillPath 関数は、パスを同時にストローク (アウトライン) して塗りつぶします。
構文
BOOL DrvStrokeAndFillPath(
[in, out] SURFOBJ *pso,
[in, out] PATHOBJ *ppo,
[in] CLIPOBJ *pco,
[in, optional] XFORMOBJ *pxo,
[in] BRUSHOBJ *pboStroke,
[in] LINEATTRS *plineattrs,
[in] BRUSHOBJ *pboFill,
[in] POINTL *pptlBrushOrg,
[in] MIX mixFill,
[in] FLONG flOptions
);
パラメーター
[in, out] pso
描画するサーフェスを記述する SURFOBJ 構造体へのポインター。
[in, out] ppo
塗りつぶすパスを記述する PATHOBJ 構造体へのポインター。 PATHOBJ_Xxx サービス ルーチンは、パスを構成する線、ベジエ曲線、およびその他のデータを列挙するために提供されます。
[in] pco
CLIPOBJ 構造体へのポインター。 CLIPOBJ_Xxx サービス ルーチンは、 クリップ領域 を一連の四角形として列挙するために提供されます。
[in, optional] pxo
幾何学的なワイド線を描画するときに必要な XFORMOBJ 構造体へのポインター。 ワールド座標をデバイス座標に変換する変換を指定します。 これは、パスがデバイス座標で提供されるが、幾何学的な広い線が実際にはワールド座標で広がっているために必要です。 XFORMOBJ を照会して、変換の内容を確認できます。
[in] pboStroke
パスのストローク時に使用するブラシを指定する BRUSHOBJ 構造体へのポインター。
[in] plineattrs
描画する線の属性を記述する LINEATTRS 構造体へのポインター。
[in] pboFill
パスを埋めるときに使用するブラシを指定する BRUSHOBJ 構造体へのポインター。
[in] pptlBrushOrg
両方のブラシのブラシの原点を指定する POINTL 構造体へのポインター。
[in] mixFill
ブラシに使用する前景ラスター操作と背景ラスター操作を定義するミックス モード。 ミックス モードの詳細については、「解説」を参照してください。
[in] flOptions
FP_WINDINGMODEを指定します。つまり、巻き取りモードの塗りつぶしを実行するか、FP_ALTERNATEMODE、交互モードの塗りつぶしを実行する必要があることを意味します。 その他のフラグはすべて無視する必要があります。 これらのモードの詳細については、「 パスフィルモード」を参照してください。
戻り値
ドライバーがパスを入力できる場合、戻り値は TRUE です。 それ以外の場合、GDI が代わりにパスを入力する必要がある場合、戻り値は FALSE です。 エラーが発生した場合、戻り値はDDI_ERRORされ、エラー コードがログに記録されます。
解説
幅の広い線をなでるために使用する場合は、埋め込まれた領域を減らして補正する必要があります。
パスまたはクリッピングが複雑すぎてデバイスが処理できない場合、ドライバーは FALSE を 返すことができます。その場合、GDI は単純な呼び出しに変換します。 たとえば、デバイス ドライバーが DEVINFO 構造体の flGraphicsCaps メンバーにGCAPS_BEZIERS フラグを設定し、ベジエ曲線を含むパスを受け取った場合、FALSE を返すことができます。その後、GDI はベジエ曲線を行に変換し、DrvStrokeAndFillPath をもう一度呼び出します。 デバイス ドライバーが再度 FALSE を 返した場合、GDI は呼び出しをさらに簡略化し、パスを構成する行の組み合わせと幅に応じて、 DrvStrokePath と DrvFillPath、または DrvBitBlt への呼び出しを行います。
ミックス モードでは、受信パターンと、デバイス表面に既に存在するデータを混合する方法を定義します。 MIX データ型は、1 つの ULONG にパックされた 2 つのバイナリ ラスター演算 (ROP2) 値で構成されます。 最下位バイトは、前景ラスター演算を定義します。次のバイトは、バックグラウンド ラスター演算を定義します。 ラスター操作コードの詳細については、Microsoft Windows SDKのドキュメントを参照してください。
要件
対象プラットフォーム | デスクトップ |
Header | winddi.h (Winddi.h を含む) |