Partager via


structure DWRITE_PAINT_ELEMENT (dwrite_3.h)

DWRITE_PAINT_ELEMENT Structure

Spécifie les propriétés d’un élément de peinture, qui est un nœud d’une arborescence visuelle associée à un glyphe de couleur. Il est passé en tant que paramètre de sortie à différentes méthodes IDWritePaintReader .

Pour obtenir une description détaillée de la façon dont les éléments de peinture doivent être rendus, consultez la spécification de la table OpenType COLR. Certaines des descriptions de cette rubrique font référence aux formats d’enregistrement de peinture COLR associés à chaque type de peinture.

Syntaxe

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;
};

Membres

paintType

Type : DWRITE_PAINT_TYPE

Spécifie le type de peinture et, par conséquent, le membre de l’union qui est valide.

PAINT_UNION

Spécifie les propriétés propres au type de l’élément paint.

PAINT_UNION.PAINT_LAYERS

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_LAYERS. Contient un ou plusieurs éléments de peinture enfants à dessiner dans l’ordre bas vers le haut.

Cela correspond à un enregistrement PaintColrLayers dans la table OpenType COLR. Il peut également correspondre à un enregistrement BaseGlyph défini par COLR version 0.

PAINT_UNION.PAINT_LAYERS.childCount

Type : UINT32

Nombre d’éléments de peinture enfants dans l’ordre ascendant. Utilisez IDWritePaintReader ::MoveToFirstChild et MoveToNextSibling pour récupérer les éléments de peinture enfants. Utilisez la méthode MoveToParent pour revenir à l’élément parent.

PAINT_UNION.layers

Type : PAINT_UNION. PAINT_LAYERS

Voir PAINT_UNION. PAINT_LAYERS.

PAINT_UNION.PAINT_SOLID_GLYPH

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_SOLID_GLYPH. Spécifie un glyphe avec un remplissage de couleur unie. Cet élément de peinture n’a aucun élément enfant.

Cela correspond à une combinaison de deux enregistrements de peinture dans la table OpenType COLR : un enregistrement PaintGlyph , qui fait référence à un enregistrement PaintSolid ou PaintVarSolid . Il peut également correspondre à un enregistrement de couche défini par COLR version 0.

PAINT_UNION.PAINT_SOLID_GLYPH.glyphIndex

Type : UINT32

Index de glyphe définissant la forme à remplir.

PAINT_UNION.PAINT_SOLID_GLYPH.color

Type : DWRITE_PAINT_COLOR

Couleur de glyphe utilisée pour remplir la forme de glyphe.

PAINT_UNION.solidGlyph

Type : PAINT_UNION. PAINT_SOLID_GLYPH

Voir PAINT_UNION. PAINT_SOLID_GLYPH.

PAINT_UNION.solid

Type : DWRITE_PAINT_COLOR

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_SOLID. Spécifie une couleur unie utilisée pour remplir la forme ou l’élément actuel. Cet élément de peinture n’a aucun élément enfant.

Cela correspond à un enregistrement PaintSolid ou PaintVarSolid dans la table OpenType COLR.

PAINT_UNION.PAINT_LINEAR_GRADIENT

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_LINEAR_GRADIENT. Spécifie un dégradé linéaire utilisé pour remplir la forme ou l’élément actuel. Cet élément de peinture n’a aucun élément enfant.

Cela correspond à un enregistrement PaintLinearGradient ou PaintVarLinearGradient dans la table OPENType COLR.

PAINT_UNION.PAINT_LINEAR_GRADIENT.extendMode

Type : UINT32

Valeur D2D1_EXTEND_MODE spécifiant la façon dont les couleurs en dehors de l’intervalle sont définies.

PAINT_UNION.PAINT_LINEAR_GRADIENT.gradientStopCount

Type : UINT32

Nombre d’arrêts de dégradé. Utilisez la méthode IDWritePaintReader ::GetGradientStops pour obtenir les arrêts de dégradé.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x0

