DirectDraw (ddraw.dll) is an API that used to be a part of
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
. DirectDraw is used to accelerate
rendering of 2D
graphics
Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
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
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
. 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.
Because DirectDraw is a
2D API, it contains commands for 2D rendering and although it does not support
3D hardware acceleration, versions through to 7.0 of DirectDraw are tightly coupled to their respective version of Direct3D. In order to utilize 3D acceleration in Direct3D 7.0 and below, DirectDraw ''must'' be used in order to create an IDirect3D interface with the help of IDirectDraw7->''QueryInterface'', from which comes an IDirect3DDevice, and from there the remainder of the Direct3D API can be accessed and utilized. DirectDraw provides Textures (through Surfaces), Clippers, Palettes and Pixel Formats to Direct3D as well as the final presentation pass to display rendered images to the screen.
DirectDraw was introduced for
Windows Mobile
Windows Mobile is a discontinued mobile operating system developed by Microsoft for smartphones and personal digital assistants (PDA). Designed to be the portable equivalent of the Windows desktop OS in the emerging Mobile device, mobile/port ...
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, and it can be compiled in 64-bit, but they must use older DirectX interfaces (DirectX 7 and below).
Drivers from NVIDIA, AMD and Intel provide hardware accelerated support for many of DirectDraw's fundamental features. However, due to changes in Windows Desktop Manager (DWM) in recent Windows versions, features such as Overlays are no longer supported at all.
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.
Replacement
There has been a deterioration of Windows compatibility with old games that rely upon DirectDraw, with ''
Command & Conquer'', ''
Warcraft 2'', and ''
Theme Hospital'' among those affected. In newer Windows versions, some games will refuse to run under a 32-bit
bit depth (''
Dangerous Waters'' for example), others showing a black screen or glitching when switched out. Re-implementation of DirectDraw has been observed to fix these compatibility problems. Commonly used replacements include:
* WineD3D from
Wine
Wine is an alcoholic drink made from Fermentation in winemaking, fermented fruit. Yeast in winemaking, Yeast consumes the sugar in the fruit and converts it to ethanol and carbon dioxide, releasing heat in the process. Wine is most often made f ...
, which translates into
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
.
* cnc-ddraw and ts-ddraw from CnCNet, a ''Command & Conquer'' multiplayer network. Translates into
GDI
GDI may refer to:
Science and technology
* Gasoline direct injection, a type of fuel injection
* Graphics Device Interface, a component of Microsoft Windows
* Guanosine nucleotide dissociation inhibitor, a protein
Organisations
* Gabriel Dumont I ...
, 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.
See also
*
DirectDraw Surface
*
Direct2D
Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008 (with Platform Update ...
*
Direct3D
Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
*
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
*
QuickDraw
QuickDraw was the 2D graphics library and associated application programming interface (API) which is a core part of classic Mac OS. It was initially written by Bill Atkinson and Andy Hertzfeld. QuickDraw still existed as part of the libraries ...
References
External links
Microsoft API Reference for DirectDrawMicrosoft API Overview for DirectDraw
Draw DirectDraw
Graphics libraries
Microsoft application programming interfaces
{{windows-stub