Onde está o SDK do DirectX?

A partir do 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 sobre o 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 orienta até mesmo aplicativos de área de trabalho tradicionais a usar a aceleração de hardware gráfico. Em paralelo, as tecnologias DirectX são mais integradas ao 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 do Windows para criar ótimos jogos para Windows. Para baixar o SDK do Windows 11, o SDK do Windows 10 ou o SDK do Windows 8.x, consulte O SDK do Windows e o arquivo morto do emulador.

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

Tecnologia ou ferramenta Descrição
Componentes gráficos do Windows
Os cabeçalhos e bibliotecas para Direct3D e outras APIs gráficas do Windows, como Direct2D, estão disponíveis no SDK do Windows.
Nota: As bibliotecas de utilitários D3DX9/D3DX10/D3DX11 preteridas estão disponíveis por meio do NuGet, mas também há várias alternativas de código aberto. A biblioteca do utilitário D3DCSX DirectCompute e a DLL redistribuível estão disponíveis no SDK do Windows. O 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 do Windows.
Nota: A API D3DCompiler e a DLL redistribuível estão disponíveis no SDK do Windows.
Para 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 para Windows agora é um recurso no Microsoft Visual Studio, chamado Depurador de Gráficos do Visual Studio. Esse recurso melhorou muito a usabilidade, o suporte para Windows 8 e Direct3D 11.1 e a integração com recursos tradicionais do 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 desenvolvimento do DirectX 12, confira a última geração de PIX no Windows
XAudio2 para Windows
A API XAudio2 agora é um componente do sistema em Windows 11, Windows 10 e Windows 8.x. Os cabeçalhos e bibliotecas para XAudio2 estão disponíveis no SDK do Windows. Para obter suporte ao Windows 7, consulte XAudio2Redist.
XInput para Windows
A API XInput 1.4 agora é um componente do sistema em Windows 11, Windows 10 e Windows 8.x. Os cabeçalhos e bibliotecas para XInput estão disponíveis no SDK do Windows.
Nota: 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 do 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 DirectX Painel de Controle e Visualizador de Funcionalidades do 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
A Ferramenta de Plataforma Cruzada de Áudio do Xbox (XACT) não tem mais suporte para uso no Windows.
Jogos Explorer e GDFMAKER
A API de Explorer de Jogos apresenta jogos aos usuários do Windows. A API de Explorer de Jogos tem suporte apenas no Windows Vista e no Windows 7. Use a ferramenta Criador de Arquivos de Definição de Jogos (GDFMAKER.EXE) para declarar classificações de jogos 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.

Outras ferramentas do SDK do DirectX
Ferramentas diversas, como dxtex.exe, meshconvert.exe, texconv.exe e uvatlas.exe podem ser encontradas online. Para obter mais informações sobre essas ferramentas, consulte Catálogo de Ferramentas do SDK do DirectX.
Exemplos
Você pode encontrar aplicativos de exemplo que realçam as tecnologias DirectX 12 no Windows no repositório de exemplos do DirectX . A maioria dos exemplos para versões mais antigas do Direct3D também está disponível online. Para obter mais informações sobre esses exemplos, consulte Catálogo de exemplos do SDK do DirectX.
DirectX 1.1 gerenciado
Os assemblies .NET DirectX foram 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á instalada. 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 o Visual Studio

Os exemplos do SDK do DirectX de junho de 2010 têm suporte com SKUs premium do Visual Studio (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, são necessárias alterações nas configurações do projeto para criar esses exemplos corretamente com a forma como o SDK do Windows 8 e posterior é empacotado com os SKUs premium do Visual Studio.

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 em seu computador de desenvolvimento. Se você instalar em um computador que executa o Windows 8 e posterior, será solicitado e solicitado a 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á instalada. 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 premium do Visual Studio. Microsoft Visual Studio Express 2012 para Windows 8 ou Microsoft Visual Studio Express 2013 para Windows não criará aplicativos da área de trabalho do Windows 8 e posteriores, como os exemplos do SDK do DirectX. Para instalar um dos SKUs premium do Visual Studio, acesse: Downloads do Visual Studio 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 o Microsoft Visual Studio 2010 (sufixo com _2010).

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

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

  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 do Windows correspondente. Investigue soluções alternativas para trabalhar com a API do Direct3D. Para projetos herdados, como os exemplos do SDK do DirectX do Windows 7 (e anteriores), as seguintes etapas são necessárias para criar aplicativos com D3DX usando o SDK do DirectX:

    1. Modifique os diretórios 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 **Diretórios VC++*. ii. Selecione **Todas as Configurações e Todas as Plataformas**. III. Defina esses diretórios da seguinte maneira:
      • Diretórios Executáveis: <herdar de padrões> pai ou de 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. Verifique se as dependências D3DX necessárias são redistribuídas com qualquer exemplo ou com seu aplicativo se elas forem movidas 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 da instalação do SDK do Windows. Lembre-se de que os arquivos HLSL agora são oficialmente reconhecidos pelo Visual Studio. Você pode adicioná-los como arquivos de projeto e definir opções do 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 do projeto. Essa DLL está disponível neste subdiretório da instalação do SDK do Windows em %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> ou %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> , onde <arch> é 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 no 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 XINPUT. O LIB incluído no SDK do Windows tem como destino apenas a versão (1.4) que é enviada como parte do Windows 8 e posterior. O mesmo cabeçalho pode ser usado com XINPUT9_1_0.LIB para usar a versão herdada, que está 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 a 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 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 em seu 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 no 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 do Windows visam 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 em seu 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 do Visual Studio 2010 pode ter migrado o caminho do SDK do DirectX para suas configurações de projeto padrão. É recomendável que você remova essas configurações para evitar erros futuros de build. No diretório %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 , modifique os arquivos Microsoft.Cpp.Win32.user e Microsoft.Cpp.x64.user para remover todas as referências a caminhos 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 der suporte ao Windows Vista com Service Pack 2 (SP2), bem como Windows 7 e Windows 8 e posteriores, defina a Definição de Pré-processador denominada _WIN32_WINNT como 0x600. Se ele der suporte apenas ao Windows 7 e ao Windows 8 e posteriores, defina-o como 0x601.

    Por exemplo:

    1. Abra Propriedades para o projeto e selecione C/C++>Pré-processador.
    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

Viver sem D3DX