Index: [thread] [date] [subject] [author]
  From: Marcus Sundberg <mackan@stacken.kth.se>
  To  : ggi-develop@eskimo.com
  Date: Fri, 28 Aug 1998 20:22:06 +0200

Re: LibGGI2D, LibGGI3D and targets

Jon M. Taylor wrote:
>         But the problem is that the targets implement an API with those
> stubs, and the LibGGI2D API is different from the LibGGI3D and LibGWT
> APIs.  Either you'd have to merge all LibGGIxx APIs into one for these
> mega-targets, or have some way of implementing multiple versions of the
> same target for the different LibGGIxx libraries, and if you are going to
> do that last then why not separate the different targets and put them in
> their LibGGIxx subdirectories?

Sigh, what am I doing wrong here? Let's try yet another way to
explain, and lets make some definitions. ;)

To avoid further confusion I hereby define a TARGET as
"the first .so library that get's loaded when you call ggiOpen()"
A target is responsible for providing the full libggi API
to applications that open the target, and in order to accomplish
this task it may load other libraries - HELPER libraries like
vgagl.so, STUB libraries like stub.so and linear_16.so, and
DRIVER libraries like mystique-8-15-16-32.so. The target does
not provide any API other than the libggi one.

I hereby define an EXTENSIONTARGET as "the first .so library that
gets loaded when you attach an extension to a visual"
An extensiontarget is responsible for providing the full 
API of the extension to applications that attach the extension
to a visual. The extension-API is only available to visuals on
which the extension has been attach. To accomplish this task
the extensiontarget may also load other libraries - 
EXTENSIONHELPER, EXTENSIONSTUB and EXTENSIONDRIVER libraries.

An EXTENSIONLIBRARY is the library the application wishing to
use the extension links to at compiletime - like libggimisc.so.
The extensionlibrary is responsible for registrering the extension
with libggi, and provide a function that will
a) attach the extension to a visual
b) load the extensiontarget

Normally each extension will have an extensiontarget for each 
libggi target, to provide target-specific accelerations, but
it doesn't have to have that.

Now does this answer your questions?

//Marcus
-- 
-------------------------------+------------------------------------
        Marcus Sundberg        | http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |       Phone: +46 707 295404
       Stockholm, Sweden       |   E-Mail: mackan@stacken.kth.se

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