[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

BadMatch on Open3D glXMakeCurrent?

» close window

The Question is:

 
Well.... this is really an Open3d question..
but it IS running under VMS and involves CDE
on VMS... I can only hope that the wizard or
some member of the wizard's guild who may
specialize in these kinds of spells can
supply some insight...
 
I am attempting to get xlockmore 4.12 running
under Digital Open3d (GL) and CDE using the
dtsaver api (xlock -dtsaver switch). The
glXMakeCurrent() call fails with
  'BadMatch (invalid parameter attributes)'.
I attribute this to the fact that CDE is
providing the window into which GL needs to
write, but the window has a visual associated
with it that Open3d is getting indigestion about.
If xlockmore creates the window into which it
draws, Open3d is perfectly happy with it, but it
really doesn't like something about the windows
given to it by CDE.
 
Since I'm not an Xwizard, I have been unable to
figure out a way around this other than to use
Mesa (which while it works, and I am grateful
for it, the performance isn't quite on par with
Open3d).
 
Any assistance would be appreciated - Thank You.
 


The Answer is :

 
  Earlier versions of xlock, xlockmore, and friends have been ported to
  OpenVMS, and are on the OpenVMS freeware distribution.  These may be
  an appropriate source for examples.
 
  One of the typical causes of BadMatch returns from calls to glXMakeCurrent
  is an uninitialized visual parameter.
 
  You will likely need to contact the customer support center, and you
  should expect to be asked for an example of the failing code.
 
  Off the top, the usual code sequence looks something like this:
 
 
  OverlayContext = glXCreateContext( Xdisplay,...
  ...
  OverlayWindow = XCreateWindow( Xdisplay, GLwindow, ...
  ...
  XMapWindow(Xdisplay, Xwindow);
  if ( Xwindow != GLwindow )
    XMapWindow( Xdisplay, GLwindow );
  if ( Overlay_OK )
    XMapWindow( Xdisplay, OverlayWindow );
 
  glXWaitX();
  if ( Overlay_OK )
    {
    if ( !glXMakeCurrent( Xdisplay, OverlayWindow, OverlayContext ) )
      {
      ... "Unable to make overlay window current" ...
      return false;
      }
    ...
    }
 

answer written or last revised on ( 12-JAN-1999 )

» close window