¿Dónde está el SDK de DirectX?

A partir de Windows 8, el SDK de DirectX se incluye como parte del SDK de Windows.

Originalmente creamos el SDK de DirectX como una plataforma de alto rendimiento para el desarrollo de juegos sobre Windows. A medida que las tecnologías de DirectX maduraban, se convirtieron en relevantes para una gama más amplia de aplicaciones. Hoy en día, la disponibilidad del hardware de Direct3D en equipos controla incluso las aplicaciones de escritorio tradicionales para usar la aceleración de hardware gráfico. En paralelo, las tecnologías de DirectX están más integradas con Windows. DirectX es ahora una parte fundamental de Windows.

Dado que Windows SDK es el SDK que principalmente se usa para el desarrollo en Windows, ahora DirectX está incluido en él. Ahora puedes usar Windows SDK para crear juegos espectaculares para Windows. Para descargar el SDK de Windows 8.x o el SDK de Windows 10, consulte Windows SDK y archivo del emulador.

Las siguientes tecnologías y herramientas, anteriormente parte del SDK de DirectX, ahora forman parte del SDK de Windows.

Tecnología o herramienta Descripción
Componentes de gráficos de Windows
Los encabezados y bibliotecas de Direct3D y otras API de gráficos de Windows, como Direct2D, están disponibles en el SDK de Windows.
[! Nota]
Las bibliotecas de utilidades D3DX9/D3DX10/D3DX11 en desuso están disponibles a través de NuGet, pero también hay varias alternativas de código abierto. La biblioteca de utilidades DirectCompute D3DCSX y dll redistribuible está disponible en el SDK de Windows. D3DX12 está disponible en GitHub.

Compilador HLSL (FXC.EXE)
El compilador HLSL es una herramienta en el subdirectorio de arquitectura adecuado en la carpeta bin del SDK de Windows.
[! Nota]
La API D3DCompiler y la DLL redistribuible están disponibles en el SDK de Windows.


Para el desarrollo de DirectX 12, use DXCompiler en el SDK de Windows y hospedado en GitHub.
PIX para Windows
Un reemplazo de la herramienta PIX para Windows ahora es una característica en Microsoft Visual Studio, denominada Visual Studio Depurador de gráficos. Esta característica ha mejorado considerablemente la facilidad de uso, la compatibilidad con Windows 8 y Direct3D 11.1 y la integración con características tradicionales de Microsoft Visual Studio, como pilas de llamadas y ventanas de depuración para la depuración de HLSL. Para obtener más información sobre esta nueva característica, consulte Depuración de gráficos DirectX.

Para el desarrollo de DirectX 12, consulte la última generación de PIX en Windows
XAudio2 para Windows
La API XAudio2 ahora es un componente del sistema en Windows 8.x y Windows 10. Los encabezados y bibliotecas de XAudio2 están disponibles en el SDK de Windows. Para obtener Windows 7 compatibilidad, consulte XAudio2Redist.
XInput para Windows
La API XInput 1.4 ahora es un componente del sistema en Windows 8.x y Windows 10. Los encabezados y bibliotecas de XInput están disponibles en el SDK de Windows.
[! Nota]
XInput 9.1.0 heredado también está disponible como parte de Windows 7 o posterior.

XNAMATH
La versión más reciente de XNAMATH, que se actualiza para los nuevos conjuntos de instrucciones, así como ARM/ARM64, ahora es DirectXMath. Los encabezados de DirectXMath están disponibles en el SDK de Windows y en GitHub.
Visor de funcionalidades de DirectX Panel de control y DirectX
Las utilidades de DirectX Panel de control y Visor de funcionalidades de DirectX se incluyen en el subdirectorio de arquitectura adecuado en la carpeta bin del SDK de Windows. El Visor de funcionalidades de DirectX también está disponible en GitHub.
XACT
La Herramienta multiplataforma de Audio de Xbox (XACT) ya no se admite para su uso en Windows.
Explorador de juegos y GDFMAKER
La API de Games Explorer presenta juegos a los usuarios de Windows. La API de Games Explorer solo se admite en Windows Vista y Windows 7. Usa la herramienta Games Definition File Maker (GDFMAKER.EXE) para declarar clasificaciones de juegos para aplicaciones de Windows Store.
La herramienta Game Definition File Maker (GDFMaker.exe) se incluye en el subdirectorio x86 en la carpeta bin del SDK de Windows y admite aplicaciones de escritorio Windows Store y Win32.

