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
指定画图类型,从而指定联合的哪个成员有效。
PAINT_UNION
指定画图元素的类型特定属性。
PAINT_UNION.PAINT_LAYERS
对 DWRITE_PAINT_TYPE_LAYERS 类型的绘制元素有效。 包含一个或多个要按自下而上顺序绘制的子绘制元素。
这对应于 OpenType COLR 表中的 PaintColrLayers 记录。 或者,它可能与 COLR 版本 0 定义的 BaseGlyph 记录相对应。
PAINT_UNION.PAINT_LAYERS.childCount
类型: UINT32
按自下而上的顺序排列的子绘制元素的数目。 使用 IDWritePaintReader::MoveToFirstChild 和 MoveToNextSibling 检索子绘制元素。 使用 MoveToParent 方法返回到父元素。
PAINT_UNION.layers
PAINT_UNION.PAINT_SOLID_GLYPH
对于 DWRITE_PAINT_TYPE_SOLID_GLYPH 类型的画图元素有效。 指定具有纯色填充的字形。 此 paint 元素没有子元素。
这对应于 OpenType COLR 表中两个绘制记录的组合: 一个 PaintGlyph 记录,它引用 PaintSolid 或 PaintVarSolid 记录。 或者,它可能与 COLR 版本 0 定义的 层 记录相对应。
PAINT_UNION.PAINT_SOLID_GLYPH.glyphIndex
类型: UINT32
定义要填充的形状的字形索引。
PAINT_UNION.PAINT_SOLID_GLYPH.color
用于填充字形形状的字形颜色。
PAINT_UNION.solidGlyph
类型: PAINT_UNION。PAINT_SOLID_GLYPH
请参阅 PAINT_UNION。PAINT_SOLID_GLYPH。
PAINT_UNION.solid
对 DWRITE_PAINT_TYPE_SOLID 类型的绘制元素有效。 指定用于填充当前形状或剪辑的纯色。 此 paint 元素没有子元素。
这对应于 OpenType COLR 表中的 PaintSolid 或 PaintVarSolid 记录。
PAINT_UNION.PAINT_LINEAR_GRADIENT
对 DWRITE_PAINT_TYPE_LINEAR_GRADIENT 类型的绘制元素有效。 指定用于填充当前形状或剪辑的线性渐变。 此 paint 元素没有子元素。
这对应于 OpenType COLR 表中的 PaintLinearGradient 或 PaintVarLinearGradient 记录。
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 类型的画图元素有效。 指定用于填充当前形状或剪辑的径向渐变。 此 paint 元素没有子元素。
这对应于 OpenType COLR 表中的 PaintRadialGradient 或 PaintVarRadialGradient 记录。
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
对于 DWRITE_PAINT_TYPE_SWEEP_GRADIENT 类型的绘制元素有效。 指定用于填充当前形状或剪辑的扫描渐变。 此 paint 元素没有子元素。
这对应于 OpenType COLR 表中的 PaintSweepGradient 或 PaintVarSweepGradient 记录。
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 元素有一个子元素。
子油漆元素定义如何填充字形形状。 子元素可以是单个画图元素,例如线性渐变。 或者,子元素可以是要以字形形状作为剪辑区域呈现的可视化树的根。 这对应于 OpenType COLR 表中的 PaintGlyph 记录。
PAINT_UNION.PAINT_GLYPH.glyphIndex
类型: UINT32
定义要填充的形状的字形的字形索引。
PAINT_UNION.glyph
PAINT_UNION.PAINT_COLOR_GLYPH
对于 DWRITE_PAINT_TYPE_COLOR_GLYPH 类型的绘制元素有效。 指定另一个颜色字形,用作可重用组件。 此 paint 元素有一个子元素,该子元素是指定颜色标志符号的根画图元素。
这对应于 OpenType COLR 表中的 PaintColorGlyph 记录。
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 类型的绘制元素有效。 指定要应用于子内容的仿射转换。 此画图元素有一个子元素,即转换后的内容。
这对应于 OpenType COLR 表中的绘制格式 12 到 31。
PAINT_UNION.PAINT_COMPOSITE
对 DWRITE_PAINT_TYPE_COMPOSITE 类型的绘制元素有效。 使用指定的合成或混合模式组合两个子绘制元素。 此 paint 元素有两个子元素。 第一个子级是绘图源。 第二个子级是油漆目标 (或背景) 。
这对应于 OpenType COLR 表中的 PaintComposite 记录。
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 应用 SDK 1.2 或更高版本的 Windows 10 版本 1809 () |
标头 | dwrite_3.h |