Re: gtk layering



On 10/4/06, Bill Cunningham <billcm charter net> wrote:

----- Original Message -----
From: "Matt Hoosier" <mwhoosier gmail com>
To: "Bill Cunningham" <billcm charter net>
Cc: <gtk-list gnome org>
Sent: Wednesday, October 04, 2006 1:12 AM
Subject: Re: gtk layering


> Bill,
>
> glib and X11 are orthogonal; neither depends on the other. Gtk+ uses
> each one directly.

    I see. Thanks Matt. These internals are fascinating to me. I understand
things better. Does gtk use glib for frame buffering or just X? What does
gtk use pango and cairo for?

The primary uses of glib are for its utility data structures (somewhat
lesser role) and the big one: the gobject type system. Notice that
every GtkWidget subclass inherits ultimately from GObject, whose type
is given in the glib headers.

I don't know the gdk-directfb backend well at all, other than to say
that I once ran it on a x86 machine as a proof of concept. I doubt
that glib has much to do with the rendering there, though; probably
libdirectfb contains API to perform the various 2D operations. If not,
I suppose Gtk+ can manually paint bytes in the buffer.

Pango is a high-level text presentation library. All of the widgets
such as GtkTextview, GtkLabel, etc. use one or more worker objects
from the Pango API to draw their textual pieces.

Cairo is the 2D graphics engine which is used to implement a good
chunk of the default rendering code. Most of these calls occur in the
default Gtk+ theme, so that one can replace the Cairo codepaths with
some other just by supplying a different theme engine.

--Matt


Bill




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]