Windows 8은 여전히 ​​DirectX 9를 지원합니까?


9

Windows 8이 DirectX 9를 지원합니까? Windows 8 용으로 작성된 C ++ 및 DirectX 9로 작성된 일부 샘플을 살펴 보았 기 때문에 내가 아는 것처럼 그렇지 않았습니다 ( http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2). ). 예 : COM을 사용한 DirectX Inizialising :

ComPtr<ID3D11Device1> dev;
ComPtr<ID3D11DeviceContext1> devcon;

옛날 방식으로 알고 있기 때문에 이상합니다.

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(내가 말하고 싶은 것을 이해하기를 바랍니다)

새로운 OS가 출시되어 완전히 바뀌지 않았기를 바랍니다.


1
Microsoft가 Windows 플랫폼의 모든 게임 중 90 % 이상에 대한 지원을 갑자기 중단한다고 상상하기가 매우 어렵다는 것을 알았습니다. 또한 지금까지 사람들이 그러한 움직임에 분노하지 않을 것이라고 믿기가 더 어려워졌습니다.
Jari Komppa

즉, 최신 SDK에 dx9 헤더 / 라이브러리가 포함되어 있지 않을 수 있습니다. 확인하지 않았습니다. 그렇다고 이전처럼 dx9 SDK를 사용할 수 없었 음을 의미하지는 않습니다. 물론 최신 비주얼 스튜디오가 어떻게 든 그렇게하지 못하게하지 않는 한 모든 방식이 어리 석습니다.
Jari Komppa

글쎄, 나도 그것을 믿을 수는 없지만 PC에 "Windows 8"브랜드가 가장 많은 터치 스크린을 가지고 있고 터치 스크린으로 게임을 지원하는 DirectX로 작성된 게임을 본 적이 있기 때문에 가능하다고 생각합니까?
LaVolpe

그래도 dx9로 "modern ui"앱을 만들 수 없을 것입니다.
Jari Komppa

1
D3D 객체는 항상 COM 객체였습니다. 원시 포인터를 사용하지 않고 스마트 COM 포인터에 배치하는 것이 항상 가능했습니다.

답변:


12

, Windows 8은 DirectX 9를 지원합니다.

개발을 위해 이전 DirectX SDK는 더 이상 사용되지 않지만 Visual Studio 2012에 포함 된 새로운 Windows 8 SDK 내에 필요한 모든 라이브러리와 헤더가 있습니다. 문제없이 "오래된 방식"으로 갈 수 있습니다. . 일부 디버깅 또는 고급 D3DX 라이브러리에 PIX가 필요한 경우 이전 DXSDK 가 Windows 8 SDK에 없으므로 다시 설치해야합니다 .

그러나 이것은 일반 오래된 데스크톱 앱에만 유효합니다. Metro 스타일 앱의 경우 Microsoft의 Chuck Walbourn이 다음과 같이 말합니다 .

Metro 스타일 응용 프로그램에는 Direct3D9 및 Direct3D9Ex가 지원되지 않습니다. Metro 스타일 응용 프로그램과 함께 DirectX SDK를 사용하는 것은 권장되지 않습니다. http://msdn.microsoft.com/en-us/library/ee663275.aspx를 참조 하십시오 .

Direct3D 9 코드베이스를 Direct3D 11로 포팅하는 데 도움이되는 많은 리소스가 있습니다. Direct3D 11의 API가 Direct3D 10과 매우 유사하기 때문에 Direct3D 9에서 Direct3D 10.x로 포팅하기위한 대부분의 자료가 여기에 완전히 적용됩니다.

http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx를 참조하십시오 . Windows to Reality : 게임에서 Direct3D 10 그래픽을 최대한 활용하기 프레젠테이션은 과거에 개발자가 겪었던 수많은 함정과 성능 문제를 다루므로 Direct3D 10의 차이점을 요약 한 DirectX 11 기술 업데이트를 검토하십시오. .x 및 Direct3D 11.

MSDN에는 http://msdn.microsoft.com/en-us/library/ff476190.aspx 포팅 가이드가 있으며 http://msdn.microsoft.com/en-us/library/bb205073.aspx 를 참조 하십시오 . Direct3D 9에서 Direct3D 11로 직접 이동

Metro 스타일 앱에는 D3D9를 직접 사용할 수 없습니다. 그러나 D3D_FEATURE_LEVEL_9_3레거시 하드웨어를 지원 하려면 D3D11을 사용하고 일부 기능 수준 (예 :)으로 제한 할 수 있습니다 .


와우, 답변 감사합니다. 보시다시피 훌륭한 연구를
하셨습니다

글쎄요, 실제로는 지금 막 일하고 있습니다.;)
Laurent Couvidou

1
VS 2012와 함께 제공되는 win8 SDK AFAIK는 더 이상 D3D11X * 헤더를 제공하지 않으며 D3D11 * 만 제공합니다. 이렇게하면 파일에서 셰이더를로드하고 한 번의 함수 호출로 컴파일하는 것과 같은 많은 유틸리티 함수가 없어집니다.

과연. "현재 D3DX11 사용을위한 대체 기술에는 DirectXTex 및 DirectXTK가 포함됩니다. D3DXMath는 DirectXMath로 대체됩니다." 지금까지 테스트되지 않았습니다.
Laurent Couvidou

3

Windows 8은 Windows 7 및 Windows Vista와 동일한 Direct3D 9 응용 프로그램을 기본적으로 지원합니다. Direct3D 9는 레거시이며 Direct3D 9 기반 게임에 잠재적으로 영향을 줄 수있는 몇 가지 compat 문제가 있지만 Windows 7에서와 거의 비슷하게 작동합니다.

Windows 8에서 Direct3D 9를 사용한 개발은 Windows 7에서보다 다소 어렵습니다. 표준 Direct3D 9 헤더는 Windows 8.0 SDK (VS 2012에 포함)의 일부이지만 D3DX9는 포함되어 있지 않습니다. Direct3D 9 디버그 런타임은 Windows 8에서 지원되지 않습니다. Windows 8에서 레거시 DirectX SDK를 사용할 수는 있지만이를 설치하는 데 많은 어려움이 있습니다.

Windows 7 및 Windows 8에서 새 응용 프로그램을 작성하는 데 사용하기 위해 권장되는 API는 Direct3D 11입니다. 이는 Win32 데스크톱 응용 프로그램과 Windows Store 응용 프로그램 모두에서 작동합니다. 또한 Windows 8.x SDK를 사용하고 DirectX SDK를 사용하지 않는 것이 좋습니다.

이 주제에 대한 많은 게시물 은 Windows 용 게임 및 DirectX SDK 를 참조하십시오 .


Windows XP 서비스 팩 1보다 최신 버전의 Windows에는 "DirectX"를 설치하지 마십시오. "DirectX 최종 사용자 런타임"패키지는 Windows XP SP2, Windows Vista, Windows 7 및 Windows 8.x에 설치되지만 그것은 결코 "다이렉트"를 설치하지 않습니다. 현재 레거시 DirectX SDK (XINPUT 1.3, XAudio 2.7, D3DX 등)의 선택적 비트 인 일부 도우미 DLL 만 배포합니다. Direct3D, DirectInput, DirectSound 등은 공식 서비스 팩 또는 Windows Update 릴리스의 일부로 만 업데이트됩니다. 링크
척 Walbourn

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.