Thanks for the post.
It will take me a bit of time to sort this out, but it definitely points
me in a new direction - I've been going in circles :(
My interest -currently- is to explore NURBS, so suspect the base
qtwidget will be more than adequate.
Having windows, but little Linux, experience, covering the basics is
excellent.  I'd really like to see more 'why' and 'what' documents to
complement the 'how tos'...

I was beginning to wonder if this really is the best place to post.
Thanks again,
Hugh


-----Original Message-----
From: John Layt [mailto:[EMAIL PROTECTED] 
Sent: Friday, 31 December 2004 2:01 PM
To: [email protected]
Subject: Re: [newbie] open GL development - QT


On Tue, 28 Dec 2004 16:45, Hugh Dixon wrote:
> Hi,
> I'm a windows developer wanting to investigate OpenGL programing under

> linux.  I am using Mandrake 10.1, but have been having trouble with 
> graphics cards. I currently have a system running, and have looked 
> through the KDeveloper tutorials.  I now want tostart on OpenGL.  I 
> gather QT is suppose to have a widget that supports OpenGL, however I 
> cannot find it on my installation.
>
> Can someone please confirm that the mandrake install of qt should 
> include this widget?
>
> If so, I suspect it is not installed on my machine because of the 
> trouble I initially had with my graphics card (the trolltech site says

> it is only installed if openGL headers etc are available)  
> Uninstalling QT developer tools, forces the uninstall of a fair number

> of other packages, which I don't want to do.  Can anyone suggest a way

> to 'refresh' the install of qt, and/or force the install of the openGL

> stuff?
>
> Thirdly, Is qt the best way for me to go for an intro to openGL?  I am

> familiar with openGL under windows (and even on a sparc box).  I would

> however like access to a GUI API, which is why I though the QT widget 
> was the way to go..
>
> Any comments?

Hugh,

I messed around with the QGLwidget a while ago for a project I never
finished 
(typical, huh?).  I can't guarantee that what follows still holds, but
it 
worked about a year and 2 Mdk versions ago.

Excuse me if I cover ground you are already aware of, but I find it's
best to 
never make assumptions, and it's helpful for other interested observers.


Well, I'll make a couple...  I'm assuming that you're coding C++/QT/KDE
(so 
I'll ignore C/Gtk/Gnome options), using KDevelop, and that you have a
urpmi 
source configured for Contrib.

Now for the possibly insulting parts :-)  

About RPMs.  Mandrake splits software into 3 types of RPM packages.
There's 
the Applications RPM, the Library RPM and the Development RPM.  The 
Application RPM holds the actual executable that goes in /usr/bin and
related 
data and config files (Windows equivalent = .exe's). the Library RPM
holds 
any common library files provided by the application that go in /usr/lib

(Windows = .dll's).  The Developement RPM holds all the include files
that 
you need if you want to compile code that use the libraries, these
usually 
have -devel- in their name.  I'll list below what I think you need
(don't pay 
too much attention to any version numbers, that just what's on my
machine, 
just use what you have for now)

About OpenGL.  OpenGL on Linux is usually provided by the Mesa project 
(http://www.mesa3d.org/) working in with X11/Xorg.  To have Mesa OpenGL
up 
and running, and able to be compiled against, you need the following
packages 
installed:
        libxorg-x11-devel
        Mesa
        Mesa-demos
        libMesaGL1
        libMesaGLU1
        libMesaGLU1-devel
        libMesaglut3
        libMesaglut3-devel
Things are a bit more complex if you use an NVidia card, as they provide
their 
own GLX library, but so long as you install the NVidia drivers AFTER
Mesa, 
you should be fine, as it should also install it's own include file.
Make 
sure you actually have 3D acceleration working by running Tuxracer or
the 
gears program.  If you have problems here, try to get them resolved
before 
moving on.

About Qt.  Mandrakes version of Qt should have (as in used to when I
played 
with it) support for OpenGL already compiled in (so you can ignore what
the 
TrollTech site said about it only being enabled if the GL headers were 
available, that only applies if you do a compile of Qt yourself), and it

should just work if you have all the required packages installed, you
should 
not need to force a re-install.  The RPM's you need for Qt are:
        qt3-common
        qt3-example
        libqt3
        libqt3-devel
And if you want the Qt database functions as well:
        libqt3-mysql
        libqt3-odbc
        libqt3-psql

Qt has usually good documentation, which you can find online at:
        http://doc.trolltech.com/3.3/opengl.html
        http://doc.trolltech.com/3.3/qglwidget.html
There's also a number of example programs to look at:
        http://doc.trolltech.com/3.3/opengl-examples.html
These pages are also installed on your hard-drive with the qt-devel RPM
at:
        /usr/share/doc/qt-3.3.3/doc/html/

Right, so if you have all those installed, along with KDevelop you're
now 
(hopefully) ready to follow those KDeveloper tutorials.  You'll find the
qgl 
header file at /usr/lib/qt3/include/qgl.h, which should be on your
include 
path, so a simple #include <qgl.h> should do the trick.  I can't
remember 
exactly, but in KDevelop you may need to tell Automake Manger to link
against 
qgl?  Not sure there. 

An alternative to the native Qt widget is QGLViewer 
(http://artis.imag.fr/Members/Gilles.Debunne/QGLViewer/) which builds on
it, 
RPM is:
        libQGLViewer1_3

If you prefer the OpenInventor approach, the official SGI version is
available 
at http://oss.sgi.com/projects/inventor/, but RPMs are scarse due to 
licensing issues?

There is an alternative, more widely used implementation of OpenInventor

called COIN (http://www.coin3d.org/), that also provides a set of Qt
widgets 
called SoQt (nice pun!), install these with RPM's:
        libcoin40
        libcoin40-devel
        libsoqt20
        libsoqt20-devel

Another scene graph not OpenInventor compliant is OpenSceneGraph 
(http://www.openscenegraph.org/), RPM is:
        OpenSceneGraph

Another option is OpenProducer
(http://www.andesengineering.com/Producer/) 
which seems to tie in with OpenSceneGraph(?), available as RPM:
        OpenProducer

So, there's enough options to well and truely confuse you for now!  I'd 
recommend starting with the basic native QGL widgets for now in some
sample 
programs to get an idea of the Qt mental model, but you will quickly
find 
these widgets to be a bit basic (unless that's what you want :-).  You
can 
then look to move to a more convenient widget with extra bells and
whistles 
by either moving  to using QGLViewer if you prefer native-style GL, or 
choosing between COIN and OpenSceneGraph if you prefer the scene graph 
approach.

Good luck, and don't hesitate to ask questions if I haven't been clear
on 
something.

Cheers!

John.

------------------------------------------------------------------------
-----
Forget that new hard drive, save some lives instead, donate to the Red
Cross:
  USA:  https://www.redcross.org/donate/donation-form.asp
  UK:  https://www.donate.bt.com/bt_form_dec.htm
  OZ:  https://www.redcross.org.au/Donations/onlineTsunamiDonations.asp
  NZ:  https://www.banqonit.com/proxypage.aspx?boiid=205


____________________________________________________
Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com
Join the Club : http://www.mandrakeclub.com
____________________________________________________

Reply via email to