Método IDXGIOutputDuplication::GetFrameDirtyRects (dxgi1_2.h)

Obtém informações sobre sujo retângulos para o quadro da área de trabalho atual.

Sintaxe

HRESULT GetFrameDirtyRects(
  [in]  UINT DirtyRectsBufferSize,
  [out] RECT *pDirtyRectsBuffer,
  [out] UINT *pDirtyRectsBufferSizeRequired
);

Parâmetros

[in] DirtyRectsBufferSize

O tamanho em bytes do buffer que o chamador passou para o parâmetro pDirtyRectsBuffer .

[out] pDirtyRectsBuffer

Um ponteiro para uma matriz de estruturas RECT que identifica as regiões de retângulo sujo para o quadro da área de trabalho.

[out] pDirtyRectsBufferSizeRequired

Ponteiro para uma variável que recebe o número de bytes que GetFrameDirtyRects precisa para armazenar informações sobre sujo regiões no buffer em pDirtyRectsBuffer.

Para obter mais informações sobre como retornar o tamanho do buffer necessário, consulte Comentários.

Valor retornado

GetFrameDirtyRects retorna:

  • S_OK se ele recuperou com êxito informações sobre retângulos sujo.
  • DXGI_ERROR_ACCESS_LOST se a interface de duplicação da área de trabalho for inválida. A interface de duplicação da área de trabalho normalmente se torna inválida quando um tipo diferente de imagem é exibido na área de trabalho. Exemplos dessa situação são:
    • Comutador da área de trabalho
    • Alteração de modo
    • Alternar do DWM ativado, DWM desativado ou outro aplicativo de tela inteira
    Nessa situação, o aplicativo deve liberar a interface IDXGIOutputDuplication e criar uma nova IDXGIOutputDuplication para o novo conteúdo.
  • DXGI_ERROR_MORE_DATA se o buffer fornecido pelo aplicativo de chamada não for grande o suficiente.
  • DXGI_ERROR_INVALID_CALL se o aplicativo chamado GetFrameDirtyRects sem possuir a imagem da área de trabalho.
  • E_INVALIDARG se um dos parâmetros para GetFrameDirtyRects estiver incorreto; por exemplo, se pDirtyRectsBuffer for NULL.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR .

Comentários

GetFrameDirtyRects armazena um valor de tamanho na variável em pDirtyRectsBufferSizeRequired. Esse valor especifica o número de bytes que GetFrameDirtyRects precisa para armazenar informações sobre sujo regiões. Você pode usar esse valor nas seguintes situações para determinar a quantidade de memória a ser alocada para buffers futuros que você passa para pDirtyRectsBuffer:

  • GetFrameDirtyRects falha com DXGI_ERROR_MORE_DATA porque o buffer não é grande o suficiente.
  • GetFrameDirtyRects fornece um buffer maior do que o necessário. O valor de tamanho retornado em pDirtyRectsBufferSizeRequired informa ao chamador quanto espaço de buffer foi realmente usado em comparação com a quantidade de espaço em buffer que o chamador alocou e especificou no parâmetro DirtyRectsBufferSize .
O chamador também pode usar o valor retornado em pDirtyRectsBufferSizeRequired para determinar o número de RECTsretornados na matriz pDirtyRectsBuffer .

O buffer contém a lista de sujo RECTs para o quadro atual.

Nota Para produzir uma cópia visualmente precisa da área de trabalho, um aplicativo deve primeiro processar todas as RECTsde movimentação antes de processar sujo RECTs.
 

Requisitos

   
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxgi1_2.h
Biblioteca Dxgi.lib

Confira também

IDXGIOutputDuplication