Onde está o SDK do DirectX?

Começando com Windows 8, o SDK do DirectX é incluído como parte do SDK do Windows.

Originalmente, criamos o SDK do DirectX como uma plataforma de alto desempenho para desenvolvimento de jogos, além de Windows. À medida que as tecnologias DirectX amadureceram, elas se tornaram relevantes para uma gama mais ampla de aplicativos. Hoje, a disponibilidade do hardware Direct3D em computadores impulsiona até mesmo aplicativos de área de trabalho tradicionais para usar a aceleração de hardware de elementos gráficos. Em paralelo, as tecnologias DirectX são mais integradas com Windows. O DirectX agora é uma parte fundamental do Windows.

Como o SDK do Windows é o SDK do desenvolvedor principal para Windows, o DirectX agora está incluído nele. Agora você pode usar o SDK Windows para criar grandes jogos para Windows. Para baixar o SDK do Windows 8.x ou Windows 10 SDK, consulte Windows SDK e o arquivo do emulador.

As seguintes tecnologias e ferramentas, anteriormente parte do SDK do DirectX, agora fazem parte do SDK do Windows.

Tecnologia ou ferramenta Descrição
Componentes gráficos Windows
Os cabeçalhos e bibliotecas para Direct3D e outras APIs gráficas Windows, como Direct2D, estão disponíveis no SDK Windows.
[! Observação]
As bibliotecas de utilitárioS D3DX9/D3DX10/D3DX11 preteridas estão disponíveis por meio de NuGet, mas também há várias alternativas código aberto. A biblioteca de utilitários D3DCSX DirectCompute e a DLL redistribuível estão disponíveis no SDK do Windows. D3DX12 está disponível no GitHub.

Compilador HLSL (FXC.EXE)
O compilador HLSL é uma ferramenta no subdiretório de arquitetura apropriado na pasta bin no SDK Windows.
[! Observação]
A API D3DCompiler e a DLL redistribuível estão disponíveis no SDK do Windows.


Para o desenvolvimento do DirectX 12, use o DXCompiler no SDK do Windows e hospedado no GitHub.
PIX para Windows
Uma substituição para a ferramenta PIX for Windows agora é um recurso no Microsoft Visual Studio, chamado Visual Studio Depurador de Gráficos. Esse recurso melhorou muito a usabilidade, o suporte para Windows 8 e o Direct3D 11.1 e a integração com recursos tradicionais de Microsoft Visual Studio, como pilhas de chamadas e janelas de depuração para depuração de HLSL. Para obter mais informações sobre esse novo recurso, consulte Depurando elementos gráficos DirectX.

Para o desenvolvimento do DirectX 12, consulte a última geração de PIX no Windows
XAudio2 para Windows
A API XAudio2 agora é um componente do sistema em Windows 8.x e Windows 10. Os cabeçalhos e bibliotecas para XAudio2 estão disponíveis no SDK do Windows. Para Windows 7 suporte, consulte XAudio2Redist.
XInput para Windows
A API XInput 1.4 agora é um componente do sistema em Windows 8.x e Windows 10. Os cabeçalhos e bibliotecas para XInput estão disponíveis no SDK Windows.
[! Observação]
O XInput 9.1.0 herdado também está disponível como parte do Windows 7 ou posterior.

XNAMATH
A versão mais recente do XNAMATH, que é atualizada para novos conjuntos de instruções, bem como ARM/ARM64, agora é DirectXMath. Os cabeçalhos para DirectXMath estão disponíveis no SDK do Windows e no GitHub.
Visualizador de recursos do DirectX Painel de Controle e DirectX
Os utilitários do Visualizador de Recursos do DirectX Painel de Controle e DirectX estão incluídos no subdiretório de arquitetura apropriado na pasta bin no SDK do Windows. O Visualizador de Recursos do DirectX também está disponível no GitHub.
XACT
O XACT (Xbox Audio Cross Platform Tool) não tem mais suporte para uso em Windows.
Gerenciador de Jogos e GDFMAKER
A API do Gerenciador de Jogos apresenta jogos para usuários de Windows. A API do Gerenciador de Jogos tem suporte apenas no Windows Vista e Windows 7. Use a ferramenta Criador de Arquivos de Definição de Jogos (GDFMAKER.EXE) para declarar classificações de jogo para aplicativos da Windows Store.
A ferramenta Criador de Arquivos de Definição de Jogo (GDFMaker.exe) está incluída no subdiretório x86 na pasta bin no SDK do Windows e dá suporte a aplicativos da Windows Store e aplicativos da área de trabalho Win32.