Ejemplos
Puede encontrar aplicaciones de ejemplo que resalte las tecnologías de DirectX 12 en Windows en el repositorio de ejemplos de DirectX. La mayoría de los ejemplos de versiones anteriores de Direct3D también están disponibles en línea. Para obtener más información sobre estos ejemplos, consulte catálogo de ejemplos del SDK de DirectX.
DirectX administrado 1.1
Los ensamblados de .NET DirectX están en desuso y no se recomiendan para su uso por las nuevas aplicaciones. Hay varias alternativas disponibles. Consulte DirectX y .NET.

 

El SDK de DirectX heredado está disponible para su descarga desde el Centro de descarga de Microsoft si es necesario, pero no se recomienda usar para nuevos proyectos.

Nota

El SDK de DirectX no se puede instalar si ya tiene instalada una versión determinada del paquete Redistribuible de Visual C++ 2010. Para obtener más información sobre y una solución para corregir este problema, consulte el error "S1023" al instalar el SDK de DirectX (junio de 2010).

 

Uso de proyectos del SDK de DirectX con Visual Studio

Los ejemplos del SDK de DirectX de junio de 2010 se admiten con SKU premium de Visual Studio (Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012, Microsoft Visual Studio Professional 2013 o Microsoft Visual Studio Ultimate 2013) en Windows 7 y las versiones Windows 8 y posteriores. Debido a la transición de encabezados y bibliotecas de DirectX al SDK de Windows, se necesitan cambios en la configuración del proyecto para compilar estos ejemplos correctamente con el modo en que el SDK de Windows 8 y versiones posteriores se empaquetan con las SKU premium de Visual Studio.

