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
WinG
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!
{{Short description|Windows 3.x graphics API}} [[File:WinG Graphics Calibration Screen.png|thumb|The calibration screen used by WinG.]] {{other uses|Wing (disambiguation)}} In computing, '''WinG''' (pronounced ''Win Gee'') is an [[application programming interface]] that was designed to provide faster graphics performance on [[Windows 3.x]] [[operating environment]]s, and was initially positioned as a way to help game developers more easily port their DOS games to [[Microsoft Windows]],<ref name="gamasutra-hecker">{{cite web |url=https://www.gamedeveloper.com/programming/a-whirlwind-tour-of-wing |title=A Whirlwind Tour of WinG |last=Hecker |first=Chris |author-link=Chris Hecker |website=[[Gamasutra]] |date=1 June 1997 |access-date=2009-01-19 }}</ref> although it was quickly discontinued in favor of [[DirectX]]. ==Background== WinG fixed two problems. The first problem that WinG fixed was that Windows 3.x did not support creating Device Contexts (DCs) based on device independent bitmaps, only actual display devices. One major limitation of the [[Graphics Device Interface]] (GDI) DCs was that they were write-only. Data, once written, could not be retrieved. The second problem was that all GDI drawing was implemented in the Windows 3.x video drivers. This included the drawing of bitmaps. Obviously performance of such routines varied across drivers. [[Alex St. John]], one of the creators of [[DirectX]], said in a 2000 interview that, {{cquote|WinG was a technology being built by [[Chris Hecker]] in the research group, and at the time it was one of the small Microsoft [[Skunkworks project]]s, very low profile and off-the-wall. Basically it was fixing broken Windows drivers to make them run faster and more acceptably. Using it, we were actually able to create a video API that could run DOOM almost as fast under Windows as it did in DOS.<ref>{{cite web |url=http://www.firingsquad.com/features/alexstjohn/ |title=Alex St. John Interview |last=Colayco |first=Bob |date=7 March 2000 |publisher=firingsquad.com |archive-url=https://web.archive.org/web/20091006022255/http://www.firingsquad.com/features/alexstjohn/ |archive-date=6 October 2009 }}</ref>}} Microsoft announced WinG at the 1994 [[Game Developers Conference]], demonstrating it with a port by [[id Software]] of ''[[Doom (1993 video game)|Doom]]''.<ref name="cgw199407">{{Cite magazine |last1=Wilson |first1=Johnny L. |last2=Brown |first2=Ken |last3=Lombardi |first3=Chris |last4=Weksler |first4=Mike |last5=Coleman |first5=Terry |date=July 1994 |title=The Designer's Dilemma: The Eighth Computer Game Developers Conference |url=http://www.cgwmuseum.org/galleries/index.php?year=1994&pub=2&id=120 |magazine=Computer Gaming World |pages=26–31}}</ref> WinG was shipped on September 21, 1994.<ref>{{cite web |url=http://craig.theeislers.com/2006/02/directx_then_and_now_part_1.php |title=DirectX Then and Now (Part 1) |last=Eisler |first=Craig |date=February 20, 2006 |access-date=2008-01-19 |work=Craig's Musings |archive-date=2012-07-11 |archive-url=https://archive.today/20120711181236/http://craig.theeislers.com/2006/02/directx_then_and_now_part_1.php |url-status=dead }}</ref> WinG, while interesting, was still fundamentally based on drawing bitmaps in memory and outputting frames after the drawing was done. As a result, WinG was deprecated and [[DirectX]] was built. However, Windows NT 3.5 and Windows 95 introduced CreateDIBSection to provide support for creating DCs based on DIBs and video drivers also eventually improved. ==Implementation== WinG introduced a new type of DC called a WinGDC,<ref name="microsoft-125928">{{cite web |url=http://support.microsoft.com/kb/125928 |title=HOWTO: How to Mix GDI and WinG (MSKB125928) |work=Knowledge Base |publisher=[[Microsoft]] |access-date=2009-01-19 }}</ref> which allowed programmers to both read and write to it directly using [[device-independent bitmap]]s (DIBs) with the wingdib.drv driver. Effectively, it gave programmers the ability to do with Windows what they'd been doing without hardware access limitations in [[DOS]] for years. Programmers could write DIBs to the WinGDC, yet would still have access to the individual bits of the image data. This meant that fast graphics [[algorithms]] could be written to allow fast scrolling, overdraw, dirty rectangles, [[double buffering]], and other animation techniques. WinG also provided much better performance when [[blitting]] graphics data to physical graphics device memory. Since WinG used the DIB format, it was possible to mix original GDI API calls and WinG calls.<ref name="microsoft-125928"/> WinG would also perform a graphics hardware/driver profiling test on the first execution of the program in order to determine the best way to draw DIBs. This test showed a window full of red curved lines, sections of which would wobble as performance was tested. Once WinG had determined the fastest calls that did not cause graphics corruption, a profile would be saved so that the test would not need to be performed again. ==Support== WinG out-of-the-box support (i.e. as a separate API to Win32) was dropped in [[Windows 98]] Second Edition (which integrated [[DirectX]] 6), as it did nothing but pass through to the Win32 APIs that it was wrapping (including CreateDIBSection). WinG [[Dynamic-link library|DLL]]s were sometimes distributed with an application, at which point it merely became a matter of copying the files wing.dll, wing32.dll, wingde.dll, wingdib.drv and wingpal.wnd to the ''system32'' directory (for 32 bit Windows) or ''SysWOW64'' directory (for 64 bit Windows) to regain system-wide support. ==List of applications using WinG API== *[[Adobe Photoshop]] 3.0 (1994) *[[Adobe Photoshop]] 4.0 (1997) *''[[Alone in the Dark 3|Alone in the Dark: Ghosts in Town]]'' (1996) *''Bad Toys 3D'' (1995) *''[[Civilization (video game)#CivNet|CivNet]]'' (1995) *''[[Comix Zone]]'' (1995) *''[[Dark Seed II]]'' (1995) *''[[Doom (1993 video game)|Doom]]'' (1995) *''[[Disney's Animated Storybook|Disney's Animated Storybook: The Lion King]]'' (1994) *''[[Dust: A Tale of the Wired West]]'' (1995) *''[[Fury3]]'' (1995) *''[[Garfield: Caught in the Act]]'' (1996) *''[[Grant, Lee, Sherman: Civil War Generals 2|Grant - Lee - Sherman: Civil War 2: Generals]]'' (1997) *''[[Heroes of Might and Magic II]]'' (1996) *''[[Industry Giant]]'' (1997) *''[[Maui Mallard in Cold Shadow]]'' (1996) *''[[Microsoft Bob]]'' (1995) *''[[Microsoft Home|Microsoft Oceans]]'' (1995) *''[[Microsoft Arcade|Microsoft Return of Arcade]]'' (1996)<ref>[https://www.classicdosgames.com/game/Microsoft_Return_of_Arcade.html Microsoft Return of Arcade 1996 review: RGB Classic Games]</ref> *''[[Monopoly video games|Monopoly]]'' (Westwood Studios) (1995) *''[[Muppets Inside]]'' (1996) *''[[Nitemare 3D]]'' (1994) *''[[Noir: A Shadowy Thriller]]'' (1996) *''[[P.T.O. II]]'' (1995) *''[[The Lion King (video game)|The Lion King]]'' (1994) *''[[The Rise & Rule of Ancient Empires]]'' (1996) *''This Means War!'' (1995) *''[[Sid Meier's Colonization]]'' (1995) *''[[Sid Meier's Civilization II]]'' (1996) *''[[SimCity 2000]]'' (Windows 16-bit) (1995) *''[[SimTower]]'' (1994) *''[[Sonic's Schoolhouse]]'' (1996) *''[[List of Star Wars video games#Non-video game PC software|Star Wars Screen Entertainment]]'' (1994) *''[[Time Gate: Knight's Chase]] (1996) *''[[Titanic: Adventure Out of Time]]'' (1996) *''[[Total Distortion]]'' (1995) *''[[Toy Story (video game)|Toy Story]]'' (1996) *''[[Warcraft II: Tides of Darkness]]'' Map editor *''[[Warhammer: Shadow of the Horned Rat]]'' (1995) *''[[Wishbone Activity Zone]]'' (1997) *''[[Woodruff and the Schnibble of Azimuth]]'' (1995) *''[[Entomorph: Plague of the Darkfall|Entomorph - Plague of the Darkfall]]'' (1995) ==See also== *[[Windows API]] *[[DOSBox]], allows emulation of DOS programs ==References== {{Reflist}} == External links == * [https://www.tech-insider.org/windows/research/acrobat/940929-a.pdf Writing HOT Games for Microsoft® Windows™ - The Microsoft Game Developers’ Handbook] {{Microsoft APIs}} [[Category:Windows APIs]] [[Category:Discontinued Microsoft software]] [[Category:Graphics libraries]] [[Category:1994 software]]
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)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Cquote
(
edit
)
Template:Microsoft APIs
(
edit
)
Template:Other uses
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)