저작권 (c) 마이크로소프트 주식회사.
2024년 10월 28일
이 패키지에는 Windows 11, Windows 10, Xbox One용 UWP(유니버설 Windows 플랫폼) 앱 및 Windows 7 서비스 팩 1용 Win32 데스크톱 애플리케이션용 Direct3D 11 C++ 코드 작성을 위한 도우미 클래스 컬렉션인 "DirectX 도구 키트"가 포함되어 있습니다. 나중에.
이 코드는 Visual Studio 2019(16.11), Visual Studio 2022, Windows v12 이상용 clang 또는 MinGW 12.2를 사용하여 빌드하도록 설계되었습니다. Visual Studio에는 Windows 10 2020년 5월 업데이트 SDK(19041) 이상을 사용해야 합니다.
이러한 구성 요소는 레거시 DirectX SDK의 콘텐츠 없이도 작동하도록 설계되었습니다. 자세한 내용은 DirectX SDK는 어디에 있습니까?를 참조하세요.
Inc
Audio.h - XAudio2(오디오 공개 헤더용 DirectXTK)를 사용하는 하위 수준 오디오 API
BufferHelpers.h - CPU 데이터에서 D3D 리소스를 생성하기 위한 C++ 도우미
CommonStates.h - 일반적으로 사용되는 D3D 상태 객체를 제공하는 팩토리
DDSTextureLoader.h - 경량 DDS 파일 텍스처 로더
DirectXHelpers.h - D3D 프로그래밍을 위한 기타 C++ 도우미
Effects.h - 일반적인 렌더링 작업을 위한 내장 셰이더 세트
GamePad.h - XInput, Windows.Gaming.Input 또는 GameInput을 사용하는 게임패드 컨트롤러 도우미
기하학적 프리미티브.h(GeometricPrimitive.h) - 정육면체, 구 등의 기본 모양을 그립니다.
GraphicsMemory.h - 동적 그래픽 메모리 할당 관리를 위한 도우미
Keyboard.h - 키보드 상태 추적 도우미
Model.h - .CMO, .SDKMESH 또는 .VBO 파일에서 로드된 메쉬를 그립니다.
Mouse.h - 마우스 도우미
PostProcess.h - 일반적인 후처리 작업을 위한 내장 셰이더 세트
PrimitiveBatch.h - 사용자 프리미티브를 그리는 간단하고 효율적인 방법
ScreenGrab.h - 경량 스크린샷 보호기
SimpleMath.h - DirectXMath용 단순화된 C++ 래퍼
SpriteBatch.h - 간단하고 효율적인 2D 스프라이트 렌더링
SpriteFont.h - 비트맵 기반 텍스트 렌더링
VertexTypes.h - 일반적으로 사용되는 정점 데이터 형식의 구조
WICTextureLoader.h - WIC 기반 이미지 파일 텍스처 로더
XboxDDSTextureLoader.h - DDSTextureLoader의 Xbox One 독점 앱 변형
공용 헤더 파일(DirectX C++ 네임스페이스):
Src
DirectXTK 소스 파일 및 내부 구현 헤더
Audio
오디오 소스 파일 및 내부 구현 헤더용 DirectXTK
MakeSpriteFont
SpriteFont와 함께 사용할 바이너리 리소스를 생성하는 데 사용되는 명령줄 도구
XWBTool
오디오의 WaveBank 클래스용 DirectXTK와 함께 사용할 XACT 스타일 웨이브 뱅크를 구축하기 위한 명령줄 도구
build
일부 기타 빌드 파일 및 스크립트와 함께 빌드 파이프라인용 YAML 파일이 포함되어 있습니다.
문서는 GitHub 위키에서 볼 수 있습니다.
이 패키지의 모든 콘텐츠와 소스 코드에는 MIT 라이선스 조건이 적용됩니다.
최신 버전의 DirectXTK, 버그 보고서 등을 보려면 GitHub의 프로젝트 사이트를 방문하세요.
보안 자문은 GitHub를 참조하세요.
전체 변경 내역을 보려면 CHANGELOG.md를 참조하세요.
2023년 2월 릴리스부터 상대 마우스 이동의 Mouse 클래스 구현이 업데이트되어 GetState
호출 간의 변경 사항이 누적되었습니다. 기본적으로 GetState
호출할 때마다 상대 이동을 사용하지만 프레임당 한 번만 메서드를 호출하는 시나리오에서 작동하는 델타가 재설정됩니다. 프레임당 두 번 이상 호출하는 경우 대신 명시적 재설정 모델을 사용하려면 EndOfInputFrame
에 대한 명시적 호출을 추가하세요.
2022년 9월 릴리스부터 라이브러리는 DirectX 도구 키트 의 DirectX 11 및 DirectX 12 버전에서 동일한 이름을 가진 다양한 유형에 대해 C++11 인라인 네임스페이스를 사용합니다. 이는 링커 출력 메시지에 표시되는 DirectX::DX11::SpriteBatch
와 같은 링크 고유 이름을 제공합니다. 그러나 대부분의 사용 사례에서는 클라이언트 코드에 명시적인 DX11
네임스페이스 확인을 추가할 필요가 없습니다.
2022년 7월 릴리스부터 DDSTextureLoader Ex
함수에 대한 bool forceSRGB
매개변수는 이제 DDS_LOADER_FLAGS
유형 열거형 비트마스크 플래그 매개변수입니다. 이는 클라이언트 코드에 주요 변경 영향을 미칠 수 있습니다. true
DDS_LOADER_FORCE_SRGB
로 바꾸고 false
DDS_LOADER_DEFAULT
로 바꿉니다.
2021년 10월 릴리스부터 DGSLEffect는 더 이상 스키닝을 직접 지원하지 않습니다. 대신 DGSLEffect에서 파생된 SkinnedDGSLEffect 를 사용하세요.
2020년 6월 릴리스부터 이 라이브러리는 C++ 표준 섹션 17.5.2.1.3 비트마스크 유형 의 권장 사항에 따라 형식화된 열거형 비트마스크 플래그를 사용합니다. 이는 클라이언트 코드에 주요 변경 영향을 미칠 수 있습니다.
플래그 값으로 0
리터럴을 전달할 수 없습니다. 대신 적절한 기본 열거형 값인 AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
또는 WIC_LOADER_DEFAULT
사용해야 합니다.
비트마스크 작업을 통해 로컬로 플래그 값을 구축하는 경우 DWORD
대신 열거형 유형을 사용하세요. 예를 들어, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
UWP 프로젝트와 Win10 클래식 데스크톱 프로젝트에는 ARM64 플랫폼에 대한 구성이 포함되어 있습니다. 이를 구축하려면 ARM64 도구 세트를 설치해야 합니다.
ARM64/AArch64 개발의 경우 VS 2019 도구 세트보다 VS 2022 컴파일러를 사용하는 것이 좋습니다. Windows SDK(26100 이상)는 ARM64 개발의 Win32용 VS 2019와 호환되지 않습니다. ARM32/AArch32 플랫폼은 더 이상 사용되지 않습니다 .
ARM64/AArch64 플랫폼에 clang/LLVM을 사용하는 경우 Windows 11 SDK(22000) 이상이 필요합니다.
CompileShaders.cmd
스크립트에는 Windows 스타일(CRLF) 줄 끝이 있어야 합니다. Linux 스타일(LF) 줄 끝으로 변경되면 필요한 셰이더를 모두 빌드하지 못할 수 있습니다.
DirectX 11에 대한 Xbox One 지원에는 레거시 Xbox One XDK가 필요합니다. 필요한 프로젝트 파일은 2023년 2월 또는 이전 DirectX 도구 키트 릴리스를 참조하세요.
2024년 10월 릴리스부터 xwbtool 명령줄 도구는 --
사용하여 GNU 스타일의 긴 옵션도 지원합니다. 기존의 모든 스위치는 계속 작동합니다. MakeSpriteFont는 POSIX 스타일 매개변수에 대해 --version
및 --help
만 지원합니다.
질문이 있는 경우 directxtk 태그와 함께 Stack Overflow를 사용하거나 dx9-dx11-developers 채널의 DirectX Discord Server를 사용해 보세요.
버그 보고서 및 기능 요청은 이 프로젝트의 GitHub 문제를 사용하세요.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여에는 귀하가 귀하의 기여를 사용할 권리가 있고 실제로 그렇게 할 권리가 있음을 선언하는 기여자 라이센스 계약(CLA)에 동의해야 합니다. 자세한 내용을 보려면 https://cla.opensource.microsoft.com을 방문하세요.
끌어오기 요청을 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 결정하고 PR을 적절하게 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 저장소에서 이 작업을 한 번만 수행하면 됩니다.
새로운 기능에 대한 테스트도 Test Suite 저장소에 PR로 제출해야 합니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표나 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 이를 따라야 합니다. 이 프로젝트의 수정된 버전에 Microsoft 상표 또는 로고를 사용하면 혼동을 일으키거나 Microsoft 후원을 암시해서는 안 됩니다. 제3자 상표 또는 로고의 사용에는 해당 제3자의 정책이 적용됩니다.
DirectX 도구 키트는 Aaron Rodriguez Hernandez와 Dani Roman의 도움을 받아 Shawn Hargreaves와 Chuck Walbourn이 작업한 것입니다.
SDKMESH 파일 형식을 제공해 주신 Shanon Drone에게 감사드립니다.
측지선 구현을 도와주신 Adrian Tsai에게 감사드립니다.
DirectX 도구 키트용 NuGet 패키지를 만드는 데 도움을 준 Garrett Serack에게 감사드립니다.
CMO
, DGSL 렌더링 및 VS 스타터 키트 애니메이션에 도움을 준 Roberto Sonnino에게 감사드립니다.
노멀 매핑 및 PBR 셰이더 구현을 도와주신 Pete Lewis와 Justin Saunders에게 감사드립니다.
코드 검토에 지속적인 도움을 주신 Andrew Farrier와 Scott Matloff에게 감사드립니다.