Win32 API 日本語リファレンス
ホーム › Devices.Display › PFN_DrvStrokeAndFillPath

PFN_DrvStrokeAndFillPath

コールバック

シグネチャ

BOOL PFN_DrvStrokeAndFillPath(
    SURFOBJ* param0,
    PATHOBJ* param1,
    CLIPOBJ* param2,
    XFORMOBJ* param3,
    BRUSHOBJ* param4,
    LINEATTRS* param5,
    BRUSHOBJ* param6,
    POINTL* param7,
    DWORD param8,
    DWORD param9
);

パラメーター

フィールド型
param0SURFOBJ*
param1PATHOBJ*
param2CLIPOBJ*
param3XFORMOBJ*
param4BRUSHOBJ*
param5LINEATTRS*
param6BRUSHOBJ*
param7POINTL*
param8DWORD
param9DWORD

公式ドキュメント

DrvStrokeAndFillPath 関数は、パスのストローク(輪郭描画)と塗りつぶしを同時に行います。

戻り値

ドライバーがパスを塗りつぶせる場合、戻り値は TRUE です。そうではなく GDI がパスを塗りつぶすべき場合、戻り値は FALSE です。エラーが発生した場合、戻り値は DDI_ERROR となり、エラーコードがログに記録されます。

解説(Remarks)

ストロークに太い線を使用する場合は、その分だけ塗りつぶし領域を縮小して補正する必要があります。

パスやクリッピングがデバイスで処理するには複雑すぎる場合、ドライバーは FALSE を返すことができます。その場合、GDI はより単純な呼び出しに変換します。たとえば、デバイスドライバーが DEVINFO 構造体の flGraphicsCaps メンバーに GCAPS_BEZIERS フラグを設定していて、ベジェ曲線を含むパスを受け取った場合、FALSE を返すことができます。すると GDI はベジェ曲線を直線に変換し、DrvStrokeAndFillPath を再度呼び出します。デバイスドライバーが再び FALSE を返した場合、GDI はさらに呼び出しを単純化し、パスを構成する線の混合モードや幅に応じて、DrvStrokePath と DrvFillPath、または DrvBitBlt を呼び出します。

混合モード(mix mode)は、入力されるパターンをデバイスサーフェス上に既にあるデータとどのように混合するかを定義します。MIX データ型は、2 つのバイナリラスターオペレーション (ROP2) 値を 1 つの ULONG にパックしたものです。最下位バイトが前景のラスターオペレーションを、次のバイトが背景のラスターオペレーションを定義します。ラスターオペレーションコードの詳細については、Microsoft Windows SDK のドキュメントを参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)