Exemplos
Você pode encontrar aplicativos de exemplo que realçam as tecnologias DirectX 12 em Windows no repositório de exemplos do DirectX. A maioria dos exemplos para versões mais antigas do Direct3D também estão disponíveis online. Para obter mais informações sobre esses exemplos, consulte o Catálogo de Exemplos do SDK do DirectX.
DirectX 1.1 gerenciado
Os assemblies do .NET DirectX são preteridos e não são recomendados para uso por novos aplicativos. Há várias alternativas disponíveis. Consulte DirectX e .NET.

 

O SDK herdado do DirectX está disponível para download no Centro de Download da Microsoft , se necessário, mas o uso para novos projetos não é recomendado.

Observação

O SDK do DirectX não será instalado se você tiver uma determinada versão do Pacote Redistribuível do Visual C++ 2010 já instalado. Para obter mais informações sobre e uma solução para corrigir esse problema, consulte o erro "S1023" ao instalar o SDK do DirectX (junho de 2010).

 

Usando projetos do SDK do DirectX com Visual Studio

Os exemplos do SDK do DirectX de junho de 2010 têm suporte com SKUs de Visual Studio Premium (Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012, Microsoft Visual Studio Professional 2013 ou Microsoft Visual Studio Ultimate 2013) no Windows 7 e no Windows 8 e versões posteriores. Devido à transição de cabeçalhos e bibliotecas do DirectX para o SDK do Windows, as alterações nas configurações do projeto são necessárias para compilar esses exemplos corretamente com a forma como o SDK do Windows 8 e posterior é empacotado com as SKUs de Visual Studio premium.