Estos pasos también se aplican a sus propios proyectos que dependen del SDK de DirectX.

  1. Asegúrese de que la versión de junio de 2010 del SDK de DirectX está instalada en el equipo de desarrollo. Si instala en un equipo que ejecuta Windows 8 y versiones posteriores, se le pedirá que habilite .NET 3.5 como instalación de requisitos previos en el SDK de DirectX.

    Nota

    El SDK de DirectX no se puede instalar si ya tiene instalada una versión determinada del paquete Redistribuible de Visual C++ 2010. Para obtener más información sobre y una solución para corregir este problema, consulte el error "S1023" al instalar el SDK de DirectX (junio de 2010).

     

  2. Asegúrese de que usa una de las SKU de Visual Studio Premium. Microsoft Visual Studio Express 2012 para Windows 8 o Microsoft Visual Studio Express 2013 para Windows no compilará Windows 8 ni aplicaciones de escritorio posteriores, como los ejemplos del SDK de DirectX. Para instalar una de las SKU de Visual Studio Premium, vaya a: Visual Studio descargas y siga las instrucciones.

  3. Use el Explorador de ejemplo del SDK de DirectX para instalar los archivos de proyecto para el ejemplo deseado. Abra el archivo de solución compatible Microsoft Visual Studio 2010 del ejemplo (sufijo con _2010).

  4. Si va a abrir el ejemplo en un sistema que solo tiene instalado Microsoft Visual Studio 2012 o Microsoft Visual Studio 2013, obtendrá el siguiente mensaje: "Esta solución contiene uno o varios proyectos con una versión anterior de VC++ compilador y bibliotecas. Cada proyecto se puede actualizar para usar el compilador y las bibliotecas de VC++ (v110)." Elija la opción Actualizar de este cuadro de diálogo para actualizar antes de abrir el proyecto.

    De lo contrario, puede actualizar al compilador y bibliotecas de C++ 11 Visual Studio 2012 o Visual Studio 2013 después de cargarlos haciendo clic con el botón derecho en la solución y seleccionando Actualizar VC++ proyectos.

  5. D3DX no se considera la API canónica para usar Direct3D en Windows 8 y versiones posteriores y, por lo tanto, no se incluye con el SDK de Windows correspondiente. Investigue soluciones alternativas para trabajar con la API de Direct3D. En el caso de los proyectos heredados, como los ejemplos del SDK de DirectX de Windows 7 (y versiones anteriores), los pasos siguientes son necesarios para compilar aplicaciones con D3DX mediante el SDK de DirectX:

    1. Modifique los directorios de VC++ del proyecto como se indica a continuación para usar el orden adecuado para los encabezados y bibliotecas del SDK.

      i. Abra **Propiedades** para el proyecto y seleccione la página **VC++ Directorios**. ii. Seleccione **Todas las configuraciones y Todas las plataformas**. iii. Establezca estos directorios de la siguiente manera:
      • Directorios ejecutables:< hereda de los valores predeterminados primarios> o del proyecto (en la lista desplegable del lado derecho)
      • Incluir directorios: $(IncludePath);$(DXSDK_DIR)Include
      • Incluir directorios de biblioteca: $(LibraryPath);$(DXSDK_DIR)Lib\x86

      iv. Haga clic en Aplicar.
      v. Elija la plataforma x64.
      vi. Establezca el directorio de biblioteca de la siguiente manera:

      • Directorios de biblioteca: $(LibraryPath);$(DXSDK_DIR)Lib\x64
    2. Siempre que "d3dx9.h", "d3dx10.h" o "d3dx11.h" se incluyan en el proyecto, asegúrese de incluir explícitamente "d3d9.h", "d3d10.h" y "dxgi.h" o "d3d11.h" y "dxgi.h" primero para asegurarse de que está seleccionando la versión más reciente. Puede deshabilitar la advertencia C4005 si es necesario; sin embargo, esta advertencia indica que está usando la versión anterior de estos encabezados.

    3. Quite todas las referencias a DXGIType.h en el proyecto. Este encabezado no existe en el SDK de Windows y la versión del SDK de DirectX entra en conflicto con el nuevo winerror.h.

    4. Todos los archivos DLL D3DX se instalan en el equipo de desarrollo mediante la instalación del SDK de DirectX. Asegúrese de que las dependencias D3DX necesarias se redistribuyan con cualquier ejemplo o con la aplicación si se mueve a otra máquina.

    5. Tenga en cuenta que las tecnologías de reemplazo para los usos actuales de D3DX11 incluyen DirectXTex, DirectXTK, DirectXMesh y UVAtlas. D3DXMath se reemplaza por DirectXMath.

  6. Asegúrese de que usa la nueva versión del compilador de sombreador HLSL mediante la observación de las condiciones siguientes:

    1. Cambiar el directorio ejecutable según el paso 5 hará que las compilaciones del proyecto usen FXC desde la instalación del SDK de Windows. Tenga en cuenta que los archivos HLSL ahora son reconocidos oficialmente por Visual Studio. Puede agregarlos como archivos de proyecto y establecer opciones del compilador a través del sistema de proyectos.

    2. La invocación de la compilación en tiempo de ejecución a través del archivo DLL D3DX heredado usará la versión anterior incorrecta del compilador HLSL. Reemplace todas las referencias a las API D3DXCompile*, D3DX10Compile*y D3DX11Compile* del código por la función D3DCompile en D3DCOMPILER_46.DLL o D3DCOMPILER_47.DLL.

    3. Cualquier proyecto que use la compilación del sombreador en tiempo de ejecución debe tener D3DCOMPILER_xx.DLL copiado en la ruta de acceso ejecutable local del proyecto. Este archivo DLL está disponible en este subdirectorio de la instalación del SDK de Windows en %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> o %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> donde <arch> es x86 y x64.

      El D3DCOMPILER_46.DLL o D3DCOMPILER_47.DLL del SDK de Windows no es un componente del sistema y no se debe copiar en el directorio del sistema Windows. Puede redistribuir este archivo DLL a otros equipos con la aplicación como dll en paralelo.

  7. Cualquier proyecto que use la API de XInput y esté pensado para ejecutarse en Windows 7 o versiones anteriores de Windows debe usar la versión heredada (9.1.0) o tendrá que incluir explícitamente los encabezados y bibliotecas de este componente desde el SDK de DirectX. Encabezado XInput y XINPUT. LIB que se incluye en el SDK de Windows solo tiene como destino la versión (1.4) que se incluye como parte de Windows 8 y versiones posteriores. El mismo encabezado se puede usar con XINPUT9_1_0.LIB para usar la versión heredada, que se incluye con versiones anteriores de Windows. La versión heredada de XInput no detecta funcionalidades completas ni admite audio integrado por el controlador, por lo que si se requiere compatibilidad con estas características, debe usar la versión del SDK de DirectX (1.3).

    Para usar la API XInput de nivel inferior completa, debe usar #include directamente los encabezados XInput específicos del SDK de DirectX:

    #include <%DXSDK_DIR%Include\xinput.h>

    ... y en las opciones del vinculador para Dependencias adicionales, vincule directamente a la biblioteca XInput del SDK de DirectX:

    %DXSDK_DIR%Include\<arch>\xinput.lib

    El archivo binario XINPUT1_3.DLL se instala en los directorios del sistema Windows mediante la instalación del SDK de DirectX en el equipo de desarrollo. Tendrá que redistribuir este archivo binario con la aplicación mediante la instalación del programa de instalación de DirectX desde el SDK de DirectX.

  8. Cualquier proyecto que use la API de XAudio2 y esté pensado para ejecutarse en Windows 7 o versiones anteriores de Windows debe usar la versión anterior (9.1.0) o incluir explícitamente los encabezados y bibliotecas de este componente desde el SDK de DirectX. Los encabezados y bibliotecas XAudio2 que se incluyen con el SDK de Windows solo tienen como destino la versión (2.8) que se incluye como parte de Windows 8.

    Por ejemplo, con XAudio2, debe usar #include directamente los encabezados XAudio2 específicos del SDK de DirectX:

    #include <%DXSDK_DIR%Include\xaudio2.h>

    ... y en las opciones del vinculador para Dependencias adicionales, vincule directamente a la biblioteca XAudio2 del SDK de DirectX:

    %DXSDK_DIR%Include\<arch>\xaudio2.lib

    El archivo binario XAUDIO2_7.DLL se instala en los directorios del sistema Windows mediante la instalación del SDK de DirectX en el equipo de desarrollo. Debe redistribuir estas bibliotecas con la aplicación mediante la instalación del programa de instalación de DirectX desde el SDK de DirectX.

  9. Si ha usado el SDK de DirectX con versiones anteriores de Visual Studio, es posible que la actualización de Visual Studio 2010 haya migrado la ruta de acceso del SDK de DirectX a la configuración predeterminada del proyecto. Se recomienda quitar esta configuración para evitar errores de compilación futuros. En el directorio %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0, modifique los archivos Microsoft.Cpp.Win32.user y Microsoft.Cpp.x64.user para quitar todas las referencias a rutas de acceso DXSDK_DIR. Como alternativa, puede quitar todo <el nodo PropertyGroup> que contiene las entradas path como <ExecutablePath> e <IncludePath> para revertir a los valores predeterminados estándar. Si no ve referencias a DXSDK_DIR en estos archivos, no es necesario realizar ningún cambio.

  10. Si la aplicación resultante admite Windows Vista con Service Pack 2 (SP2), así como Windows 7 y Windows 8 y versiones posteriores, establezca la definición del preprocesador denominada _WIN32_WINNT en 0x600. Si solo admite Windows 7 y Windows 8 y versiones posteriores, establézcalo en 0x601.

    Por ejemplo:

    1. Abra Propiedades para el proyecto y seleccione Preprocesadorde C/C++>.
    2. Seleccione Todas las configuraciones y Todas las plataformas.
    3. Vaya a la sección Definiciones de preprocesador y establezca _WIN32_WINNT=0x600.
    4. Haga clic en Aplicar.

Juegos para Windows y el SDK de DirectX

¿Dónde está directX SDK (2021 Edition)?

SDK de DirectX de una edad determinada

Vivir sin D3DX