Condividi tramite


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

Specifica un rettangolo a cui vengono ritagliate tutte le operazioni di disegno successive.

Sintassi

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

Parametri

clipRect

Tipo: [in] const D2D1_RECT_F*

Dimensioni e posizione dell'area di ritaglio, in pixel indipendenti dal dispositivo.

antialiasMode

Tipo: [in] D2D1_ANTIALIAS_MODE

La modalità antialiasing usata per disegnare i bordi delle clip che hanno limiti di subpixel e per fondere la clip con il contenuto della scena. La fusione viene eseguita una volta quando viene chiamato il metodo PopAxisAlignedClip e non si applica a ogni primitiva all'interno del livello.

Valore restituito

nessuno

Osservazioni

La clipRect viene trasformata dalla trasformazione del mondo corrente impostata sulla destinazione di rendering. Dopo aver applicato la trasformazione alla clipRect passata, viene calcolata la casella di selezione allineata all'asse per la clipRect . Per l'efficienza, il contenuto viene ritagliato in questa casella di selezione allineata all'asse e non alla clipRect originale passata.

I diagrammi seguenti illustrano come viene applicata una trasformazione di rotazione alla destinazione di rendering, alla clipRect risultante e a una casella di selezione allineata all'asse calcolata.

  1. Si supponga che il rettangolo nella figura seguente sia una destinazione di rendering allineata ai pixel dello schermo. Illustrazione di un rettangolo (destinazione di rendering)
  2. Applicare una trasformazione di rotazione alla destinazione di rendering. Nella figura seguente il rettangolo nero rappresenta la destinazione di rendering originale e il rettangolo tratteggiato rosso rappresenta la destinazione di rendering trasformata. Illustrazione di un rettangolo ruotato (destinazione di rendering trasformato)
  3. Dopo aver chiamato PushAxisAlignedClip, la trasformazione di rotazione viene applicata alla clipRect. Nella figura seguente il rettangolo blu rappresenta la clipRect trasformata. Figura di un piccolo rettangolo blu (clipRect trasformato) all'interno di un rettangolo ruotato
  4. Viene calcolata la casella di selezione allineata all'asse. Il rettangolo tratteggiato verde rappresenta il rettangolo di selezione nella figura seguente. Tutti i contenuti vengono ritagliati in questa casella di selezione allineata all'asse. Figura di un rettangolo verde intorno a un piccolo rettangolo blu all'interno di un rettangolo ruotato
Nota Se le operazioni di rendering hanno esito negativo o se PopAxisAlignedClip non viene chiamato, le recte di clip possono causare alcuni artefatti nella destinazione di rendering. PopAxisAlignedClip può essere considerato un'operazione di disegno progettata per correggere i bordi di un'area di ritaglio. Senza questa chiamata, i bordi di un'area ritagliata potrebbero non essere antialiased o altrimenti corretti.
 
PushAxisAlignedClip e PopAxisAlignedClip deve corrispondere. In caso contrario, lo stato di errore è impostato. Per continuare a ricevere nuovi comandi, è possibile chiamare Flush per cancellare l'errore.

Una coppia PushAxisAlignedClip e PopAxisAlignedClip può verificarsi intorno o all'interno di un PushLayer e PopLayer, ma non può sovrapporsi. Ad esempio, la sequenza di PushAxisAlignedClip, PushLayer, PopAxisAlignedClip è valida, ma la sequenza di PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer non è valida.

Questo metodo non restituisce un codice di errore se ha esito negativo. Per determinare se un'operazione di disegno (ad esempio PushAxisAlignedClip) non è riuscita, controllare il risultato restituito dai metodi ID2D1RenderTarget::EndDraw o ID2D1RenderTarget::Flush.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d2d1.h (include D2d1.h)
Libreria D2d1.lib
DLL D2d1.dll

Vedi anche

ID2D1RenderTarget