Compartir a través de


estructura DXGI1_2_DDI_BASE_FUNCTIONS (dxgiddi.h)

Contiene punteros a funciones que un controlador de pantalla de Windows Display Driver Model (WDDM) 1.2 y versiones posteriores pueden implementar para realizar tareas de bajo nivel, como presentar fotogramas representados a una salida, controlar gamma, obtener notificaciones sobre superficies interoperables compartidas y de interfaz de dispositivos gráficos de Windows (GDI) y administrar una transición de pantalla completa.

Sintaxis

typedef struct DXGI1_2_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
  HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
  HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
  HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
  HRESULT()(void *) * pfnGetMultiplaneOverlayFilterRange;
  HRESULT()(DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT *) * pfnCheckMultiplaneOverlaySupport;
  HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
} DXGI1_2_DDI_BASE_FUNCTIONS;

Miembros

pfnPresent

Puntero a la funciónPresentDXGI del controlador.

pfnGetGammaCaps

Puntero a la funciónGetGammaCapsDXGI del controlador.

pfnSetDisplayMode

Puntero a la función SetDisplayModeDXGI del controlador.

pfnSetResourcePriority

Puntero a la función setResourcePriorityDXGI del controlador.

pfnQueryResourceResidency

Puntero a la funciónqueryResourceResidencyDXGI del controlador.

pfnRotateResourceIdentities

Puntero a la funciónRotateResourceIdentitiesDXGI del controlador.

pfnBlt

Puntero a la funcióndeBltDXGI del controlador.

El tiempo de ejecución de Direct3D podría establecer el miembro marcas de de la estructura de DXGI_DDI_ARG_BLT que el parámetro pBltData apunta de tal manera que requiera la funciónBlt1DXGI depara realizar una transferencia de bloques de bits (bitblt) operación que resuelva recursos de ejemplo múltiple, realiza la conversión de formato de color y realiza una extensión o reducción a la vez. Sin embargo, el tiempo de ejecución de Direct3D nunca establecerá el miembro Marcas de DXGI_DDI_ARG_BLT1 en cero (es decir, sin marcas establecidas) junto con el valor de DXGI_DDI_MODE_ROTATION_IDENTITY establecido en el miembro de DXGI_DDI_ARG_BLT1 (es decir, para indicar ninguna rotación) para realizar una operación de copia de memoria recta. En su lugar, a menos que ambos recursos sean de muestreo múltiple, el entorno de ejecución de Direct3D llama a la ResourceCopy del controlador o ResourceCopyRegion(D3D11_1) función para realizar una operación de copia de memoria recta.

La calidad del ajuste o reducción que realiza el controlador de pantalla en modo de usuario debe ser tan buena como el ajuste o reducción que realiza un filtro bilineal.

El tiempo de ejecución de Direct3D llamará a la función Blt1DXGI del controlador con poca frecuencia. Es decir, el tiempo de ejecución debe llamar a Blt1DXGI no más de una vez o dos veces por fotograma porque el tiempo de ejecución usa Blt1DXGI principalmente para admitir una presentación.

Cuando el tiempo de ejecución llama a Blt1DXGI para una presentación, el tiempo de ejecución establece la marca Presente campo de bits en el miembro Marcas miembro de DXGI_DDI_ARG_BLT1. El tiempo de ejecución establece el marca presente campo de bits para informar al controlador de que hay requisitos adicionales para el bitblt y que puede ser necesaria la sincronización adicional (por ejemplo, el tiempo de ejecución podría necesitar realizar una sincronización adicional en configuraciones de equipo que contienen dos adaptadores de gráficos que cada uno controla partes independientes de la pantalla). Cuando se establece la marca de campo de bits presente, el controlador debe realizar una operación de copia desde los búferes de reserva de una aplicación a la superficie compartida de DWM. Dado que la sincronización de este tipo de operación de copia es inexacta, los artefactos de desgarro deben ser el peor tipo de artefactos que experimenta un usuario. Para este tipo de operación de copia, el controlador no debe usar un enfoque de paso múltiple resolviendo primero en la superficie de destino y, a continuación, convirtiendo los resultados en contexto porque los posibles artefactos serían mucho peores.

