Show
Ignore:
Timestamp:
12/02/04 22:28:40 (9 years ago)
Author:
don
Message:

fixed CameraPacket? to allocate on the heap instead of the stack, which
was causing crashes.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgcluster/osgcluster.cpp

    r3511 r3728  
    182182 
    183183 
     184    CameraPacket *cp = new CameraPacket; 
    184185    // objects for managing the broadcasting and recieving of camera packets. 
    185186    Broadcaster     bc; 
     
    206207        case(MASTER): 
    207208            { 
    208                 CameraPacket cp; 
    209209                 
    210210                // take camera zero as the guide. 
    211211                osg::Matrix modelview(viewer.getCameraConfig()->getCamera(0)->getViewMatrix()); 
    212212                 
    213                 cp.setPacket(modelview,viewer.getFrameStamp()); 
    214  
    215                 bc.setBuffer(&cp, sizeof( CameraPacket )); 
     213                cp->setPacket(modelview,viewer.getFrameStamp()); 
     214 
     215                bc.setBuffer(cp, sizeof( CameraPacket )); 
    216216                 
    217217                bc.sync(); 
     
    221221        case(SLAVE): 
    222222            { 
    223                 CameraPacket cp; 
    224  
    225                 rc.setBuffer(&cp, sizeof( CameraPacket )); 
     223 
     224                rc.setBuffer(cp, sizeof( CameraPacket )); 
    226225 
    227226                rc.sync(); 
    228227     
    229                 cp.checkByteOrder(); 
     228                cp->checkByteOrder(); 
    230229 
    231230                osg::Matrix modelview; 
    232                 cp.getModelView(modelview,camera_offset); 
     231                cp->getModelView(modelview,camera_offset); 
    233232                 
    234233                viewer.setView(modelview); 
    235234 
    236                 if (cp.getMasterKilled())  
     235                if (cp->getMasterKilled())  
    237236                { 
    238237                    std::cout << "received master killed"<<std::endl; 
     
    260259    { 
    261260        // need to broadcast my death. 
    262         CameraPacket cp; 
    263         cp.setPacket(osg::Matrix::identity(),viewer.getFrameStamp()); 
    264         cp.setMasterKilled(true); 
    265  
    266         bc.setBuffer(&cp, sizeof( CameraPacket )); 
     261        cp->setPacket(osg::Matrix::identity(),viewer.getFrameStamp()); 
     262        cp->setMasterKilled(true); 
     263 
     264        bc.setBuffer(cp, sizeof( CameraPacket )); 
    267265        bc.sync(); 
    268266