Partager via


Dessin de lignes et de courbes

Les types de lignes et de courbes inclus dans la sortie graphique sont les lignes géométriques, les lignescosmétiques et les courbes de Béziers.

Pour la sortie de courbe et de courbe, un pilote peut prendre en charge les fonctions DrvStrokePath, DrvFillPath et DrvStrokeAndFillPath . Le pilote doit prendre en charge DrvStrokePath pour dessiner des lignes si la surface est gérée par l’appareil ; les pilotes ne sont pas nécessaires pour prendre en charge les courbes.

Lorsque GDI dessine une ligne ou une courbe avec un ensemble d’attributs, GDI peut appeler DrvStrokePath. Au minimum, la fonction DrvStrokePath doit prendre en charge le dessin de lignes cosmétiques solides et stylées avec un pinceau de couleur unie et une coupe arbitraire. Les fonctions de service GDI PATHOBJ_Xxx et CLIPOBJ_Xxx rendent cela possible en décomposant les lignes en un ensemble de lignes d’un pixel de large avec découpage précalculé. DrvStrokePath fournit un pointeur, plineattrs, vers la structure LINEATTRS qui définit les différents attributs de ligne.

Lorsque le chemin d’accès ou le découpage est trop complexe pour que le pilote puisse être traité sur l’appareil, le pilote peut effectuer le rappel à GDI en appelant la fonction EngStrokePath . Dans ce cas, GDI peut diviser l’appel DrvStrokePath en un ensemble de lignes d’un pixel de large avec découpage précalculé.

En appelant les services CLIPOBJ_Xxx à partir de GDI, un pilote peut faire énumérer toutes les lignes du chemin d’accès et effectuer tous les calculs de découpage de ligne. En outre, un pilote peut utiliser les services PATHOBJ_Xxx, CLIPOBJ_Xxx ou XFORMOBJ_Xxx pour simplifier les opérations graphiques. Par exemple, un pilote peut utiliser CLIPOBJ_cEnumStart et CLIPOBJ_bEnum pour énumérer les rectangles d’une région de clip, envoyer cette région à l’imprimante et la découper. Le pilote peut également utiliser PATHOBJ_vEnumStart et PATHOBJ_bEnum pour énumérer des lignes ou des courbes dans le chemin. Il peut ensuite envoyer le chemin d’accès à l’appareil et le caresser.