![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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; } ... }
|