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 DOS a Microsoft Windows. , [1] aunque se suspendió rápidamente a favor de DirectX .
Fondo
WinG solucionó dos problemas. El primer problema que solucionó WinG fue que Windows 3.x no admitía la creación de contextos de dispositivo (DC) basados en mapas de bits independientes del dispositivo, solo dispositivos de visualización reales. Una limitación importante de los controladores de dominio de GDI era que eran de solo escritura. Los datos, una vez escritos, no se pudieron recuperar. El segundo problema fue que todos los dibujos GDI se implementaron en los controladores de video de Windows 3.x. Esto incluyó el dibujo de mapas de bits. Obviamente, el rendimiento de tales rutinas varió entre los conductores.
Alex St. John , uno de los creadores de DirectX , dijo en una entrevista de 2000 que,
WinG era una tecnología desarrollada por Chris Hecker en el grupo de investigación, y en ese momento era uno de los pequeños proyectos de Microsoft Skunkworks , de muy bajo perfil y fuera de lo común. Básicamente, se trataba de reparar los controladores de Windows dañados para que se ejecutaran de forma más rápida y aceptable. Al usarlo, pudimos crear una API de video que podía ejecutar DOOM casi tan rápido en Windows como en DOS. [2]
Microsoft anunció WinG en la Game Developers Conference de 1994 , demostrándolo con un puerto de id Software of Doom . [3] WinG se envió el 21 de septiembre de 1994. [4] WinG, aunque interesante, todavía se basaba fundamentalmente en dibujar mapas de bits en la memoria y generar marcos después de que se hizo el dibujo. Como resultado, WinG quedó obsoleto y se creó DirectX . Sin embargo, Windows NT 3.5 y Windows 95 introdujeron CreateDIBSection para proporcionar compatibilidad con la creación de controladores de dominio basados en DIB y los controladores de vídeo también mejoraron finalmente.
Implementación
WinG introdujo un nuevo tipo de DC llamado WinGDC, [5] que permitía a los programadores leer y escribir en él 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 de gráficos rápidos para permitir un desplazamiento rápido, sobredibujo, rectángulos sucios, almacenamiento en búfer doble y otras técnicas de animación. WinG también proporcionó un rendimiento mucho mejor al transferir datos gráficos a la memoria física del dispositivo gráfico. Dado que WinG usó el formato DIB, fue posible mezclar llamadas API GDI originales y llamadas WinG. [5]
WinG también realizaría una prueba de perfil de controlador / hardware 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, secciones de las cuales se tambalearían mientras se probaba el rendimiento. Una vez que WinG había determinado las llamadas más rápidas que no causaban daños en los gráficos, se guardaba un perfil para que no fuera necesario realizar la prueba nuevamente.
Apoyo
El soporte de WinG listo para usar (es decir, como una API separada para Win32) se eliminó en Windows 98 Second Edition (que integró DirectX 6), ya que no hizo nada más que pasar a las API de Win32 que estaba empaquetando (incluida CreateDIBSection ). Las DLL de WinG a veces se distribuían con una aplicación, momento en el que simplemente se convertía en una cuestión de copiar los archivos wing.dll, wing32.dll, wingde.dll, wingdib.drv y wingpal.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 utilizan la API de WinG
- Adobe Photoshop 3.0 (1994)
- Adobe Photoshop 4.0 (1997)
- Alone in the Dark: Fantasmas en la ciudad (1996)
- CivNet (1995)
- Zona de comix (1995)
- Semilla oscura II (1995)
- Libro de cuentos animados de Disney: El rey león (1994)
- Perdición (1995)
- Dust: A Tale of the Wired West (1995)
- Furia 3 (1995)
- Grant - Lee - Sherman: Civil War 2: Generales (1997)
- Héroes de poder y magia II (1996)
- Gigante de la industria (1997)
- Microsoft Bob (1995)
- Microsoft Oceans (1995)
- Microsoft Return of Arcade (1996) [6]
- Monopolio (Westwood Studios) (1995)
- Nitemare 3D (1994)
- Noir: un thriller sombrío (1996)
- TDF II (1995)
- El ascenso y el gobierno de los imperios antiguos (1996)
- ¡Esto significa guerra! (1995)
- Colonización de Sid Meier (1995)
- La civilización de Sid Meier II (1996)
- SimCity 2000 (Windows de 16 bits) (1995)
- SimTower (1994)
- Entretenimiento en pantalla de Star Wars (1994)
- La escuela de Sonic (1996)
- Puerta del tiempo: la persecución del caballero (1996)
- Titanic: Aventura fuera del tiempo (1996)
- Warcraft II: editor de mapas de Tides of Darkness
- Woodruff y el Schnibble of Azimuth (1995)
Ver también
- API de Windows
- DOSBox , permite la emulación de programas DOS
Referencias
- ^ Hecker, Chris (1 de junio de 1997). "Un torbellino de WinG" . Gamasutra . Consultado el 19 de enero de 2009 .
- ^ Colayco, Bob (7 de marzo de 2000). "Entrevista a Alex St. John" . firingsquad.com . Consultado el 19 de enero de 2009 .
- ^ Wilson, Johnny L .; Brown, Ken; Lombardi, Chris; Weksler, Mike; Coleman, Terry (julio de 1994). "El dilema del diseñador: la octava conferencia de desarrolladores de juegos de ordenador" . Mundo de los juegos de ordenador . págs. 26–31.
- ^ Eisler, Craig (20 de febrero de 2006). "DirectX entonces y ahora (parte 1)" . Reflexiones de Craig . Consultado el 19 de enero de 2008 .
- ^ a b "CÓMO: Cómo mezclar GDI y WinG (MSKB125928)" . Base de conocimientos . Microsoft . Consultado el 19 de enero de 2009 .
- ^ Revisión de Microsoft Return of Arcade 1996: RGB Classic Games