Performer Stereo Channels?

New Message Reply Date view Thread view Subject view Author view

Bruce Cameron (bmc++at++autobahn.mayo.EDU)
Thu, 15 Sep 94 11:17:26 CDT


I'm trying to turn stereo display on/off within a Performer
application. I use the following code to create a 2nd channel
and set the offsets. Problem is, I'm not seeing double in
the window. I believe that I'm only seeing the left (master)
channel in the window.

Anyone have any clues as to what I'm not doing right or
the step(s) I've missed? Many Thanks.

pfChannel *right;
pfVec3 stereoXYZ, stereoHPR;

static void stereoOn (void)
{
    pfVec3 xyz, hpr;
    long mask = pfGetChanShare (ViewState->masterChan);
    pfPipe *pipe = pfGetChanPipe (ViewState->masterChan);
    static int firsttime = 1;
  
    if (firsttime) {
        right = pfNewChan (pipe); /* ViewState->masterChan is left eye */
        pfChanShare (ViewState->masterChan,
mask|PFCHAN_VIEWPORT|PFCHAN_SWAPBUFFERS_HW);
        pfAttachChan (ViewState->masterChan, right);
        firsttime = 0;
    }
        
    pfGetChanViewOffsets (ViewState->masterChan, stereoXYZ, stereoHPR);
  
    /* setup viewing offsets */
    pfSetVec3 (xyz, stereoXYZ[PF_X]+2.0, stereoXYZ[PF_Y], stereoXYZ[PF_Z]);
    pfSetVec3 (hpr, stereoHPR[PF_H]+3.0f, stereoHPR[PF_P], stereoHPR[PF_R]);
    pfChanViewOffsets (ViewState->masterChan, xyz, hpr);
  
    /* for right eye */
    pfSetVec3 (xyz, stereoXYZ[PF_X]-2.0, stereoXYZ[PF_Y], stereoXYZ[PF_Z]);
    pfSetVec3 (hpr, stereoHPR[PF_H]-3.0f, stereoHPR[PF_P], stereoHPR[PF_R]);
    pfChanViewOffsets (right, xyz, hpr);
}

static void stereoOff (void)
{
    pfChanViewOffsets (ViewState->masterChan, stereoXYZ, stereoHPR);
    pfChanViewOffsets (right, stereoXYZ, stereoHPR);
}

---
--Bruce
-----------------------------------------------------
Bruce M. Cameron		bmc++at++mayo.edu
Mayo Foundation			office: (507) 284-3288
200 1st St SW			fax:    (507) 284-1428
Rochester, MN 55905		ARS WD9CKW

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:50:32 PDT

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