Ivan Bach (ib++at++ivan)
Sat, 8 Jan 94 04:20:38 -0800
Motif is just a toolkit that makes it easier to write X programs. You seem
to be trying to mix GL and X. If that is what you want to do, you need to
write a mixed-model program that calls routines such as:
GLXgetconfig
GLXwinset
GLXlink
GLXunlink
Please read the man pages for these routines. In the man page for
GLXwinset(3G), it says:
-------------------------------------------------------------------------
All of the GL routines which access window system controlled features
are illegal to call for a mixed model window. Not all of these routines
report errors, so here is a list of the routines which mixed model
programs cannot call.
qdevice, qread, qtest, qenter, getbutton, getvaluator, setvaluator,
noise, unqdevice, mapcolor, getmcolor, gconfig, doubelbuffer,
singlebuffer, RGBmode, cimode, overlay, underlay, acsize, curstype,
defcursor, setcursor, winopen, wintitle, winposition, winmove,
foreground, noborder, noport, iconsize, icontitle, keepaspect, maxsize,
minsize, step, fudge, prefposition, prefsize
The following routines will work, but execute much slower for mixed model
windows, and this information should be obtained from the window system
if at all possible. Avoid these routines.
getsize, getorigin, reshapeviewport, getviewport
-------------------------------------------------------------------------
If your program is a mixed-model program, it should not call winopen.
Please install 4Dgifts (sample programs from SGI), and look at the sample
programs in the directory:
/usr/people/4Dgifts/examples/GLX
Basically, your program can open a window, and bind it to GL. Once a window
is bound to GL, it becomes a mixed-model window, and you can use only GL
routines to draw in that window. If you try to use X routines to draw in
that window, the results are undefined.
Mixed-model programming is also explained in the "Transition Guide:
Programming Environment."
Please check whether you are linking your program with a shared (libgl_s,
-lgl_s) or unshared (libgl, -lgl) version of the graphics library. Only
the shared version can do distributed or remote GL (dgl).
Enter:
printenv
or:
echo $DISPLAY
to check the setting of your environment variable DISPLAY. If DISPLAY
points to a remote machine (not set to :0), or if your machine is a gateway
and has two entries in the host table (bug in dgl), you can get the error
message you reported.
Ivan Bach, ib++at++asd.sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:08 PDT