Чи підтримує Windows 8 DirectX 9?


9

Чи підтримує Windows 8 DirectX 9? Оскільки я переглядав деякі зразки, написані на C ++ та DirectX 9, зроблені для Windows 8. Це було не так, як я це знаю (дивіться тут http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ). Наприклад, Inizialising DirectX з COM:

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

Це просто дивно, тому що я знаю це по-старому:

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(Сподіваюся, ви зрозуміли, що я хочу сказати)

Я сподіваюся, що він не змінився повністю завдяки випущеній новій ОС.


1
Мені дуже важко уявити, що microsoft раптом відмовиться від підтримки 90% + всіх ігор на платформі Windows. Мені також важче повірити, що люди до цього часу не будуть розлючені таким кроком.
Jari Komppa

При цьому можливо, що останні SDK не містять заголовки / бібліотеки dx9; Я не перевіряв. Це не означає, що ви не могли просто використовувати dx9 sdk, як раніше. Якщо, звичайно, остання візуальна студія якось забороняє вам це робити, але це було б безглуздо.
Jari Komppa

Ну, я також не можу в це повірити, але я думаю, що це можливо, тому що, щоб отримати "Windows 8" -обробку на ПК, у більшості є сенсорний екран, і ви коли-небудь бачили гру, написану на DirectX, яка підтримує ігри з сенсорним екраном?
LaVolpe

Я впевнений, що ви не зможете зробити "сучасні інтерфейси" додатків із dx9.
Jari Komppa

1
Об'єкти D3D завжди були об'єктами COM - не використовували необроблені покажчики, а натомість, завжди можна було розмістити їх у розумному покажчику COM.

Відповіді:


12

Так , Windows 8 підтримує DirectX 9.

Для розробки старий SDD DirectX тепер застарілий , але у вас будуть всі необхідні бібліотеки та заголовки в новому Windows 8 SDK, який постачається в комплекті з Visual Studio 2012. Ви можете без проблем піти по "старому шляху". . Якщо вам потрібна PIX для налагодження або бібліотека D3DX високого рівня, вам доведеться знову встановити старий DXSDK, оскільки цього немає в SDK для Windows 8.

Однак це справедливо лише для звичайних старих додатків для настільних ПК. Для програм у стилі метро я дозволяю Чак Уолборн від Microsoft говорити :

Direct3D9 та Direct3D9Ex не підтримуються для програм у стилі метро. Використання DirectX SDK з програмами в стилі метро не рекомендується і не підтримується. Дивіться http://msdn.microsoft.com/en-us/library/ee663275.aspx .

Існує ряд ресурсів, які допоможуть вам перенести базу коду Direct3D 9 в Direct3D 11. Більшість матеріалів для перенесення з Direct3D 9 в Direct3D 10.x тут повністю застосовується, оскільки API Direct3D 11 дуже подібний до Direct3D 10.

Дивіться http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx . Обов’язково перегляньте Windows на реальність: Максимум використання графіка Direct3D 10 у вашій презентації Ігор, оскільки вона охоплює численні підводні камені та проблеми щодо продуктивності, з якими розробники потрапляли в минулому, та оновлення технологій DirectX 11 для підсумків відмінностей між Direct3D 10 .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.

На жаль, ви не можете використовувати D3D9 безпосередньо для програм у стилі метро. Але ви можете використовувати D3D11 і обмежити себе деяким рівнем функцій (наприклад D3D_FEATURE_LEVEL_9_3), якщо ви хочете підтримувати застаріле обладнання.


Вау, дякую за вашу відповідь. Як я бачу, ви зробили чудове дослідження
LaVolpe

Ну не дуже, я просто зараз над цим працюю;)
Лоран Кувіду

1
AFAIK win8 SDK, що постачається з VS 2012, більше не постачає жодних заголовків D3D11X * - лише D3D11 *. Це залишає вас без ряду корисних функцій, як завантаження шейдерів з файлу та компілювання їх в один виклик функції.

Справді. Що з цього приводу говорить Microsoft: "Будьте в курсі, що технології заміни для поточного використання D3DX11 включають DirectXTex і DirectXTK. D3DXMath замінюється DirectXMath." Досі не перевірено.
Лоран Кувіду

3

Windows 8 має таку саму базову підтримку додатків Direct3D 9, що і в Windows 7 та Windows Vista. Direct3D 9 є застарілим і, безумовно, є деякі проблеми, що можуть вплинути на ігри на основі Direct3D 9, але вони більш-менш функціонують так само, як і в Windows 7.

Розробка з Direct3D 9 в Windows 8 трохи складніше, ніж у Windows 7. Стандартні заголовки Direct3D 9 є частиною пакета SDK для Windows 8.0 (включений до VS 2012), але це не включає D3DX9. Виконання налагодження Direct3D 9 не підтримується в Windows 8. Ви можете використовувати застарілий DirectX SDK в Windows 8, але існує ряд проблем, які встановлюються, і обмеження.

Рекомендований API для написання нових програм у Windows 7 та Windows 8 є Direct3D 11. Це працює як для настільних програм Win32, так і для додатків Windows Store. Також рекомендується використовувати пакет SDK для Windows 8.x, а не використовувати SDD DirectX.

Дивіться Ігри для Windows та DirectX SDK для багатьох публікацій на цю саму тему.


Зауважте, що ви не «встановлюєте DirectX» у будь-якій версії Windows, новішій за пакет оновлення Windows XP 1. Пакет «DirectX Runtime для кінцевого користувача» встановиться на Windows XP SP2, Windows Vista, Windows 7 та Windows 8.x, але він ніколи не встановлює "DirectX". Він просто розгортає деякі допоміжні DLL-файли, які є необов'язковими бітами з устарених тепер DirectX SDK: XINPUT 1.3, XAudio 2.7, D3DX і т.д. посилання
Чак Уолборн

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.