Поделиться через


Структура PATHOBJ (winddi.h)

Структура PATHOBJ используется для описания набора линий и кривых Безье, которые необходимо обвести или заполнить.

Синтаксис

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

Члены

fl

Набор флагов указания, описывающих путь. Этот член является побитовой ИЛИ (с определенными ограничениями) следующих значений:

Flag Описание
PO_ALL_INTEGERS Вершины пути имеют целочисленные координаты без дробных частей. Этот флаг предназначен в первую очередь как ускоритель, чтобы драйверы могли использовать более простой многочисленный быстрый путь.

Кроме того, когда GDI устанавливает этот флаг, драйвер может немного отклоняться от стандартного соглашения об квантации пересечения сетки (GIQ) на основе NT, которое диктует правила растеризации для строк. В частности, если задано PO_ALL_INTEGERS, драйвер может выбрать собственные правила, для которых пиксель должен быть освещен в случае, когда линия логически падает ровно между двумя пикселями. Как правило, этот флаг позволяет драйверам использовать аппаратные возможности рисования точечной линии, даже если у оборудования есть правило разбиения связей, отличное от правила GIQ.

GDI устанавливает этот флаг только для сплошных линий шириной в один пиксель. Кроме того, GDI устанавливает этот флаг, только если для графического режима контекста устройства задано значение GM_COMPATIBLE. Дополнительные сведения о настройке графического режима см. в разделе SetGraphicsMode документации по пакету SDK Microsoft Window.

PO_BEZIERS Путь содержит кривые Безье. GDI задает только один из PO_BEZIERS или PO_ELLIPSE в элементе fl .
PO_ELLIPSE Путь состоит из одного эллипса, вписанного в ограничивающий прямоугольник пути. GDI задает только один из PO_BEZIERS или PO_ELLIPSE в элементе fl .
PO_ENUM_AS_INTEGERS Драйвер может запросить, чтобы вершины, возвращаемые из PATHOBJ_bEnum , были выражены в 32-разрядном целочисленном формате, а не в стандартном формате 28,4. Драйвер выполняет этот запрос от ORing PO_ENUM_AS_INTEGERS в член fl заданного PATHOBJ перед вызовом PATHOBJ_bEnum.

Драйвер может задать PO_ENUM_AS_INTEGERS, только если GDI установил флаг PO_ALL_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