Direitos autorais (c) Microsoft Corporation.
28 de outubro de 2024
Este pacote contém o "DirectX Tool Kit", uma coleção de classes auxiliares para escrever código Direct3D 11 C++ para aplicativos da Plataforma Universal do Windows (UWP) para aplicativos de desktop Windows 11, Windows 10, Xbox One e Win32 para Windows 7 Service Pack 1 ou mais tarde.
Este código foi projetado para ser compilado com Visual Studio 2019 (16.11), Visual Studio 2022, clang para Windows v12 ou posterior ou MinGW 12.2. O uso do SDK de atualização do Windows 10 de maio de 2020 (19041) ou posterior é necessário para o Visual Studio.
Esses componentes foram projetados para funcionar sem exigir nenhum conteúdo do SDK DirectX herdado. Para obter detalhes, consulte Onde está o SDK do DirectX?.
Inc
Audio.h - API de áudio de baixo nível usando XAudio2 (cabeçalho público DirectXTK para áudio)
BufferHelpers.h - Ajudantes C++ para criar recursos D3D a partir de dados da CPU
CommonStates.h - fábrica que fornece objetos de estado D3D comumente usados
DDSTextureLoader.h - carregador leve de textura de arquivo DDS
DirectXHelpers.h - diversos auxiliares C++ para programação D3D
Effects.h - conjunto de shaders integrados para tarefas comuns de renderização
GamePad.h - auxiliar de controlador de gamepad usando XInput, Windows.Gaming.Input ou GameInput
GeometricPrimitive.h - desenha formas básicas como cubos e esferas
GraphicsMemory.h - auxiliar para gerenciar a alocação dinâmica de memória gráfica
Keyboard.h - auxiliar de rastreamento de estado do teclado
Model.h - desenha malhas carregadas de arquivos .CMO, .SDKMESH ou .VBO
Mouse.h - ajudante do mouse
PostProcess.h - conjunto de shaders integrados para operações comuns de pós-processamento
PrimitiveBatch.h - maneira simples e eficiente de desenhar primitivas de usuário
ScreenGrab.h - protetor de captura de tela leve
SimpleMath.h - wrapper C++ simplificado para DirectXMath
SpriteBatch.h - renderização de sprite 2D simples e eficiente
SpriteFont.h - renderização de texto baseada em bitmap
VertexTypes.h - estruturas para formatos de dados de vértice comumente usados
WICTextureLoader.h - carregador de textura de arquivo de imagem baseado em WIC
XboxDDSTextureLoader.h - variante de aplicativos exclusivos do Xbox One do DDSTextureLoader
Arquivos de cabeçalho público (no namespace DirectX C++):
Src
Arquivos de origem DirectXTK e cabeçalhos de implementação internos
Audio
DirectXTK para arquivos de origem de áudio e cabeçalhos de implementação internos
MakeSpriteFont
Ferramenta de linha de comando usada para gerar recursos binários para uso com SpriteFont
XWBTool
Ferramenta de linha de comando para criar bancos de ondas estilo XACT para uso com a classe WaveBank do DirectXTK for Audio
build
Contém arquivos YAML para pipelines de construção, juntamente com alguns arquivos e scripts de construção diversos.
A documentação está disponível no wiki do GitHub.
Todo o conteúdo e código-fonte deste pacote estão sujeitos aos termos da Licença MIT.
Para obter a versão mais recente do DirectXTK, relatórios de bugs, etc., visite o site do projeto no GitHub.
PARA CONSELHOS DE SEGURANÇA, consulte GitHub.
Para um histórico completo de alterações, consulte CHANGELOG.md.
A partir da versão de fevereiro de 2023, a implementação da classe Mouse do movimento relativo do mouse foi atualizada para acumular alterações entre chamadas para GetState
. Por padrão, cada vez que você chama GetState
os deltas são redefinidos, o que funciona para cenários em que você usa movimento relativo, mas chama o método apenas uma vez por quadro. Se você chamá-lo mais de uma vez por quadro, adicione uma chamada explícita a EndOfInputFrame
para usar um modelo de redefinição explícito.
A partir da versão de setembro de 2022, a biblioteca usa namespaces embutidos C++ 11 para tipos diferentes que têm os mesmos nomes na versão DirectX 11 e DirectX 12 do DirectX Tool Kit . Isso fornece um nome exclusivo do link, como DirectX::DX11::SpriteBatch
, que aparecerá nas mensagens de saída do vinculador. Na maioria dos casos de uso, entretanto, não há necessidade de adicionar resolução explícita de namespace DX11
no código do cliente.
A partir da versão de julho de 2022, o parâmetro bool forceSRGB
para funções DDSTextureLoader Ex
agora é um parâmetro de sinalizador enum bitmask digitado DDS_LOADER_FLAGS
. Isso pode ter um impacto de alteração significativa no código do cliente. Substitua true
por DDS_LOADER_FORCE_SRGB
e false
por DDS_LOADER_DEFAULT
.
A partir do lançamento de outubro de 2021, o DGSLEffect não oferece mais suporte direto para skinning. Em vez disso, use SkinnedDGSLEffect , que é derivado de DGSLEffect.
A partir da versão de junho de 2020, esta biblioteca faz uso de sinalizadores de bitmask enum digitados de acordo com a recomendação da seção 17.5.2.1.3 Bitmask types do padrão C++ . Isso pode ter impactos de alterações significativas no código do cliente:
Você não pode passar o literal 0
como valor do seu sinalizador. Em vez disso, você deve usar o valor enum padrão apropriado: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
ou WIC_LOADER_DEFAULT
.
Use o tipo enum em vez de DWORD
se estiver criando valores de sinalizadores localmente com operações de máscara de bits. Por exemplo, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
Os projetos UWP e o projeto de desktop clássico Win10 incluem configurações para a plataforma ARM64. Construí-los requer a instalação do conjunto de ferramentas ARM64.
Para desenvolvimento ARM64/AArch64, o compilador VS 2022 é fortemente recomendado em vez do conjunto de ferramentas VS 2019. O SDK do Windows (26100 ou posterior) não é compatível com o VS 2019 para Win32 em desenvolvimento ARM64. Observe que a plataforma ARM32/AArch32 está obsoleta .
Ao usar clang/LLVM para a plataforma ARM64/AArch64, o SDK do Windows 11 (22000) ou posterior é necessário.
O script CompileShaders.cmd
deve ter finais de linha no estilo Windows (CRLF). Se for alterado para finais de linha no estilo Linux (LF), poderá falhar ao construir todos os shaders necessários.
O suporte do Xbox One para DirectX 11 requer o Xbox One XDK legado. Consulte fevereiro de 2023 ou versões anteriores do DirectX Tool Kit para obter os arquivos de projeto necessários.
A partir do lançamento de outubro de 2024, a ferramenta de linha de comando xwbtool também oferece suporte a opções longas no estilo GNU usando --
. Todos os interruptores existentes continuam a funcionar. MakeSpriteFont suporta apenas --version
e --help
para parâmetros de estilo POSIX.
Em caso de dúvidas, considere usar Stack Overflow com a tag directxtk ou o DirectX Discord Server no canal dx9-dx11-developers .
Para relatórios de bugs e solicitações de recursos, use os problemas do GitHub para este projeto.
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA), declarando que você tem o direito de nos conceder, e realmente nos concede, os direitos de uso de sua contribuição. Para obter detalhes, visite https://cla.opensource.microsoft.com.
Quando você envia uma solicitação pull, um bot CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, verificação de status, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Os testes para novos recursos também devem ser enviados como PR para o repositório do Test Suite.
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para obter mais informações, consulte as Perguntas frequentes sobre o Código de Conduta ou entre em contato com [email protected] com perguntas ou comentários adicionais.
Este projeto pode conter marcas registradas ou logotipos de projetos, produtos ou serviços. O uso autorizado de marcas registradas ou logotipos da Microsoft está sujeito e deve seguir as Diretrizes de Marcas Registradas e Marcas da Microsoft. O uso de marcas registradas ou logotipos da Microsoft em versões modificadas deste projeto não deve causar confusão nem implicar patrocínio da Microsoft. Qualquer uso de marcas registradas ou logotipos de terceiros está sujeito às políticas desses terceiros.
O DirectX Tool Kit é trabalho de Shawn Hargreaves e Chuck Walbourn, com contribuições de Aaron Rodriguez Hernandez e Dani Roman.
Agradecimentos a Shanon Drone pelo formato de arquivo SDKMESH.
Agradecimentos a Adrian Tsai pela implementação da esfera geodésica.
Obrigado a Garrett Serack por sua ajuda na criação dos pacotes NuGet para DirectX Tool Kit.
Obrigado a Roberto Sonnino pela ajuda com o CMO
, renderização DGSL e animação do VS Starter Kit.
Obrigado a Pete Lewis e Justin Saunders pela implementação de shaders mapeados normais e PBR.
Obrigado a Andrew Farrier e Scott Matloff pela ajuda contínua com revisões de código.