Введение
Старый API DirectDraw API DirectX от Microsoft (ddraw.dll) — это API, который ранее входил в состав API DirectX от Microsoft. DirectDraw используется для ускорения рендеринга 2D-графики в приложениях. DirectDraw также позволяет приложениям запускаться в полноэкранном режиме или встраиваться в окно, как и большинство других приложений MS Windows. DirectDraw использует аппаратное ускорение, если оно доступно на компьютере пользователя. DirectDraw обеспечивает прямой доступ к видеопамяти, аппаратному наложению, аппаратному ускорителю блочной передачи и перевороту страниц. Его менеджер видеопамяти может легко управлять видеопамятью, полностью используя возможности быстрого копирования и цветовой декомпрессии различных типов видеоадаптеров. DirectDraw — это 2D API, то есть он содержит команды для 2D-рендеринга и не поддерживает 3D-аппаратное ускорение. Программист может использовать DirectDraw для отрисовки 3D-графики, но рендеринг будет выполняться медленнее, чем при использовании API, такого как Direct3D, который поддерживает 3D-аппаратное ускорение. DirectDraw был представлен для Windows Mobile в Windows Mobile 5.0, заменив графический компонент GAPI, который впоследствии был устаревшим. С выпуском DirectX версии 8.0, DirectDraw был объединен в новый пакет под названием DirectX Graphics, который расширил Direct3D несколькими дополнениями API DirectDraw. Программисты все еще могут использовать DirectDraw, но им необходимо использовать более старые интерфейсы DirectX (DirectX 7 и ниже). В июне 2010 года DirectDraw был удален из пакета DirectX SDK, но в 2012 году DirectX SDK был объединен с Windows Platform SDK, и DirectDraw был включен повторно.
DirectDraw (ddraw. dll) is an API that used to be a part of Microsoft's DirectX API. DirectDraw is used to accelerate rendering of 2D graphics in applications. DirectDraw also allows applications to run fullscreen or embedded in a window such as most other MS Windows applications. DirectDraw uses hardware acceleration if it is available on the client's computer. DirectDraw allows direct access to video memory, hardware overlays, hardware blitters, and page flipping. Its video memory manager can manipulate video memory with ease, taking full advantage of the blitting and color decompression capabilities of different types of display adapters. DirectDraw is a 2D API. That is, it contains commands for 2D rendering and does not support 3D hardware acceleration. A programmer could use DirectDraw to draw 3D graphics, but the rendering would be slow compared to an API such as Direct3D which does support 3D hardware acceleration. DirectDraw was introduced for Windows Mobile in Windows Mobile 5.0, replacing the graphics component of GAPI, which was then deprecated. With the release of DirectX version 8.0, DirectDraw was merged into a new package called DirectX Graphics, which extended Direct3D with a few DirectDraw API additions. DirectDraw can still be used by programmers, but they must use older DirectX interfaces (DirectX 7 and below). In June 2010, DirectDraw was removed from the DirectX SDK package, but in 2012, the DirectX SDK was merged into the Windows Platform SDK, and DirectDraw was included once again.
Замена
Ухудшилась совместимость Windows со старыми играми, использующими DirectDraw, среди которых Command & Conquer, Warcraft 2 и Theme Hospital. В новых версиях Windows некоторые игры отказываются запускаться при 32-битной глубине цвета (например, Dangerous Waters), другие показывают черный экран или отображают графические артефакты при переключении. Перереализация DirectDraw позволяет решить эти проблемы совместимости. Наиболее распространенные замены включают: WineD3D от Wine, который преобразует вызовы в OpenGL. cnc ddraw и ts ddraw от CnCNet, многопользовательской сети для Command & Conquer, преобразуют вызовы в GDI, OpenGL (с поддержкой GLSL) или Direct3D 9. DDrawCompat – это обертка для оригинального ddraw, исправляющая проблемные вызовы. ddwrapper – более ранняя, независимая обертка, выполняющая ту же функцию.
WineD3D from Wine, which translates into OpenGL. cnc ddraw and ts ddraw from CnCNet, a Command & Conquer multiplayer network. Translates into GDI, OpenGL (with GLSL support), or Direct3D 9. DDrawCompat, a wrapper for the vanilla ddraw that corrects problematic calls. ddwrapper is an earlier, unrelated wrapper that does the same thing.