diff --git a/DIRECTX_SDK_DOWNLOAD_GUIDE.md b/DIRECTX_SDK_DOWNLOAD_GUIDE.md new file mode 100644 index 0000000..c4ff200 --- /dev/null +++ b/DIRECTX_SDK_DOWNLOAD_GUIDE.md @@ -0,0 +1,571 @@ +# DirectX SDK 다운로드 및 설치 가이드 + +## 📦 필요한 SDK 목록 + +이 프로젝트는 다음 DirectX SDK가 필요합니다: +- **DirectX 9 SDK** (dx9 브랜치용) +- **DirectX 12** (dx12 브랜치용 - Windows SDK에 포함) + +--- + +## 1. DirectX 9 SDK (dx9 브랜치) + +### 📥 다운로드 + +#### 공식 Microsoft 다운로드 +**DirectX SDK (June 2010)** - 마지막 독립 실행형 DirectX SDK + +**다운로드 링크**: +- 🔗 **공식**: https://www.microsoft.com/en-us/download/details.aspx?id=6812 +- 📦 **파일명**: `DXSDK_Jun10.exe` +- 💾 **크기**: 약 572 MB + +#### 대체 다운로드 소스 + +만약 위 링크가 작동하지 않는 경우: + +1. **Internet Archive (Wayback Machine)** + - https://archive.org/search.php?query=DirectX%20SDK%20June%202010 + +2. **Softpedia** + - https://www.softpedia.com/get/Programming/SDK-DDK/Microsoft-DirectX-SDK.shtml + +3. **국내 미러 사이트** (비공식) + - 주의: 공식 소스 사용 권장 + +### 🔧 설치 방법 + +1. **설치 파일 실행** + ``` + DXSDK_Jun10.exe + ``` + +2. **기본 설치 경로** + ``` + C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ + ``` + +3. **설치 후 디렉토리 구조** + ``` + Microsoft DirectX SDK (June 2010)/ + ├── Include/ ← 헤더 파일 (d3d9.h, d3dx9.h 등) + ├── Lib/ + │ ├── x86/ ← 32비트 라이브러리 + │ └── x64/ ← 64비트 라이브러리 + ├── Utilities/ + └── Documentation/ + ``` + +### ⚠️ 알려진 설치 문제 + +#### Error S1023 해결방법 + +DirectX SDK June 2010 설치 시 `S1023` 에러가 발생하는 경우: + +**원인**: Visual C++ 2010 재배포 패키지 충돌 + +**해결 방법**: +1. **제어판** → **프로그램 제거** +2. 다음 항목 제거: + - Microsoft Visual C++ 2010 x86 Redistributable + - Microsoft Visual C++ 2010 x64 Redistributable +3. DirectX SDK 재설치 +4. Visual C++ 2010 재설치 (필요시) + +**PowerShell로 자동 해결** (관리자 권한): +```powershell +# VC++ 2010 제거 +wmic product where "name like 'Microsoft Visual C++ 2010%'" call uninstall + +# DirectX SDK 설치 +Start-Process "DXSDK_Jun10.exe" -Wait + +# VC++ 2010 재설치 +# https://www.microsoft.com/en-us/download/details.aspx?id=26999 +``` + +### 🛠️ Visual Studio 프로젝트 설정 + +#### 방법 1: 환경 변수 설정 (권장) + +**시스템 환경 변수 추가**: +``` +DXSDK_DIR = C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ +``` + +**프로젝트 설정**: +```xml + +$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) +$(DXSDK_DIR)Lib\x86;%(AdditionalLibraryDirectories) +``` + +#### 방법 2: 직접 경로 지정 + +**Visual Studio에서**: +1. 프로젝트 속성 → C/C++ → 일반 → 추가 포함 디렉터리 + ``` + C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include + ``` + +2. 링커 → 일반 → 추가 라이브러리 디렉터리 + ``` + C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 + ``` + +3. 링커 → 입력 → 추가 종속성 + ``` + d3d9.lib + d3dx9.lib + dxerr.lib + dxguid.lib + ``` + +### 📚 포함된 주요 파일 + +**헤더 파일**: +- `d3d9.h` - Direct3D 9 코어 +- `d3dx9.h` - D3DX 유틸리티 함수 +- `d3dx9math.h` - 수학 함수 +- `d3dx9tex.h` - 텍스처 함수 +- `d3dx9core.h` - 코어 유틸리티 + +**라이브러리**: +- `d3d9.lib` - Direct3D 9 런타임 +- `d3dx9.lib` - D3DX 유틸리티 (Release) +- `d3dx9d.lib` - D3DX 유틸리티 (Debug) +- `dxerr.lib` - 에러 메시지 헬퍼 +- `dxguid.lib` - GUID 정의 + +**DLL (재배포 필요)**: +- `d3d9.dll` - 시스템에 기본 포함 +- `d3dx9_43.dll` - 별도 배포 필요 (June 2010 버전) + +--- + +## 2. DirectX 12 (dx12 브랜치) + +### 📥 다운로드 + +DirectX 12는 **Windows 10 SDK**에 포함되어 있습니다. 별도 SDK 불필요! + +#### Windows 10/11 SDK 다운로드 + +**최신 버전**: +- 🔗 **공식**: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ +- 📦 **온라인 설치**: `winsdksetup.exe` +- 📦 **오프라인 ISO**: 사용 가능 (약 1-2 GB) + +**권장 버전**: +- **최소**: Windows 10 SDK (10.0.17763.0) - Version 1809 +- **권장**: Windows 11 SDK (10.0.22621.0) - 최신 +- **DX12 Ultimate**: Windows 10 SDK (10.0.19041.0) - Version 2004+ + +#### 특정 버전 다운로드 + +**SDK Archive**: +- https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/ + +**다운로드 예시**: +``` +Windows 10 SDK (10.0.19041.0) ← 2020년 5월, DX12 Ultimate 지원 +Windows 10 SDK (10.0.22000.0) ← Windows 11 SDK +Windows 11 SDK (10.0.22621.0) ← 최신 +``` + +### 🔧 설치 방법 + +1. **설치 파일 실행** + ``` + winsdksetup.exe + ``` + +2. **설치 옵션 선택** + + 필수 구성 요소만 선택하여 설치 시간 단축: + ``` + ✅ Windows SDK Signing Tools for Desktop Apps + ✅ Windows SDK for UWP C++ Apps + ✅ Windows SDK for Desktop C++ x86 Apps + ✅ Windows SDK for Desktop C++ x64 Apps + ✅ Debugging Tools for Windows + ❌ .NET Framework (불필요) + ❌ Windows Performance Toolkit (선택) + ❌ MSI Tools (불필요) + ``` + +3. **기본 설치 경로** + ``` + C:\Program Files (x86)\Windows Kits\10\ + ``` + +4. **설치 후 디렉토리 구조** + ``` + Windows Kits\10\ + ├── Include\ + │ └── 10.0.xxxxx.0\ + │ ├── um\ ← d3d12.h, dxgi1_6.h + │ └── shared\ ← 공유 헤더 + ├── Lib\ + │ └── 10.0.xxxxx.0\ + │ ├── um\x86\ ← 32비트 라이브러리 + │ └── um\x64\ ← 64비트 라이브러리 + └── Redist\ + └── D3D\ ← 재배포 DLL + ``` + +### 🛠️ Visual Studio 프로젝트 설정 + +#### Windows SDK는 Visual Studio 2019/2022에 자동 통합됩니다! + +**프로젝트 설정 확인**: +1. 프로젝트 속성 → 일반 + ``` + Windows SDK 버전: 10.0 (최신 설치된 버전) + ``` + +2. 플랫폼 도구 집합 + ``` + Visual Studio 2019 (v142) 또는 + Visual Studio 2022 (v143) + ``` + +#### 수동 설정 (필요시) + +**vcxproj 파일**: +```xml + + 10.0.19041.0 + + + + + + d3d12.lib; + dxgi.lib; + dxguid.lib; + d3dcompiler.lib; + %(AdditionalDependencies) + + + +``` + +### 📚 포함된 주요 파일 + +**헤더 파일**: +- `d3d12.h` - Direct3D 12 코어 +- `dxgi1_6.h` - DXGI 1.6 (스왑체인, 어댑터) +- `d3d12sdklayers.h` - 디버그 레이어 +- `d3dcompiler.h` - 셰이더 컴파일러 +- `DirectXMath.h` - 수학 라이브러리 + +**라이브러리**: +- `d3d12.lib` - Direct3D 12 런타임 +- `dxgi.lib` - DXGI +- `d3dcompiler.lib` - 셰이더 컴파일러 +- `dxguid.lib` - GUID 정의 + +**DLL (시스템 포함)**: +- `d3d12.dll` - Windows 10에 기본 포함 +- `dxgi.dll` - Windows 10에 기본 포함 + +### 🔨 추가 도구 + +#### d3dx12.h (헬퍼 헤더) + +DX12는 `d3dx12.h`를 별도 제공하지 않습니다. Microsoft 샘플에서 가져와야 합니다. + +**다운로드**: +``` +https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Libraries/D3DX12/d3dx12.h +``` + +**또는 프로젝트에 직접 추가**: +```cpp +// d3dx12.h - Helper structures and functions +// 프로젝트 Include 폴더에 복사 +``` + +**사용 예시**: +```cpp +#include +#include "d3dx12.h" // 헬퍼 함수 + +CD3DX12_HEAP_PROPERTIES heapProps(D3D12_HEAP_TYPE_DEFAULT); +CD3DX12_RESOURCE_DESC texDesc = CD3DX12_RESOURCE_DESC::Tex2D(...); +``` + +#### DirectX Shader Compiler (DXC) + +HLSL 6.0+ 셰이더 컴파일용 (선택사항, 고급 기능) + +**다운로드**: +- 🔗 https://github.com/microsoft/DirectXShaderCompiler/releases +- 📦 `dxc_.zip` + +**포함 파일**: +- `dxc.exe` - 커맨드라인 컴파일러 +- `dxcompiler.dll` - 런타임 컴파일러 +- `dxil.dll` - DXIL 서명 + +--- + +## 3. 개발 도구 + +### PIX for Windows (GPU 디버거) + +**다운로드**: +- 🔗 https://devblogs.microsoft.com/pix/download/ +- 📦 Windows Store에서도 다운로드 가능 + +**기능**: +- GPU 타이밍 분석 +- 프레임 캡처 +- 셰이더 디버깅 +- 리소스 상태 추적 + +### RenderDoc (대체 디버거) + +**다운로드**: +- 🔗 https://renderdoc.org/builds +- 📦 크로스 플랫폼 (Windows, Linux) + +**기능**: +- 프레임 캡처 +- 텍스처 뷰어 +- 파이프라인 상태 검사 +- 무료 오픈소스 + +### Visual Studio Graphics Debugger + +**설치**: +- Visual Studio 설치 시 "게임 개발 (C++)" 워크로드 선택 +- 자동으로 포함됨 + +**사용법**: +- 디버그 → 그래픽 → 진단 시작 +- 프레임 캡처 (Print Screen) + +--- + +## 4. 재배포 패키지 + +### DirectX 9 재배포 + +최종 사용자를 위해 게임과 함께 배포해야 하는 파일: + +**DirectX End-User Runtime**: +- 🔗 https://www.microsoft.com/en-us/download/details.aspx?id=35 +- 📦 `directx_Jun2010_redist.exe` + +**포함 내용**: +- `d3dx9_43.dll` +- `D3DCompiler_43.dll` +- `XAudio2_7.dll` +- 기타 D3DX 컴포넌트 + +**설치 방법**: +```batch +REM 게임 설치 스크립트 +directx_redist\DXSETUP.exe /silent +``` + +### DirectX 12 재배포 + +DirectX 12는 **Windows 10에 기본 포함**되므로 별도 재배포 불필요! + +**최소 OS 요구사항**: +- Windows 10 (1809 이상) 또는 +- Windows 11 + +**확인 방법**: +```cpp +// 런타임에 DX12 지원 확인 +if (FAILED(D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, + __uuidof(ID3D12Device), nullptr))) +{ + MessageBox(NULL, L"DirectX 12를 지원하지 않는 시스템입니다.", + L"에러", MB_OK); + return false; +} +``` + +--- + +## 5. 빠른 설정 체크리스트 + +### ✅ DX9 브랜치 (dx9) + +- [ ] DirectX SDK June 2010 다운로드 +- [ ] SDK 설치 (S1023 에러 해결) +- [ ] 환경 변수 `DXSDK_DIR` 설정 +- [ ] Visual Studio 재시작 +- [ ] 프로젝트 Include/Lib 경로 확인 +- [ ] 빌드 테스트 +- [ ] `d3dx9_43.dll` 실행 경로에 복사 + +### ✅ DX12 브랜치 (dx12) + +- [ ] Windows 10 SDK 다운로드 (최신) +- [ ] SDK 설치 (C++/Desktop 옵션) +- [ ] Visual Studio 재시작 +- [ ] Windows SDK 버전 확인 +- [ ] d3dx12.h 다운로드 및 추가 +- [ ] 빌드 테스트 +- [ ] PIX for Windows 설치 (디버깅용) + +--- + +## 6. 자주 묻는 질문 (FAQ) + +### Q1: DirectX SDK를 어디에 설치해야 하나요? + +**A**: 기본 경로 사용 권장: +``` +C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ +C:\Program Files (x86)\Windows Kits\10\ +``` + +### Q2: 여러 버전의 SDK를 동시에 설치할 수 있나요? + +**A**: 가능합니다! DX9 SDK와 Windows SDK (DX12)는 충돌하지 않습니다. + +### Q3: Visual Studio 2022에서 DX9 SDK를 사용할 수 있나요? + +**A**: 가능합니다. 단, 경로 충돌 방지를 위해: +``` +Include 경로 순서: +1. $(DXSDK_DIR)Include +2. $(WindowsSDK_IncludePath) +``` + +### Q4: 64비트 빌드 시 라이브러리 경로는? + +**DX9**: +``` +$(DXSDK_DIR)Lib\x64 +``` + +**DX12**: +``` +C:\Program Files (x86)\Windows Kits\10\Lib\10.0.xxxxx.0\um\x64\ +``` + +### Q5: `d3dx9_43.dll`이 없다는 오류가 발생합니다. + +**A**: DirectX 재배포 패키지 설치 또는 DLL을 실행 파일과 같은 폴더에 복사: +``` +Game.exe +d3dx9_43.dll +D3DCompiler_43.dll +``` + +### Q6: Windows 7에서 DX12를 사용할 수 있나요? + +**A**: 불가능합니다. DX12는 Windows 10 이상 전용입니다. + +### Q7: 오프라인 환경에서 설치하려면? + +**DX9**: 전체 SDK 설치 파일 (572 MB) 다운로드 +**DX12**: Windows SDK ISO 이미지 다운로드 + +--- + +## 7. 추가 리소스 + +### 공식 문서 + +**DirectX 9**: +- 📖 https://docs.microsoft.com/en-us/windows/win32/direct3d9/dx9-graphics +- 📖 MSDN DirectX 9 Reference (SDK 내 포함) + +**DirectX 12**: +- 📖 https://docs.microsoft.com/en-us/windows/win32/direct3d12/directx-12-programming-guide +- 📖 https://github.com/microsoft/DirectX-Graphics-Samples + +### 튜토리얼 + +**DX9**: +- http://www.directxtutorial.com/ +- http://rastertek.com/tutdx9.html + +**DX12**: +- https://www.3dgep.com/learning-directx-12-1/ +- https://alain.xyz/blog/raw-directx12 + +### 커뮤니티 + +- **GameDev.net**: https://www.gamedev.net/forums/ +- **Discord**: DirectX Community Server +- **Stack Overflow**: [directx] 태그 + +--- + +## 8. 문제 해결 + +### 빌드 오류: "d3d9.h를 찾을 수 없습니다" + +**해결**: +1. SDK 설치 확인 +2. Include 경로 확인 +3. 프로젝트 다시 로드 + +### 링크 오류: "d3d9.lib를 열 수 없습니다" + +**해결**: +1. Lib 경로 확인 (x86 vs x64) +2. 플랫폼 일치 확인 +3. 환경 변수 재설정 + +### 런타임 오류: "DLL을 로드할 수 없습니다" + +**해결**: +1. 재배포 패키지 설치 +2. DLL을 실행 폴더에 복사 +3. System32 확인 (비권장) + +### Windows SDK 설치 실패 + +**해결**: +1. 관리자 권한으로 실행 +2. 기존 버전 제거 후 재설치 +3. .NET Framework 업데이트 +4. 디스크 공간 확인 (10GB 이상) + +--- + +## 📞 도움이 필요하신가요? + +이 가이드로 해결되지 않는 문제가 있다면: + +1. **GitHub Issues** 생성 +2. **프로젝트 문서** 참조: + - `DX8_TO_DX9_MIGRATION_PLAN.md` + - `DX9_TO_DX12_MIGRATION_PLAN.md` +3. **Microsoft Q&A** 포럼 방문 + +--- + +**작성일**: 2025-12-01 +**작성자**: Claude AI (Anthropic) +**버전**: 1.0 +**최종 업데이트**: 2025-12-01 + +--- + +## 📋 요약 + +| SDK | 다운로드 링크 | 크기 | 플랫폼 | 비고 | +|-----|-------------|------|--------|------| +| **DX9 SDK** | [June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=6812) | 572 MB | Win XP+ | 독립 설치 | +| **DX12 (Windows SDK)** | [최신 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) | 1-2 GB | Win 10+ | VS 통합 | +| **DX9 재배포** | [End-User Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=35) | 95 MB | All | 배포 필수 | + +**핵심 포인트**: +- ✅ DX9: 별도 SDK 설치 필요 +- ✅ DX12: Windows SDK에 포함 (VS와 자동 통합) +- ✅ 둘 다 동시 설치 가능 +- ✅ DX9는 재배포 패키지 필요, DX12는 불필요 + +**이제 개발 준비 완료!** 🚀