Hi Robert,

> Could you try OSG-2.6?
Sure

Regards

David Johansson

On Thu, Aug 14, 2008 at 3:46 PM, Robert Osfield
<[EMAIL PROTECTED]> wrote:
> 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
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to