DirectX

DirectX — группа API, специализирующаяся на решении определенных задач, связанных с программированием. Работает на платформе Microsoft Windows. В основном, используется в компьютерных играх. Установочный пакет DirectX под Microsoft Windows доступен на официальном сайте Microsoft бесплатно. Нередко новые версии DirectX поставляются в комплекте с игровыми приложениями.

DirectX API

Почти все элементы DirectX API являются, по своей сути, наборами COM-совместимых объектов.

DirectX состоит из:

  • DirectX Graphics. Это набор интерфейсов, который до версии DirectX 8.0 подразделялся на:
    • DirectDraw. Интерфейс для вывода растровой графики;
    • Direct3D (D3D). Интерфейс для вывода 3-мерных примитивов.
  • DirectInput. Интерфейс, который применяется для обработки данных от клавиатуры, мыши, джойстика и прочих игровых контроллеров.
  • DirectPlay. Интерфейс для сетевой коммуникации.
  • DirectSound. Интерфейс низкоуровневой работы со звуком (формат Wave).
  • DirectMusic. Интерфейс по воспроизведению музыки в форматах Microsoft.
  • DirectShow. Интерфейс, применяющийся для ввода/вывода аудио и/или видео информации.
  • DirectX Instruments. Данная технология дает возможность создавать и применять программные синтезаторы, построенные на основе мультимедийного API DirectX. Управлять этими програмами можно посредством MIDI, в основном, технология используется не сколько для обработки, столько для синтеза звука. Технология DXi имела большую популярность в 2001—2004 гг., в частности, широко использовалась в программных продуктах Cakewalk, однако с течением времени отдала пальму первенства технологии VST от компании Steinberg.
  • DirectSetup. Установочная часть DirectX.
  • DirectX Media Objects. Функциональная поддержка потоковых объектов (кодировщики/декодировщики).
  • Direct2D. Вывод 2-мерной графики.

История DirectX

Первоначально DirectX был четко «заточен» под разработку видеоигр. Но по мере развития программного плагина, он стал популярен и в других областях. Так, наряду с OpenGL, DirectX стал весьма широко использоваться и в инженерном/математическом программном обеспечении.

В 1994 году компания Microsoft готовилась представить свою новую операционную систему Windows 95. Ключевым фактором, определяющим уровень популярности новой разработки, являлся тот набор программ, которые пользователь смог бы запускать на ее базе. Специалисты Microsoft пришли к выводу, что, до тех пор, пока разработчики игр находят DOS более подходящей платформой для создания игровых приложений, успех новой операционной системы остается призрачным.

В рамках DOS, разработчики могли получить прямой доступ к видеокарте, клавиатуре/мыши/джойстику и другим элементам системы, тогда как Windows 95 обладала защищенной моделью памяти и обеспечивала стандартизованный и ограниченный доступ к устройствам. Компания Microsoft искала новый способ привлечения разработчиков в новую платформу. Инженеры Айслер (Eisler), Сэйнт Джон (St. John), и Энгстром (Engstrom) решили данную проблему путем создания DirectX, первый релиз которого состоялся в сентябре 1995 года. Правда, тогда решение получило другое название: «Windows Game SDK».

До рождения DirectX, компания Microsoft внедрила OpenGL в операционную систему Windows NT. Direct3D представлял собой замену OpenGL, что касается игровой среды. Так начался конфликт между кросс-платформенной OpenGL-технологии и технологии Direct3D, доступной только для операционных систем Windows. Однако, несмотря на это, частично 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

Номер версии

ОС

Дата выхода

DirectX 1.0

4.02.0095

Windows 95a

30 сентября 1995

DirectX 2.0 / 2.0a

4.03.00.1096

Windows 95 OSR 2 и Windows NT младше 4.0

5 июня 1996

DirectX 3.0 / 3.0a

4.04.0068 / 69

Windows 95 OSR 2.5 и Windows NT 4.0 SP3.

Последняя поддерживаемая версия DirectX для Windows NT 4.0

15 сентября 1996

DirectX 4.0<

не выпущен

 

 

DirectX 5.0

4.05.00.0155 (RC55)

Бета для Windows NT 4.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 а также он был в Dreamcast

7 августа 1998

DirectX 6.1

4.06.02.0436 (RC0)

Windows 95/98/98SE

3 февраля 1999

DirectX 7.0

4.07.00.0700 (RC1)

Windows 2000 и Windows ME

22 сентября 1999

DirectX 7.0a

4.07.00.0716 (RC1)

Windows 95/98/98SE/2000

1999

DirectX 8.0

4.08.00.0400 (RC10)

Windows 95/98/98SE/ME/2000

30 сентября 2000

DirectX 8.0a

4.08.00.0400 (RC14)

Последняя поддерживаемая версия DirectX для Windows 95

7 ноября 2000

DirectX 8.1

4.08.01.0810

4.08.01.0881 (RC7)

Windows XP

12 ноября 2001

DirectX 8.1b

4.08.01.0901

 

???, 2002

DirectX 8.2

4.08.02.0134 (4.09.0000.0134)

 

???, 2002

DirectX 9.0

4.09.0000.0900

Windows Server 2003

24 декабря 2002

DirectX 9.0a

4.09.0000.0901

 

26 марта 2003

DirectX 9.0b

4.09.0000.0902 (RC2)

 

13 августа 2003

DirectX 9.0c

4.09.0000.0904 (RC0)

Windows XP SP2.

Последняя поддерживаемая версия DirectX для Windows 98SE и Windows Me

9 августа 2004

DirectX 9.0L

4.09.0000.0905 

Дополнительные интерфейсы IDirect3D9Ex и IDirect3DDevice9Ex, обладающие функциональностью, доступной через LDDM-драйверы операционной системы Windows Vista.

DirectX 10 (включен в состав Windows Vista)

6.0.6000.16386

Первая версия для Windows Vista.

10 ноября 2006

DirectX 10.1

6.00.6001.18000

Service Pack 1 для Windows Vista, Windows Server 2008

4 февраля 2008

DirectX 11 (включен в состав Windows 7)

6.01.7600.16385

Windows Vista Service Pack 2, Windows 7

22 июля 2009

DirectX 11.1 (включен в состав Windows 8)

 

Windows 8

 


Совместимость

Большинство современных устройств оснащено DirectX-совместимыми драйверами. Все, что остается пользователю - просто утановить пакет DirectX и начать использовать устройство. Сегодня в системе обновления драйверов Windows Update реализована функция загрузки исключительно необходимых пользователю библиотек, а не полностью всего драйвера.

DirectX совместим со следующими ОС:

  • Windows 95, Windows 98, Windows 98 Second Edition, Windows Millenium Edition;
  • Windows NT 4.0, 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;
  • Windows 7;
  • Windows Server 2008, Windows Server 2008 R2;
  • Windows 8.

Перспективы DirectX

DirectX 11 - последняя выпущенная версия DirectX. До выхода 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 имеет определенный набор требований к аппаратной части компьютера.

XNA — новый инструмент от компании Microsoft, который способен упростить разработку игровых и мультимедиа-приложений, демонстрируя удобный путь интеграции с DirectX, HLSL и прочими инструментами. Последние годы, компания Microsoft занимается интенсивным продвижением данного инструмента по разработке приложений для Xbox 360, PC и Zune.

DirectX 11.1 входит в Windows 8, имеет поддержку WDDM 1.2 для увеличения производительности, с улучшенной интеграцией Direct2D, Direct3D, и DirectCompute, и включает в себя DirectXMath, XAudio2, и XInput библиотеки из XNA framework.

#