Changeset 4477 for OpenSceneGraph/trunk/examples/osgcamera/osgcamera.cpp
- Timestamp:
- 08/30/05 16:41:08 (8 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgcamera/osgcamera.cpp
r4446 r4477 48 48 virtual void operator () (osg::GraphicsContext* context) 49 49 { 50 std::cout<<"FrameOperation draw begin"<<context<<std::endl;51 52 50 _sceneView->setState(context->getState()); 53 51 _sceneView->setProjectionMatrix(_camera->getProjectionMatrix()); … … 57 55 _sceneView->cull(); 58 56 _sceneView->draw(); 59 60 std::cout<<"FrameOperation draw end"<<context<<std::endl;61 57 } 62 58 … … 128 124 } 129 125 130 // realise the window131 gfxc->realize();132 133 126 camera->setGraphicsContext(gfxc.get()); 134 127 … … 142 135 camera->setViewMatrix(viewMatrix); 143 136 144 137 // graphics thread will realize the window. 145 138 gfxc->createGraphicsThread(); 146 139 … … 163 156 std::cout<<"nubmer of gfx."<<graphicsContextSet.size()<<std::endl; 164 157 165 166 GraphicsContextSet::iterator gitr;167 for(gitr = graphicsContextSet.begin();168 gitr != graphicsContextSet.end();169 ++gitr)170 {171 std::cout<<"Issue swap."<<std::endl;172 osg::GraphicsContext* context = *gitr;173 context->getGraphicsThread()->add(swapOp.get(), true);174 }175 176 158 // record the timer tick at the start of rendering. 177 159 osg::Timer_t start_tick = osg::Timer::instance()->tick(); 160 osg::Timer_t previous_tick = start_tick; 178 161 179 162 bool done = false; … … 182 165 while( !done ) 183 166 { 184 std::cout<<"Frame "<<frameNum<<std::endl; 185 186 frameStamp->setReferenceTime(osg::Timer::instance()->delta_s(start_tick,osg::Timer::instance()->tick())); 167 168 osg::Timer_t current_tick = osg::Timer::instance()->tick(); 169 170 frameStamp->setReferenceTime(osg::Timer::instance()->delta_s(start_tick,current_tick)); 187 171 frameStamp->setFrameNumber(frameNum++); 188 172 189 std::cout<<"Frame rate "<<(double)frameNum / frameStamp->getReferenceTime()<<std::endl; 173 std::cout<<"Frame rate "<<1.0/osg::Timer::instance()->delta_s(previous_tick,current_tick)<<std::endl; 174 previous_tick = current_tick; 190 175 191 176 … … 201 186 } 202 187 188 GraphicsContextSet::iterator gitr; 203 189 for(gitr = graphicsContextSet.begin(); 204 190 gitr != graphicsContextSet.end(); … … 210 196 } 211 197 212 std::cout<<"Join frameEndBarrierOp block "<<std::endl;198 osg::notify(osg::INFO)<<"Join frameEndBarrierOp block "<<std::endl; 213 199 osg::Timer_t before_tick = osg::Timer::instance()->tick(); 214 200 frameEndBarrierOp->block(); 215 201 osg::Timer_t after_tick = osg::Timer::instance()->tick(); 216 std::cout<<"Leave frameEndBarrierOp block "<<osg::Timer::instance()->delta_s(before_tick,after_tick)<<std::endl;217 218 std::cout<<"Join preSwapBarrierOp block "<<std::endl;202 osg::notify(osg::INFO)<<"Leave frameEndBarrierOp block "<<osg::Timer::instance()->delta_s(before_tick,after_tick)<<std::endl; 203 204 osg::notify(osg::INFO)<<"Join preSwapBarrierOp block "<<std::endl; 219 205 before_tick = osg::Timer::instance()->tick(); 220 // preSwapBarrierOp->block();221 206 after_tick = osg::Timer::instance()->tick(); 222 std::cout<<"Leave preSwapBarrierOp block "<<osg::Timer::instance()->delta_s(before_tick,after_tick)<<std::endl;207 osg::notify(osg::INFO)<<"Leave preSwapBarrierOp block "<<osg::Timer::instance()->delta_s(before_tick,after_tick)<<std::endl; 223 208 224 209 for(gitr = graphicsContextSet.begin(); … … 227 212 { 228 213 osg::GraphicsContext* context = *gitr; 229 context->getGraphicsThread()->add(swapOp.get(), false);214 context->getGraphicsThread()->add(swapOp.get(), true); 230 215 } 231 216
