DirectX — это набор API функций, разработанных для решения

advertisement
DirectX — это набор API функций, разработанных для решения задач, связанных с
игровым и видеопрограммированием под Microsoft Windows. Наиболее широко
используется при написании компьютерных игр. Пакет средств разработки DirectX под
Microsoft Windows бесплатно доступен на сайте Microsoft. Ранее DirectX вкладывался
разработчиками в дистрибутивы игр, но сейчас он включён в стандартный набор ПО
Windows. На данный момент самой свежей версией является DirectX 10.1. Зачастую,
свежие версии DirectX поставляются вместе с игровыми приложениями, так как DirectX
API обновляется достаточно часто, и версия, включённая в ОС Windows зачастую
является далеко не самой новой.
Практически все части DirectX API представляют собой наборы COM-совместимых
объектов.
В целом, DirectX подразделяется на:








DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:
o DirectDraw: интерфейс вывода растровой графики.
o Direct3D (D3D): интерфейс вывода трёхмерных примитивов.
DirectInput: интерфейс, используемый для обработки данных, поступающих с
клавиатуры, мыши, джойстика и пр. игровых контроллеров.
DirectPlay: интерфейс сетевой коммуникации игр.
DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)
DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.
DirectShow: интерфейс, используемый для ввода/вывода аудио и/или видео данных.
DirectSetup: часть, ответственная за установку DirectX.
DirectX Media Objects: реализует функциональную поддержку потоковых объектов
(например, энкодеры/декодеры)
[править] История
Изначально нацеленный на разработку видеоигр, DirectX стал популярен и в других
областях разработки программного обеспечения. К примеру, DirectX, наряду с OpenGL,
получил очень широкое распространение в инженерном/математическом ПО.
В 1994 году Microsoft была практически готова выпустить следующую версию Windows
— Windows 95. Главным фактором, определяющим, насколько популярна будет новая ОС,
являлся набор программ, которые можно будет запускать под её управлением. В Microsoft
пришли к выводу, что, пока разработчики видят DOS более подходящей для написания
игровых приложений, коммерческий успех новой ОС весьма сомнителен.
DOS позволяла разработчику получить прямой доступ к видеокарте,
клавиатуре/мыши/джойстику и прочим частям системы, в то время как Windows 95, с её
защищённой моделью памяти, предоставляла более стандартизованный, но в то же время
весьма ограниченный доступ к устройствам. Microsoft нуждались в новом способе дать
разработчику всё, что ему необходимо. Eisler, St. John, and Engstrom решили эту проблему,
назвав само решение DirectX.
Первый релиз DirectX был выпущен в сентябре 1995 года, под названием «Windows Game
SDK».
Ещё до появления DirectX, Microsoft включила OpenGL в ОС Windows NT. Direct3D
позиционировался как замена OpenGL в игровой сфере. Отсюда берёт своё начало
«священная война» между сторонниками кросс-платформенной OpenGL и доступной
лишь в Windows и Windows NT Direct3D. Так или иначе, остальные части DirectX очень
часто комбинируются с OpenGL в компьютерных играх, так как OpenGL как таковой не
подразумевает функциональность уровня DirectX (например, доступ к
клавиатуре/джойстику/мыши, поддержка звука, игры по сети и т. д.).
DirectX является базой для Xbox API. Xbox API схож с DirectX 8.1, но обновление версии,
как и на других консолях, невозможно.
В 2002 году, Microsoft выпустила DirectX 9 с улучшенной и расширенной поддержкой
шейдеров. С 2002 года DirectX неоднократно обновлялся. В августе 2004 года в DirectX
была добавлена поддержка шейдеров версии 3.0 (DirectX 9.0c).
В апреле 2005 интерфейс DirectShow был перемещён в Microsoft Platform SDK.
[править] Хронология версий DirectX
Версия
DirectX
Логотип
Номер версии
Операционная система
Дата
релиза
30
сентября
1995
DirectX 1.0
4.02.0095
DirectX 2.0
/ 2.0a
4.03.00.1096
Windows 95 OSR2 и Windows
NT младше 4.0
5 июня
1996
DirectX 3.0
/ 3.0a
4.04.0068 / 69
Windows NT 4.0 SP3
последняя поддерживаемая
версия DirectX для Windows NT
4.0
???, 1996
DirectX
4.0<
не выпущен
DirectX 5.0
4.05.00.0155
(RC55)
Доступен как бета для
Windows NT 5.0
16 июля
1997
DirectX 5.0
4.05.01.1721 /
1998
Windows 98
5 мая
1998
DirectX 6.0
4.06.00.0318
(RC3)
Windows 98 SE
последняя поддерживаемая
версия DirectX Media для
Windows NT 4.0
???, 1998
DirectX 6.1
4.06.02.0436
(RC0)
7 августа
1998
22
сентября
1998
DirectX 7.0
4.07.00.0700
(RC1)
DirectX 7.0a
4.07.00.0716
(RC1)
???, 1999
DirectX 8.0
4.08.00.0400
(RC10)
30
сентября
2000
DirectX 8.0a
4.08.00.0400
(RC14)
???, 2000
DirectX 8.1
4.08.01.0810
4.08.01.0881
(RC7)
DirectX
8.1b
4.08.01.0901
???, 2002
DirectX 9.0
4.09.0000.0900
24
декабря
2002
DirectX 9.0a
4.09.0000.0901
26 марта
2003
DirectX
9.0b
4.09.0000.0902
(RC2)
13
августа
2003
DirectX 9.0c
DirectX 9.0c
DirectX
9.0L
(включен в
состав
Windows
Vista)
Windows 2000 и Windows ME
Windows XP
Возможно, последняя
поддерживаемая версия
DirectX для Windows 95
Windows Server 2003
12
ноября
2001
4.09.0000.0904
(RC0)
Windows XP SP2
Возможно, последняя
поддерживаемая версия
DirectX для Windows 98SE и
Windows Me
9 августа
2004
4.09.0000.0904
Xbox 360
Совместим со всеми версиями
ОС Windows, с которыми
совместим 9.0c(RC0)
9
декабря
2005
4.09.0000.0905
(?)
Предоставляет
дополнительные интерфейсы
IDirect3D9Ex и
IDirect3DDevice9Ex с
функциональностью,
доступной лишь через LDDMдрайвера ОС Windows Vista.
DirectX 10
(включен в
состав
Windows
Vista)
6.0.6000.16386
DirectX
10.1
Service Pack 1 для Windows
6.00.6001.18000
Vista Windows XP SP3
DirectX 11
Первая версия для Windows
Vista. Информация по
Direct3D10
10
ноября
2006
4
февраля
2008
Официальный анонс состоялся
на Gamefest 2008. Информация
по Direct3D11
[править] Совместимость
Многие современные устройства имеют только DirectX-совместимые драйвера, иными
словами, пользователь должен установить DirectX для использования всех возможностей
устройства. На данный момент система обновления драйверов Windows Update позволяет
загружать только необходимые библиотеки, а не весь драйвер целиком.
DirectX обратно совместим с предыдущими версиями. Если приложение/игра использует
DirectX 6.0, оно будет работать и при установленном DirectX 9.0. Каждая последующая
версия DirectX включает в себя все предыдущие.
Поддерживаемые операционные системы:





