96HZ stereo in Performer 2.0

New Message Reply Date view Thread view Subject view Author view

peruski++at++predator.cs.gmr.com
Mon, 29 Jan 96 11:46:27 -0500


Has something changed in 2.0 (GL version) with stereobuffer and
left/rightbuffer calls? I can't seem to get Performer to render my scene in
stereo.

In 1.2, my application worked great. I issued the winopen, stereobuffer...
calls in the function passed as a parameter on the InitPipe call.
The initialization in the DRAW process was something like the following:

    prefposition (...)
    noborder();
    foreground();
    winopen("");
    stereobuffer();
    RGBmode();
    doublebuffer();
    zbuffer (TRUE);
    mssize(16,24,0);
    gconfig();
    viewport(...);
    subpixel(TRUE);
    multisample(TRUE);

Then, at the appropriate time, I issued leftbuffer and rightbuffer calls to
render in stereo. I draw both custom GL as well as call pfDraw to render
a Performer scene graph.

I realize that InitPipe has been removed in 2.0 and a similar feature is now
available via pfPWinConfigFunc.

I still would like to open my own GL window and assign it to
a pfPipeWindow or at least know that it still works.

The documentation seems to indicate that pfPWinGLCxt (pipe_window,
gl_window) and then pfOpenPWin (pipe_window) will do the trick.

My problem is that my custom GL renders in stereo fine, but the
Performer scene is in mono (one eye is black). I am still doing the
left/rightbuffer calls myself.

I have tried using the function pfPWinFBConfigAttrs (p, frame_buffer_atts) to
configure the window for stereo. Same result. It's as if Performer
ignores my stereobuffer call and needs something else to do stereo.

My current code, if you are still reading is:

APP process:

  pfInit();
  pfMultiprocess( PFMP_APP_CULL_DRAW | PFMP_CULLoDRAW );
  pfMultipipe (n);
  pfConfig(); /* init Performer */
  pfPhase (PFPHASE_FREE_RUN); /* as fast as possible */

  pfGetPipe(...);
  pw = pfNewPWin (...);
  pfPWinMode (pw, PFWIN_NOBORDER, PF_ON);
  pfPWinConfigFunc ( pw, OpenPipeline );
  pfConfigPWin (pw);

            channel stuff...

  pfFrame();
  pfChanTravFunc(master_chan, PFTRAV_DRAW, DrawFunc);
  pfChanShare (master_chan, ...

DRAW process:

    prefposition (...)
    foreground();
    graphic_window = winopen("");
    pfPWinGLCxt ( pw, graphic_window);
    pfOpenPWin (pw);
    stereobuffer();
    RGBmode();
    doublebuffer();
    zbuffer (TRUE);
    mssize(16,24,0);
    gconfig();
    viewport(...);
    subpixel(TRUE);
    multisample(TRUE);

I also have tried a call in both the APP and DRAW process to
pfPWinFBConfigAttrs (pw, frame_buffer_atts) with

  PFFB_RGBA,
  PFFB_DOUBLEBUFFER,
  PFFB_STEREO,
  PFFB_RED_SIZE, 8,
  PFFB_GREEN_SIZE, 8,
  PFFB_ALPHA_SIZE, 8,
  PFFB_BLUE_SIZE, 8,
  PFFB_SAMPLES, 16,
  PFFB_DEPTH_SIZE, 24,
  PFFB_STENCIL_SIZE, 0

Are there different functions to swap left/rightbuffers in 2.0?
Any ideas why Performer isn't drawing in stereo?
Should I still call stereobuffer?

Any help is greatly appreciated:
Thanks,

Larry Peruski
GM R&D Center
Warren, Mich
peruski++at++gmr.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:18 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.