Compartilhar via


Método ID2D1RenderTarget::P ushAxisAlignedClip(constD2D1_RECT_F*,D2D1_ANTIALIAS_MODE) (d2d1.h)

Especifica um retângulo ao qual todas as operações de desenho subsequentes são recortadas.

Sintaxe

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

Parâmetros

clipRect

Tipo: [in] const D2D1_RECT_F*

O tamanho e a posição da área de recorte, em pixels independentes do dispositivo.

antialiasMode

Tipo: [in] D2D1_ANTIALIAS_MODE

O modo de suavização usado para desenhar as bordas de rects de clipe que têm limites de subpixel e para misturar o clipe com o conteúdo da cena. A mesclagem é executada uma vez quando o método PopAxisAlignedClip é chamado e não se aplica a cada primitivo dentro da camada.

Valor retornado

Nenhum

Comentários

O clipRect é transformado pela transformação do mundo atual definida no destino de renderização. Depois que a transformação é aplicada ao clipRect que é passado, a caixa delimitadora alinhada ao eixo do clipRect é computada. Para eficiência, o conteúdo é recortado para essa caixa delimitadora alinhada ao eixo e não para o clipRect original que é passado.

Os diagramas a seguir mostram como uma transformação de rotação é aplicada ao destino de renderização, ao clipRect resultante e a uma caixa delimitadora alinhada ao eixo calculado.

  1. Suponha que o retângulo na ilustração a seguir seja um destino de renderização alinhado aos pixels da tela. Ilustração de um retângulo (destino de renderização)
  2. Aplique uma transformação de rotação ao destino de renderização. Na ilustração a seguir, o retângulo preto representa o destino de renderização original e o retângulo vermelho tracejado representa o destino de renderização transformado. Ilustração de um retângulo girado (destino de renderização transformado)
  3. Depois de chamar PushAxisAlignedClip, a transformação de rotação é aplicada ao clipRect. Na ilustração a seguir, o retângulo azul representa o clipRect transformado. Ilustração de um pequeno retângulo azul (clipRect transformado) dentro de um retângulo girado
  4. A caixa delimitadora alinhada ao eixo é calculada. O retângulo tracejado verde representa a caixa delimitadora na ilustração a seguir. Todo o conteúdo é recortado nessa caixa delimitadora alinhada ao eixo. Ilustração de uma caixa delimitadora verde em torno de um pequeno retângulo azul dentro de um retângulo girado
Nota Se as operações de renderização falharem ou se PopAxisAlignedClip não for chamado, rects de clipe poderão causar alguns artefatos no destino de renderização. PopAxisAlignedClip pode ser considerado uma operação de desenho projetada para corrigir as bordas de uma região de recorte. Sem essa chamada, as bordas de uma área recortada podem não ser suavizadas ou corrigidas de outra forma.
 
O PushAxisAlignedClip e o PopAxisAlignedClip devem corresponder. Caso contrário, o estado de erro será definido. Para que o destino de renderização continue recebendo novos comandos, você pode chamar Flush para limpar o erro.

Um par PushAxisAlignedClip e PopAxisAlignedClip pode ocorrer ao redor ou dentro de um PushLayer e PopLayer, mas não pode se sobrepor. Por exemplo, a sequência de PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip é válida, mas a sequência de PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer é inválida.

Esse método não retornará um código de erro se falhar. Para determinar se uma operação de desenho (como PushAxisAlignedClip) falhou, marcar o resultado retornado pelos métodos ID2D1RenderTarget::EndDraw ou ID2D1RenderTarget::Flush.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d2d1.h (inclua D2d1.h)
Biblioteca D2d1.lib
DLL D2d1.dll

Confira também

ID2D1RenderTarget