Spis treści
WinG
WinG (wymawiane jako Win Gee) – interfejs programowania aplikacji zaprojektowany z myślą o wydajniejszej obsłudze grafiki w środowisku operacyjnym Windows 3.x. Choć początkowo przedstawiany jako forma ułatwienia portowania DOS-owych gier do systemów Microsoft Windows[1], został szybko zaniechany na rzecz DirectX.
Przegląd
[edytuj | edytuj kod]WinG naprawiał dwa problemy. Pierwszym z nich był brak możliwości tworzenia w Windows 3.x Kontekstów Urządzeń (ang. Device Contexts, DC) bazujących na bitmapach niezależnych od urządzeń (ang. device-independent bitmap, DIB), tylko na podstawie rzeczywistych urządzeń do wyświetlania grafiki. Głównym ograniczeniem DC związanych z komponentem Graphics Device Interface (GDI) była wyłącznie możliwość zapisu. Dane, raz zapisane, nie mogły zostać w żaden sposób pobrane. Drugi problem stanowiło to, że rysowanie GDI było implementowane w sterownikach do kart graficznych dla Windows 3.x, co zawierało także rysowanie bitmap. Wydajność procedur rysowania obiektów nie była jednolita i różniła się między sterownikami.
W wywiadzie w 2000 roku Alex St. John, jeden z twórców DirectX, stwierdził:
— [2]
Microsoft zapowiedział WinG na Game Developers Conference w 1994 roku, demonstrując jego możliwości z portem Dooma opracowanym przez id Software[3]. WinG wydano 21 września 1994 roku[4]. Pomimo bycia interesującym, fundamentalną podstawą WinG było wciąż rysowanie bitmap w pamięci i przesyłanie wyjściowe klatek po zakończeniu rysowania. Doprowadziło to do porzucenia tego komponentu i opracowania DirectX. Jednakże systemy Windows NT 3.5 oraz Windows 95 wprowadziły CreateDIBSection celem wprowadzenia wsparcia do tworzenia DC bazujących na DIB, a sterowniki graficzne uległy ulepszeniu.
Implementacja
[edytuj | edytuj kod]WinG wprowadził nowy rodzaj DC, nazywany WinGDC[5], pozwalający programistom na bezpośredni zapis i odczyt, wykorzystując DIB ze sterownikiem wingdib.drv. Faktycznie dało to programistom możliwość robienia pod Windowsem tego, co robili przez lata bez ograniczeń w dostępie do urządzeń w DOS-ie. Mogli zapisywać DIB do WinGDC i wciąż mieć dostęp do pojedynczych bitów danych obrazu. Oznaczało to możliwość tworzenia algorytmów do szybkiego przewijania, rysowania obiektów na wierzchu innych, „brudnych” prostokątów, podwójnego buforowania oraz innych technik animacji. WinG dostarczał również dużo lepszą wydajność podczas blitowania danych graficznych do pamięci fizycznego urządzenia graficznego. Ponieważ WinG używał formatu DIB, istniała możliwość mieszania oryginalnych odwołań API GDI i odwołań WinG[5].
WinG wykonywał także test profilowania sprzętu/sterownika graficznego przy pierwszym uruchomieniu danego programu w celu określenia najlepszego sposobu rysowania DIB. Test ten wyświetlał okno dialogowe pełne czerwonych krzywych linii, których fragmenty poruszały się podczas trwania testu wydajności[a]. W momencie gdy WinG określił najszybsze odwołania nie powodujące zniekształcenia grafiki, następowało zapisanie profilu bez potrzeby powtórnego wykonywania testu.
Wsparcie techniczne
[edytuj | edytuj kod]Gotowe wsparcie dla WinG (tj. jako oddzielne API do Win32) zostało usunięte w systemie Windows 98 Wydanie drugie (który posiadał zintegrowany DirectX 6), ponieważ nie robiło ono nic oprócz przekazywania interfejsów API Win32, dla których było wrapperem (w tym CreateDIBSection). Do niektórych aplikacji czasami dołączano biblioteki DLL WinG. W takim przypadku wystarczyło po prostu skopiować pliki wing.dll, wing32.dll, wingde.dll, wingdib.drv oraz wingpal.wnd do folderów system32 (dla 32-bitowych wersji Windows) lub SysWOW64 (dla 64-bitowych wersji Windows) aby przywrócić obsługę składnika przez system.
Lista aplikacji korzystających z API WinG
[edytuj | edytuj kod]- 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)
- Dust: A Tale of the Wired West (1995)
- Fury3 (1995)
- Garfield: Caught in the Act (1996)
- Heroes of Might and Magic II (1996)
- Industry Giant (1997)
- 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)
- Noir: A Shadowy Thriller (1996)
- P.T.O. II (1995)
- 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 (16-bitowy Windows, 1995)
- SimTower (1994)
- Sonic's Schoolhouse (1996)
- Star Wars Screen Entertainment (wygaszacz ekranu, 1994)
- Time Gate: Knight's Chase (1996)
- Titanic: Adventure out of Time (1996)
- Total Distortion (1995)
- Toy Story (1996)
- Warcraft II: Tides of Darkness (edytor map)
- Warhammer: Shadow of the Horned Rat (1995)
- Wishbone Activity Zone (1997)
- Woodruff and the Schnibble of Azimuth (1995)
- Entomorph - Plague of the Darkfall (1995)
Zobacz też
[edytuj | edytuj kod]- Windows API
- DOSBox – oprogramowanie pozwalające na emulację aplikacji DOS-owych
Uwagi
[edytuj | edytuj kod]- ↑ Zobacz zrzut ekranu ukazujący przebieg testu na: Andrew Nile, Microsoft WinG [online], AN. Blog, 23 sierpnia 2018 [dostęp 2025-09-24] (ang.).
Przypisy
[edytuj | edytuj kod]- ↑ Chris Hecker, A Whirlwind Tour of WinG [online], Game Developer, 1 czerwca 1997 [dostęp 2025-09-24] (ang.).
- ↑ Bob Colayco, Alex St. John Interview, firingsquad.com, 7 marca 2000 [zarchiwizowane 2009-10-06] (ang.).
- ↑ Johnny L. Wilson, Ken Brown, Chris Lombardi, Mike Weksler, Terry Coleman, The Designer's Dilemma: The Eighth Computer Game Developers Conference [online], Computer Gaming World, lipiec 1994, s. 26–31 (ang.).
- ↑ Craig Eisler, DirectX Then and Now (Part 1), Craig's Musings, 20 lutego 2006 [zarchiwizowane 2012-07-11] (ang.).
- ↑ a b Microsoft, HOWTO: How to Mix GDI and WinG, Microsoft Support [zarchiwizowane 2012-10-22] (ang.).
- ↑ Microsoft Return of Arcade 1996 [online], RGB Classic Games [dostęp 2025-09-24] (ang.).
Linki zewnętrzne
[edytuj | edytuj kod]- Writing HOT Games for Microsoft® Windows™. The Microsoft Game Developers' Handbook [PDF] [online], październik 1994 [dostęp 2025-09-24] (ang.).









