PATHOBJ 構造体 (winddi.h)

PATHOBJ 構造体は、ストロークまたは塗りつぶされる一連の線とベジエ曲線を記述するために使用されます。

構文

typedef struct _PATHOBJ {
  FLONG fl;
  ULONG cCurves;
} PATHOBJ;

メンバー

fl

パスを記述するヒント フラグのセット。 このメンバーは、次の値のビットごとの OR (特定の制限あり) です。

フラグ 説明
PO_ALL_INTEGERS パスの頂点には、小数部のない整数座標があります。 このフラグは、ドライバーが単純な全整数の高速パスを使用できるように、主にアクセラレータとして意図されています。

さらに、GDI がこのフラグを設定すると、ドライバーは、線のラスター化規則を指示する標準の NT ベースのオペレーティング システム GDI グリッド交差量子化 (GIQ) 規則から若干逸脱することが許可されます。 具体的には、PO_ALL_INTEGERSが設定されている場合、ドライバーは、線が論理的に 2 つのピクセルの間にあるタイ ブレーカーケースでピクセルを点灯させる必要がある独自のルールを選択できます。 通常、このフラグを使用すると、ハードウェアに GIQ とは異なるタイ ブレーカー規則がある場合でも、ドライバーはハードウェアポイントツーポイントの線描画機能を使用できます。

GDI は、1 ピクセル幅の実線に対してのみこのフラグを設定します。 また、GDI は、デバイス コンテキストのグラフィックス モードが GM_COMPATIBLE に設定されている場合にのみ、このフラグを設定します。 グラフィックス モードの設定の詳細については、Microsoft Window SDK ドキュメントの 「SetGraphicsMode 」を参照してください。

PO_BEZIERS パスにはベジェ曲線が含まれています。 GDI は 、fl メンバー内のPO_BEZIERSまたはPO_ELLIPSEの 1 つだけを設定します。
PO_ELLIPSE パスは、パスの外接する四角形に入力された 1 つの楕円で構成されます。 GDI は 、fl メンバー内のPO_BEZIERSまたはPO_ELLIPSEの 1 つだけを設定します。
PO_ENUM_AS_INTEGERS ドライバーは、標準の 28.4 形式ではなく、32 ビット整数形式で表現 PATHOBJ_bEnum から返される頂点を要求できます。 ドライバーは、PATHOBJ_bEnumを呼び出す前に、指定された PATHOBJ の fl メンバーに ORing PO_ENUM_AS_INTEGERSによってこの要求を行います。

ドライバーは、GDI が PO_ALL_INTEGERS フラグを設定している場合にのみ、PO_ENUM_AS_INTEGERSを設定できます。 つまり、パスは整数座標のみを含むことがわかっている必要があります。 PO_ENUM_AS_INTEGERSは、ドライバーが変更を許可されている唯一のフラグであることに注意してください。

このフラグが設定されている場合、ドライバーは、線のラスター化規則を指示する標準的な GIQ 規則から若干逸脱することが許可されます。 具体的には、PO_ENUM_ALL_INTEGERSが設定されている場合、ドライバーは、線が論理的に 2 つのピクセルの間にあるタイ ブレーカーケースでピクセルを点灯させる必要がある独自のルールを選択できます。 通常、このフラグを使用すると、ハードウェアに GIQ とは異なるタイ ブレーカー規則がある場合でも、ドライバーはハードウェアポイントツーポイントの線描画機能を使用できます。

cCurves

パスを構成する線分とベジエ曲線の数。

注釈

この構造体に関連付けられている関数を使用すると、ドライバーの線と曲線を列挙できます。

PATHOBJ オブジェクトには、次の GDI サービス ルーチンが用意されています。

PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
PATHOBJ_bMoveTo
PATHOBJ_bPolyBezierTo
PATHOBJ_bPolyLineTo
PATHOBJ_vEnumStart
PATHOBJ_vEnumStartClipLines
PATHOBJ_vGetBounds

要件

要件
Header winddi.h (Winddi.h を含む)

こちらもご覧ください

DrvFillPath

DrvStrokeAndFillPath

DrvStrokePath

EngCreatePath

EngDeletePath