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


структура DWRITE_PAINT_ELEMENT (dwrite_3.h)

структура DWRITE_PAINT_ELEMENT

Указывает свойства элемента краски, который является одним узлом в визуальном дереве, связанном с глифом цвета. Этот параметр передается в качестве выходного параметра различным методам IDWritePaintReader.

Подробное описание отрисовки элементов краски см. в спецификации таблицы OpenType COLR. Некоторые описания в этом разделе ссылаются на форматы записей краски COLR, связанные с каждым типом краски.

Синтаксис

struct DWRITE_PAINT_ELEMENT {
  DWRITE_PAINT_TYPE paintType;
  union {
    struct {
      UINT32 childCount;
    } PAINT_LAYERS;
    PAINT_LAYERS          layers;
    struct {
      UINT32             glyphIndex;
      DWRITE_PAINT_COLOR color;
    } PAINT_SOLID_GLYPH;
    PAINT_SOLID_GLYPH     solidGlyph;
    DWRITE_PAINT_COLOR    solid;
    struct {
      UINT32 extendMode;
      UINT32 gradientStopCount;
      float  x0;
      float  y0;
      float  x1;
      float  y1;
      float  x2;
      float  y2;
    } PAINT_LINEAR_GRADIENT;
    PAINT_LINEAR_GRADIENT linearGradient;
    struct {
      UINT32 extendMode;
      UINT32 gradientStopCount;
      float  x0;
      float  y0;
      float  radius0;
      float  x1;
      float  y1;
      float  radius1;
    } PAINT_RADIAL_GRADIENT;
    PAINT_RADIAL_GRADIENT radialGradient;
    struct {
      UINT32 extendMode;
      UINT32 gradientStopCount;
      float  centerX;
      float  centerY;
      float  startAngle;
      float  endAngle;
    } PAINT_SWEEP_GRADIENT;
    PAINT_SWEEP_GRADIENT  sweepGradient;
    struct {
      UINT32 glyphIndex;
    } PAINT_GLYPH;
    PAINT_GLYPH           glyph;
    struct {
      UINT32     glyphIndex;
      D2D_RECT_F clipBox;
    } PAINT_COLOR_GLYPH;
    PAINT_COLOR_GLYPH     colorGlyph;
    DWRITE_MATRIX         transform;
    struct {
      DWRITE_COLOR_COMPOSITE_MODE mode;
    } PAINT_COMPOSITE;
    PAINT_COMPOSITE       composite;
  } PAINT_UNION;
  PAINT_UNION       paint;
};

Члены

paintType

Тип: DWRITE_PAINT_TYPE

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

PAINT_UNION

Задает свойства, относящиеся к типу, для элемента paint.

PAINT_UNION.PAINT_LAYERS

Допустимо для элементов типа DWRITE_PAINT_TYPE_LAYERS. Содержит один или несколько дочерних элементов краски, которые должны быть нарисованы в нижнем порядке.

Это соответствует записи PaintColrLayers в таблице OpenType COLR. Или он может соответствовать записи BaseGlyph, определенной colR версии 0.

PAINT_UNION.PAINT_LAYERS.childCount

Тип: UINT32

Количество дочерних элементов краски в нижнем порядке. Используйте IDWritePaintReader::MoveToFirstChild и MoveToNextSibling для извлечения дочерних элементов краски. Используйте метод MoveToParent, чтобы вернуться к родительскому элементу.

PAINT_UNION.layers

Тип: PAINT_UNION. PAINT_LAYERS

См. PAINT_UNION. PAINT_LAYERS.

PAINT_UNION.PAINT_SOLID_GLYPH

Допустимо для элементов типа DWRITE_PAINT_TYPE_SOLID_GLYPH. Задает глиф с сплошной заливкой цвета. Этот элемент краски не имеет дочерних элементов.

Это соответствует сочетанию двух записей краски в таблице OpenType COLR: запись PaintGlyph, которая ссылается на запись PaintSolid или PaintVarSolid. Или он может соответствовать записи уровня, определенной colR версии 0.

PAINT_UNION.PAINT_SOLID_GLYPH.glyphIndex

Тип: UINT32

Индекс Глифа, определяющий заполненную фигуру.

PAINT_UNION.PAINT_SOLID_GLYPH.color

Тип: DWRITE_PAINT_COLOR

