General Graphics Interface: Difference between revisions

Content deleted Content added
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816
remove intricate details that are unencyclopedic. discussion of a "flame war"? really?
Line 56:
 
In 1997, GGI went into a complete re-design. Many new ideas and a decision from Linux made GGI to what it became in GGI 2.0 released in August 2001 under the MIT release.
 
In 1998, there was a big flame war on the linux kernel mailing list about getting KGI into the kernel. [[Linus Torvalds]] explained his concerns<ref>[http://marc.info/?l=linux-kernel&m=89089527200744&w=2 marc.info]</ref> about GGI stating, "I think that [[X Window System|X]] is good enough" and expressing concern regarding the overall direction of GGI.
 
During this time, another design idea called ''EvStack'' also added to the flamewar. EvStack was a pretty much complete redesign of the input and output subsystem that allowed for events (thus the "Ev") to flow through a "Stack" of modules that can be configured to manipulate them. EvStack is a very powerful concept, allowing e.g. to have two keyboards attached to the same machine, one operating a text console on one graphics adapter and one operating a graphics console on the other (as was demonstrated on the Linux-Kongreß ´97<ref>[http://www.linux-kongress.org/1997/seegerbeck.html linux-kongress.org]</ref>) and even allows for having different keyboard layouts on different virtual consoles or attaching keyboards via network. However this came at the price of a huge patch to the input subsystem which did not seem acceptable. The modern Linux input event system allows programs (e.g. Xorg) to receive keyboard events other than through the console keyboard, allowing [[multiseat configuration|multiseat]] operation.
 
A set of talks about GGI, KGI and EvStack were given at LinuxExpo 98.
Line 68 ⟶ 64:
 
GGI 2.0.2 was released in December 2002. The most user visible change was from the scratch re-designed X backend. Another noticeable change was the huge documentation improvement. Last, but not least, the release cycles changed. From this release on, there was a development and a stable tree. The stable tree is open for bugfixes only, the development tree got the name, following the BSD scheme, -current.
 
November 2004, the last bugfix from the GGI 2.0.x stable tree was released in favour for a new GGI 2.1.x stable tree.
 
GGI 2.1.x runs on many Operating Systems: [[GNU Hurd]], [[Linux]], [[*BSD]], [[System V]], [[Mac OS X]] and Microsoft Windows. Support for more hardware platforms has been added. [[NetBSD]] even created a binary package for NetBSD/Vax! A new GGI library on top of libgii called libgiigic has been added. It allows to combine user actions with events at run time.
Line 79 ⟶ 73:
== Adoption ==
[[Source port]]s of [[first-person shooter]]s ''[[Doom (1993 video game)|Doom]]'', ''[[Heretic (video game)|Heretic]]'', ''[[Quake (video game)|Quake]]'' and ''[[Descent (video game)|Descent]]'' were ported to use GGI,<ref>{{cite web|url=http://ibiblio.org/ggicore/links.html|title=Software using GGI|website=[[ibiblio]]|access-date=2023-12-20}}</ref><ref>{{cite web|url=https://www.linuxjournal.com/article/2998|title=LibGGI: Yet Another Graphics API|first=Andreas|last=Beck|date=1998-09-01|access-date=2023-12-20|website=[[Linux Journal]]}}</ref> with a [[Doom modding#Editing|Linux Doom Editor]] also being based on it.<ref>{{cite web|url=http://interreality.org/~tetron/technology/lde/|title=LDE - Linux Doom Editor|first=Peter|last=Amstutz|website=Interreality|date=2002-08-09|access-date=2024-01-23}}</ref> It was also supported by the [[arcade video game|arcade styled]] ''Heroes'',<ref>{{cite web|url=https://discourse.libsdl.org/t/announcing-heroes-0-7/3553|title=Announcing Heroes 0.7|first=Alexandre|last=Duret-Lutz|date=November 2000|website=[[Simple DirectMedia Layer]]}}</ref> a [[Snake (video game genre)|snake]] game, and ''Thrust'', inspired by the [[Commodore 64]] game ''[[Thrust (video game)|Thrust]]'',<ref>{{cite web|url=https://identicalsoftware.com/games/inertiablast|website=Identical Software|first=Dennis|last=Payne|title=Inertia Blast|date=2021-09-19|access-date=2024-01-21 }}</ref> as well as the [[platform game]]s ''U.R.B.A.N The Cyborg Project''<ref>{{cite web |last=Wilson |first=Hamish | date=2024-03-12 | title=Building a Retro Linux Gaming Computer Part 40: The Cyborg Project | url=https://www.gamingonlinux.com/2024/03/building-a-retro-linux-gaming-computer-part-40-the-cyborg-project/ | website=GamingOnLinux | access-date=2024-03-13}}</ref> and ''Dave Gnukem'',<ref>{{cite web|url=https://lwn.net/2000/0106/bigpage.php3|title=Software Announcements|date=2000-01-06|access-date=2024-01-21|website=Linux Weekly News}}</ref> inspired by the original ''[[Duke Nukem (video game)|Duke Nukem]]'' for [[MS-DOS]]. GGI was also available as a video driver within the [[Simple DirectMedia Layer]] until version 2x.<ref name="sdl-faq">{{cite web |title=FAQ: Using SDL |url=https://wiki.libsdl.org/FAQUsingSDL |website=wiki.libsdl.org}}</ref>
 
==Status as of 2006==
The GGI Project was moving onward to the GGI 3.0 release.{{when|date=February 2017}} libgii had been re-designed. The input handling had been replaced with a [[Reactor pattern|reactor event model]], which is more flexible than using select() on a [[file descriptor]]. This also simplified the input-drivers in general, particularly for those who don't use file descriptors such as input-quartz.
libgg had been moved out into a separate library.
 
libggi had merged some targets into one sublib, multi with tile and mono text with palemu. libggi also had gotten a new [[VNC]] target,
which allowed to run any application as a VNC server.
 
In GGI 3.0, the extension mechanism had been re-designed from scratch to simplify interactions between the extensions and the core libs. This required a little API change.
 
==See also==