Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo está pensado para abordar algunas de las preguntas comunes sobre el entorno de ejecución de DirectX y el uso de DirectSetup para instalar DirectX.
- en tiempo de ejecución de DirectX
- número de versión de DirectX
- bibliotecas de DirectX de
- instalación de DirectX por el instalador del juego
- paquetes de instalación pequeños
- implementación interna del entorno de ejecución de DirectX de depuración
Importante
El SDK de DirectX heredado está al final del ciclo de vida, pero todavía está disponible para admitir juegos antiguos, tutoriales y proyectos. Los nuevos proyectos no deben usarlos. El uso del SDK de DirectX heredado requiere el uso de DirectSetup en desuso para componentes como D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 y XACT. Para obtener más información sobre el estado actual del SDK de DirectX, consulte ¿Dónde está el SDK de DirectX?y la entrada de blog Not So So Direct Setup.
Tiempo de ejecución de DirectX
El entorno de ejecución de DirectX consta de componentes principales y componentes opcionales.
Los componentes principales, como Direct3D y DirectInput, se consideran parte del sistema operativo. Los componentes principales de DirectX 9.0c no han cambiado desde la actualización de verano 2004 del SDK de DirectX y coinciden con lo que se publicó con Microsoft Windows XP SP2, Windows XP Pro x64 Edition y Windows Server 2003 SP1. Windows Vista incluye DirectX 10, que admite windows Display Driver Model (WDDM) y Direct3D 10.x. Windows 7 y Windows Vista admiten DirectX 11, que admite Direct3D 11, Direct2D, DirectWrite, el dispositivo de representación de software WARP10 y los niveles de características de 10level9. Consulta API de gráficos en Windows para obtener más información.
Los componentes opcionales se publican en las actualizaciones del SDK de DirectX y incluyen D3DX, XACT, XAudio2, XINPUT, DirectX administrado y otros componentes de este tipo. Muchos de los componentes opcionales se actualizan periódicamente para integrar los comentarios de los clientes y exponer nuevas características.
Número de versión de DirectX
El número de versión de DirectX, como 9.0c, solo hace referencia a la versión de los componentes principales, como Direct3D, DirectInput o DirectSound. Este número no cubre las versiones de los distintos componentes opcionales que se publican en el SDK de DirectX, como D3DX, XACT, XINPUT, etc.
Por lo general, el número de versión de DirectX no es significativo, excepto como referencia rápida a los bits en tiempo de ejecución principales. Este número no debe usarse para comprobar si el entorno de ejecución de DirectX correcto ya está instalado, ya que no tiene en cuenta los componentes opcionales de DirectX.
Bibliotecas de DirectX
En el pasado, los componentes opcionales del SDK de DirectX, incluido D3DX, se publicaron como bibliotecas estáticas. Sin embargo, estos ahora se publican como bibliotecas de tipo dinámico (DLL) debido a la mayor demanda de mejores prácticas de seguridad. Los archivos DLL permiten el mantenimiento del código publicado anteriormente. Si estos componentes se implementaron como bibliotecas estáticas, no habría ninguna manera de que Microsoft solucionara los problemas de seguridad encontrados después de la versión.
A medida que las características se agregan o cambian a los componentes opcionales, los nombres de los archivos DLL correspondientes también se cambian para asegurarse de que no se produzca ninguna regresión a los juegos existentes que usan componentes liberados. Los archivos DLL de cada componente en vivo en paralelo y los desarrolladores de juegos pueden elegir exactamente qué versión dll usa el juego vinculando a la biblioteca de importación correspondiente.
Aunque asegurarse de que los archivos DLL están instalados en un sistema no es tan fácil como simplemente vincular a bibliotecas estáticas, se han realizado algunos cambios en el SDK de DirectX para solucionar el problema del modelo dll:
- El redistribuible DirectX se puede configurar para contener solo los componentes que la aplicación requiere para minimizar los tamaños de distribución y multimedia.
- La carpeta redistribuible, Archivos de programa\DirectX SDK\Redist\, now contains a cabinet (.cab) para cada componente opcional posible, por lo que no es necesario profundizar en un SDK anterior para encontrarlos.
- La instalación del PROPIO SDK instala todos los componentes opcionales posibles.
- Un redistribuible directX que contiene todos los componentes opcionales está disponible como un instalador basado en Web y como un paquete descargable; consulte el Centro para desarrolladores de DirectX (DirectX) para obtener más información.
Instalación de DirectX por el instalador del juego
Nota
Consulta implementación de Direct3D 11 para desarrolladores de juegos.
Estos son los procedimientos recomendados para agregar la instalación de DirectX al instalador de un juego:
Término | Descripción |
---|---|
Instalar los componentes redistribuibles cada vez. |
El proceso de instalación de un juego debe instalar los componentes redistribuibles de DirectX durante cada instalación única sin permitir a los usuarios optar por no participar en él. Si permites participar, algunos usuarios adivinarán que no lo necesitan y, si lo hacen, el juego no se ejecutará. |
Permitir que el instalador de DirectX compruebe si hay componentes opcionales. |
No suponga que los componentes opcionales más recientes ya están instalados en un sistema, ya que Windows Update y Service Packs no proporcionan ninguno de los componentes opcionales de DirectX. Debe instalar el entorno de ejecución de DirectX ejecutando dxsetup.exe directamente o llamando a DirectSetup. |
Configurar de forma silenciosa. |
Inicie la instalación en modo silencioso para que los usuarios no omitan accidentalmente la actualización del entorno de ejecución de DirectX. Para ello, inicie dxsetup.exe con el comando siguiente: o llamando a DirectSetup y no mostrando ninguna interfaz de usuario. |
Combinar aceptaciones del CLUF. |
Si solicita al usuario que acepte un CLUF, combíngalo con la solicitud de aceptación del CLUF de DirectX al instalarse en modo silencioso para que se solicite la aceptación de los EULA una sola vez. La solicitud debe ocurrir antes de instalar cualquier cosa para que si el usuario no acepta, no termine con una instalación con errores y parciales. |
Simplemente ejecute dxsetup o llame a DirectSetup. |
Dado que el número de versión de DirectX no hace referencia a nada excepto a los componentes principales de DirectX, no compruebe una versión instalada antes de ejecutar dxsetup.exe ni llamar a DirectSetup. Además, no compruebe si existe un archivo para probar si ya hay un componente opcional instalado, ya que esto normalmente no determinará correctamente cuándo existe un componente, pero necesita actualizarse. Sin embargo, el paquete de instalación de DirectX determinará rápidamente esto y realizará la acción correcta. |
Paquetes de instalación pequeños
Puedes crear paquetes de instalación más pequeños para DirectX quitando el contenido de la carpeta redistribuible de DirectX hasta el conjunto mínimo de archivos necesarios para que el instalador funcione y conservando los componentes adicionales que usa el juego.
En función de las especificaciones mínimas, es posible que ni siquiera necesite incluir los archivos principales del gabinete DirectX 9.0c en la carpeta redistribuible de los medios de instalación. Una gran mayoría de las instalaciones de Windows XP tienen Service Pack 2, que incluye los componentes principales de DirectX 9.0c, por lo que la operación de configuración de DirectX será muy rápida y no requerirá un reinicio. El paquete más pequeño que se puede crear es de aproximadamente 3 MB y se puede comprimir a aproximadamente la mitad de ese tamaño. Un paquete como este contiene una versión del archivo DLL D3DX y requiere que DirectX 9.0c ya esté presente.
El conjunto mínimo de archivos necesarios para compilar un paquete redistribuible son los siguientes archivos, ubicados en la carpeta Redist del SDK de DirectX (Archivos de programa\SDK de DirectX\Redist):
- dxsetup.exe
- dsetup32.dll
- dsetup.dll
- dxupdate.cab
Agregue a estos archivos de gabinete para los componentes que desea instalar. Si necesita que los usuarios de la aplicación ya tengan DirectX 9.0c, no es necesario incluir DirectX.cab ni dxnt.cab, que constituyen la mayor parte del requisito de espacio. DirectX.cab solo es necesario para Windows 98 y Windows ME; dxnt.cab solo es necesario para Windows 2000, Windows XP y Windows XP SP1; y dxdllreg_x86.cab solo es necesario para Windows 2000, Windows XP RTM, Windows XP SP1 y Windows Server 2003 RTM. Además, si no hace uso de DirectShow o supone que ya está instalado, puede omitir BDA.cab, BDANT.caby BDAXP.cab.
Nota
Puede suponer que los usuarios de la aplicación ya tienen DirectX 9.0c si la instaló una versión anterior de la aplicación, obligará a los usuarios a actualizar manualmente a través del Instalador web o supone que tienen Windows XP SP2 o posterior.
Siguiendo con este ejemplo, si usa solo la versión de 32 bits de D3DX para abril de 2006, puede agregar Apr2006_d3dx9_30_x86.cab. Si usa la versión de 32 bits de agosto de 2006 de 32 bits de XINPUT, agregue Aug2006_xinput_x86.cab.
Si tiene una aplicación nativa de 64 bits, deberá agregar las versiones de _x64. Sin embargo, si tiene una aplicación de 32 bits que se ejecuta en un sistema operativo de 64 bits, funcionarán las versiones de 32 bits de los archivos DLL.
A continuación, puede distribuir este paquete de archivos e iniciar DirectSetup en modo silencioso o ejecutar dxsetup.exe en el shell de comandos en modo silencioso. Recuerde no proteger este paquete mediante ninguna comprobación de versiones de los archivos y asegúrese de que los usuarios no pueden optar por no ejecutar la configuración de DirectX. Cualquiera de estos eventos crea un proceso de instalación fallible.
Implementación interna del entorno de ejecución de DirectX de depuración
Los entornos de ejecución de depuración de los componentes de DirectX se instalan cuando se instala el SDK de DirectX, pero la instalación del SDK en cada equipo de prueba puede resultar dolorosa. Debes diseñar el proceso de configuración para copiar los archivos DLL del entorno de ejecución de depuración desde Archivos de programa\Microsoft DirectX SDK\Developer Runtime\architecture\ a Windows\system32\ o a la carpeta del juego.
Sin embargo, se recomienda encarecidamente no copiar simplemente los archivos DLL en tiempo de ejecución publicados porque es fácil olvidar quitarlos para el producto final. En su lugar, coloque los archivos de instalación de DirectX en una carpeta compartida y ejecute el programa de instalación de forma silenciosa desde la carpeta compartida.
Aplicaciones de Puente de escritorio
Las aplicaciones puente de escritorio que usan D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 o XACT deben descargar el Microsoft.DirectX.x86 o el marco de Microsoft.DirectX.x64 para implementar estos componentes heredados del SDK de DirectX en paralelo. Como alternativa, puede quitar todas estas dependencias(consulte Guía para desarrolladores para obtener una versión redistribuible de XAudio 2.9y las entradas de blog Living sin D3DX y XINPUT y Windows 8).