Fonction DrvStrokePath (winddi.h)

La fonction DrvStrokePath contours (contours) un chemin d’accès.

Syntaxe

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

Paramètres

[in, out] pso

Pointeur vers une structure SURFOBJ qui identifie la surface sur laquelle dessiner.

[in] ppo

Pointeur vers une structure PATHOBJ . Des routines de service GDI PATHOBJ_Xxx sont fournies pour énumérer les lignes, les courbes de Bézier et d’autres données qui composent le chemin. Cela indique ce qui doit être dessiné.

[in] pco

Pointeur vers une structure CLIPOBJ . Des routines de service GDI CLIPOBJ_Xxx sont fournies pour énumérer la région de clip sous la forme d’un ensemble de rectangles. Si vous le souhaitez, toutes les lignes du chemin d’accès peuvent être énumérées au préalable dans une structure CLIPOBJ. Cela signifie que les pilotes peuvent faire en sorte que GDI effectue tous les calculs de découpage de ligne.

[in, optional] pxo

Pointeur vers une structure XFORMOBJ . Cela n’est nécessaire que lorsqu’une ligne géométrique large doit être dessinée. Il spécifie la transformation qui mappe les coordonnées du monde aux coordonnées de l’appareil. Cela est nécessaire, car le chemin est fourni en coordonnées d’appareil, mais une ligne géométrique large est en fait élargie en coordonnées mondiales.

La structure XFORMOBJ peut être interrogée pour rechercher la transformation.

[in] pbo

Pointeur vers une structure BRUSHOBJ qui spécifie le pinceau à utiliser lors du dessin du chemin.

[in] pptlBrushOrg

Pointeur vers une structure POINTL qui spécifie l’origine du pinceau utilisé pour aligner le modèle de pinceau sur l’appareil.

[in] plineattrs

Pointeur vers une structure LINEATTRS . Notez que le membre elStyleState de cette structure doit être mis à jour dans le cadre de cette fonction si le style de la ligne est appliqué. Notez également que le membre ptlLastPel doit être mis à jour si une ligne cosmétique d’une seule largeur de pixel est dessinée.

[in] mix

Mode de combinaison qui définit les opérations de trame de premier plan et d’arrière-plan à utiliser pour le pinceau. Pour plus d’informations sur le mode mix, consultez Remarques.

Valeur retournée

La valeur de retour est TRUE si le pilote est en mesure de tracer le chemin. Si GDI doit à la place caresser le chemin, la valeur de retour est FALSE, mais aucun code d’erreur n’est journalisé. Si le pilote rencontre une erreur, la valeur de retour est DDI_ERROR et un code d’erreur est signalé.

Remarques

Si le pilote a accroché la fonction et si les GCAPS appropriés sont définis, GDI appelle DrvStrokePath lorsque GDI dessine une ligne ou une courbe avec un ensemble d’attributs.

Si un pilote prend en charge ce point d’entrée, il doit également prendre en charge le dessin de lignes larges cosmétiques avec découpage arbitraire. À l’aide des fonctions GDI fournies, l’appel peut être décomposé en un ensemble de lignes d’une largeur de pixel avec découpage précalculé.

Cette fonction est requise si un dessin doit être effectué sur une surface gérée par l’appareil.

Les pilotes des appareils avancés peuvent éventuellement recevoir cet appel pour dessiner des chemins contenant des courbes de Bézier et des lignes géométriques larges. GDI teste les indicateurs GCAPS_BEZIERS et GCAPS_GEOMETRICWIDE du membre flGraphicsCaps de la structure DEVINFO pour décider s’il doit appeler cette fonction. (Les quatre combinaisons de bits déterminent les quatre niveaux de fonctionnalité pour cet appel.) Si le pilote obtient un appel avancé contenant des courbes de Bézier ou des lignes géométriques larges, il peut décider de ne pas gérer l’appel, en retournant FALSE. Cela peut se produire si le chemin d’accès ou le découpage est trop complexe pour que l’appareil puisse le traiter. Si l’appel retourne false, GDI décompose l’appel en appels plus simples qui peuvent être gérés plus facilement.

Pour les surfaces gérées par l’appareil, la fonction doit prendre au minimum en charge les lignes cosmétiques pleines et stylées d’une largeur d’un pixel à l’aide d’un pinceau de couleur unie.

Le mode de combinaison définit la façon dont le modèle entrant doit être mélangé avec les données qui se trouvent déjà sur la surface de l’appareil. Le type de données MIX se compose de deux valeurs d’opération raster binaire (ROP2) regroupées dans un seul ULONG. L’octet d’ordre le plus bas définit l’opération de raster au premier plan ; l’octet suivant définit l’opération de trame d’arrière-plan. Pour plus d’informations sur les codes d’opération raster, consultez la documentation Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête winddi.h (inclure Winddi.h)

Voir aussi

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