Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Graphics Device Interface
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Version history== ===Early versions=== GDI was present in the initial release of Windows. MS-DOS programs had manipulated the graphics hardware using [[software interrupt]]s (sometimes via the [[Video BIOS]]) and by manipulating [[video memory]] directly. Code written in this way expects that it is the only user of the video memory, which was not tenable on a [[Computer multitasking|multi-tasked environment]], such as Windows. The ''[[BYTE]]'' magazine, in December 1983, discussed Microsoft's plans for a system to output graphics to both printers and monitors with the same code in the forthcoming first release of Windows.<ref name="butler198312">{{cite news | url=https://archive.org/stream/byte-magazine-1983-12/1983_12_BYTE_08-12_Easy_Software#page/n49/mode/2up | title=Device-Independent Graphics Output for Microsoft Windows | work=BYTE | date=December 1983 | access-date=20 October 2013 | author=Butler, John | pages=49}}</ref> On [[Windows 3.1x]] and [[Windows 9x]], GDI can use [[Bit blit]] features for 2D acceleration, if suitable [[graphics card]] driver is installed.<ref>{{Cite web|url=https://www.dosdays.co.uk/media/cirrus_logic/CL-GD543X_Applications_and_Eratta_Book_Apr94.pdf|title=CL-GD543X Applications and Errata Book - Revision 1.2|publisher=[[Cirrus Logic]]|date=April 1994|access-date=January 4, 2025}}</ref> ===Windows XP=== With the introduction of [[Windows XP]], '''GDI+''' complemented GDI. GDI+ has been written in C++. It adds anti-aliased 2D graphics, floating point coordinates, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like [[JPEG]] and [[Portable Network Graphics|PNG]], and support for composition of [[affine transformation]]s in the 2D view pipeline. GDI+ uses [[RGBA]] values to represent color. Use of these features is apparent in Windows XP components, such as [[Microsoft Paint]], [[Windows Picture and Fax Viewer]], Photo Printing Wizard, and the My Pictures Slideshow screensaver. Their presence in the basic graphics layer greatly simplifies implementations of vector-graphics systems such as [[Adobe Flash]] or [[Scalable Vector Graphics|SVG]]. Besides, [[.NET Framework]] provides a managed interface for GDI+ via the <code>System.Drawing</code> [[namespace]]. While GDI+ is included with Windows XP and later, the GDI+ dynamic library can also be shipped with an application and used on older versions of Windows.<ref>[http://www.microsoft.com/downloads/details.aspx?FamilyId=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&displaylang=en Platform SDK Redistributable: GDI+]</ref> Because of the additional text processing and resolution independence capabilities in GDI+, the CPU undertakes text rendering.<ref>{{cite web|url=http://blogs.msdn.com/directx/archive/2009/05/12/2d-drawing-apis-in-windows.aspx |title=2D Drawing APIs in Windows - |work=DirectX Developer Blog |publisher=MSDN Blogs |date=May 12, 2009 |access-date=July 19, 2012}}</ref> The result is an order of magnitude slower than the [[Hardware acceleration|hardware-accelerated]] GDI.<ref>{{cite web |url=http://blogs.msdn.com/cjacks/archive/2006/05/19/gdi-vs-gdi-text-rendering-performance.aspx |title=GDI vs. GDI+ Text Rendering Performance |last=Jackson |first=Chris |work=Chris Jackson's Semantic Consonance |publisher=Microsoft }}</ref> Chris Jackson published some tests indicating that a piece of text rendering code he had written could render 99,000 glyphs per second in GDI, but the same code using GDI+ rendered 16,600 glyphs per second. GDI+ is similar (in purpose and structure) to [[Apple Inc.|Apple]]{{'}}s ''[[QuickDraw GX]]'' subsystem, and the open-source ''[[libart]]'' and [[Cairo (graphics)|Cairo]] libraries. ===Windows Vista=== In Windows Vista, all Windows applications including GDI and GDI+ applications run in the new compositing engine, [[Desktop Window Manager]] (DWM), which is hardware-accelerated. As such, the GDI itself is no longer hardware-accelerated.<ref>[http://msdn.microsoft.com/en-us/library/windows/desktop/ff729480 MSDN: Comparing Direct2D and GDI Hardware Acceleration]</ref><ref name="Greg SchechterBlog">[http://blogs.msdn.com/greg_schechter/archive/2006/03/10/549310.aspx GDI is not hardware accelerated in Windows Vista]</ref><ref>[http://blogs.msdn.com/seema/archive/2006/10/25/layered-windows-sw-is-sometimes-faster-than-hw.aspx Layered windows...SW is sometimes faster than HW]. Avalite on MSDN Blogs.</ref> Because of the nature of the composition operations, window moves can be faster or more responsive because underlying content does not need to be re-rendered by the application.<ref name="Greg SchechterBlog" /> ===Windows 7=== [[Windows 7]] includes GDI hardware acceleration for [[blitting]] operations in the [[Windows Display Driver Model#WDDM 1.1|Windows Display Driver Model v1.1]]. This improves GDI performance and allows DWM to use local video memory for compositing, thereby reducing system [[memory footprint]] and increasing the performance of graphics operations. Most [[Geometric primitive|primitive]] GDI operations are still not hardware-accelerated, unlike [[Direct2D]]. GDI+ continues to rely on software rendering in Windows 7.<ref name="Direct2D_intro">{{cite web |url=https://blogs.technet.microsoft.com/thomasolsen/2008/10/29/introducing-the-microsoft-direct2d-api/ |title=Introducing the Microsoft Direct2D API |author=Thomas Olsen |date=October 29, 2008}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)