WinG

WinG (pronounced Win Gee) is an application programming interface that was designed to provide faster graphics performance on Windows 3.x operating environments. It was initially positioned as a way to help game developers more easily port MS-DOS games to Windows.[1] WinG was quickly discontinued in favor of DirectX.

## Contents

* 1 Background
* 2 Implementation
* 3 Support
* 4 List of applications using WinG API
* 5 See also
* 6 References
* 7 External links

## 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,

“  | 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 projects, 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.[2] | ”

|
|

Microsoft announced WinG at the 1994 Game Developers Conference, demonstrating it with a port by id Software of Doom.[3] WinG was shipped on September 21, 1994.[4] 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,[5] which allowed programmers to both read and write to it directly using device-independent bitmaps (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.[5]

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 DLLs 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: Ghosts in Town (1996)
* Bad Toys 3D (1995)
* CivNet (1995)
* Comix Zone (1995)
* Dark Seed II (1995)
* Doom (1995)
* Disney's Animated Storybook: The Lion King (1994)
* Software:Dust: A Tale of the Wired West (1995)
* Fury3 (1995)
* Software:Garfield: Caught in the Act (1996)
* Grant - Lee - Sherman: Civil War 2: Generals (1997)
* Heroes of Might and Magic II (1996)
* Industry Giant (1997)
* Software:Lode Runner: The Legend Returns (1994)
* Maui Mallard in Cold Shadow (1996)
* Microsoft Bob (1995)
* Microsoft Oceans (1995)
* Microsoft Return of Arcade (1996)[6]
* Monopoly (Westwood Studios) (1995)
* Muppets Inside (1996)
* Nitemare 3D (1994)
* Software:Noir: A Shadowy Thriller (1996)
* P.T.O. II (1995)
* 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)
* Star Wars Screen Entertainment (1994)
* Software:Time Gate: Knight's Chase (1996)
* Software:Titanic: Adventure Out of Time (1996)
* Total Distortion (1995)
* Toy Story (1996)
* Software:Warcraft II: Tides of Darkness Map editor
* Software:Warhammer: Shadow of the Horned Rat (1995)
* Wishbone Activity Zone (1997)
* Woodruff and the Schnibble of Azimuth (1995)
* Entomorph - Plague of the Darkfall (1995)

## See also

* Windows API
* DOSBox, allows emulation of DOS programs

## References

1. ↑ Hecker, Chris (1 June 1997). "A Whirlwind Tour of WinG". https://www.gamedeveloper.com/programming/a-whirlwind-tour-of-wing.
2. ↑ Colayco, Bob (7 March 2000). "Alex St. John Interview". firingsquad.com. http://www.firingsquad.com/features/alexstjohn/.
3. ↑ Wilson, Johnny L.; Brown, Ken; Lombardi, Chris; Weksler, Mike; Coleman, Terry (July 1994). "The Designer's Dilemma: The Eighth Computer Game Developers Conference". Computer Gaming World: 26–31. http://www.cgwmuseum.org/galleries/index.php?year=1994&pub=2&id=120.
4. ↑ Eisler, Craig (February 20, 2006). "DirectX Then and Now (Part 1)". Craig's Musings. http://craig.theeislers.com/2006/02/directx_then_and_now_part_1.php.
5. ↑ 5.0 5.1 "HOWTO: How to Mix GDI and WinG (MSKB125928)". Knowledge Base. Microsoft. http://support.microsoft.com/kb/125928.
6. ↑ Microsoft Return of Arcade 1996 review: RGB Classic Games

## External links

* Writing HOT Games for Microsoft® Windows™ - The Microsoft Game Developers’ Handbook

* v
* t
* e

Microsoft APIs and frameworks

Graphics|

* Desktop Window Manager
* Direct2D
* Direct3D
* D3D (extensions)
* GDI / GDI+
* WPF
* Silverlight
* WinRT XAML
* Windows Color System
* Windows Image Acquisition
* Windows Imaging Component
* DirectX Graphics Infrastructure (DXGI)
* Windows Advanced Rasterization Platform
* WinG

Audio|

* DirectMusic
* DirectSound
* DirectX plugin
* XACT
* Speech API
* XAudio2

Multimedia|

* DirectX
* Media Objects
* Video Acceleration
* Xinput
* DirectInput
* DirectShow
* Image Mastering API
* Managed DirectX
* Media Foundation
* XNA
* Windows Media
* Video for Windows

Web|

* MSHTML
* RSS Platform
* JScript
* VBScript
* BHO
* XDR
* SideBar Gadgets
* TypeScript

Data access|

* Data Access Components (MDAC)
* ADO
* ADO.NET
* ODBC
* OLE DB
* Extensible Storage Engine
* Entity Framework
* Sync Framework
* Jet Engine
* MSXML
* OPC

Networking|

* Winsock
* LSP
* Winsock Kernel
* Filtering Platform
* NDIS
* Windows Rally
* BITS
* P2P API
* MSMQ
* MS MPI
* DirectPlay

Communication|

* Messaging API
* Telephony API
* WCF

Administration and
management|

* Win32 console
* Windows Script Host
* WMI (extensions)
* PowerShell
* Task Scheduler
* Offline Files
* Shadow Copy
* Windows Installer
* Error Reporting
* Event Log
* Common Log File System

Component model|

* COM
* COM+
* ActiveX
* Distributed Component Object Model
* .NET Framework

Libraries|

* Framework Class Library
* Microsoft Foundation Classes (MFC)
* Active Template Library (ATL)
* Windows Template Library (WTL)

Device drivers|

* WDM
* WDF
* KMDF
* UMDF
* WDDM
* NDIS
* UAA
* BDA
* VxD

Security|

* Crypto API
* CAPICOM
* Windows CardSpace
* Data Protection API
* Security Support Provider Interface (SSPI)

.NET|

* ASP.NET
* ADO.NET
* Remoting
* Silverlight
* TPL
* WCF
* WCS
* WPF
* WF

Software factories|

* EFx Factory
* Enterprise Library
* Composite UI
* CCF
* CSF

IPC|

* MSRPC
* Dynamic Data Exchange (DDE)
* Remoting
* WCF

Accessibility|

* Active Accessibility
* UI Automation

Text and multilingual
support|

* DirectWrite
* Text Services Framework
* Text Object Model
* Input method editor
* Language Interface Pack
* Multilingual User Interface
* Uniscribe

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/WinG. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:WinG&oldid=4344865"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template