Essas etapas também se aplicam aos seus próprios projetos que dependem do SDK do DirectX.

  1. Verifique se a versão de junho de 2010 do SDK do DirectX está instalada no computador de desenvolvimento. Se você instalar em um computador executando Windows 8 e posteriores, será solicitado e necessário habilitar o .NET 3.5 como uma instalação de pré-requisito para o SDK do DirectX.

    Observação

    O SDK do DirectX não será instalado se você tiver uma determinada versão do Pacote Redistribuível do Visual C++ 2010 já instalado. Para obter mais informações sobre e uma solução para corrigir esse problema, consulte o erro "S1023" ao instalar o SDK do DirectX (junho de 2010).

     

  2. Verifique se você está usando um dos SKUs de Visual Studio premium. Microsoft Visual Studio Express 2012 para Windows 8 ou Microsoft Visual Studio Express 2013 para Windows não criará aplicativos de área de trabalho Windows 8 e posteriores, como os exemplos do SDK do DirectX. Para instalar um dos SKUs de Visual Studio Premium, acesse: Visual Studio downloads e siga as instruções.

  3. Use o Navegador de Exemplo do SDK do DirectX para instalar os arquivos de projeto para o exemplo desejado. Abra o arquivo de solução compatível com Microsoft Visual Studio 2010 do exemplo (sufixo com _2010).

  4. Se você estiver abrindo o exemplo em um sistema que tem apenas Microsoft Visual Studio 2012 ou Microsoft Visual Studio 2013 instalado, você receberá a seguinte mensagem: "Essa solução contém um ou mais projetos usando uma versão anterior de VC++ compilador e bibliotecas. Cada projeto pode ser atualizado para usar o compilador de VC++ e bibliotecas (v110)." Escolha a opção Atualizar nesta caixa de diálogo para atualizar antes de abrir o projeto.

    Caso contrário, você poderá atualizar para o Visual Studio 2012 ou Visual Studio 2013 compilador e bibliotecas C++ 11 depois que eles tiverem sido carregados clicando com o botão direito do mouse na solução e escolhendo Atualizar VC++ projetos.

  5. O D3DX não é considerado a API canônica para usar o Direct3D no Windows 8 e posterior e, portanto, não está incluído no SDK de Windows correspondente. Investigue soluções alternativas para trabalhar com a API do Direct3D. Para projetos herdados, como o Windows 7 (e anterior) exemplos do SDK do DirectX, as seguintes etapas são necessárias para criar aplicativos com D3DX usando o SDK do DirectX:

    1. Modifique os diretórios de VC++ do projeto da seguinte maneira para usar a ordem certa para cabeçalhos e bibliotecas do SDK.

      i. Abra **Propriedades** para o projeto e selecione a página **VC++ Diretórios**. ii. Selecione **Todas as Configurações e Todas as Plataformas**. III. Defina estes diretórios da seguinte maneira:
      • Diretórios executáveis: <herdar de padrões> pai ou projeto (na lista suspensa do lado direito)
      • Incluir Diretórios: $(IncludePath);$(DXSDK_DIR)Include
      • Incluir diretórios de biblioteca: $(LibraryPath);$(DXSDK_DIR)Lib\x86

      iv. Clique em Aplicar.
      V. Escolha a plataforma x64.
      VI. Defina o Diretório da Biblioteca da seguinte maneira:

      • Diretórios de biblioteca: $(LibraryPath);$(DXSDK_DIR)Lib\x64
    2. Onde quer que "d3dx9.h", "d3dx10.h" ou "d3dx11.h" estejam incluídos em seu projeto, inclua explicitamente "d3d9.h", "d3d10.h" e "dxgi.h" ou "d3d11.h" e "dxgi.h" primeiro para garantir que você esteja pegando a versão mais recente. Você pode desabilitar o aviso C4005 , se necessário; no entanto, esse aviso indica que você está usando a versão mais antiga desses cabeçalhos.

    3. Remova todas as referências a DXGIType.h em seu projeto. Esse cabeçalho não existe no SDK do Windows e a versão do SDK do DirectX entra em conflito com o novo winerror.h.

    4. Todas as DLLs D3DX são instaladas no computador de desenvolvimento pela instalação do SDK do DirectX. Certifique-se de que as dependências D3DX necessárias sejam redistribuídas com qualquer exemplo ou com seu aplicativo se ele for movido para outro computador.

    5. Lembre-se de que as tecnologias de substituição para usos atuais do D3DX11 incluem DirectXTex, DirectXTK, DirectXMesh e UVAtlas. D3DXMath é substituído por DirectXMath.

  6. Verifique se você está usando a nova versão do compilador de sombreador HLSL observando as seguintes condições:

    1. Alterar o diretório executável de acordo com a etapa 5 fará com que os builds de projeto usem o FXC do Windows instalação do SDK. Lembre-se de que os arquivos HLSL agora são reconhecidos oficialmente pelo Visual Studio. Você pode adicioná-los como arquivos de projeto e definir opções de compilador por meio do sistema de projeto.

    2. Invocar a compilação em tempo de execução por meio da DLL D3DX herdada usará a versão mais antiga incorreta do compilador HLSL. Substitua todas as referências a APIs D3DXCompile*, D3DX10Compile*e D3DX11Compile* em seu código pela função D3DCompile em D3DCOMPILER_46.DLL ou D3DCOMPILER_47.DLL.

    3. Qualquer projeto que use a compilação de sombreador em tempo de execução deve ter D3DCOMPILER_xx.DLL copiado para o caminho executável local para o projeto. Essa DLL está disponível neste subdiretório da instalação do SDK Windows em %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> ou %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> onde <o arco> é x86 e x64.

      O D3DCOMPILER_46.DLL ou D3DCOMPILER_47.DLL do SDK do Windows não é um componente do sistema e não deve ser copiado para o diretório do sistema Windows. Você pode redistribuir essa DLL para outros computadores com seu aplicativo como uma DLL lado a lado.

  7. Qualquer projeto que usa a API XInput e se destina a ser executado em Windows 7 ou versões mais antigas do Windows precisa usar a versão herdada (9.1.0) ou precisará incluir explicitamente os cabeçalhos e bibliotecas desse componente do SDK do DirectX. O cabeçalho XInput e o XINPUT. O LIB incluído no SDK Windows tem como destino apenas a versão (1.4) que é enviada como parte de Windows 8 e posteriores. O mesmo cabeçalho pode ser usado com XINPUT9_1_0.LIB para usar a versão herdada, que é incluída com versões mais antigas do Windows. A versão herdada do XInput não detecta recursos completos ou dá suporte ao áudio integrado ao controlador, portanto, se o suporte para esses recursos for necessário, você deverá usar a versão do SDK do DirectX (1.3).

    Para usar a API XInput de nível inferior completo, você deve #include ter os cabeçalhos XInput específicos do SDK do DirectX diretamente:

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

    ... e nas opções do vinculador para Dependências Adicionais, vincule-se diretamente à biblioteca XInput do SDK do DirectX:

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

    O binário XINPUT1_3.DLL é instalado nos diretórios do sistema Windows pela instalação do SDK do DirectX no computador de desenvolvimento. Você precisará redistribuir esse binário com seu aplicativo usando a instalação da Instalação do DirectX do SDK do DirectX.

  8. Qualquer projeto que usa a API XAudio2 e se destina a ser executado em Windows 7 ou versões mais antigas do Windows precisa usar a versão mais antiga (9.1.0) ou incluir explicitamente os cabeçalhos e bibliotecas desse componente do SDK do DirectX. Os cabeçalhos e bibliotecas XAudio2 incluídos no SDK de Windows têm como destino apenas a versão (2.8) incluída como parte do Windows 8.

    Por exemplo, com xAudio2, você deve #include os cabeçalhos XAudio2 específicos do SDK do DirectX diretamente:

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

    ... e nas opções do vinculador para Dependências Adicionais, vincule-se diretamente à biblioteca XAudio2 do SDK do DirectX:

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

    O binário XAUDIO2_7.DLL é instalado nos diretórios do sistema Windows pela instalação do SDK do DirectX no computador de desenvolvimento. Você precisa redistribuir essas bibliotecas com seu aplicativo usando a instalação da Instalação do DirectX do SDK do DirectX.

  9. Se você usou o SDK do DirectX com versões anteriores do Visual Studio, a atualização Visual Studio 2010 pode ter migrado o caminho do SDK do DirectX para as configurações de projeto padrão. É recomendável remover essas configurações para evitar erros futuros de build. No diretório %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0, modifique os arquivos de usuário Microsoft.Cpp.Win32.user e Microsoft.Cpp.x64.para remover todas as referências a caminhos de DXSDK_DIR. Como alternativa, você pode remover todo <o nó PropertyGroup> que contém as entradas Path, como <ExecutablePath> e <IncludePath> , para reverter para padrões padrão. Se você não vir referências a DXSDK_DIR nesses arquivos, nenhuma alteração será necessária.

  10. Se o aplicativo resultante for compatível com Windows Vista com Service Pack 2 (SP2), bem como Windows 7 e Windows 8 e posterior, defina a Definição de Pré-processador denominada _WIN32_WINNT como 0x600. Se ele só der suporte a Windows 7 e Windows 8 e posterior, defina-o como 0x601.

    Por exemplo:

    1. Abra propriedades para o projeto e selecione C/C++>Preprocessor.
    2. Selecione Todas as Configurações e Todas as Plataformas.
    3. Vá para a seção Definições de Pré-processador e defina _WIN32_WINNT=0x600.
    4. Clique em Aplicar.

Jogos para Windows e SDK do DirectX

Onde está o SDK do DirectX (Edição 2021)?

SDKs do DirectX de uma determinada idade

Vivendo sem D3DX