Si el controlador admite la devolución de DXGI_DDI_ERR_UNSUPPORTED durante la creación de una superficie principal (es decir, devolver DXGI_DDI_ERR_UNSUPPORTED de una llamada a su función createResource(D3D10) con la marca D3D10_DDI_BIND_PRESENT establecida en el miembro BindFlags de D3D10DDIARG_CREATERESOURCE junto con el miembro pPrimaryDesc del conjunto de D3D10DDIARG_CREATERESOURCE a no NULL), el controlador también debe admitir la rotación durante una operación de copia. Si el controlador nunca devuelve DXGI_DDI_ERR_UNSUPPORTED de una llamada a su CreateResource(D3D10) o función CreateResource(D3D11), el runtime nunca pasará el valor DXGI_DDI_MODE_ROTATION_ROTATE90, DXGI_DDI_MODE_ROTATION_ROTATE180o DXGI_DDI_MODE_ROTATION_ROTATE270 al miembro Rotate de DXGI_DDI_ARG_BLT1. Por lo tanto, en esta situación, la función Blt1DXGI del controlador no es necesaria para admitir la rotación.

El tiempo de ejecución establece un valor en el girar miembro de DXGI_DDI_ARG_BLT1 para indicar el número de grados para girar en sentido contrario el contenido del origen antes de que el controlador copie el contenido en el destino. La rotación se especifica en incrementos de 90 grados.

Nota

Cuando el controlador Blt1DXGI función copia contenido con formato sRGB de una superficie de origen a una superficie de destino que no sea sRGB, el controlador debe copiar el contenido sRGB sin cambios (es decir, el controlador no debe realizar la conversión sRGB a lineal).

Restricciones de origen

La funciónBlt1DXGI siempre usa un subrecurso de origen completo (frente a algún área sub rectangular) para realizar la operación bitblt. Además, el origen es una representación D3D10DDIRESOURCE_TEXTURE2D (especificada en el miembro ResourceDimension de D3D10DDIARG_CREATERESOURCE o D3D11DDIARG_CREATERESOURCE cuando se crea el origen en una llamada al controlador de visualización en modo de usuario CreateResource(D3D10) o función CreateResource(D3D11), respectivamente). Cuando el tiempo de ejecución establece el Resolver campo de bits en el Flags miembro de DXGI_DDI_ARG_BLT1, el origen es un recurso de ejemplo múltiple. El recurso de origen está restringido a un recurso en el que se estableció la marca de D3D10_DDI_BIND_PRESENT en el BindFlags miembro de D3D10DDIARG_CREATERESOURCE o D3D11DDIARG_CREATERESOURCE. El formato del origen (especificado en el Formato miembro de D3D10DDIARG_CREATERESOURCE o D3D11DDIARG_CREATERESOURCE) está restringido a formatos de modo de presentación, especificados por los valores siguientes de la enumeración DXGI_FORMAT:

  • DXGI_FORMAT_B5G6R5_UNORM
  • DXGI_FORMAT_B5G5R5A1_UNORM
  • DXGI_FORMAT_B8G8R8A8_UNORM (vea la nota a continuación).
  • DXGI_FORMAT_B8G8R8X8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT
  • DXGI_FORMAT_R10G10B10A2_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB

Nota

Si el controlador admite el formato de origen DXGI_FORMAT_B8G8R8A8_UNORM, se aplican las restricciones siguientes:

  • Cuando el controlador realiza una operación bitblt desde un formato de punto flotante a un formato entero como BGRA8888, debe codificar implícitamente gamma en los resultados.
  • Por el contrario, cuando el controlador realiza una operación bitblt de un formato entero a un formato de punto flotante, debe quitar implícitamente la codificación gamma de los resultados.

Restricciones de destino

El destino también es una representación D3D10DDIRESOURCE_TEXTURE2D. El formato del destino también está restringido a los formatos de modo de presentación. El recurso de destino está restringido a un recurso enlazado como destino de representación (D3D10_DDI_BIND_RENDER_TARGET establecido en el BindFlags miembro de D3D10DDIARG_CREATERESOURCE o D3D11DDIARG_CREATERESOURCE).

