Copyright (c) Microsoft Corporation.
28 de octubre de 2024
Este paquete contiene el "Kit de herramientas DirectX", una colección de clases auxiliares para escribir código Direct3D 11 C++ para aplicaciones de la Plataforma universal de Windows (UWP) para aplicaciones de escritorio Windows 11, Windows 10, Xbox One y Win32 para Windows 7 Service Pack 1 o más tarde.
Este código está diseñado para compilarse con Visual Studio 2019 (16.11), Visual Studio 2022, clang para Windows v12 o posterior, o MinGW 12.2. Se requiere el uso del SDK de actualización de Windows 10 de mayo de 2020 (19041) o posterior para Visual Studio.
Estos componentes están diseñados para funcionar sin requerir ningún contenido del SDK de DirectX heredado. Para obtener más información, consulte ¿Dónde está el SDK de DirectX?
Inc
Audio.h: API de audio de bajo nivel que utiliza XAudio2 (encabezado público DirectXTK para audio)
BufferHelpers.h: ayudantes de C++ para crear recursos D3D a partir de datos de la CPU
CommonStates.h: fábrica que proporciona objetos de estado D3D de uso común
DDSTextureLoader.h: cargador de texturas de archivos DDS liviano
DirectXHelpers.h: varios ayudantes de C++ para programación D3D
Effects.h: conjunto de sombreadores integrados para tareas de renderizado comunes
GamePad.h: ayudante del controlador de gamepad usando XInput, Windows.Gaming.Input o GameInput
GeometricPrimitive.h: dibuja formas básicas como cubos y esferas
GraphicsMemory.h: ayuda para gestionar la asignación de memoria de gráficos dinámicos
Keyboard.h: ayuda para el seguimiento del estado del teclado
Model.h: dibuja mallas cargadas desde archivos .CMO, .SDKMESH o .VBO
Mouse.h - ayudante del mouse
PostProcess.h: conjunto de sombreadores integrados para operaciones comunes de posprocesamiento
PrimitiveBatch.h: forma sencilla y eficaz de dibujar primitivas de usuario
ScreenGrab.h: protector de capturas de pantalla ligero
SimpleMath.h: contenedor de C++ simplificado para DirectXMath
SpriteBatch.h: renderizado de sprites 2D simple y eficiente
SpriteFont.h: representación de texto basada en mapas de bits
VertexTypes.h: estructuras para formatos de datos de vértices comúnmente utilizados
WICTextureLoader.h: cargador de texturas de archivos de imágenes basado en WIC
XboxDDSTextureLoader.h: variante de aplicaciones exclusivas de Xbox One de DDSTextureLoader
Archivos de encabezado públicos (en el espacio de nombres de DirectX C++):
Src
Archivos fuente de DirectXTK y encabezados de implementación interna
Audio
DirectXTK para archivos fuente de audio y encabezados de implementación interna
MakeSpriteFont
Herramienta de línea de comandos utilizada para generar recursos binarios para usar con SpriteFont
XWBTool
Herramienta de línea de comandos para crear bancos de ondas estilo XACT para usar con la clase WaveBank de DirectXTK for Audio
build
Contiene archivos YAML para las canalizaciones de compilación junto con algunos archivos de compilación y scripts diversos.
La documentación está disponible en la wiki de GitHub.
Todo el contenido y el código fuente de este paquete están sujetos a los términos de la licencia MIT.
Para obtener la última versión de DirectXTK, informes de errores, etc., visite el sitio del proyecto en GitHub.
PARA OBTENER AVISOS DE SEGURIDAD, consulte GitHub.
Para obtener un historial de cambios completo, consulte CHANGELOG.md.
A partir de la versión de febrero de 2023, la implementación de la clase Mouse del movimiento relativo del mouse se actualizó para acumular cambios entre llamadas a GetState
. De forma predeterminada, cada vez que llama GetState
los deltas se restablecen, lo que funciona para escenarios en los que usa movimiento relativo pero solo llama al método una vez por cuadro. Si lo llama más de una vez por cuadro, agregue una llamada explícita a EndOfInputFrame
para usar un modelo de reinicio explícito.
A partir de la versión de septiembre de 2022, la biblioteca utiliza espacios de nombres en línea de C++11 para diferentes tipos que tienen los mismos nombres en las versiones DirectX 11 y DirectX 12 del DirectX Tool Kit . Esto proporciona un nombre exclusivo de enlace, como DirectX::DX11::SpriteBatch
, que aparecerá en los mensajes de salida del vinculador. Sin embargo, en la mayoría de los casos de uso, no es necesario agregar una resolución de espacio de nombres DX11
explícita en el código del cliente.
A partir de la versión de julio de 2022, el parámetro bool forceSRGB
para las funciones DDSTextureLoader Ex
ahora es un parámetro de marca de máscara de bits de enumeración con tipo DDS_LOADER_FLAGS
. Esto puede tener un impacto de cambio importante en el código del cliente. Reemplace true
con DDS_LOADER_FORCE_SRGB
y false
con DDS_LOADER_DEFAULT
.
A partir de la versión de octubre de 2021, DGSLEffect ya no admite directamente el skinning. En su lugar, utilice SkinnedDGSLEffect , que se deriva de DGSLEffect.
A partir de la versión de junio de 2020, esta biblioteca utiliza indicadores de máscara de bits de enumeración escrita según la recomendación de la sección 17.5.2.1.3 del estándar C++ Tipos de máscara de bits. Esto puede tener impactos de cambios importantes en el código del cliente:
No puede pasar el literal 0
como valor de sus banderas. En su lugar, debe utilizar el valor de enumeración predeterminado apropiado: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
o WIC_LOADER_DEFAULT
.
Utilice el tipo de enumeración en lugar de DWORD
si crea valores de indicadores localmente con operaciones de máscara de bits. Por ejemplo, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
Los proyectos UWP y el proyecto de escritorio clásico Win10 incluyen configuraciones para la plataforma ARM64. Para crearlos es necesario instalar el conjunto de herramientas ARM64.
Para el desarrollo de ARM64/AArch64, se recomienda encarecidamente el compilador VS 2022 en lugar del conjunto de herramientas VS 2019. El SDK de Windows (26100 o posterior) no es compatible con VS 2019 para Win32 en desarrollo ARM64. Tenga en cuenta que la plataforma ARM32/AArch32 está en desuso .
Cuando se utiliza clang/LLVM para la plataforma ARM64/AArch64, se requiere el SDK de Windows 11 (22000) o posterior.
El script CompileShaders.cmd
debe tener finales de línea al estilo de Windows (CRLF). Si se cambia a finales de línea estilo Linux (LF), es posible que no pueda crear todos los sombreadores necesarios.
La compatibilidad de Xbox One con DirectX 11 requiere el Xbox One XDK heredado. Consulte las versiones de febrero de 2023 o anteriores del kit de herramientas DirectX para conocer los archivos de proyecto necesarios.
A partir de la versión de octubre de 2024, la herramienta de línea de comandos xwbtool también admite opciones largas de estilo GNU usando --
. Todos los interruptores existentes siguen funcionando. MakeSpriteFont solo admite --version
y --help
para parámetros de estilo POSIX.
Si tiene preguntas, considere usar Stack Overflow con la etiqueta directxtk o DirectX Discord Server en el canal dx9-dx11-developers .
Para informes de errores y solicitudes de funciones, utilice los problemas de GitHub para este proyecto.
Este proyecto agradece contribuciones y sugerencias. La mayoría de las contribuciones requieren que usted acepte un Acuerdo de licencia de colaborador (CLA) que declara que tiene derecho a otorgarnos, y de hecho lo hace, los derechos para usar su contribución. Para obtener más detalles, visite https://cla.opensource.microsoft.com.
Cuando envía una solicitud de extracción, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR de manera adecuada (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repositorios que utilicen nuestro CLA.
Las pruebas de nuevas funciones también deben enviarse como PR al repositorio de Test Suite.
Este proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas frecuentes sobre el Código de conducta o comuníquese con [email protected] si tiene alguna pregunta o comentario adicional.
Este proyecto puede contener marcas comerciales o logotipos de proyectos, productos o servicios. El uso autorizado de las marcas comerciales o logotipos de Microsoft está sujeto y debe seguir las Pautas de marcas y marcas comerciales de Microsoft. El uso de marcas comerciales o logotipos de Microsoft en versiones modificadas de este proyecto no debe causar confusión ni implicar patrocinio de Microsoft. Cualquier uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de dichos terceros.
El kit de herramientas DirectX es obra de Shawn Hargreaves y Chuck Walbourn, con contribuciones de Aaron Rodriguez Hernandez y Dani Roman.
Gracias a Shanon Drone por el formato de archivo SDKMESH.
Gracias a Adrian Tsai por la implementación de la esfera geodésica.
Gracias a Garrett Serack por su ayuda en la creación de paquetes NuGet para DirectX Tool Kit.
Gracias a Roberto Sonnino por su ayuda con el CMO
, el renderizado DGSL y la animación del VS Starter Kit.
Gracias a Pete Lewis y Justin Saunders por la implementación de sombreadores PBR y de mapeo normal.
Gracias a Andrew Farrier y Scott Matloff por su ayuda continua con las revisiones de código.