From ede7117f836e21eb1e01c45838521eb6a25b664b Mon Sep 17 00:00:00 2001 From: Don BURNS Date: Thu, 2 Dec 2004 21:28:40 +0000 Subject: [PATCH] fixed CameraPacket to allocate on the heap instead of the stack, which was causing crashes. --- examples/osgcluster/osgcluster.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/osgcluster/osgcluster.cpp b/examples/osgcluster/osgcluster.cpp index cb40983b7..ef1d487ca 100644 --- a/examples/osgcluster/osgcluster.cpp +++ b/examples/osgcluster/osgcluster.cpp @@ -181,6 +181,7 @@ int main( int argc, char **argv ) } + CameraPacket *cp = new CameraPacket; // objects for managing the broadcasting and recieving of camera packets. Broadcaster bc; Receiver rc; @@ -205,14 +206,13 @@ int main( int argc, char **argv ) { case(MASTER): { - CameraPacket cp; // take camera zero as the guide. osg::Matrix modelview(viewer.getCameraConfig()->getCamera(0)->getViewMatrix()); - cp.setPacket(modelview,viewer.getFrameStamp()); + cp->setPacket(modelview,viewer.getFrameStamp()); - bc.setBuffer(&cp, sizeof( CameraPacket )); + bc.setBuffer(cp, sizeof( CameraPacket )); bc.sync(); @@ -220,20 +220,19 @@ int main( int argc, char **argv ) break; case(SLAVE): { - CameraPacket cp; - rc.setBuffer(&cp, sizeof( CameraPacket )); + rc.setBuffer(cp, sizeof( CameraPacket )); rc.sync(); - cp.checkByteOrder(); + cp->checkByteOrder(); osg::Matrix modelview; - cp.getModelView(modelview,camera_offset); + cp->getModelView(modelview,camera_offset); viewer.setView(modelview); - if (cp.getMasterKilled()) + if (cp->getMasterKilled()) { std::cout << "received master killed"<setPacket(osg::Matrix::identity(),viewer.getFrameStamp()); + cp->setMasterKilled(true); - bc.setBuffer(&cp, sizeof( CameraPacket )); + bc.setBuffer(cp, sizeof( CameraPacket )); bc.sync(); std::cout << "broadcasting death"<