DirectDraw (ddraw.dll) is an API that used to be a part of
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
'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 way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
. 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 data, as in design and manufacture ...
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
Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...
if it is available on the client's
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
. DirectDraw allows direct access to
video memory
Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxide ...
,
hardware overlay
In computing, hardware overlay, a type of video overlay, provides a method of rendering an image to a display screen with a dedicated memory buffer inside computer video hardware. The technique aims to improve the display of a fast-moving video im ...
s, hardware
blitters, and
page flipping. Its
video memory
Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxide ...
manager can manipulate video memory with ease, taking full advantage of the
blitting
Bit blit (also written BITBLT, BIT BLT, BitBLT, Bit BLT, Bit Blt etc., which stands for ''bit block transfer'') is a data operation commonly used in computer graphics in which several bitmaps are combined into one using a ''boolean function''.
The ...
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
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 a ...
which does support 3D hardware acceleration.
DirectDraw was introduced for
Windows Mobile
Windows Mobile is a discontinued family of mobile operating systems developed by Microsoft for smartphones and personal digital assistants.
Its origin dated back to Windows CE in 1996, though Windows Mobile itself first appeared in 2000 as Pock ...
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.
Replacement
There has been a deterioration of Windows compatibility with old games that rely upon DirectDraw, with
Command & Conquer
''Command & Conquer'' (''C&C'') is a real-time strategy (RTS) video game franchise, first developed by Westwood Studios. The first game was one of the earliest of the RTS genre, itself based on Westwood Studios' influential strategy game ''Dune I ...
,
Warcraft 2, and
Theme Hospital
''Theme Hospital'' is a business simulation game developed by Bullfrog Productions and published by Electronic Arts in 1997 for MS-DOS and Microsoft Windows compatible PCs in which players design and operate a privately owned hospital with the ...
among those affected. In newer Windows versions, some games will refuse to run under a 32-bit
bit depth (
Dangerous Waters Dangerous Waters may refer to:
* Dangerous Waters (video game)
* Dangerous Waters (1936 film), American film
* Dangerous Waters (1995 film)
''Dangerous Waters'' ( no, Farlig farvann) is a 1995 Norwegian action film directed by Lars Berg.
Refe ...
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 typically made from fermented grapes. Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different varieties of grapes and strains of yeasts are m ...
, which translates into
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
.
* 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
OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language. It was created by the OpenGL ARB (OpenGL Architecture Review Board) to give developers more direct control of the graphics pipelin ...
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
The DirectDraw Surface container file format (uses the filename extension ''DDS''), is a Microsoft format for storing data compressed with the previously proprietary S3 Texture Compression (S3TC) algorithm, which can be decompressed in hardware b ...
*
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 i ...
*
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 a ...
*
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", ...
References
External links
Microsoft API Reference for DirectDrawMicrosoft API Overview for DirectDraw
Draw DirectDraw
Graphics libraries
Microsoft application programming interfaces
{{windows-stub