Creación de un búfer de retroceso estéreo

A partir de Windows 8, si el controlador debe crear un búfer de retroceso estéreo, debe establecer miembros de la estructura D3D10DDIARG_CREATERESOURCE o D3D11DDIARG_CREATERESOURCE, respectivamente, apuntada por el parámetro pCreateResource del CreateResource(D3D10) o las funciones createResource(D3D11), como sigue:

  1. Establezca el miembro ArraySize en un valor de 2.
  2. Establezca el valor de marca D3D10_DDI_BIND_PRESENT en el miembro BindFlags de.

Además, para admitir la presentación estéreo, la función BltDXGI debe permitir cualquier valor para la DstSubresource y SrcSubresource miembros de la estructura DXGI_DDI_ARG_BLT que se encuentran dentro del intervalo de los recursos de origen y destino.

pfnResolveSharedResource

Puntero a la funciónresolveSharedResourceDXGI del controlador.

pfnBlt1

Puntero a la funciónBlt1DXGI del controlador.

pfnOfferResources

Puntero a la función pfnOfferResources del controlador.

pfnReclaimResources

Lo llama el tiempo de ejecución de DXGI para reclamar recursos de memoria de vídeo que el controlador de pantalla en modo de usuario ofreció previamente para su reutilización. Implementado por WDDM 1.2 y controladores de pantalla en modo usuario posteriores.

pfnGetMultiplaneOverlayCaps

Llamado por el entorno de ejecución de Infraestructura de gráficos de Microsoft DirectX (DXGI) para solicitar que el controlador de visualización en modo de usuario obtenga funcionalidades básicas del plano de superposición. Opcionalmente, se implementa mediante windows Display Driver Model (WDDM) 1.3 y controladores de pantalla en modo de usuario posteriores. La sintaxis de pfnGetMultiplaneOverlayCaps sigue:

pfnGetMultiPlaneOverlayCaps GetMultiPlaneOverlayCaps;

HRESULT __stdcall* GetMultiPlaneOverlayCaps(
    DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *pCaps
)
{ ... }

El parámetro pCaps es un puntero a una estructura DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS que especifica las funcionalidades del plano de superposición.

pfnGetMultiplaneOverlayCaps devuelve uno de los siguientes valores:

  • S_OK: el controlador proporcionó correctamente las funcionalidades del plano de superposición.
  • D3DDDIERR_DEVICEREMOVED: el controlador detectó que se quitó el adaptador de pantalla, por lo que el controlador no completó la operación. Si el controlador no es consciente de la eliminación del adaptador, el controlador no es necesario para devolver este código de error.

pfnGetMultiplaneOverlayFilterRange

Este miembro está reservado y debe establecerse en cero. Se admite a partir de Windows 8.1.

pfnCheckMultiplaneOverlaySupport

Llamado por el entorno de ejecución de Infraestructura de gráficos de Microsoft DirectX (DXGI) para comprobar los detalles sobre la compatibilidad de hardware con superposiciones multiplano. La sintaxis de pfnCheckMultiplaneOverlaySupport es:

PFND3DDDI_CHECKMULTIPLANEOVERLAYSUPPORT pfnCheckMultiplaneOverlaySupport;

HRESULT __stdcall* pfnCheckMultiplaneOverlaySupport(
   D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT *pSupport
)
{ ... }

El parámetro pSupport es un puntero a una estructura DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT que describe cómo mostrar en la superficie de destino.

Si pfnCheckMultiplaneOverlaySupport se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un hrESULT código de error.

pfnPresentMultiplaneOverlay

Puntero a la funciónpfnPresentMultiplaneOverlay (DXGI) del controlador. Se admite a partir de Windows 8.1.

pSupport

Puntero a una estructura de DXGI_DDI_ARG_CHECKMULTIPLANEOVERLAYSUPPORT que describe cómo mostrar en la superficie de destino.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8, WDDM 1.2
servidor mínimo admitido Windows Server 2012
encabezado de dxgiddi.h (incluya D3d10umddi.h)

Consulte también

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_3_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS