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


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

Структура DWRITE_PAINT_ELEMENT

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

Подробное описание отрисовки элементов paint см. в спецификации таблицы 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

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

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

PAINT_UNION.PAINT_LAYERS.childCount

Тип: UINT32

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

PAINT_UNION.layers

Тип: PAINT_UNION. PAINT_LAYERS

См . PAINT_UNION. PAINT_LAYERS.

PAINT_UNION.PAINT_SOLID_GLYPH

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

Это соответствует сочетанию двух записей paint в таблице 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

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

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

PAINT_UNION.PAINT_LINEAR_GRADIENT

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

Соответствует записи 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

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

Соответствует записи 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 конечного круга.

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

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

Соответствует записи 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

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

Дочерний элемент paint определяет способ заполнения фигуры глифа. Дочерним элементом может быть один элемент 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

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

Соответствует записи 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

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

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

PAINT_UNION.PAINT_COMPOSITE

Допустимо для элементов paint типа 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 (с Windows App SDK 1.2 или более поздней версии)
Верхняя часть dwrite_3.h