HI Roman,<br><br>Is i the UpdateSensoeHMDOperation that is at fault? Put your own timing stats into your code and see how long this is tacking to run, my guess is that it's cost will be rather sporadic - if this is the case then you need to change the way you manage this code, such as by creating an OperationThread that sits in the background and polls the device(s), and the during the update thread it merges changes required. <br>
<br><br>Robert.<br><br><div class="gmail_quote">2009/3/20 Roman Grigoriev <span dir="ltr"><<a href="mailto:grigoriev@gosniias.ru">grigoriev@gosniias.ru</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">









<div link="blue" vlink="purple" lang="RU">

<div>

<p><span lang="EN-US">Hi Guys!</span></p>

<p><span lang="EN-US">Id like to use osg::Operation to
read sensor data to viewer orientation</span></p>

<p><span lang="EN-US">So I test simple operation but have strange
results  lags in frame rate.</span></p>

<p><span lang="EN-US">I attach picture to demonstrate it </span></p>

<p><span lang="EN-US">My config osg 2.7.2 vista nvidia 8600m gt</span></p>

<p><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">operationThread
= <span style="color: blue;">new</span> osg::OperationThread;</span><span lang="EN-US"></span></p>

<p><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">osg::ref_ptr<UpdateSensorHMDOperation>
updateOperation;</span><span lang="EN-US"></span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">updateOperation = <span style="color: blue;">new</span> UpdateSensorHMDOperation();</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">operationThread->add(updateOperation.get());</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">operationThread->startThread();</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">viewer->addUpdateOperation(updateOperation.get());</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New"; color: blue;" lang="EN-US">class</span><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">
UpdateSensorHMDOperation : <span style="color: blue;">public</span>
osg::Operation</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">{</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New"; color: blue;" lang="EN-US">public</span><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">:</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"></span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">
UpdateSensorHMDOperation(): </span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">
Operation(<span style="color: rgb(163, 21, 21);">"UpdateTextOperation"</span>, <span style="color: blue;">true</span>),</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US">
_load(<span style="color: blue;">false</span>),_valid1(<span style="color: blue;">false</span>)</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> {</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> osg::notify(osg::NOTICE)<<<span style="color: rgb(163, 21, 21);">"load update operation"</span><<std::endl;</span></p>


<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> }</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"></span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> <span style="color: blue;">virtual</span> <span style="color: blue;">void</span> <span style="color: blue;">operator</span> () (osg::Object* callingObject)</span></p>


<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> {</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> osg::notify(osg::NOTICE)<<<span style="color: rgb(163, 21, 21);">"update"</span><<std::endl;</span></p>


<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> }</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> <span style="color: blue;">virtual</span> <span style="color: blue;">void</span>
release()</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> {</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"></span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> }</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"></span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> <span style="color: blue;">bool</span> _load;</span></p>

<p style=""><span style="font-size: 10pt; font-family: "Courier New";" lang="EN-US"> </span><span style="font-size: 10pt; font-family: "Courier New"; color: blue;">bool</span><span style="font-size: 10pt; font-family: "Courier New";"> _valid1;</span></p>


<p style=""><span style="font-size: 10pt; font-family: "Courier New";"> </span></p>

<p><span style="font-size: 10pt; font-family: "Courier New";">};</span><span lang="EN-US"></span></p>

</div>

</div>


<br>_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
<br></blockquote></div><br>