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

Reply via email to