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


Функция DrvStrokePath (winddi.h)

Функция DrvStrokePath обводит (контуры) пути.

Синтаксис

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

Параметры

[in, out] pso

Указатель на структуру SURFOBJ , которая идентифицирует поверхность, на которой выполняется рисование.

[in] ppo

Указатель на структуру PATHOBJ . Подпрограммы службы GDI PATHOBJ_Xxx предоставляются для перечисления линий, кривых Безье и других данных, составляющих путь. Это указывает, что должно быть нарисовано.

[in] pco

Указатель на структуру CLIPOBJ . Подпрограммы службы GDI CLIPOBJ_Xxx предоставляются для перечисления области клипа в виде набора прямоугольников. При необходимости все строки в пути можно перечислить предварительно в структуре CLIPOBJ. Это означает, что драйверы могут использовать GDI для выполнения всех вычислений обрезки строк.

[in, optional] pxo

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

Для поиска преобразования можно запросить структуру XFORMOBJ.

[in] pbo

Указатель на структуру BRUSHOBJ , указывающую кисть, используемую при рисовании пути.

[in] pptlBrushOrg

Указатель на структуру POINTL , которая указывает источник кисти, используемый для выравнивания шаблона кисти на устройстве.

[in] plineattrs

Указатель на структуру LINEATTRS . Обратите внимание, что элемент elStyleState этой структуры должен быть обновлен как часть этой функции, если строка имеет стиль. Также обратите внимание, что элемент ptlLastPel необходимо обновить, если рисуется одна косметическая линия ширины пикселя.

[in] mix

Смешанный режим, определяющий операции переднего плана и фоновых растровых операций, используемых для кисти. Дополнительные сведения о смешанном режиме см. в разделе Примечания.

Возвращаемое значение

Возвращаемое значение равно TRUE , если драйвер может обводить путь. Если вместо этого GDI следует обводить путь, возвращается значение FALSE, но код ошибки не регистрируется. Если драйвер сталкивается с ошибкой, возвращается значение DDI_ERROR и отображается код ошибки.

Комментарии

Если драйвер подключил функцию и если задана соответствующая GCAPS, GDI вызывает DrvStrokePath , когда GDI рисует линию или кривую с любым набором атрибутов.

Если драйвер поддерживает эту точку входа, он также должен поддерживать рисование косметических широких линий с произвольным вырезкой. Используя предоставленные функции GDI, вызов можно разбить на набор линий ширины в один пиксель с предварительно вычисляемой обрезкой.

Эта функция требуется, если рисование выполняется на управляемой устройством поверхности.

Драйверы для расширенных устройств могут при необходимости получать этот вызов для рисования путей, содержащих кривые Безье и геометрические широкие линии. GDI проверит флаги GCAPS_BEZIERS и GCAPS_GEOMETRICWIDE элемента flGraphicsCaps структуры DEVINFO , чтобы решить, следует ли вызывать эту функцию. (Четыре сочетания битов определяют четыре уровня функциональности для этого вызова.) Если драйвер получает расширенный вызов, содержащий кривые Безье или геометрические широкие линии, он может не обрабатывать вызов, возвращая значение FALSE. Это может произойти, если путь или обрезка слишком сложны для обработки устройством. Если вызов возвращает значение FALSE, GDI разбивает вызов на более простые вызовы, которые можно легко обрабатывать.

Для поверхностей, управляемых устройством, функция должна минимально поддерживать сплошные и стилистические линии шириной в один пиксель с использованием одноцветной кисти.

Смешанный режим определяет, как входящий шаблон следует смешивать с данными, которые уже находятся на поверхности устройства. Тип данных MIX состоит из двух значений двоичной растровой операции (ROP2), упакованных в один ULONG. Байт наименьшего порядка определяет растровую операцию переднего плана; следующий байт определяет фоновую операцию растра. Дополнительные сведения о кодах растровых операций см. в документации по Microsoft Windows SDK.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winddi.h (включая Winddi.h)

См. также раздел

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