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

Reply via email to