Структура 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) |