DirectX
DirectX — это коллекция API, разработанных для простого и эффективного решения задач, связанных с игровым- и видеопрограммированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX свободно доступен на сайте Microsoft. Ранее DirectX вкладывался разработчиками в дистрибутивы игр, но сейчас он включен в стандартный набор ПО Windows. На данный момент самой свежей версией является DirectX 10. Зачастую, свежие версии DirectX поставляются с вместе с игровыми приложениями, так как DirectX API обновляется достаточно часто, и версия, включенная в ОС Windows зачастую является далеко не самой новой.
Содержание |
DirectX API 
Практически все части DirectX API представляют собой наборы COM-совместимых объектов.
В целом, DirectX подразделяется на:
- DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:
- DirectDraw: интерфейс вывода растровой графики (начиная с версии 8.0 — упразднен).
- Direct3D (D3D): интерфейс вывода трехмерных примитивов.
- DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
- DirectPlay: интерфейс сетевой коммуникации игр.
- DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)
- DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.
- DirectSetup: часть, ответственная за установку DirectX.
- DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, энкодеры/декодеры).
История 
Изначально нацелленый на разработку видеоигр, DirectX стал популярен и в других областях разработки программного обеспечения. К примеру, DirectX, наряду с OpenGL, получил очень широкое распространение в инженерном/математическом ПО.
В 1994 году Microsoft была практически готова выпустить следующую версию своей операционной системы — 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 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 | Логотип | Номер версии | Операционная система | Дата релиза |
---|---|---|---|---|
DirectX 1.0 | 4.02.0095 | ???, 1995? | ||
DirectX 2.0 / 2.0a | 4.03.00.1096 | Windows 95 OSR2 и NT 4.0< | ???, 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 | ???, 1997 | |
DirectX 5.0 | 4.05.01.1721 / 1998 | Windows 98 | ???, 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) | ???, 1999 | ||
DirectX 7.0 | 4.07.00.0700 (RC1) | Windows 2000 и ME | ???, 1999 | |
DirectX 7.0a | 4.07.00.0716 (RC1) | </td><td>???, 1999 | ||
DirectX 8.0 | 4.08.00.0400 (RC14) | ???, 2000 | ||
DirectX 8.1 | 4.08.01.0810 4.08.01.0881 (RC7) | Windows XP последняя поддерживаемая версия DirectX для Windows 95 | 12 ноября 2001 | |
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.0c | 4.09.0000.0904 | Xbox 360 Совместим со всеми версиями ОС Windows, с которыми совместим 9.0c(RC0) | 9 декабря, 2005 | |
DirectX 9.0L (включен в состав Windows Vista) | 4.09.0000.0905 (?) | Предоставляет дополнительный интерфейс IDirect3DDevice9Ex с функциональностью, доступной лишь через LDDM-драйвера ОС Windows Vista. | ? | |
DirectX 10 (включен в состав Windows Vista) | (?) | Первая версия для Windows Vista | 10 ноября, 2006 |
Совместимость 
Многие современные устройства имеют только DirectX-совместимые драйвера, иными словами, пользователь должен установить DirectX для использования всех возможностей устройства. На данный момент, Windows Update система обновления драйверов, позволяет загружать только необходимые библиотеки, а не весь драйвер целиком.
DirectX обратно совместим с предыдущими версиями. Если приложение/игра использует DirectX 6.0, оно будет работать и при установленном DirectX 9.0. Каждая последующая версия DirectX включает в себя все предыдущие.
Поддерживаемые операционные системы: 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 98, Windows 98 Second Edition, 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 Starter Edition, Windows XP Tablet PC Edition
Будущее DirectX 
Microsoft в настоящее время работает над серьезными изменениями в DirectX. Изначально называвшийся «Windows Graphics Foundation», он позднее был переименован в DirectX 10. DirectX 10 представляет собой часть ОС Windows Vista. DirectX 10 будет использовать отличную от DirectX 9.0 модель управления. DirectX 10 будет предоставлять набор требований к аппаратной части, минимальный стандарт функциональности, необходимой для того, чтобы аппаратное устройство было DirectX-совместимым.
XNA — другой инструмент разработки от Microsoft, упрощающий разработку игровых и мультимедиа-приложений, предоставляющий удобный путь интеграции с DirectX, HLSL и др. инструментами, собранными в единую систему.
Начиная с 2002 года, Microsoft выпускает версии DirectX, совместимые c Microsoft .NET. Это позволяет использовать все преимущества управляемых языков (C# или Visual Basic) при разработке приложений, использующих DirectX. Этот API известен как «Managed DirectX». Заявленная производительность — 98 % от обычной, неуправляемой версии.
См. также 
Ссылки 
- Знакомимся с DirectX 10 (русск.)
- Microsoft’s DirectX site
- Microsoft’s MSDN documentation & resource center for DirectX (для разработчиков)
- GameDev’s FAQ on DirectX
- FAQ on XNA
Информация и ресурсы сети для разработчиков 
- Gamedev.net’s DirectX Articles section
- Direct3D.net — Сайт Wolfgang Engel’а (Direct3D)
- Drunken Hyena — уроки, код, утилиты, игры
- Andy Pike’s DirectX8 Tutorials — охватывает 2D, 3D, звук, музыку, ввод
- CodeSampler.com — Примеры и уроки успользования Direct3D в программировании игр на C++ и C#
- Managed Direct3D — Direct3D, уроки на С#, Craig Andera.
- NeXe — Архив уроков NeXe (Direct3D 8), archive.org
- Managed Direct3D — Direct3D, уроки на С#, Pieter Germishuys
- Clootie graphics pages — Clootie graphics pages