Цвет глифа, используемый для заливки фигуры глифа.

PAINT_UNION.solidGlyph

Тип: PAINT_UNION. PAINT_SOLID_GLYPH

См. PAINT_UNION. PAINT_SOLID_GLYPH.

PAINT_UNION.solid

Тип: DWRITE_PAINT_COLOR

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

Это соответствует записи PaintSolid или PaintVarSolid в таблице OpenType COLR.

PAINT_UNION.PAINT_LINEAR_GRADIENT

Допустимо для элементов типа DWRITE_PAINT_TYPE_LINEAR_GRADIENT. Указывает линейный градиент, используемый для заполнения текущей фигуры или клипа. Этот элемент краски не имеет дочерних элементов.

Это соответствует записи PaintLinearGradient или PaintVarLinearGradient в таблице OpenType COLR.

PAINT_UNION.PAINT_LINEAR_GRADIENT.extendMode

Тип: UINT32

Значение D2D1_EXTEND_MODE, указывающее, как определяются цвета за пределами интервала.

PAINT_UNION.PAINT_LINEAR_GRADIENT.gradientStopCount

Тип: UINT32

Число остановок градиента. Используйте метод IDWritePaintReader::GetGradientStops, чтобы получить остановки градиента.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x0

Тип: float

Координата X начальной точки цветовой линии.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y0

Тип: float

Координата Y начальной точки цветовой линии.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x1

Тип: float

Координата X конечной точки цветовой линии.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y1

Тип: float

Координата Y конечной точки цветовой линии.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x2

Тип: float

Координата X точки поворота цветовой линии.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y2

Тип: float

Координата Y точки поворота цветовой линии.

PAINT_UNION.linearGradient

Тип: PAINT_UNION. PAINT_LINEAR_GRADIENT

См. PAINT_UNION. PAINT_LINEAR_GRADIENT.

PAINT_UNION.PAINT_RADIAL_GRADIENT

Допустимо для элементов типа DWRITE_PAINT_TYPE_RADIAL_GRADIENT. Указывает радиальный градиент, используемый для заполнения текущей фигуры или клипа. Этот элемент краски не имеет дочерних элементов.

Это соответствует записи PaintRadialGradient или PaintVarRadialGradient в таблице OpenType COLR.

PAINT_UNION.PAINT_RADIAL_GRADIENT.extendMode

Тип: UINT32

Значение D2D1_EXTEND_MODE, указывающее, как определяются цвета за пределами интервала.

PAINT_UNION.PAINT_RADIAL_GRADIENT.gradientStopCount

Тип: UINT32

Число остановок градиента. Используйте метод IDWritePaintReader::GetGradientStops, чтобы получить остановки градиента.

PAINT_UNION.PAINT_RADIAL_GRADIENT.x0

Тип: float

Координата центра X начального круга.

PAINT_UNION.PAINT_RADIAL_GRADIENT.y0

Тип: float

Координата центра Y начального круга.

PAINT_UNION.PAINT_RADIAL_GRADIENT.radius0

Тип: float

Радиус начального круга.

PAINT_UNION.PAINT_RADIAL_GRADIENT.x1

Тип: float

Координата центра X конечного круга.

PAINT_UNION.PAINT_RADIAL_GRADIENT.y1

Тип: float

Координата Y в центре Y конечного круга.

PAINT_UNION.PAINT_RADIAL_GRADIENT.radius1

Тип: float

Радиус конечного круга.

PAINT_UNION.radialGradient

Тип: PAINT_UNION. PAINT_RADIAL_GRADIENT

См. PAINT_UNION. PAINT_RADIAL_GRADIENT.

PAINT_UNION.PAINT_SWEEP_GRADIENT

Допустимо для элементов типа DWRITE_PAINT_TYPE_SWEEP_GRADIENT. Задает градиент очистки, используемый для заполнения текущей фигуры или клипа. Этот элемент краски не имеет дочерних элементов.

Это соответствует PaintSweepGradient или записи PaintVarSweepGradient в таблице OpenType COLR.

PAINT_UNION.PAINT_SWEEP_GRADIENT.extendMode

Тип: UINT32

Значение D2D1_EXTEND_MODE, указывающее, как определяются цвета за пределами интервала.

PAINT_UNION.PAINT_SWEEP_GRADIENT.gradientStopCount

Тип: UINT32

