структура 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_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 |