Index: [thread] [date] [subject] [author]
  From: Andreas Beck <becka@rz.uni-duesseldorf.de>
  To  : ggi-develop@eskimo.com
  Date: Thu, 3 Jun 1999 13:08:51 +0200

Re: GGIMesa updates/questions

> > Yep, this is ok except that the the latter two would begin with
> > vendor-creative- for Jon's drivers.

> 	What info does the vendor-creative- part provide that an ident string
> cannot?  And the ident string can map back to vendor-s3, generic-kgicommand,
> or an infinite number of interfaces that haven't been designed yet!  

That makes no sense. The driver must be written to support those interfaces,
so not-yet designed interfaces have only a very remote chance to be
compatible with an existing driver.

> do need a little extra userspace code to handle that mapping, but A) each
> extension would only have to care about mapping the ident string to _its_
> interfaces, 

??? Why should these interfaces differ ?

Interfaces do _NOT_ describe any external interface toward the user, but
only the Intraface between the LibGGI(-extension) module and the card
driver. It just says something like "to send a command, use kgicommand(...)"
or "this card exports an S3-style MMIO area with registers".

> B) you don't need to manage a fixed set of interface strings.

This is a natural process:
When you write a new driver and you see it is 100% compatible to the older
one for the functions supported there, plus a few new ones, you just keep
exporting the old API-strings and add a new one for the new functions.

> > > > _ggiAddAPI(ggi_visual_t vis, const char *api):
> > > Why should one add an API later ? Because the extension might 
> > > be needed to detect it ? 
> > Because I don't think you can convince the fbdev people to start
> > using suggest-strings for normal fbdev drivers. ;-)
> 	Or Glide, or X, or VNC, or....

These can be handled by the LibGGI "display" driver.
Though I see reason for the AddAPI call (like the Mesa extension detecting
GLX), and we should do that change.

Chained list of API-strings ? Modification functions like:

_ggiAPIAdd   (ggi_visual_t vis, struct API *what_to_add, struct API *after);
_ggiAPIDelete(ggi_visual_t vis, struct API *what_to_delete);
_ggiAPIGet   (ggi_visual_t vis, int number);

for convenience ?

We will want to count APIAdds in case multiple extension want to add the
same API string.

CU, Andy

-- 
= Andreas Beck                    |  Email :  <andreas.beck@ggi-project.org> =

Index: [thread] [date] [subject] [author]