> > XGGI _is_ an X server. Nothing special about it.

> I'm a bit confused. Rushing through the GGI and XGGI homepage I got the
> impression that XGGI is a layer between an application requiring Xlib
> functions and libggi. 

This is right. And the term for such an application is "X server".

It does not hook into Xlib (as that would be a very complex thing to do),
but into the normal X communications channels.

> That would be your mentioned Xlib-wrapper, directing all Xlib function to 
> ggi/gii functions.

That is not quite what it does. Any conventional X-program goes down to the
X11 communications paths in the end. Usually via LibX11, but as someone
mentioned here, it was also pretty common to even bypass LibX11.

That is: LibX11 is used, no matter if you run on XGGI or a conventional X
server. However from then on, things look a little different:

.X11-Commandpipe -> Classic X server -> compiled-in Graphicscard driver -> HW

.x11-Commandpipe -> XGGI -> LibGGI -> dynamically loaded subsystem driver ->
graphics subsystem (e.g. the KGIcon driver).

> Please give me an explanation what XGGI exactly is 

It _is_ an X server.

> and whether it needs a running X Server or not. 

No. Though in contrast to a classic X server, you can use it on another X
server in a window.

XGGI is - from the application view - an X server.
XGGI is - from the LibGGI view - a LibGGI application that draws on a LibGGI
visual.

LibGGI visuals can be displayed on a lot of possible "targets", including
running fullscreen (which will give the classic X server feeling), but also
running in a window. There should be screenshots up on ggi-project.org,
that show XGGI running on some of the weirder setups possible with LibGGI,
like the Cube.

> > If you want to bypass the X server, I see only a single possible method:
> > You have to make kind of an LibX11-wrapper. 
> Hm, guess I'm not masochistic enough to do so.

I understand that very well. And it wouldn't catch all X apps anyway ...

So basically I suggest that you just start out with a regular windowmanager.

It will have code somewhere to draw its decorations. Here you hook in and
use LibGGI to draw on those preexisting windows.

That's pretty much all that is to it.

The result will work on any standard X server (provided LibGGI is installed
on the system, but other WMs have similar or even harder requirements like
imlib) as well as with XGGI.

CU, ANdy

-- 
= Andreas Beck                    |  Email :  <[EMAIL PROTECTED]> =

Reply via email to