Windows 98, Windows 98 Second Edition;
Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition,
Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3,
Windows 2000 Service Pack 4;
Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003
Datacenter x64 Edition, Windows Server 2003 Enterprise x64 Edition, Windows Server
2003 Standard x64 Edition, Windows Small Business Server 2003;
Windows XP, Windows XP 64-bit, Windows XP Home Edition, Windows XP Media
Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1,
Windows XP Service Pack 2, Windows XP Service Pack 3, Windows XP Starter Edition,
Windows XP Tablet PC Edition;
Windows Vista.
[править] Будущее DirectX
Последней текущей версией является DirectX 10.1, до Service Pack 1 на Windows Vista
стоял DirectX 10 изначально называвшийся «Windows Graphics Foundation», но позднее он
был переименован. Изменения в DirectX 10.1 в отличие от DirectX 10 касаются
графической составляющей — Direct3D. DirectX 10 представляет собой часть ОС Windows
Vista и использует отличную от DirectX 9.0 модель видео-драйвера. DirectX 10
предоставляет набор требований к аппаратной части - минимальный стандарт
функциональности, необходимой для того, чтобы аппаратное устройство было DirectXсовместимым. В августе 2008 был анонсирован DirectX 11. Были озвучены нововведения,
которые войдут в Direct3D11. Предварительная версия будет доступна в конце декабря с
обновлением DirectX SDK - будут доступны вся соответствующая документация и
примеры.
XNA — другой инструмент разработки от Microsoft, упрощающий разработку игровых и
мультимедиа-приложений, предоставляющий удобный путь интеграции с DirectX, HLSL и
др. инструментами, собранными в единую систему. Последние 2 года компания Microsoft
активно продвигает этот инструмент как средство разработки приложений для XBox 360,
PC, и, в скором времени, еще и Zune.
Download