Re: [ROOT] ROOT/QtROOT within a multithreaded Qt application

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu Jan 10 2002 - 00:05:46 MET


Hi Joe, 

On Wed, 9 Jan 2002 13:05:10 -0800 (PST)
joe robe <joer00@yahoo.com> wrote
concerning "Re: [ROOT] ROOT/QtROOT within a multithreaded Qt application":
> I had to learn that "user friendliness" is the real weak part of
> unix :) 

Have you seen KDE 2.2, Ximian GNOME 1.3, GIMP, and so on?  They are
right up there with MacOSX and Windoze (ok, not all will agree on
that, but you got to admit that it's pretty impresive, and with the
current rate of development, there's no telling how far those projects
will go. Heck, just 3 or 4 years ago KDE wasn't released and the most
fancy GUI stuff you could get was Motif - shudder).  

> Can I ask this additional (some for sure STUPID) questios ??
> 
> What is the famous X11 I do read so often ?Is this a plattform
> independent low level graphic system ??? Or does root use the
> windows API (WNDCLASS,DispatchMessage etc.) for windows applications
> and X11 only for unix ??

Well, if you've been living all your life in M$ Windoze land, the
question is not so stupid. Even for long term Un*x user, the answer is
not nessecarily that obvious. 

XFree86 has a short introduction on it's web-page [1].  The X
Consortium has more details [2].  BTW, a Google search on X11 brought
up [1] as the first hit, and [2] as the third hit.  Yahoo (your mail
provider as far as I can tell) also has a full directory of info on
X11. Not that hard to find the information yourself. 

Let me just say this: X is a low-level graphics _server_ for various 
platforms, supporting a _client_ API.  Clients requests services from
X.  Some clients provide an API on top of X's; noticable examples are
Qt, KDE, GDK, and GNOME. 

There's no Windoze API for Un*x, since the graphics system is
completly different.  X is not part of the Operating System proper,
which is evident from display-less machines (such as firewalls, farm
nodes, routers, web-servers, and so on) usually not having an X server
running.  In case of Windoze, the graphics system is in the OS (in
the kernel?).   

Hence, ROOT uses the X API on Un*x (and VMS) machines, and the Windoze
API on windoze machines.   

A popular misconception among Un*x users, is that X is the _only_
graphics layer for Un*x.  While it is perhaps the best there is, it's
not the only one.  An exciting project is the Berlin project [3].

> If its used for both I guess I HAVE TO dig into X11 to understand
> root graphics ? 

The idea of the graphics library of ROOT, I believe is to
platform-independent, so my quess is that you only need to understand
that layer.  Anyway, for Windoze you need to know the Windoze or GDK
API if you want to take one step down the abstraction ladder. 

Note, that GDK is an abstraction layer API on top of the X _and_
Windoze API's.   Hence, if you know GDK, you can write stuff for both
Windoze and X.  In that respect GDK is similar to Qt, but is not as 
high-level as Qt.  The GNOME system uses GDK. 

Also, there was a rather long discussion graphics, GUI, etc. on
roottalk last year [4,5,6,7,8,9] ([9] was the one that sparked this
heavy-duty traffic as far as I remember). 

Hope that helps you. 

Yours, 

Christian Holm Christensen -------------------------------------------
Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
         DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
         Denmark                             Office: (+45) 353  25 305 
Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm
 

[1] http://www.xfree86.org/
[2] http://www.x.org/about_x.htm 
[3] http://www.berlin-consortium.org/
[3] http://root.cern.ch/root/roottalk/roottalk01/3840.html
[4] http://root.cern.ch/root/roottalk/roottalk01/3836.html
[5] http://root.cern.ch/root/roottalk/roottalk01/3779.html
[6] http://root.cern.ch/root/roottalk/roottalk01/3773.html
[7] http://root.cern.ch/root/roottalk/roottalk01/3723.html
[8] http://root.cern.ch/root/roottalk/roottalk01/3616.html



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:37 MET