My code works without calling OpenThreads::Thread::Init() in r7330.

I appreciate your attention.
Abe

Robert Osfield wrote:
> Hi Abe,
>
> 've added a Thread::Init() call into
> OpenThreads::SetProcessorAffinityOfCurrentThread().  This should
> hopefully solve the crash without you need to resort to adding a
> OpenThreads::Thread::Init() to your own application.
>
> Could you do check out the svn version of the OSG, and revert your own
> adding of Init() and let me know how you get on.
>
> Robert.
>
> On 8/31/07, Abe Stephens <[EMAIL PROTECTED]> wrote:
>   
>> I resolved this issue by calling OpenThreads::Thread::Init() during
>> program initialization (not sure why the glut example didn't need to do
>> this). My application is now successfully using
>> setUpViewerAsEmbeddedInWindow in combination with wxpython using a
>> rather modified version of Hartmut Seichter's osgBindings swig package.
>>
>> Thanks-
>> Abe
>>
>> Abe Stephens wrote:
>>     
>>> Thanks, I appreciate the help. osgViewer::Viewer produces a segfault in
>>> libOpenThreads:
>>>
>>>     #0  0xb5dc577d in OpenThreads::Thread::setProcessorAffinity
>>>     (this=0x80d1d78, cpunum=0)
>>>         at
>>>     
>>> /local/abe/build-piglet/package/OpenSceneGraph/src/OpenThreads/pthreads/PThread.c++:505
>>>     #1  0xb5dc589c in OpenThreads::SetProcessorAffinityOfCurrentThread
>>>     (cpunum=0)
>>>         at
>>>     
>>> /local/abe/build-piglet/package/OpenSceneGraph/src/OpenThreads/pthreads/PThread.c++:922
>>>     #2  0xb4370771 in osgViewer::Viewer::setUpThreading (this=0x88ef878)
>>>     at
>>>     
>>> /local/abe/build-piglet/package/OpenSceneGraph/src/osgViewer/Viewer.cpp:898
>>>     #3  0xb4370e16 in osgViewer::Viewer::realize (this=0x88ef878) at
>>>     
>>> /local/abe/build-piglet/package/OpenSceneGraph/src/osgViewer/Viewer.cpp:1794
>>>     #4  0xb4dada46 in _wrap_Viewer_realize (args=0x87eec4c) at
>>>     
>>> /local/abe/build-piglet/package/osgBindings/build-gcc/src/osgViewerPYTHON_wrap.cxx:10607
>>>
>>> Further inspection of the call stack revealed that when executed via
>>> glut Thread::CurrentThread() on line 919 of PThread.c++ returns zero
>>> while when executed in the wx program returns a bogus pointer.
>>>
>>> The function is invoked as:
>>>
>>>     self.viewer = osgViewer.Viewer()
>>>     pos = self.GetRect();
>>>     self.viewer.setUpViewerAsEmbeddedInWindow( pos.x, pos.y, pos.width,
>>>     pos.height )
>>>     self.viewer.setThreadingModel(osgViewer.Viewer.SingleThreaded)
>>>     self.viewer.realize() # Causes segfault above.
>>>
>>> Do you have any idea why this might be the case? I appreciate that this
>>> problem is likely related to an interaction with python, but any advice
>>> would be appreciated.
>>>
>>> -Thanks
>>> Abe
>>>
>>> Robert Osfield wrote:
>>>
>>>       
>>>> Hi Abe,
>>>>
>>>> I don't know what might be up given your code fragment. SceneView is
>>>> lower level that osgViewer::Viewer, so does require more care with
>>>> setup, and its less powerful....
>>>>
>>>> Personally I wouldn't recommend using SceneView in your own code, just
>>>> use osgViewer::Viewer and its embedded mode if you need to integrate
>>>> with an existing window.   It's a waste of our time to struggle on
>>>> trying to get SceneView do things that Viewer already does out of the
>>>> box perfectly.
>>>>
>>>> Robert.
>>>>
>>>> On 8/30/07, Abe Stephens <[EMAIL PROTECTED]> wrote:
>>>>
>>>>
>>>>         
>>>>> Hi, I'm attempting to load an animated .osg scene exported from blender
>>>>> into an existing application with minimal fuss. The existing application
>>>>> has a basic glut front end and a more useful wxpython front end. I'm
>>>>> having trouble getting animation to work properly:
>>>>>
>>>>> In the glut application using osgViewer::Viewer animation works when
>>>>> I call:
>>>>>
>>>>>      viewer->advance()
>>>>>      viewer->updateTraversal()
>>>>>      viewer->renderingTraversal()
>>>>>
>>>>> However in the wxpython application, using osgUtil::SceneView animation
>>>>> does not work. I am calling:
>>>>>
>>>>>      frameStamp = osg.FrameStamp()
>>>>>      time =
>>>>>      osg.Timer.instance().delta_s(self.start_tick,osg.Timer.instance
>>>>> ().tick())
>>>>>      frameStamp.setReferenceTime(time)
>>>>>      frameStamp.setSimulationTime(time)
>>>>>      frameStamp.setFrameNumber(self.framecounter)
>>>>>      self.framecounter += 1
>>>>>
>>>>>      self.sceneviewer.setFrameStamp( frameStamp )
>>>>>      self.sceneviewer.update()
>>>>>      self.sceneviewer.cull()
>>>>>      self.sceneviewer.draw()
>>>>>
>>>>> I noticed that unlike osgViewer::Viewer, SceneView::update() does not
>>>>> appear to apply the update visitor to the scene data, only to the
>>>>> camera.
>>>>>
>>>>> Any idea what I am doing wrong?
>>>>>
>>>>> Thanks-
>>>>> Abe
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> osg-users mailing list
>>>>> [email protected]
>>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> osg-users mailing list
>>>> [email protected]
>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> osg-users mailing list
>>> [email protected]
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>>       
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>     
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>   

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to