WinG
En informática, WinG (pronunciado Win Gee) es una interfaz de programación de aplicaciones que fue diseñada para proporcionar un rendimiento gráfico más rápido en entornos operativos Windows 3.x, y se posicionó inicialmente como una forma de ayudar a los desarrolladores de juegos a portar más fácilmente sus juegos de DOS a Microsoft Windows,[1] aunque se suspendió rápidamente a favor de DirectX.
Fondo
editarWinG solucionó dos problemas. El primer problema que solucionó WinG fue que Windows 3.x no admitía la creación de Contextos de dispositivos (DC) basados en mapas de bits independientes del dispositivo, solo dispositivos de visualización reales. Una limitación importante de los DC de GDI fue que eran de solo escritura. Los datos, una vez escritos, no se pudieron recuperar. El segundo problema fue que todo el dibujo GDI se implementó en los controladores de video de Windows 3.x. Esto incluyó el dibujo de mapas de bits. Obviamente, el rendimiento de tales rutinas varía según los controladores.
Alex St. John, uno de los creadores de DirectX, dijo en una entrevista de 2000 que,
WinG era una tecnología que estaba construyendo Chris Hecker en el grupo de investigación, y en ese momento era uno de los pequeños proyectos Skunkworks de Microsoft, de muy bajo perfil y fuera de la pared. Básicamente, estaba arreglando los controladores de Windows rotos para hacerlos correr más rápido y de manera más aceptable. Al usarlo, pudimos crear una API de video que podía ejecutar DOOM casi tan rápido en Windows como lo hizo en DOS.[2]
Microsoft anunció WinG en la Game Developers Conference de 1994, demostrándolo con un puerto de Doom de id Software.[3] WinG fue enviado el 21 de septiembre de 1994.[4] WinG, aunque interesante, todavía se basaba fundamentalmente en dibujar mapas de bits en la memoria y en generar marcos después de que se realizara el dibujo. Como resultado, WinG quedó en desuso y se creó DirectX. Sin embargo, Windows NT 3.5 y Windows 95 introdujeron CreateDIBSection para proporcionar soporte para la creación de DC basadas en DIB y controladores de video que finalmente mejoraron.
Implementación
editarWinG introdujo un nuevo tipo de DC llamado WinGDC,[5] que permitió a los programadores leer y escribir directamente usando mapas de bits independientes del dispositivo (DIB) con el controlador wingdib.drv. Efectivamente, les dio a los programadores la capacidad de hacer con Windows lo que habían estado haciendo sin limitaciones de acceso al hardware en DOS durante años. Los programadores podrían escribir DIB en el WinGDC, pero aún tendrían acceso a los bits individuales de los datos de la imagen. Esto significaba que se podían escribir algoritmos gráficos rápidos para permitir un desplazamiento rápido, sobregiro, rectángulos sucios, doble almacenamiento en buffer y otras técnicas de animación. WinG también proporcionó un rendimiento mucho mejor al enviar datos gráficos a la memoria del dispositivo gráfico físico. Como WinG utilizó el formato DIB, fue posible mezclar llamadas API GDI originales y llamadas WinG.[5]
WinG también realizaría una prueba de perfil de hardware/controlador de gráficos en la primera ejecución del programa para determinar la mejor manera de dibujar DIB. Esta prueba mostró una ventana llena de líneas curvas rojas, cuyas secciones se tambalearían a medida que se probara el rendimiento. Una vez que WinG haya determinado las llamadas más rápidas que no causaron daños en los gráficos, se guardará un perfil para que no sea necesario volver a realizar la prueba.
Soporte
editarEl soporte inmediato de WinG (es decir, como una API separada para Win32) se eliminó en Windows 98 Second Edition (que integraba DirectX 6), ya que no hizo absolutamente nada más que pasar a las API de Win32 que estaba envolviendo (incluyendo CreateDIBSection). Las DLL de WinG a veces se distribuían con una aplicación, en cuyo momento simplemente se trataba de copiar los archivos wing.dll, wing32.dll, wingde.dll, wingdib.drv y wngpal.wnd al directorio system32 (para Windows de 32 bits) o el directorio SysWOW64 (para Windows de 64 bits) para recuperar el soporte de todo el sistema.
Lista de aplicaciones que usan WinG API
editar- Adobe Photoshop 3.0 (1994)
- Adobe Photoshop 4.0 (1997)
- Alone in the Dark: Ghosts in Town (1996)
- Comix Zone (1995)
- Dark Seed II (1995)
- Doom (1995)
- Dust: A Tale of the Wired West (1995)
- Fury3 (1995)
- Heroes of Might and Magic II (1996)
- El rey león (1994)
- Microsoft Bob (1995)
- Monopoly (Westwood Studios) (1995)
- Nitemare 3D (1994)
- Noir: A Shadowy Thriller (1996)
- P.T.O. II (1995)
- The Rise & Rule of Ancient Empires (1996)
- Sid Meier's Colonization (1995)
- Sid Meier's Civilization II (1996)
- SimCity 2000 (Windows 16-bit) (1995)
- SimTower (1994)
- Time Gate: Knight's Chase (1996)
- Titanic: Adventure Out of Time (1996)
- Warcraft II: Tides of Darkness Editor de mapas
- Woodruff and the Schnibble of Azimuth (1995)
Véase también
editar- API de Windows
- DOSBox, permite la emulación de programas DOS
Referencias
editar- ↑ Hecker, Chris (1 de junio de 1997). «A Whirlwind Tour of WinG». Gamasutra. Consultado el 19 de enero de 2009.
- ↑ Colayco, Bob (7 de marzo de 2000). «Alex St. John Interview». firingsquad.com. Consultado el 19 de enero de 2009.
- ↑ 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.
- ↑ Eisler, Craig (20 de febrero de 2006). «DirectX Then and Now (Part 1)». Craig's Musings. Archivado desde el original el 11 de julio de 2012. Consultado el 19 de enero de 2008.
- ↑ a b «HOWTO: How to Mix GDI and WinG (MSKB125928)». Knowledge Base. Microsoft. Consultado el 19 de enero de 2009.
Enlaces externos
editar- Esta obra contiene una traducción total derivada de «WinG» de Wikipedia en inglés, concretamente de esta versión, publicada por sus editores bajo la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.