Ygl Frequently Asked Questions

©opyright 1993-2005 by Fred Hucht <fred(AT)thp.Uni-Duisburg.de>

Q 1:
We have an SGI Indigo on which we run a number of softwares that use GL and which are provided to us as binaries. Since we have an X terminal networked to this station we would be interested in using it to run these softwares. Do you think that Ygl could be used for such a purpose ?
A 1:
I don't think this is possible. Normally you must have the source of the GL application and relink it with libYgl.a instead of libgl.a. This relink will fail if the application uses routines that are not implemented in Ygl, ie. all 3D stuff, object stuff and so on. There is one known case where you don't need the sources:
You have shared libraries and both libgl.a and libYgl.a are shared libs (True under AIX3). Then you can make a directory eg. ~/lib and prepend ~/lib to the libpath. Under AIX3 this is done by setting the environment variable LIBPATH to "~/lib:/usr/lib", under Linux the variable is called LD_LIBRARY_PATH. Then move libYgl.a to ~/lib/libgl.a and try to run your application. If you get errors like "symbol xxx in yyy is undefined" the application requires routines that are not part of Ygl. If you are lucky the program runs.

Q 2:
I have installed Linux + XFree86 on a PC486. If i run programs on remote machines, everything goes all right as long as the program (run on SGI machines) does not use GL. Otherwise, an error message is displayed:
dlg error (protocol): remote machine not DGL capable - machinename:0
dgl error (default init): default dglopen(machinename:0,4) returned -13
Do you think that Ygl can do the trick and make my machine "DGL capable" ?
A 2:
No. You need distributed GL (DGL). DGL is an old extension to GL to make GL networkable. As far as I know, DGL only runs on SGIs (both client and server). There is only a small chance that you can solve your problem with Ygl (see A1).

Q 3:
When using Ygl together with C++ under HP-UX (i.e. with the compiler CC), the float versions of the drawing commands apparently don't do anything and functions like ortho2() keep complaining about zero height/width. What's wrong?
A 3:
Ygl is written (and thus compiled) in ANSI C. For a proper communication between C++ and ANSI C (especially float <-> double) you have to use the option +a1 (contributed by Lothar Brendel <l.brendel@uni-duisburg.de>)