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

Permite especificar una lista de formatos admitidos para superficies de pantalla completa que el objeto IDXGIOutputDuplication puede devolver.

Sintaxis

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

Parámetros

[in] pDevice

Tipo: IUnknown*

Puntero a la interfaz de dispositivo direct3D que puede usar para procesar la imagen de escritorio. Este dispositivo debe crearse a partir del adaptador al que está conectada la salida.

Flags

Tipo: UINT

Campo de bits de DXGI_OUTDUPL_FLAG valores de enumeración que describen el tipo de superficie de captura que se va a crear.

[in] SupportedFormatsCount

Tipo: UINT

Especifica el número de formatos admitidos.

[in] pSupportedFormats

Tipo: const DXGI_FORMAT*

Especifica una matriz, de longitud SupportedFormatsCount de DXGI_FORMAT entradas.

[out] ppOutputDuplication

Tipo: IDXGIOutputDuplication**

Puntero a una variable que recibe la nueva interfaz IDXGIOutputDuplication .

Valor devuelto

Tipo: HRESULT

  • S_OK si DuplicateOutput1 creó correctamente la interfaz de duplicación de escritorio.
  • E_INVALIDARG por una de las siguientes razones:
    • El dispositivo especificado (pDevice) no es válido, no se creó en el adaptador correcto o no se creó a partir de IDXGIFactory1 (o una versión posterior de una interfaz de fábrica DXGI que hereda de IDXGIFactory1).
    • La aplicación que realiza la llamada ya está duplicando esta salida de escritorio.
  • E_ACCESSDENIED si la aplicación no tiene privilegios de acceso a la imagen de escritorio actual. Por ejemplo, solo una aplicación que se ejecuta en LOCAL_SYSTEM puede acceder al escritorio seguro.
  • DXGI_ERROR_UNSUPPORTED si la interfaz IDXGIOutputDuplication creada no admite el escenario o el modo de escritorio actual. Por ejemplo, no se admiten los modos de escritorio 8bpp y no DWM.

    Si Se produce un error en DuplicateOutput1 con DXGI_ERROR_UNSUPPORTED, la aplicación puede esperar la notificación del sistema de los conmutadores de escritorio y los cambios en el modo y, a continuación, llamar a DuplicateOutput1 de nuevo después de que se produzca dicha notificación. Para obtener más información, consulte el conmutador de escritorio (EVENT_SYSTEM_DESKTOPSWITCH) y la notificación de cambio de modo (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si DXGI alcanzó el límite en el número máximo de aplicaciones de duplicación simultáneas (valor predeterminado de cuatro). Por lo tanto, la aplicación que llama no puede crear interfaces de duplicación de escritorio hasta que se cierren las demás aplicaciones.
  • DXGI_ERROR_SESSION_DISCONNECTED si se produjo un error en DuplicateOutput1 porque la sesión está desconectada actualmente.
  • Otros códigos de error se describen en el tema DXGI_ERROR .

Comentarios

Este método permite recibir directamente el formato original del búfer de reserva utilizado por una aplicación de pantalla completa en ejecución. En comparación, el uso de la función DuplicateOutput original siempre convierte la superficie de pantalla completa en un formato BGRA de 32 bits. En los casos en los que la aplicación de pantalla completa actual usa un formato de búfer diferente, una conversión a BGRA de 32 bits incurre en una penalización de rendimiento. Además de la ventaja de rendimiento de poder omitir la conversión de formato, el uso de DuplicateOutput1 también permite recibir la gama completa de colores en los casos en los que se presenta un formato de color alto (como R10G10B10A2).

La matriz pSupportedFormats solo debe contener formatos de examen de pantalla. Consulte Compatibilidad de formato para hardware de nivel 11.0 de características de Direct3D para conocer los formatos de examen necesarios en cada nivel de característica. Si el formato actual del búfer de pantalla completa no está incluido en la matriz pSupportedFormats , DXGI seleccionará uno de los formatos proporcionados y convertirá el búfer de pantalla completa en ese formato antes de volver de IDXGIOutputDuplication::AcquireNextFrame. La lista de formatos admitidos siempre debe contener DXGI_FORMAT_B8G8R8A8_UNORM, ya que este es el formato más común para el escritorio.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado dxgi1_5.h
Library Dxgi.lib
Archivo DLL Dxgi.dll

Consulte también

DuplicateOutput

IDXGIOutput5