ID2D1RenderTarget ::P ushAxisAlignedClip(constD2D1_RECT_F&,D2D1_ANTIALIAS_MODE) (d2d1.h)

Spécifie un rectangle dans lequel toutes les opérations de dessin suivantes sont clippées.

Syntaxe

void PushAxisAlignedClip(
  const D2D1_RECT_F & clipRect,
  D2D1_ANTIALIAS_MODE antialiasMode
);

Paramètres

clipRect

Type : [in] const D2D1_RECT_F &

Taille et position de la zone de découpage, en pixels indépendants de l’appareil.

antialiasMode

Type : [in] D2D1_ANTIALIAS_MODE

Mode anti-attirail utilisé pour dessiner les bords des séquences d’éléments qui ont des limites subpixel et pour mélanger le clip avec le contenu de la scène. Le mélange est effectué une seule fois lorsque la méthode PopAxisAlignedClip est appelée et ne s’applique pas à chaque primitive au sein de la couche.

Valeur de retour

None

Remarques

Le clipRect est transformé par le jeu de transformation du monde actuel sur la cible de rendu. Une fois la transformation appliquée au clipRect transmis, le cadre englobant aligné sur l’axe du clipRect est calculé. Pour plus d’efficacité, le contenu est coupé dans ce cadre englobant aligné sur l’axe et non dans le clipRect d’origine transmis.

Les diagrammes suivants montrent comment une transformation de rotation est appliquée à la cible de rendu, au clipRect résultant et à un cadre englobant aligné sur un axe calculé.

  1. Supposons que le rectangle de l’illustration suivante est une cible de rendu alignée sur les pixels de l’écran. Illustration d’un rectangle (cible de rendu)
  2. Appliquez une transformation de rotation à la cible de rendu. Dans l’illustration suivante, le rectangle noir représente la cible de rendu d’origine et le rectangle en pointillés rouges représente la cible de rendu transformée. Illustration d’un rectangle pivoté (cible de rendu transformée)
  3. Après avoir appelé PushAxisAlignedClip, la transformation de rotation est appliquée au clipRect. Dans l’illustration suivante, le rectangle bleu représente le clipRect transformé. Illustration d’un petit rectangle bleu (clipRect transformé) à l’intérieur d’un rectangle pivoté
  4. Le cadre englobant aligné sur l’axe est calculé. Le rectangle vert en pointillés représente le cadre englobant de l’illustration suivante. Tout le contenu est coupé dans ce cadre englobant aligné sur l’axe. Illustration d’un cadre englobant vert autour d’un petit rectangle bleu à l’intérieur d’un rectangle pivoté
Note Si les opérations de rendu échouent ou si PopAxisAlignedClip n’est pas appelé, les rects de clip peuvent provoquer des artefacts sur la cible de rendu. PopAxisAlignedClip peut être considéré comme une opération de dessin conçue pour corriger les bordures d’une région de découpage. Sans cet appel, les bordures d’une zone coupée ne peuvent pas être anti-attirails ou corrigées d’une autre manière.
 
PushAxisAlignedClip et PopAxisAlignedClip doivent correspondre. Sinon, l’état d’erreur est défini. Pour que la cible de rendu continue à recevoir de nouvelles commandes, vous pouvez appeler Flush pour effacer l’erreur.

Une paire PushAxisAlignedClip et PopAxisAlignedClip peut se produire autour ou au sein d’un PushLayer et d’un PopLayer, mais ne peut pas se chevaucher. Par exemple, la séquence de PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip est valide, mais la séquence de PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer n’est pas valide.

Cette méthode ne retourne pas de code d’erreur en cas d’échec. Pour déterminer si une opération de dessin (telle que PushAxisAlignedClip) a échoué, case activée le résultat retourné par les méthodes ID2D1RenderTarget ::EndDraw ou ID2D1RenderTarget ::Flush.

Configuration requise

   
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1.h
Bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

ID2D1RenderTarget