структура 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_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 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по