Hi David,
Could you try OSG-2.6?
Robert.
On Thu, Aug 14, 2008 at 2:40 PM, David Johansson <[EMAIL PROTECTED]> wrote:
> Hi Paul,
>
> type "view" 2 times to get 2 views.
> close the first window, i always press 'f' to get out of fullscreen,
> type "view" again.. turns up black.
>
> Maybe this is my driver?
> I'm using the default ubuntu Nvidia driver. Also, running Compiz in
> the background..
>
>
> Regards,
>
> David Johansson
>
>
>
> On Thu, Aug 14, 2008 at 3:08 PM, Paul Melis <[EMAIL PROTECTED]> wrote:
>> I've tried a different series of entering "view" one or more times, followed
>> by closing one or more of the shown windows and repeating. But I've not seen
>> any "black windows" yet. What is the sequence that reproduces the problem
>> for you?
>>
>> This is on Linux, nVidia 96.43.01 driver
>>
>> Paul
>>
>> David Johansson wrote:
>>>
>>> Hi Robert,
>>>
>>> Here is code that produces the problem.
>>>
>>> I'm building/running on Ubuntu 8.04 with osg 2.4
>>>
>>> #include <iostream>
>>> #include <vector>
>>> #include <string>
>>> #include <osg/Node>
>>> #include <OpenThreads/Thread>
>>> #include <osgDB/ReadFile>
>>> #include <osgViewer/Viewer>
>>> #include <osgViewer/ViewerEventHandlers>
>>> class viewerThread: public OpenThreads::Thread
>>> {
>>> public:
>>> viewerThread( osg::Node* n ): OpenThreads::Thread(), _scene(n){}
>>> virtual void run(){
>>> osgViewer::Viewer viewer;
>>> _pViewer = &viewer;
>>> viewer.addEventHandler(new osgViewer::StatsHandler());
>>> viewer.addEventHandler(new osgViewer::ThreadingHandler());
>>> viewer.addEventHandler(new osgViewer::WindowSizeHandler());
>>> viewer.setSceneData(_scene);
>>>
>>> viewer.setThreadingModel(osgViewer::Viewer::ThreadPerContext);
>>> viewer.run();
>>> _pViewer = NULL;
>>> }
>>> void cancelViewer(){
>>> if( _pViewer != NULL )
>>> _pViewer->setDone( true );
>>> }
>>> private:
>>> osg::Node* _scene;
>>> osgViewer::Viewer* _pViewer;
>>>
>>> };
>>>
>>> int main(int argc, wchar_t* argv[])
>>> {
>>> std::vector<viewerThread*> garbage;
>>> osg::ref_ptr<osg::Node> n = osgDB::readNodeFile("cow.osg");
>>> if( !n ) return -1;
>>> bool bRun = true;
>>> do{
>>> std::wstring wsCommand;
>>> std::wcout << L"Enter Command : ";
>>> std::getline( std::wcin, wsCommand, L'\n' );
>>>
>>> if( wsCommand == L"quit" ){
>>> bRun = false;
>>> }else if ( wsCommand == L"view" ){
>>> viewerThread* vThread = new viewerThread( n.get()
>>> );
>>> garbage.push_back( vThread );
>>> vThread->startThread();
>>> }
>>> }while( bRun );
>>>
>>> for( unsigned int i = 0; i < garbage.size(); i++ ){
>>> viewerThread* p = garbage.at( i );
>>> p->cancelViewer();
>>> p->cancel();
>>> while ( p->isRunning() )
>>> {
>>> OpenThreads::Thread::microSleep(50);
>>> }
>>> delete p;
>>> }
>>> garbage.clear();
>>> return 1;
>>> }
>>>
>>> Regards,
>>>
>>> David Johansson
>>>
>>>
>>> On Thu, Aug 14, 2008 at 10:14 AM, Robert Osfield
>>> <[EMAIL PROTECTED]> wrote:
>>>
>>>>
>>>> Hi David,
>>>>
>>>> I really don't know what is up with your usage, there really isn't
>>>> enough info about how you set up things to know where things are going
>>>> astray.
>>>>
>>>> A window being black suggest to be that rendering itself hasn't
>>>> started yet, just that the window has been realized. The osgViewer
>>>> doesn't support multiple viewers sharing a single GraphicsContext
>>>> (this is what you should use osgViewer::CompositeViewer for so you can
>>>> have multiple views sharing a single context).
>>>>
>>>> Robert.
>>>>
>>>> On Wed, Aug 13, 2008 at 7:09 PM, David Johansson <[EMAIL PROTECTED]>
>>>> wrote:
>>>>
>>>>>
>>>>> Hi Everyone,
>>>>>
>>>>> I have a problem with threading and osg::Viewer.
>>>>>
>>>>> Basically i create and recreate a bunch of threads that runs a new
>>>>> Viewer instance and the problem is that the viewers 'draw area' turns
>>>>> up black if i ever close a Viewer.
>>>>>
>>>>> Thread1 creates Window1 - viewing Node1 - OK.
>>>>> Thread2 creates Window2 - viewing Node1 - Ok.
>>>>> User closes Window1
>>>>> Thread1 dies.
>>>>> Thread3 creates Window3 - viewing Node1 -- Will turn up black
>>>>> Thread4 creates Window4 - viewing Node1 -- All Ok..
>>>>> Thread5 creates Window5 - viewing Node1 -- Also Ok
>>>>> User closes window 2
>>>>> Thread2 dies.
>>>>> Thread6 creates Window6 - viewing Node1 -- Will turn up black
>>>>> Thread7 creates Window7 - viewing Node1 -- Ok again.
>>>>> User closes all windows
>>>>> Thread3 - 7 dies.
>>>>> Thread8 creates Window8 - viewing Node1 -- Black.
>>>>> Thread9 creates Window9 - viewing Node1 -- Black.
>>>>> Thread10 creates Window10 - viewing Node1 -- Black.
>>>>> Thread11 creates Window11 - viewing Node1 -- Black.
>>>>> Thread12 creates Window12 - viewing Node1 -- Black.
>>>>> Thread13 creates Window13 - viewing Node1 -- Ok!
>>>>>
>>>>> I noticed that After closing all windows, i had 5 windows running that
>>>>> acctually showed something(5 new Contexts??). After that i had to
>>>>> create 5 threads (that were black) until getting a new view that
>>>>> wasn't black.
>>>>>
>>>>> Looking through the code my guess is that "graphicsContexts" are
>>>>> getting reused, however not reset or something like that.
>>>>>
>>>>> This is the code i use to set-up my viewers:
>>>>>
>>>>> osgViewer::Viewer viewer;
>>>>> viewer.addEventHandler(new osgViewer::StatsHandler());
>>>>> viewer.addEventHandler(new osgViewer::ThreadingHandler());
>>>>> viewer.addEventHandler(new osgViewer::WindowSizeHandler());
>>>>> viewer.setSceneData(g);
>>>>> viewer.setThreadingModel(osgViewer::Viewer::ThreadPerContext); /**/
>>>>> viewer.run();
>>>>>
>>>>> Any help would be great!
>>>>>
>>>>> Regards,
>>>>>
>>>>> David Johansson
>>>>> _______________________________________________
>>>>> 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