Да , Windows 8 поддерживает DirectX 9.
Для разработки старый DirectX SDK теперь устарел , но у вас будут все необходимые библиотеки и заголовки в новом Windows 8 SDK, который входит в состав Visual Studio 2012. Вы можете пойти по «старому пути» без проблем , Если вам нужна PIX для некоторой отладки или высокоуровневая библиотека D3DX, вам придется снова установить старый DXSDK, поскольку этого нет в Windows 8 SDK.
Однако это действительно только для простых старых настольных приложений. Что касается приложений в стиле Metro, я позволю Чаку Уолбурну из Microsoft сказать :
Direct3D9 и Direct3D9Ex не поддерживаются для приложений в стиле Metro. Использование DirectX SDK с приложениями в стиле Metro не рекомендуется и не поддерживается. См.
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 to Reality: получение максимальной отдачи от графики 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 напрямую для приложений в стиле Metro. Но вы можете использовать D3D11 и ограничить себя некоторым уровнем функций (например D3D_FEATURE_LEVEL_9_3
), если вы хотите поддерживать устаревшее оборудование.