Freigeben über


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

Gibt ein Rechteck an, an das alle nachfolgenden Zeichnungsvorgänge abgeschnitten werden.

Syntax

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

Parameter

clipRect

Typ: [in] const D2D1_RECT_F &

Größe und Position des Clippingbereichs in geräteunabhängigen Pixeln.

antialiasMode

Typ: [in] D2D1_ANTIALIAS_MODE

Der Antialiasingmodus, der verwendet wird, um die Ränder von Cliprekts mit Subpixelgrenzen zu zeichnen und den Clip mit den Szeneninhalten zu mischen. Die Überblendung wird einmal ausgeführt, wenn die PopAxisAlignedClip-Methode aufgerufen wird, und gilt nicht für jeden Grundtyp innerhalb der Ebene.

Rückgabewert

Keine

Bemerkungen

ClipRect wird von der aktuellen Welttransformation transformiert, die auf dem Renderziel festgelegt ist. Nachdem die Transformation auf den übergebenen clipRect angewendet wurde, wird das achsenbündige Begrenzungsfeld für clipRect berechnet. Aus Effizienzgründen wird der Inhalt an dieses achsenbündige Begrenzungsfeld und nicht an den ursprünglichen clipRect abgeschnitten, der übergeben wird.

Die folgenden Diagramme zeigen, wie eine Drehungstransformation auf das Renderziel, den resultierenden clipRect und ein auf die berechnete Achse ausgerichtetes Begrenzungsfeld angewendet wird.

  1. Angenommen, das Rechteck in der folgenden Abbildung ist ein Renderziel, das an den Bildschirmpixeln ausgerichtet ist. Abbildung eines Rechtecks (Renderziel)
  2. Wenden Sie eine Drehungstransformation auf das Renderziel an. In der folgenden Abbildung stellt das schwarze Rechteck das ursprüngliche Renderziel und das rote gestrichelte Rechteck das transformierte Renderziel dar. Abbildung eines gedrehten Rechtecks (transformiertes Renderziel)
  3. Nach dem Aufrufen von PushAxisAlignedClip wird die Drehungstransformation auf clipRect angewendet. In der folgenden Abbildung stellt das blaue Rechteck den transformierten clipRect dar. Abbildung eines kleinen blauen Rechtecks (transformierte clipRect) in einem gedrehten Rechteck
  4. Das achsenbündige Begrenzungsfeld wird berechnet. Das grüne gestrichelte Rechteck stellt das umgebende Feld in der folgenden Abbildung dar. Alle Inhalte werden an dieses achsenbündige Begrenzungsfeld gekappt. Abbildung eines grünen Begrenzungsrahmens um ein kleines blaues Rechteck in einem gedrehten Rechteck
Hinweis Wenn Renderingvorgänge fehlschlagen oder PopAxisAlignedClip nicht aufgerufen wird, können Clip rects einige Artefakte auf dem Renderziel verursachen. PopAxisAlignedClip kann als Zeichnungsvorgang betrachtet werden, der zum Korrigieren der Rahmen eines Beschneidungsbereichs konzipiert ist. Ohne diesen Aufruf werden die Rahmen eines beschnittenen Bereichs möglicherweise nicht antialiasiert oder anderweitig korrigiert.
 
PushAxisAlignedClip und PopAxisAlignedClip müssen übereinstimmen. Andernfalls wird der Fehlerstatus festgelegt. Damit das Renderziel weiterhin neue Befehle empfängt, können Sie Flush aufrufen, um den Fehler zu löschen.

Ein PushAxisAlignedClip - und PopAxisAlignedClip-Paar kann um oder innerhalb von PushLayer und PopLayer auftreten, kann sich jedoch nicht überlappen. Beispielsweise ist die Sequenz von PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip gültig, aber die Sequenz von PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer ist ungültig.

Diese Methode gibt keinen Fehlercode zurück, wenn sie fehlschlägt. Um zu ermitteln, ob ein Zeichnungsvorgang (z. B. PushAxisAlignedClip) fehlgeschlagen ist, überprüfen Sie das ergebnis, das von den Methoden ID2D1RenderTarget::EndDraw oder ID2D1RenderTarget::Flush zurückgegeben wird.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

ID2D1RenderTarget