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类型的画图元素有效。 指定具有纯色填充的字形。 此画图元素没有子元素。
这对应于 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的画图元素有效。 指定用于填充当前形状或剪辑的纯色。 此画图元素没有子元素。
这对应于 OpenType COLR 表中的 PaintSolid 或 PaintVarSolid 记录。
PAINT_UNION.PAINT_LINEAR_GRADIENT
对 DWRITE_PAINT_TYPE_LINEAR_GRADIENT类型的画图元素有效。 指定用于填充当前形状或剪辑的线性渐变。 此画图元素没有子元素。
这对应于 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类型的画图元素有效。 指定用于填充当前形状或剪辑的径向渐变。 此画图元素没有子元素。
这对应于 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类型的油漆元素有效。 指定用于填充当前形状或剪辑的扫描渐变。 此画图元素没有子元素。
这对应于 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类型的油漆元素有效。 指定要填充的字形形状,或等效的剪裁区域。 此画图元素有一个子元素。
子画元素定义字形形状的填充方式。 子元素可以是单个油漆元素,例如线性渐变。 或者子元素可以是可视化树的根,以字形形状呈现为剪辑区域。 这对应于 OpenType COLR 表中的 PaintGlyph 记录。
PAINT_UNION.PAINT_GLYPH.glyphIndex
类型:UINT32
用于定义要填充的形状的字形的字形索引。
PAINT_UNION.glyph
PAINT_UNION.PAINT_COLOR_GLYPH
对类型为 DWRITE_PAINT_TYPE_COLOR_GLYPH的油漆元素有效。 指定另一种颜色标志符号,用作可重用组件。 此画图元素有一个子元素,它是指定颜色标志符号的根画元素。
这对应于 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_PAINT_TYPE_TRANSFORM的油漆元素有效。 指定要应用于子内容的 affine 转换。 此画图元素有一个子元素,即已转换的内容。
这对应于 OpenType COLR 表中的 12 到 31 的画格式。
PAINT_UNION.PAINT_COMPOSITE
对 DWRITE_PAINT_TYPE_COMPOSITE类型的画图元素有效。 使用指定的组合或混合模式合并两个子绘图元素。 此画图元素有两个子元素。 第一个子级是油漆源。 第二个子级是油漆目标(或背景)。
这对应于 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 10 版本 1809(使用 Windows 应用 SDK 1.2 或更高版本) |
标头 | dwrite_3.h |