PATHOBJ 구조체(winddi.h)

PATHOBJ 구조체는 스트로크하거나 채울 선 및 베지어 곡선 집합을 설명하는 데 사용됩니다.

구문

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

멤버

fl

경로를 설명하는 힌트 플래그 집합입니다. 이 멤버는 다음 값의 비트 OR(특정 제한 사항 포함)입니다.

플래그 설명
PO_ALL_INTEGERS 경로의 꼭짓점에는 소수 부분이 없는 정수 좌표가 있습니다. 이 플래그는 드라이버가 더 간단한 정수 빠른 경로를 사용할 수 있도록 주로 액셀러레이터로 사용됩니다.

또한 GDI가 이 플래그를 설정할 때 드라이버는 선에 대한 래스터화 규칙을 지시하는 표준 NT 기반 운영 체제 GDI Grid GIQ(교집합 양자화) 규칙에서 약간 벗어날 수 있습니다. 특히 PO_ALL_INTEGERS 설정된 경우 드라이버는 선이 논리적으로 두 픽셀 사이에 정확히 떨어지는 타이 브레이커 케이스에서 픽셀을 켜야 하는 자체 규칙을 선택할 수 있습니다. 일반적으로 이 플래그를 사용하면 하드웨어에 GIQ와 다른 타이 브레이커 규칙이 있는 경우에도 드라이버에서 하드웨어 지점 간 선 그리기 기능을 사용할 수 있습니다.

GDI는 너비가 1픽셀인 실선에 대해서만 이 플래그를 설정합니다. 또한 GDI는 디바이스 컨텍스트의 그래픽 모드가 GM_COMPATIBLE 설정된 경우에만 이 플래그를 설정합니다. 그래픽 모드 설정에 대한 자세한 내용은 Microsoft Window SDK 설명서의 SetGraphicsMode 를 참조하세요.

PO_BEZIERS 경로에는 베지어 곡선이 포함됩니다. GDI는 fl 멤버의 PO_BEZIERS 또는 PO_ELLIPSE 중 하나만 설정합니다.
PO_ELLIPSE 경로는 경로의 경계 사각형에 새겨진 단일 타원으로 구성됩니다. GDI는 fl 멤버의 PO_BEZIERS 또는 PO_ELLIPSE 중 하나만 설정합니다.
PO_ENUM_AS_INTEGERS 드라이버는 PATHOBJ_bEnum 반환된 꼭짓점이 표준 28.4 형식이 아닌 32비트 정수 형식으로 표현되도록 요청할 수 있습니다. 드라이버는 PATHOBJ_bEnum 호출하기 전에 ORing PO_ENUM_AS_INTEGERS 지정된 PATHOBJ의 fl 멤버로 이 요청을 수행합니다.

드라이버는 GDI가 PO_ALL_INTEGERS 플래그를 설정한 경우에만 PO_ENUM_AS_INTEGERS 설정할 수 있습니다. 즉, 정수 좌표만 포함하도록 경로를 알고 있어야 합니다. PO_ENUM_AS_INTEGERS 드라이버가 수정할 수 있는 유일한 플래그입니다.

이 플래그가 설정되면 드라이버는 줄에 대한 래스터화 규칙을 지시하는 표준 GIQ 규칙에서 약간 벗어날 수 있습니다. 특히 PO_ENUM_ALL_INTEGERS 설정된 경우 드라이버는 선이 논리적으로 두 픽셀 사이에 정확히 떨어지는 타이 브레이커 케이스에서 픽셀을 켜야 하는 자체 규칙을 선택할 수 있습니다. 일반적으로 이 플래그를 사용하면 하드웨어에 GIQ와 다른 타이 브레이커 규칙이 있는 경우에도 드라이버에서 하드웨어 지점 간 선 그리기 기능을 사용할 수 있습니다.

cCurves

경로를 구성하는 선 및 베지어 곡선의 수입니다.

설명

이 구조체와 연결된 함수를 사용하면 드라이버에 대해 선과 곡선을 열거할 수 있습니다.

PATHOBJ 개체에 대해 제공되는 GDI 서비스 루틴은 다음과 같습니다.

PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
PATHOBJ_bMoveTo
PATHOBJ_bPolyBezierTo
PATHOBJ_bPolyLineTo
PATHOBJ_vEnumStart
PATHOBJ_vEnumStartClipLines
PATHOBJ_vGetBounds

요구 사항

요구 사항
헤더 winddi.h(Winddi.h 포함)

추가 정보

DrvFillPath

DrvStrokeAndFillPath

DrvStrokePath

EngCreatePath

EngDeletePath