Monday, September 30, 2019

c++ - Does Windows 8 still support DirectX 9?



Is Windows 8 supporting DirectX 9? Because I was looking through some samples written in C++ and DirectX 9 made for Windows 8. It wasn't that, like I know it ( look here http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ). E.g. Inizialising DirectX with COM:


ComPtr dev;
ComPtr devcon;

It's just weird because I know it with the old way:


ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;

( I hope you understand what I want to tell )


I hope it hasn't change completely due the released their new OS.




Answer



Yes, Windows 8 does support DirectX 9.


For development, the old DirectX SDK is now deprecated, but you'll have all the libraries and headers you need within the new Windows 8 SDK, which comes included with Visual Studio 2012. You can go for the "old way" with no problem. If you need PIX for some debugging, or the high level D3DX library, you'll have to install the old DXSDK again, as this is not in the Windows 8 SDK.


However this is only valid for plain old desktop apps. For Metro-style apps, I'll let Chuck Walbourn from Microsoft speak:



Direct3D9 and Direct3D9Ex are not supported for Metro style applications. Use of the DirectX SDK with Metro style applications is not recommended or supported. See http://msdn.microsoft.com/en-us/library/ee663275.aspx.


There are a number of resources available to help you in porting a Direct3D 9 codebase to Direct3D 11. The majority of the material for porting from Direct3D 9 to Direct3D 10.x applies fully here since Direct3D 11's API is very similiar to Direct3D 10.


See http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx. Be sure to review the Windows to Reality: Getting the Most out of Direct3D 10 Graphics in Your Games presentation as it covers numerous pitfalls and performance issues developers have hit in the past, and DirectX 11 Technology Update for a summary of the differences between Direct3D 10.x and Direct3D 11.


MSDN has a porting guide as well http://msdn.microsoft.com/en-us/library/ff476190.aspx which points you to http://msdn.microsoft.com/en-us/library/bb205073.aspx for going directly from Direct3D 9 to Direct3D 11.




Sorry, you can't use D3D9 directly for Metro-style apps. But you can use D3D11 and limit yourself to some feature level (e.g. D3D_FEATURE_LEVEL_9_3) if you want to support legacy hardware.


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...