Type : float

Coordonnée X du point de départ de la ligne de couleur.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y0

Type : float

Coordonnée Y du point de départ de la ligne de couleur.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x1

Type : float

Coordonnée X du point de terminaison de la ligne de couleur.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y1

Type : float

Coordonnée Y du point de terminaison de la ligne de couleur.

PAINT_UNION.PAINT_LINEAR_GRADIENT.x2

Type : float

Coordonnée X du point de rotation de la ligne de couleur.

PAINT_UNION.PAINT_LINEAR_GRADIENT.y2

Type : float

Coordonnée Y du point de rotation de la ligne de couleur.

PAINT_UNION.linearGradient

Type : PAINT_UNION. PAINT_LINEAR_GRADIENT

Voir PAINT_UNION. PAINT_LINEAR_GRADIENT.

PAINT_UNION.PAINT_RADIAL_GRADIENT

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_RADIAL_GRADIENT. Spécifie un dégradé radial utilisé pour remplir la forme ou l’élément actuel. Cet élément de peinture n’a aucun élément enfant.

Cela correspond à un enregistrement PaintRadialGradient ou PaintVarRadialGradient dans la table OpenType COLR.

PAINT_UNION.PAINT_RADIAL_GRADIENT.extendMode

Type : UINT32

Valeur D2D1_EXTEND_MODE spécifiant la façon dont les couleurs en dehors de l’intervalle sont définies.

PAINT_UNION.PAINT_RADIAL_GRADIENT.gradientStopCount

Type : UINT32

Nombre d’arrêts de dégradé. Utilisez la méthode IDWritePaintReader ::GetGradientStops pour obtenir les arrêts de dégradé.

PAINT_UNION.PAINT_RADIAL_GRADIENT.x0

Type : float

Coordonnée X centrale du cercle de début.

PAINT_UNION.PAINT_RADIAL_GRADIENT.y0

Type : float

Coordonnée Y centrale du cercle de début.

PAINT_UNION.PAINT_RADIAL_GRADIENT.radius0

Type : float

Rayon du cercle de début.

PAINT_UNION.PAINT_RADIAL_GRADIENT.x1

Type : float

Coordonnée X centrale du cercle de fin.

PAINT_UNION.PAINT_RADIAL_GRADIENT.y1

Type : float

Coordonnée Y centrale du cercle de fin.

PAINT_UNION.PAINT_RADIAL_GRADIENT.radius1

Type : float

Rayon du cercle de fin.

PAINT_UNION.radialGradient

Type : PAINT_UNION. PAINT_RADIAL_GRADIENT

Voir PAINT_UNION. PAINT_RADIAL_GRADIENT.

PAINT_UNION.PAINT_SWEEP_GRADIENT

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_SWEEP_GRADIENT. Spécifie un dégradé de balayage utilisé pour remplir la forme ou l’élément actuel. Cet élément de peinture n’a aucun élément enfant.

Cela correspond à un enregistrement PaintSweepGradient ou PaintVarSweepGradient dans la table OpenType COLR.

PAINT_UNION.PAINT_SWEEP_GRADIENT.extendMode

Type : UINT32

Valeur D2D1_EXTEND_MODE spécifiant la façon dont les couleurs en dehors de l’intervalle sont définies.

PAINT_UNION.PAINT_SWEEP_GRADIENT.gradientStopCount

Type : UINT32

Nombre d’arrêts de dégradé. Utilisez la méthode IDWritePaintReader ::GetGradientStops pour obtenir les arrêts de dégradé.

PAINT_UNION.PAINT_SWEEP_GRADIENT.centerX

Type : float

Coordonnée X centrale.

PAINT_UNION.PAINT_SWEEP_GRADIENT.centerY

Type : float

Coordonnée Y centrale.

PAINT_UNION.PAINT_SWEEP_GRADIENT.startAngle

