nanogui: Re: nanoGui development


Previous by date: 5 May 1999 19:50:51 -0000 Re: nanoGui development, Alan Cox
Next by date: 5 May 1999 19:50:51 -0000 Re: nanogui development, Greg Haerr
Previous in thread: 5 May 1999 19:50:51 -0000 Re: nanoGui development, Alan Cox
Next in thread: 5 May 1999 19:50:51 -0000 Re: nanogui development, Greg Haerr

Subject: Re: FW: nanogui development
From: Ben Pfaff ####@####.####
Date: 5 May 1999 19:50:51 -0000
Message-Id: <87iua78fce.fsf@pfaffben.user.msu.edu>

Note: I just subscribed to the nanogui list, hence the CC:.

Greg Haerr ####@####.#### writes:

   Ben - I am forwarding you this email concerning my additions to the nanogui
   screen driver interface.  I'm glad you're interested in working with bogl to get
   nanogui working well.  Presently, I think bogl is on the right track, and shouldn't
   have clipping added to the low level.  I will build a piece of nanogui that can be
   used with bogl for users requiring low level graphics plus clipping.

Okay.  Have you seen the code written by Alan Cox to do exactly that?
There's a patch that was clean against older versions at least at
	ftp://cscw.msu.edu/bogl-clipping-ac.patch

   What would be cool is for people to write more low level bogl drivers for the
   different display modes supported by their video cards.

The version that is in Debian cvs supports the following visuals:
	* 16-color EGA/VGA
	* 8-bit packed pixel with my original driver
	* 1-, 2-, 4, 8-, 16-, 24-, and 32-bit pseudocolor and
          truecolor packed-pixel visuals (code written by David
          Huggins-Daines ####@####.####

So, I think that just leaves unusual visuals like Atari, etc. (now,
admittedly, nothing's more unusual than VGA 16-color).

   -----Original Message-----
   From:	Greg Haerr ####@####.####
   Sent:	Wednesday, May 05, 1999 12:38 PM
   To:	'Alex Holden'
   Cc:	####@####.####
   Subject:	nanogui development

   Following getting the nanogui project working, I propose and am working on the
   following developments:

	   o complete separation of screen driver interface from the nanogui server proper.
	   o integration with separately produced bogl and other graphics libraries
	   o operation standalone and on non-linux systems

   This is complicated, but here's the idea.  Currently the nanogui project uses a custom
   modifed version of the bogl graphics libraries developed initially  by Ben Pfaffer over at

s/Pfaffer/Pfaff/

   debian.  These libraries only work with 8 bit color framebuffers, and require v2.2 linux.
   In addition nanogui clipping support is contained in the graphics libraries.  Since nanogui
   v0.1, Ben and others have come out with quite a few more versions of bogl, ones that support
   truecolor, pseudocolor, etc.

I believe that these are all merged in the current version now in
Debian CVS.  There's a recent snapshot at
	ftp://cscw.msu.edu/bogl-19990504.tar.gz
Instructions for getting it directly from Debian cvs are at
	http://www.msu.edu/user/pfaffben/debian-cvs.html

   These libraries work on linux systems setup  for truecolor
   display consoles.  The console and framebuffer now have to be reset to 8 bit mode for nanogui
   to run.

   I propose that nanogui be rewritten to allow unmodified bogl libraries from debian to be
   linked in w/o modification.  This will allow nanogui to run on many more systems, as 
   well as someone volunteering a svgalib driver that will allow nanogui to run on linux 2.0,
   and ELKS, if someone writes a int 10h realmode driver.

Currently there's a comment in the BOGL README about ``no plans to
make it work with framebuffer support.''  That's only a statement of
my own intentions; if someone else writes the driver code, I'm fully
willing to merge it in.

   This requires that an explict screen driver interface be designed, and the clipping code,
   along with a host of other line-segment reordering code stuff be moved up into the
   nanogui kernel.  In addition, the v0.2 kernel still doesn't support mouse cursor
   clipping during graphics draw code.  This needs a redesign, since it's unlikely
   to be handled by the low level graphics drivers, without a lot of work for each one.

The current iteration of the BOGL user-interface has a special
pointer-drawing routine designed specifically for use with mouse
cursors.  I recommend that you take a look at it; I'm happy with its
implementation.  A more general getimage/putimage interface might also
be useful, but it's not currently implemented because it wasn't
necessary for the purpose that BOGL was originally targeted at.

   I have completed all this work late last night, and should have this ready shortly.  (I'm
   still asking for design input though).  This will become v0.3.

   In v0.4, I should have completed the driver interfaces for the keyboard and mouse
   as well, which would allow nanogui to run *totally* standalone on anything that
   supports a C compiler.  (yes, this is my real inspiration for the project, we don't need
   another X server, we need small projects that can run standalone and on top of existing
   operating systems without too much work)

You should note that BOGL already has an associated mouse library,
which even handles hardware detection to a limited extent (it's enough
to detect the most common PS/2, PnP, and legacy serial devices).  You
might want to take a look at this.  I'm currently considering USB
mouse support now that 2.2.7 has USB support; it might be time for me
to go out and buy some USB devices.

Previous by date: 5 May 1999 19:50:51 -0000 Re: nanoGui development, Alan Cox
Next by date: 5 May 1999 19:50:51 -0000 Re: nanogui development, Greg Haerr
Previous in thread: 5 May 1999 19:50:51 -0000 Re: nanoGui development, Alan Cox
Next in thread: 5 May 1999 19:50:51 -0000 Re: nanogui development, Greg Haerr


Powered by ezmlm-browse 0.20.