Compartir a través de


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

Especifica un rectángulo al que se recortan todas las operaciones de dibujo posteriores.

Sintaxis

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

Parámetros

clipRect

Tipo: [in] const D2D1_RECT_F*

El tamaño y la posición del área de recorte, en píxeles independientes del dispositivo.

antialiasMode

Tipo: [in] D2D1_ANTIALIAS_MODE

Modo de suavizado de contorno que se usa para dibujar los bordes de los rects de clip que tienen límites de subpixel y para combinar el clip con el contenido de la escena. La combinación se realiza una vez cuando se llama al método PopAxisAlignedClip y no se aplica a cada primitivo dentro de la capa.

Valor devuelto

None

Observaciones

ClipRect se transforma mediante la transformación del mundo actual establecida en el destino de representación. Después de aplicar la transformación al clipRect que se pasa, se calcula el cuadro de límite alineado con el eje para clipRect . Para mejorar la eficacia, el contenido se recorta en este rectángulo de límite alineado con el eje y no en el clipRect original que se pasa.

En los diagramas siguientes se muestra cómo se aplica una transformación de rotación al destino de representación, el clipRect resultante y un cuadro de límite alineado con el eje calculado.

  1. Supongamos que el rectángulo de la ilustración siguiente es un destino de representación que está alineado con los píxeles de pantalla. Ilustración de un rectángulo (destino de representación)
  2. Aplique una transformación de rotación al destino de representación. En la ilustración siguiente, el rectángulo negro representa el destino de representación original y el rectángulo discontinuo rojo representa el destino de representación transformado. Ilustración de un rectángulo girado (destino de representación transformado)
  3. Después de llamar a PushAxisAlignedClip, la transformación de rotación se aplica a clipRect. En la ilustración siguiente, el rectángulo azul representa el clipRect transformado. Ilustración de un rectángulo azul pequeño (clipRect transformado) dentro de un rectángulo girado
  4. Se calcula el rectángulo de límite alineado con el eje. El rectángulo de guiones verde representa el cuadro de límite de la ilustración siguiente. Todo el contenido se recorta en este rectángulo de límite alineado con el eje. Ilustración de un rectángulo verde alrededor de un rectángulo azul pequeño dentro de un rectángulo girado
Nota Si se produce un error en las operaciones de representación o si no se llama a PopAxisAlignedClip , los rects de recorte pueden provocar algunos artefactos en el destino de representación. PopAxisAlignedClip se puede considerar una operación de dibujo diseñada para corregir los bordes de una región de recorte. Sin esta llamada, los bordes de un área recortada pueden no ser suavizados ni corregirse de otro modo.
 
PushAxisAlignedClip y PopAxisAlignedClip deben coincidir. De lo contrario, se establece el estado de error. Para que el destino de representación continúe recibiendo nuevos comandos, puede llamar a Flush para borrar el error.

Un par PushAxisAlignedClip y PopAxisAlignedClip pueden producirse alrededor o dentro de pushLayer y PopLayer, pero no se puede superponer. Por ejemplo, la secuencia de PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip es válida, pero la secuencia de PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer no es válida.

Este método no devuelve un código de error si se produce un error. Para determinar si se produjo un error en una operación de dibujo (como PushAxisAlignedClip), compruebe el resultado devuelto por los métodos ID2D1RenderTarget::EndDraw o ID2D1RenderTarget::Flush .

Requisitos

   
Plataforma de destino Windows
Encabezado d2d1.h (incluya D2d1.h)
Library D2d1.lib
Archivo DLL D2d1.dll

Consulte también

ID2D1RenderTarget