DirectDraw (ddraw.dll) является устаревшим API , который используется , чтобы быть частью Microsoft «s DirectX API . DirectDraw используется для ускорения рендеринга 2D- графики в приложениях. DirectDraw также позволяет приложениям работать в полноэкранном режиме или встраиваться в окно, как и большинство других приложений MS Windows. DirectDraw использует аппаратное ускорение, если оно доступно на клиентском компьютере . DirectDraw обеспечивает прямой доступ к видеопамяти , аппаратным наложениям , аппаратным блиттерам и переворачиванию страниц . Его видеопамятьmanager может с легкостью управлять видеопамятью, в полной мере используя возможности отображения и распаковки цветов различных типов видеоадаптеров .
DirectDraw - это 2D API. То есть он содержит команды для 2D-рендеринга и не поддерживает аппаратное ускорение 3D . Программист может использовать DirectDraw для рисования 3D-графики, но рендеринг будет медленным по сравнению с API, таким как Direct3D, который поддерживает аппаратное ускорение 3D.
DirectDraw был представлен для Windows Mobile в Windows Mobile 5.0, заменив графический компонент GAPI , который тогда был объявлен устаревшим. [1]
DirectDraw устарел с версии 7. С выпуском DirectX версии 8.0 DirectDraw был объединен в новый пакет под названием DirectX Graphics , который расширил Direct3D с помощью нескольких дополнений DirectDraw API. Программисты по-прежнему могут использовать DirectDraw, но они должны использовать более старые интерфейсы DirectX (DirectX 7 и ниже).
С выпуском Windows Vista DirectDraw больше не имеет дело с 2D-графикой с аппаратным ускорением, а вместо этого стал уровнем совместимости, реализованным с помощью Direct3D.
В июне 2010 года DirectDraw был удален из пакета DirectX SDK [2], но в 2012 году DirectX SDK был объединен с Windows Platform SDK, и DirectDraw был снова включен.
Замена
Одновременно с прекращением поддержки DirectDraw произошло ухудшение совместимости Windows со старыми играми, которые полагались на этот старый API, включая Command & Conquer , Warcraft 2 и Theme Hospital . В более новых версиях Windows некоторые игры отказываются запускаться при 32- битной глубине , другие показывают черный экран или глючат при отключении. В результате повторная реализация DDraw жизненно важна для многих сообществ, все еще принимающих эти игры. Обычно используемые замены включают:
- WineD3D от Wine , что переводится на OpenGL . [3]
- cnc-ddraw и ts-ddraw из CnCNet, многопользовательской сети Command & Conquer. Переводится в GDI , OpenGL (с поддержкой GLSL ) или Direct3D 9. [4]
- DDrawCompat, оболочка для стандартного ddraw, исправляющая проблемные вызовы. [5] ddwrapper - более ранняя, не связанная с этим оболочка, которая делает то же самое. [6]
Смотрите также
Рекомендации
- ^ Саффитц, Майкл. "Вы уже перешли на DirectDraw?" . Блог группы разработчиков Windows Mobile . Проверено 23 апреля 2019 года .
- ^ «Графика и видео DirectX 8: новое начало» . gamedev.net. 2000-11-30. Архивировано из оригинала на 2007-06-04 . Проверено 23 апреля 2019 .
- ^ Доссена, Федерико. «WineD3D для Windows» . Федерико Доссена . Проверено 23 апреля 2019 года .
- ^ CnCNet (21 апреля 2019 г.). "cnc-ddraw: GDI, OpenGL и Direct3D 9 повторная реализация DirectDraw API для классических игр для лучшей совместимости с Windows XP, Vista, 7, 8, 10 и Wine" . GitHub . Проверено 23 апреля 2019 года .
- ^ narzoul (21 апреля 2019). «DDrawCompat: улучшения совместимости и производительности DirectDraw для Windows Vista, 7, 8 и 10» . GitHub . Проверено 23 апреля 2019 года .
- ^ Акрит. "ddwrapper" . bitpatch.com .
Внешние ссылки
- Справочник Microsoft API для DirectDraw
- Обзор Microsoft API для DirectDraw