Comportamiento del modo de pantalla completa
Un controlador de pantalla en modo de usuario puede determinar que un dispositivo de representación está en modo de pantalla completa:
Si la marca de campo de bits Fullscreen se establece en el miembro Flags de la estructura D3DDDIARG_OPENRESOURCE a la que apunta el parámetro pResource en una llamada a la función OpenResource del controlador.
Si la marca de campo de bits principal está establecida en el miembro Flags de la estructura D3DDDIARG_CREATERESOURCE a la que apunta el parámetro pResource en una llamada a la función CreateResource del controlador.
Una aplicación desarrollada para Microsoft DirectX 9.0 o anterior hará que el entorno de ejecución de Microsoft Direct3D llame a OpenResource para abrir la superficie principal compartida y, a continuación, CreateResource para crear los búferes de reserva adicionales. Una aplicación de Microsoft DirectX 9L hará que el entorno de ejecución de Direct3D llame a CreateResource (sin llamar a OpenResource) para crear todos los búferes de cadena de intercambio. El tiempo de ejecución de Direct3D especifica la orientación de la superficie principal en el miembro Rotation del D3DDDIARG_OPENRESOURCE y D3DDDIARG_CREATERESOURCE estructuras a las que apunta el parámetro pResource en llamadas a las funciones OpenResource y CreateResource , respectivamente.
Para un dispositivo de pantalla completa, un controlador de pantalla en modo de usuario debe bloquear un recurso girado, representarlo en un recurso girado y realizar transferencias de bloques de bits (bitblt) desde un recurso girado. Normalmente, el controlador de visualización en modo de usuario crea destinos de representación provisionales en la orientación girada (todos los bloqueos, bitblts y representaciones irán a estos destinos de representación provisionales) y las asignaciones principales en la orientación horizontal (es decir, la orientación que usa el convertidor digital a analógico [DAC] para examinar). Cuando se llama al controlador de pantalla en modo de usuario para voltear los datos, realiza un bitblt giratorio desde el destino de representación provisional al búfer horizontal antes de llamar a la función pfnPresentCb para emitir el comando flip.
Cada vez que un controlador de pantalla en modo de usuario debe realizar un bitblt que implique un recurso girado y un recurso no girado, el tiempo de ejecución de Direct3D especifica la marca de campo de bits Rotate en el miembro Flags de la estructura D3DDDIARG_BLT en una llamada a la función Blt del controlador para indicar al controlador que debe producirse la rotación adecuada para el bitblt.
Las aplicaciones directX 9L pueden ser compatibles con la rotación, lo que significa que representarán todo en la orientación adecuada y controlarán correctamente los bloqueos en un búfer girado. Cuando el tiempo de ejecución de Direct3D crea una cadena de intercambio para una aplicación compatible con rotación, el tiempo de ejecución siempre especifica la rotación como D3DDDI_ROTATION_IDENTITY en el miembro Rotation de la estructura de D3DDDIARG_CREATERESOURCE porque el controlador de pantalla en modo de usuario no es necesario realizar ninguna acción especial para que la aplicación compatible con rotación funcione.