Compartir a través de


Copiar valores de Depth-Stencil

El tiempo de ejecución de Microsoft Direct3D llama a la función Blt del controlador de pantalla en modo de usuario para copiar los valores de galería de símbolos de profundidad de la memoria de vídeo a la memoria del sistema, o viceversa. El controlador y el hardware deben realizar conversiones de formato desde, o hacia, todos los formatos de galería de símbolos de profundidad opacos admitidos por el controlador (es decir, todos los formatos definidos por el tipo de enumeración D3DDDIFORMAT excepto D3DDDIFMT_D*_LOCKABLE) a cualquiera de los siguientes formatos:

  • D3DDDIFMT_D16_LOCKABLE

  • D3DDDIFMT_D32_LOCKABLE

  • D3DDDIFMT_D32F_LOCKABLE

  • D3DDDIFMT_S8_LOCKABLE

El controlador descarta cualquier canal (profundidad o galería de símbolos) presente en el formato de origen, pero no está presente en el formato de destino. El tiempo de ejecución no permite copiar entre superficies de galería de símbolos de profundidad que no comparten ningún tipo de canal común.

El controlador convierte primero un valor de profundidad de origen en un valor entero de 32 bits sin signo y, a continuación, del valor entero sin signo de 32 bits a la representación de destino. Las reglas siguientes se aplican a ambas conversiones:

  • Si el valor de profundidad de origen es un valor de punto flotante, se aplica una compresión a [0,1] y el resultado se multiplica por _MAX_UINT.

  • Si el origen es entero y el destino es un entero de precisión inferior, se quitan los bits adicionales más a la derecha.

  • Si el origen es entero y el destino es un entero de mayor precisión, los bits adicionales más a la derecha se replican desde los bits más significativos de la izquierda.

  • Si el origen es entero y el destino es un valor de punto flotante, el entero de 32 bits se convierte en un valor de punto flotante y el resultado se divide por _MAX_UINT.

El controlador no es necesario para proporcionar un tratamiento especial a valores de profundidad distribuidos de forma no uniforme.

El controlador expande un valor de galería de símbolos de origen a un entero de 8 bits (es decir, el controlador rellena el valor de la galería de símbolos de origen con ceros a la izquierda). Si la representación de destino usa una precisión inferior, el controlador debe descartar los bits más significativos para realizar la conversión.

Los controladores de pantalla en modo de usuario deben admitir copias de galería de símbolos de profundidad de subrectangles arbitrarios. Sin embargo, no es necesario que los controladores realicen operaciones de reflejo, extensión o clave de color durante las copias de galería de símbolos de profundidad. El muestreo de puntos se requiere implícitamente durante las copias de galería de símbolos de profundidad.