Type : float

Début de la plage angulaire du gradient, mesuré en degrés dans le sens inverse des aiguilles d’une montre à partir de la direction de l’axe x positif.

PAINT_UNION.PAINT_SWEEP_GRADIENT.endAngle

Type : float

Fin de la plage angulaire du dégradé, mesurée en degrés dans le sens inverse des aiguilles d’une montre à partir de la direction de l’axe X positif.

PAINT_UNION.sweepGradient

Type : PAINT_UNION. PAINT_SWEEP_GRADIENT

Voir PAINT_UNION. PAINT_SWEEP_GRADIENT.

PAINT_UNION.PAINT_GLYPH

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_GLYPH. Spécifie une forme de glyphe à remplir ou, de façon équivalente, une zone de clip. Cet élément de peinture a un élément enfant.

L’élément de peinture enfant définit la façon dont la forme de glyphe est remplie. L’élément enfant peut être un seul élément de peinture, tel qu’un dégradé linéaire. Ou l’élément enfant peut être la racine d’une arborescence visuelle à afficher avec la forme de glyphe en tant que zone de clip. Cela correspond à un enregistrement PaintGlyph dans la table OPENType COLR.

PAINT_UNION.PAINT_GLYPH.glyphIndex

Type : UINT32

Index de glyphe du glyphe qui définit la forme à remplir.

PAINT_UNION.glyph

Type : PAINT_UNION. PAINT_GLYPH

Voir PAINT_UNION. PAINT_GLYPH.

PAINT_UNION.PAINT_COLOR_GLYPH

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_COLOR_GLYPH. Spécifie un autre glyphe de couleur, utilisé comme composant réutilisable. Cet élément de peinture a un élément enfant, qui est l’élément de peinture racine du glyphe de couleur spécifié.

Cela correspond à un enregistrement PaintColorGlyph dans la table OpenType COLR.

PAINT_UNION.PAINT_COLOR_GLYPH.glyphIndex

Type : UINT32

Index de glyphe du glyphe de couleur référencé.

PAINT_UNION.PAINT_COLOR_GLYPH.clipBox

Type : D2D_RECT_F

Zone clip du glyphe de couleur référencé, en ems. Si le glyphe de couleur ne spécifie pas de zone de clip, il s’agit d’un rectangle vide. S’il ne s’agit pas d’un rectangle vide, le client doit découper le contenu enfant dans cette zone.

PAINT_UNION.colorGlyph

Type : PAINT_UNION. PAINT_COLOR_GLYPH

Voir PAINT_UNION. PAINT_COLOR_GLYPH.

PAINT_UNION.transform

Type : DWRITE_MATRIX

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_TRANSFORM. Spécifie une transformation affine à appliquer au contenu enfant. Cet élément de peinture a un élément enfant, qui est le contenu transformé.

Cela correspond aux formats de peinture 12 à 31 dans la table OpenType COLR.

PAINT_UNION.PAINT_COMPOSITE

Valide pour les éléments de peinture de type DWRITE_PAINT_TYPE_COMPOSITE. Combine les deux éléments de peinture enfants à l’aide du mode de composition ou de fusion spécifié. Cet élément de peinture a deux éléments enfants. Le premier enfant est la source de peinture. Le deuxième enfant est la destination de peinture (ou toile de fond).

Cela correspond à un enregistrement PaintComposite dans la table OPENType COLR.

PAINT_UNION.PAINT_COMPOSITE.mode

Type : DWRITE_COLOR_COMPOSITE_MODE

Spécifie le mode de composition ou de fusion.

PAINT_UNION.composite

Type : PAINT_UNION. PAINT_COMPOSITE

Voir PAINT_UNION. PAINT_COMPOSITE.

paint

Type : PAINT_UNION

Voir PAINT_UNION.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809 (avec SDK d'application Windows 1.2 ou version ultérieure)
En-tête dwrite_3.h