Hi all! I try querying stats for each frame. Unfortunately all values stay at 0.0. Any Ideas?
here is my code, mainly copied from the StatsHandler: Initialisation: #ifdefPROFILE_FRAMES osgViewer::ViewerBase::Camerascameras; Viewer::getCameras(cameras); Viewer::getViewerStats()->collectStats("update",true); for(osgViewer::ViewerBase::Cameras::iteratoritr=cameras.begin(); itr!=cameras.end(); ++itr) { if((*itr)->getStats())(*itr)->getStats()->collectStats("rendering",true); if((*itr)->getStats())(*itr)->getStats()->collectStats("gpu",true); } #endif After each frame the query: #ifdefPROFILE_FRAMES osgViewer::ViewerBase::Camerascameras; Viewer::getCameras(cameras); intframeNumber=Viewer::getViewerStats()->getLatestFrameNumber(); doubleupdateTime{0.0}; doublerenderingTime{0.0}; doublegpuTime{0.0}; Viewer::getViewerStats()->getAttribute(frameNumber,std::string("update"),updateTime); for(osgViewer::ViewerBase::Cameras::iteratoritr=cameras.begin(); itr!=cameras.end(); ++itr) { doubletmp{0.0}; if((*itr)->getStats()){ if((*itr)->getStats()->getAttribute(frameNumber,std::string("rendering"),tmp)) renderingTime+=tmp; if((*itr)->getStats()->getAttribute(frameNumber,std::string("gpu"),tmp)) gpuTime+=tmp; } } std::cout<<"update:"<<std::fixed<<std::setprecision(2)<<updateTime*1000.0 <<"ms\trendering:"<<std::fixed<<std::setprecision(2)<<renderingTime*1000.0 <<"ms\tgpu:"<<std::fixed<<std::setprecision(2)<<gpuTime*1000.0<<"ms"<<std::endl; #endif
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org