Число остановок градиента. Используйте метод IDWritePaintReader::GetGradientStops, чтобы получить остановки градиента.

PAINT_UNION.PAINT_SWEEP_GRADIENT.centerX

Тип: float

Координата центра X.

PAINT_UNION.PAINT_SWEEP_GRADIENT.centerY

Тип: float

Координата центра Y.

PAINT_UNION.PAINT_SWEEP_GRADIENT.startAngle

Тип: float

Начало углового диапазона градиента, измеряемого в градусах по часовой стрелке от направления положительной оси x.

PAINT_UNION.PAINT_SWEEP_GRADIENT.endAngle

Тип: float

Конец углового диапазона градиента, измеряемого в градусах по часовой стрелке от направления положительной оси x.

PAINT_UNION.sweepGradient

Тип: PAINT_UNION. PAINT_SWEEP_GRADIENT

См. PAINT_UNION. PAINT_SWEEP_GRADIENT.

PAINT_UNION.PAINT_GLYPH

Допустимо для элементов типа DWRITE_PAINT_TYPE_GLYPH. Задает фигуру глифа, заполняемую или, аналогично, область клипа. Этот элемент paint имеет один дочерний элемент.

Дочерний элемент краски определяет, как заполняется фигура глифа. Дочерний элемент может быть одним элементом краской, например линейным градиентом. Или дочерний элемент может быть корнем визуального дерева для отрисовки с фигурой глифа в виде области клипа. Это соответствует записи PaintGlyph в таблице OpenType COLR.

PAINT_UNION.PAINT_GLYPH.glyphIndex

Тип: UINT32

Глиф глифа, определяющий заполненную фигуру.

PAINT_UNION.glyph

Тип: PAINT_UNION. PAINT_GLYPH

См. PAINT_UNION. PAINT_GLYPH.

PAINT_UNION.PAINT_COLOR_GLYPH

Допустимо для элементов типа DWRITE_PAINT_TYPE_COLOR_GLYPH. Указывает другой глиф цвета, используемый в качестве повторно используемого компонента. Этот элемент краски имеет один дочерний элемент, который является корневым элементом краской указанного глифа цвета.

Это соответствует записи PaintColorGlyph в таблице OpenType COLR.

PAINT_UNION.PAINT_COLOR_GLYPH.glyphIndex

Тип: UINT32

Глиф индекса указанного цвета глифа.

PAINT_UNION.PAINT_COLOR_GLYPH.clipBox

Тип: D2D_RECT_F

Вырезка ссылочного глифа цвета в ems. Если глиф цвета не задает прямоугольник клипа, то это пустой прямоугольник. Если он не является пустым прямоугольником, клиент должен вырезать дочернее содержимое в это поле.

PAINT_UNION.colorGlyph

Тип: PAINT_UNION. PAINT_COLOR_GLYPH

См. PAINT_UNION. PAINT_COLOR_GLYPH.

PAINT_UNION.transform

Тип: DWRITE_MATRIX

Допустимо для элементов типа DWRITE_PAINT_TYPE_TRANSFORM. Указывает аффинное преобразование для применения к дочернему содержимому. Этот элемент paint имеет один дочерний элемент, который представляет собой преобразованное содержимое.

Это соответствует форматам 12–31 в таблице OpenType COLR.

PAINT_UNION.PAINT_COMPOSITE

Допустимо для элементов красок типа DWRITE_PAINT_TYPE_COMPOSITE. Объединяет два дочерних элемента краски с помощью указанного режима создания или смешивания. Этот элемент paint имеет два дочерних элемента. Первый ребенок является источником краски. Второй дочерний элемент — это назначение краски (или фон).

Это соответствует записи PaintComposite в таблице OpenType COLR.

PAINT_UNION.PAINT_COMPOSITE.mode

Тип: DWRITE_COLOR_COMPOSITE_MODE

Задает режим создания или смешивания.

PAINT_UNION.composite

Тип: PAINT_UNION. PAINT_COMPOSITE

См. PAINT_UNION. PAINT_COMPOSITE.

paint

Тип: PAINT_UNION

См. PAINT_UNION.

Требования

Требование Ценность
Минимально поддерживаемый клиент Windows 10 версии 1809 (с пакетом SDK для приложений Windows 1.2 или более поздней версии)
Заголовок dwrite_3.h