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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org