Método IDXGIOutput5::D uplicateOutput1 (dxgi1_5.h)

Permite especificar uma lista de formatos com suporte para superfícies de tela inteira que podem ser retornados pelo objeto IDXGIOutputDuplication .

Sintaxe

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Parâmetros

[in] pDevice

Tipo: IUnknown*

Um ponteiro para a interface do dispositivo Direct3D que você pode usar para processar a imagem da área de trabalho. Esse dispositivo deve ser criado a partir do adaptador ao qual a saída está conectada.

Flags

Tipo: UINT

Reservado para uso futuro; deve ser zero.

[in] SupportedFormatsCount

Tipo: UINT

Especifica o número de formatos com suporte.

[in] pSupportedFormats

Tipo: const DXGI_FORMAT*

Especifica uma matriz de comprimento SupportedFormatsCount de entradas de DXGI_FORMAT .

[out] ppOutputDuplication

Tipo: IDXGIOutputDuplication**

Um ponteiro para uma variável que recebe a nova interface IDXGIOutputDuplication .

Valor retornado

Tipo: HRESULT

  • S_OK se DuplicateOutput1 tiver criado com êxito a interface de duplicação da área de trabalho.
  • E_INVALIDARG por um dos seguintes motivos:
    • O dispositivo especificado (pDevice) é inválido, não foi criado no adaptador correto ou não foi criado a partir de IDXGIFactory1 (ou uma versão posterior de uma interface de fábrica DXGI herdada de IDXGIFactory1).
    • O aplicativo de chamada já está duplicando essa saída da área de trabalho.
  • E_ACCESSDENIED se o aplicativo não tiver privilégio de acesso à imagem da área de trabalho atual. Por exemplo, somente um aplicativo executado em LOCAL_SYSTEM pode acessar a área de trabalho segura.
  • DXGI_ERROR_UNSUPPORTED se a interface IDXGIOutputDuplication criada não oferecer suporte ao modo ou cenário da área de trabalho atual. Por exemplo, não há suporte para modos de área de trabalho 8bpp e não DWM.

    Se DuplicateOutput1 falhar com DXGI_ERROR_UNSUPPORTED, o aplicativo poderá aguardar a notificação do sistema de alterações de modo e comutadores de área de trabalho e, em seguida, chamar DuplicateOutput1 novamente depois que essa notificação ocorrer. Para obter mais informações, consulte a opção desktop (EVENT_SYSTEM_DESKTOPSWITCH) e a notificação de alteração de modo (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se o DXGI atingiu o limite no número máximo de aplicativos de duplicação simultânea (padrão de quatro). Portanto, o aplicativo de chamada não pode criar nenhuma interface de duplicação da área de trabalho até que os outros aplicativos sejam fechados.
  • DXGI_ERROR_SESSION_DISCONNECTED se DuplicateOutput1 falhou porque a sessão está desconectada no momento.
  • Outros códigos de erro são descritos no tópico DXGI_ERROR .

Comentários

Esse método permite receber diretamente o formato de buffer back original usado por um aplicativo de tela inteira em execução. Para comparação, usar a função DuplicateOutput original sempre converte a superfície de tela inteira em um formato BGRA de 32 bits. Nos casos em que o aplicativo de tela inteira atual está usando um formato de buffer diferente, uma conversão em BGRA de 32 bits incorre em uma penalidade de desempenho. Além do benefício de desempenho de ser capaz de ignorar a conversão de formato, usar DuplicateOutput1 também permite receber a gama completa de cores em casos em que um formato de alta cor (como R10G10B10A2) está sendo apresentado.

A matriz pSupportedFormats deve conter apenas formatos de verificação de exibição. Consulte Formatar suporte para hardware de nível de recurso direct3D 11.0 para obter os formatos de verificação necessários em cada nível de recurso. Se o formato de buffer de tela inteira atual não estiver contido na matriz pSupportedFormats , o DXGI escolherá um dos formatos fornecidos e converterá o buffer de tela inteira nesse formato antes de retornar de IDXGIOutputDuplication::AcquireNextFrame. A lista de formatos com suporte deve sempre conter DXGI_FORMAT_B8G8R8A8_UNORM, pois esse é o formato mais comum para a área de trabalho.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho dxgi1_5.h
Biblioteca Dxgi.lib
DLL Dxgi.dll

Confira também

DuplicateOutput

IDXGIOutput5