Changeset 3819 for OpenSceneGraph/trunk/examples/osgmovie/osgmovie.cpp
- Timestamp:
- 02/09/05 11:39:45 (8 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgmovie/osgmovie.cpp
r3812 r3819 17 17 #include <osgGA/TrackballManipulator> 18 18 19 osg::ImageStream* s_imageStream = 0; 20 class PostSwapFinishCallback : public Producer::Camera::Callback 21 { 22 public: 23 24 PostSwapFinishCallback() {} 25 26 virtual void operator()(const Producer::Camera& camera) 27 { 28 // osg::Timer_t start_tick = osg::Timer::instance()->tick(); 29 30 osgProducer::OsgSceneHandler* sh = const_cast<osgProducer::OsgSceneHandler*>(dynamic_cast<const osgProducer::OsgSceneHandler*>(camera.getSceneHandler())); 31 32 if (s_imageStream && s_imageStream->getPixelBufferObject()) s_imageStream->getPixelBufferObject()->compileBuffer(*(sh->getSceneView()->getState())); 33 // glFinish(); 34 35 //osg::notify(osg::NOTICE)<<"callback after PBO "<<osg::Timer::instance()->delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<<std::endl; 36 } 37 }; 38 19 39 class MovieEventHandler : public osgGA::GUIEventHandler 20 40 { … … 78 98 inline void apply(osg::ImageStream* imagestream) 79 99 { 80 if (imagestream) _imageStreamList.push_back(imagestream); 100 if (imagestream) 101 { 102 _imageStreamList.push_back(imagestream); 103 s_imageStream = imagestream; 104 } 81 105 } 82 106 … … 259 283 } 260 284 285 // set up a post swap callback to flush deleted GL objects and compile new GL objects 286 for(unsigned int cameraNum=0;cameraNum<viewer.getNumberOfCameras();++cameraNum) 287 { 288 Producer::Camera* camera=viewer.getCamera(cameraNum); 289 camera->addPostSwapCallback(new PostSwapFinishCallback()); 290 } 291 261 292 // set the scene to render 262 293 viewer.setSceneData(geode);
