OSG : segfault fix in SDCameras::~SDCameras()
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5234 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: b69dd341a344b4c2a841136e169565bcee6b65eb Former-commit-id: f2ef8d91dfba863cb28c7755594ffa96bc3a9410
This commit is contained in:
parent
0499f9b741
commit
bc0ad79e4a
4 changed files with 10 additions and 10 deletions
|
@ -2385,7 +2385,7 @@ void SDCameras::update(tCarElt * car, tSituation * s){
|
||||||
|
|
||||||
SDCameras::~SDCameras(){
|
SDCameras::~SDCameras(){
|
||||||
for(int i=0;i<CAMERA_LISTS;i++){
|
for(int i=0;i<CAMERA_LISTS;i++){
|
||||||
for(int j=0; j<cameras[j].size();j++){
|
for(int j=0; j<cameras[i].size();j++){
|
||||||
delete cameras[i][j];
|
delete cameras[i][j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,13 +118,13 @@ void OsgGraph::unloadCars()
|
||||||
|
|
||||||
void OsgGraph::unloadTrack()
|
void OsgGraph::unloadTrack()
|
||||||
{
|
{
|
||||||
GfLogDebug("OsgGraph::unloadTrack\n");
|
//GfLogDebug("SsgGraph::unloadTrack\n");
|
||||||
::shutdownTrack();
|
::shutdownTrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OsgGraph::shutdownView()
|
void OsgGraph::shutdownView()
|
||||||
{
|
{
|
||||||
GfLogDebug("OsgGraph::shutdownView\n");
|
//GfLogDebug("SsgGraph::shutdownView\n");
|
||||||
::shutdownView();
|
::shutdownView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,7 @@ int initCars(tSituation *s)
|
||||||
void
|
void
|
||||||
shutdownTrack(void)
|
shutdownTrack(void)
|
||||||
{
|
{
|
||||||
m_sceneroot->removeChildren(0,m_sceneroot->getNumChildren());
|
//m_sceneroot->removeChildren(0,m_sceneroot->getNumChildren());
|
||||||
// Do the real track termination job.
|
// Do the real track termination job.
|
||||||
delete scenery;
|
delete scenery;
|
||||||
//delete m_sceneroot;
|
//delete m_sceneroot;
|
||||||
|
|
|
@ -42,9 +42,9 @@ void SDScreens::Init(int x,int y, int width, int height, osg::ref_ptr<osg::Group
|
||||||
|
|
||||||
|
|
||||||
//intialising main screen
|
//intialising main screen
|
||||||
osg::Camera * mirrorCam = new osg::Camera;
|
osg::ref_ptr<osg::Camera> mirrorCam = new osg::Camera;
|
||||||
|
|
||||||
SDView * view = new SDView(viewer->getCamera(),0,0,grWinw,grWinh,mirrorCam);
|
SDView * view = new SDView(viewer->getCamera(),0,0,grWinw,grWinh,mirrorCam.get());
|
||||||
|
|
||||||
viewer->setThreadingModel(osgViewer::Viewer::CullThreadPerCameraDrawThreadPerContext);
|
viewer->setThreadingModel(osgViewer::Viewer::CullThreadPerCameraDrawThreadPerContext);
|
||||||
osg::ref_ptr<osgViewer::GraphicsWindowEmbedded> gw = viewer->setUpViewerAsEmbeddedInWindow(0, 0, grWinw, grWinh);
|
osg::ref_ptr<osgViewer::GraphicsWindowEmbedded> gw = viewer->setUpViewerAsEmbeddedInWindow(0, 0, grWinw, grWinh);
|
||||||
|
@ -66,7 +66,7 @@ void SDScreens::Init(int x,int y, int width, int height, osg::ref_ptr<osg::Group
|
||||||
|
|
||||||
|
|
||||||
//adding all otherer cams
|
//adding all otherer cams
|
||||||
osg::Camera * screenCam;
|
osg::ref_ptr<osg::Camera> screenCam;
|
||||||
for(int i=1;i<GR_NB_MAX_SCREEN;i++){
|
for(int i=1;i<GR_NB_MAX_SCREEN;i++){
|
||||||
screenCam = new osg::Camera;
|
screenCam = new osg::Camera;
|
||||||
screenCam->setGraphicsContext(gw);
|
screenCam->setGraphicsContext(gw);
|
||||||
|
@ -83,7 +83,7 @@ void SDScreens::Init(int x,int y, int width, int height, osg::ref_ptr<osg::Group
|
||||||
mirrorCam->addChild(m_sceneroot);
|
mirrorCam->addChild(m_sceneroot);
|
||||||
mirrorCam->setNodeMask(0);
|
mirrorCam->setNodeMask(0);
|
||||||
|
|
||||||
view = new SDView(screenCam,0,0,grWinw,grWinh,mirrorCam);
|
view = new SDView(screenCam.get(),0,0,grWinw,grWinh,mirrorCam.get());
|
||||||
|
|
||||||
grScreens.insert(grScreens.end(),view);
|
grScreens.insert(grScreens.end(),view);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue