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_UNION.PAINT_LAYERS

DWRITE_PAINT_TYPE_LAYERS类型的画图元素有效。 包含一个或多个子绘制元素,以自下而上的顺序绘制。

这对应于 OpenType COLR 表中 PaintColrLayers 记录。 或者,它可能与 COLR 版本 0 定义的 BaseGlyph 记录相对应。

PAINT_UNION.PAINT_LAYERS.childCount

类型:UINT32

从下到下的顺序的子绘制元素数。 使用 IDWritePaintReader::MoveToFirstChildMoveToNextSibling 检索子绘制元素。 使用 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 记录,该记录引用 PaintSolidPaintVarSolid 记录。 或者,它可能与 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的画图元素有效。 指定用于填充当前形状或剪辑的纯色。 此画图元素没有子元素。

这对应于 OpenType COLR 表中的 PaintSolidPaintVarSolid 记录。

PAINT_UNION.PAINT_LINEAR_GRADIENT

DWRITE_PAINT_TYPE_LINEAR_GRADIENT类型的画图元素有效。 指定用于填充当前形状或剪辑的线性渐变。 此画图元素没有子元素。

这对应于 OpenType COLR 表中的 PaintLinearGradientPaintVarLinearGradient 记录。

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 表中的 PaintRadialGradientPaintVarRadialGradient 记录。

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 表中的 PaintSweepGradientPaintVarSweepGradient 记录。

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_GLYPH

请参阅 PAINT_UNION。PAINT_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_MATRIX

对类型为 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