Windows 8 prend-il toujours en charge DirectX 9?


9

Windows 8 prend-il en charge DirectX 9? Parce que je regardais des exemples écrits en C ++ et DirectX 9 pour Windows 8. Ce n'était pas ça, comme je le sais (regardez ici http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ). Par exemple, l'initialisation de DirectX avec COM:

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

C'est juste bizarre parce que je le sais à l'ancienne:

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(J'espère que vous comprenez ce que je veux dire)

J'espère que cela n'a pas complètement changé en raison de la sortie de leur nouveau système d'exploitation.


1
Je trouverais très difficile d'imaginer que Microsoft abandonnerait soudainement le support de 90% + de tous les jeux sur la plate-forme Windows. Je trouve également encore plus difficile de croire que les gens ne seraient pas enragés par une telle décision à l'heure actuelle.
Jari Komppa

Cela dit, il est possible que les derniers SDK n'incluent pas les en-têtes / bibliothèques dx9; Je n'ai pas vérifié. Cela ne signifie pas que vous ne pouvez pas utiliser le dx9 sdk comme avant. À moins, bien sûr, que le dernier studio visuel ne vous interdise de le faire, mais ce serait tout à fait idiot.
Jari Komppa

Eh bien, je ne peux pas le croire aussi, mais je pense que c'est possible parce que pour obtenir la marque "Windows 8", le PC a le plus un écran tactile et avez-vous déjà vu un jeu écrit en DirectX qui prend en charge les jeux avec écran tactile?
LaVolpe

Je suis à peu près sûr que vous ne pourrez pas créer d'applications "d'interface utilisateur moderne" avec dx9.
Jari Komppa

1
Les objets D3D ont toujours été des objets COM - ne pas utiliser de pointeurs bruts mais les placer dans un pointeur COM intelligent a toujours été possible.

Réponses:


12

Oui , Windows 8 prend en charge DirectX 9.

Pour le développement, l'ancien SDK DirectX est désormais obsolète , mais vous disposerez de toutes les bibliothèques et en-têtes dont vous avez besoin dans le nouveau SDK Windows 8, fourni avec Visual Studio 2012. Vous pouvez opter pour «l'ancienne» sans problème . Si vous avez besoin de PIX pour un débogage ou de la bibliothèque D3DX de haut niveau, vous devrez réinstaller l'ancien DXSDK, car il ne se trouve pas dans le SDK Windows 8.

Cependant, cela n'est valable que pour les anciennes applications de bureau. Pour les applications de style Metro, je vais laisser Chuck Walbourn de Microsoft parler :

Direct3D9 et Direct3D9Ex ne sont pas pris en charge pour les applications de style Metro. L'utilisation du SDK DirectX avec des applications de style Metro n'est ni recommandée ni prise en charge. Voir http://msdn.microsoft.com/en-us/library/ee663275.aspx .

Il existe un certain nombre de ressources disponibles pour vous aider à porter une base de code Direct3D 9 vers Direct3D 11. La majorité du matériel de portage de Direct3D 9 vers Direct3D 10.x s'applique pleinement ici puisque l'API de Direct3D 11 est très similaire à Direct3D 10.

Voir http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx . N'oubliez pas de consulter la présentation Windows to Reality: Tirer le meilleur parti des graphiques Direct3D 10 dans vos jeux, car elle couvre de nombreux pièges et problèmes de performance rencontrés par les développeurs par le passé, et la mise à jour technologique DirectX 11 pour un résumé des différences entre Direct3D 10 .x et Direct3D 11.

MSDN a également un guide de portage http://msdn.microsoft.com/en-us/library/ff476190.aspx qui vous indique http://msdn.microsoft.com/en-us/library/bb205073.aspx pour passant directement de Direct3D 9 à Direct3D 11.

Désolé, vous ne pouvez pas utiliser D3D9 directement pour les applications de style Metro. Mais vous pouvez utiliser D3D11 et vous limiter à un certain niveau de fonctionnalité (par exemple D3D_FEATURE_LEVEL_9_3) si vous souhaitez prendre en charge le matériel hérité.


Wow, merci pour ta réponse. Comme je vois que vous avez fait une grande recherche
LaVolpe

Eh bien, pas vraiment, il se trouve que j'y travaille en ce moment;)
Laurent Couvidou

1
AFAIK, le SDK win8 fourni avec VS 2012 ne fournit plus d'en-têtes D3D11X * - uniquement D3D11 *. Cela vous laisse sans un certain nombre de fonctions utilitaires, comme le chargement de shaders à partir d'un fichier et leur compilation en un seul appel de fonction.

En effet. Ce que Microsoft en dit: "Sachez que les technologies de remplacement pour les utilisations actuelles de D3DX11 incluent DirectXTex et DirectXTK. D3DXMath est remplacé par DirectXMath." Pas testé jusqu'à présent.
Laurent Couvidou

3

Windows 8 a la même prise en charge de base pour les applications Direct3D 9 que celle présente dans Windows 7 et Windows Vista. Direct3D 9 est hérité et il y a certainement des problèmes de compatibilité qui peuvent potentiellement avoir un impact sur les jeux basés sur Direct3D 9, mais ils fonctionnent plus ou moins aussi bien que sur Windows 7.

Le développement avec Direct3D 9 sur Windows 8 est un peu plus difficile qu'il ne l'était sur Windows 7. Les en-têtes Direct3D 9 standard font partie du SDK Windows 8.0 (inclus avec VS 2012), mais cela n'inclut pas D3DX9. Le runtime de débogage Direct3D 9 n'est pas pris en charge sous Windows 8. Vous pouvez utiliser le SDK DirectX hérité sous Windows 8, mais il y a un certain nombre de difficultés à l'installer et des limitations.

L'API recommandée à utiliser pour écrire de nouvelles applications sur Windows 7 et Windows 8 est Direct3D 11. Cela fonctionne pour les applications de bureau Win32 et les applications Windows Store. En outre, il est recommandé d'utiliser le SDK Windows 8.x et de ne pas utiliser le SDK DirectX.

Voir Jeux pour Windows et le SDK DirectX pour de nombreux articles sur ce sujet.


Notez que vous n'installez "DirectX" sur aucune version de Windows plus récente que Windows XP Service Pack 1. Le package "DirectX End-User Runtime" s'installera sur Windows XP SP2, Windows Vista, Windows 7 et Windows 8.x mais il n'installe jamais "DirectX". Il déploie simplement des DLL d'assistance qui sont des bits facultatifs du SDK DirectX désormais hérité: XINPUT 1.3, XAudio 2.7, D3DX, etc. Direct3D, DirectInput, DirectSound, etc. link
Chuck Walbourn

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.