Hi Alex,

Thanks for the explanation.  I'll reflect on this issue and hopefully
come up with a solution for automatically doing realize on new
windows. I won't be able to get to this right away though.

Robert.

On Mon, Jun 23, 2008 at 11:18 AM, amalric alexandre
<[EMAIL PROTECTED]> wrote:
> In fact I derived my application from the MFC exemple but with a
> compositeViewer in place of single Viewer, and when I receive a NEW_WINDOW
> event in my CView::OnInitialUpdate() I add a new view to the composite
> viewer. It avoids to launch 2 times
>
> mThreadHandle = (HANDLE)_beginthread(&cOSG::Render, 0, mOSG);
>
> in MFC example and to have 2 single viewer.
>
> So in my app, when I add a new view, i create a new osgViewer::View with
> it's own GraphicsContext with a
> osgViewer::graphicsWindowWin32::WindowData(hWnd); and add it to the
> composite viewer.
>
> 2008/6/23 Robert Osfield <[EMAIL PROTECTED]>:
>>
>> Hi Alex,
>>
>> Does the new View share an existing graphics context, or does it have
>> a new graphics context?
>>
>> Robert.
>>
>> On Mon, Jun 23, 2008 at 11:05 AM, amalric alexandre
>> <[EMAIL PROTECTED]> wrote:
>> > The problem is that if I do not add those lines :
>> >
>> > osgViewer::CompositeViewer::Windows windows;
>> > m_rpCompoViewer->getWindows(windows);
>> > // clear out all the previously assigned operations
>> > for(osgViewer::CompositeViewer::Windows::iterator citr =
>> > windows.begin();citr != windows.end();++citr)
>> > {
>> >    if(!((*citr)->isRealizedImplementation()))
>> >    {
>> >
>> >    (*citr)->realizeImplementation();
>> >    }
>> > }
>> >
>> > after calling addView (for the second view I add) it crashes in
>> >
>> > osg::getGLVersionNumber()
>> >
>> > at
>> >
>> >
>> > std::string vs( versionstring );
>> >
>> >
>> >
>> > because versionstring is NULL
>> >
>> > Adding those lines seems to resolve the problem.
>> > Kind regards,
>> > 2008/6/23 Robert Osfield <[EMAIL PROTECTED]>:
>> >>
>> >> Hi Alex,
>> >>
>> >> What we might have to do is extended the addView method so it handles
>> >> situations like your more seemlessly, i.e. do the realize etc,
>> >> however, one has to be careful about this as often you'll add views
>> >> well before you actually want them to realize.  Perhaps the best thing
>> >> would to some kind of dirty mechanism that fires off a realize etc  on
>> >> the next frame.  Just to be clear, it's the lack of realize on new
>> >> windows you've added that is the problem?
>> >>
>> >> Robert.
>> >>
>> >>
>> >> On Mon, Jun 23, 2008 at 10:48 AM, amalric alexandre
>> >> <[EMAIL PROTECTED]> wrote:
>> >> >
>> >> > Hi robert,
>> >> >
>> >> > My composite viewer is set as :
>> >> >
>> >> > m_rpCompoViewer = new osgViewer::CompositeViewer;
>> >> >
>> >> > m_rpCompoViewer->setThreadingModel(osgViewer::Viewer::SingleThreaded);
>> >> >
>> >> > I've found a osg message "[osg-users] Adding Views to a Running
>> >> > CompositeViewer" wich talks about the same problem as I have.
>> >> >
>> >> > I've juste added the code below after calling :
>> >> > m_rpCompoViewer->addView(rpView.get());
>> >> >
>> >> > osgViewer::CompositeViewer::Windows windows;
>> >> > m_rpCompoViewer->getWindows(windows);
>> >> > // clear out all the previously assigned operations
>> >> > for(osgViewer::CompositeViewer::Windows::iterator citr =
>> >> > windows.begin();citr != windows.end();++citr)
>> >> > {
>> >> >  if(!((*citr)->isRealizedImplementation()))
>> >> >  {
>> >> >   (*citr)->realizeImplementation();
>> >> >  }
>> >> > }
>> >> >
>> >> > and everything works fine.
>> >> >
>> >> >
>> >> > 2008/6/23 Robert Osfield <[EMAIL PROTECTED]>:
>> >> >>
>> >> >> HI Alex,
>> >> >>
>> >> >> I can't work out exactly what you mean w.r.t your setup.  What
>> >> >> threading model is the viewer set up as?
>> >> >>
>> >> >> W.r.t SingleThreaded not setting the _threadsRunning flag... well,
>> >> >> if
>> >> >> it's single threaded then no extra threads will be running, so the
>> >> >> code is perfectly correct.
>> >> >>
>> >> >> Also if you report a crash, please make sure you provide a stack
>> >> >> trace
>> >> >> as this is essential for others to be able to help look for the
>> >> >> cause
>> >> >> of the problem.
>> >> >>
>> >> >> Robert.
>> >> >>
>> >> >> On Mon, Jun 23, 2008 at 10:30 AM, amalric alexandre
>> >> >> <[EMAIL PROTECTED]> wrote:
>> >> >> > Hi osg-users,
>> >> >> >
>> >> >> > I maybe found a bug on CompositeViewer::addView(osgViewer::View*
>> >> >> > view)
>> >> >> > in
>> >> >> > OSG 2.5.2.
>> >> >> >
>> >> >> > I have an application wich add and remove views on a
>> >> >> > compositeViewer
>> >> >> > embedded in MFC windows. When I try to add a new view it crashes.
>> >> >> >
>> >> >> > With debug information I've noticed that in addView function
>> >> >> > _threadsRunning
>> >> >> > variable was always false, so that stopThreading is never called.
>> >> >> >
>> >> >> > I've searched why _threadsRunning was false and I've found that in
>> >> >> > ViewerBase::startThreading(), _threadsRunning is never set to true
>> >> >> > because
>> >> >> > we return before at line 269 in case we're SingleThreaded,
>> >> >> > otherwise
>> >> >> > if
>> >> >> > we're CullDrawThreadPerContext for example we just break but we
>> >> >> > don't
>> >> >> > return. Is it normal ?
>> >> >> >
>> >> >> > Kind Regards,
>> >> >> > _______________________________________________
>> >> >> > osg-users mailing list
>> >> >> > osg-users@lists.openscenegraph.org
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >> >> >
>> >> >> >
>> >> >> _______________________________________________
>> >> >> osg-users mailing list
>> >> >> osg-users@lists.openscenegraph.org
>> >> >>
>> >> >>
>> >> >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >> >
>> >> > new osgViewer::CompositeViewer;
>> >> > _______________________________________________
>> >> > osg-users mailing list
>> >> > osg-users@lists.openscenegraph.org
>> >> >
>> >> >
>> >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >> >
>> >> >
>> >> _______________________________________________
>> >> osg-users mailing list
>> >> osg-users@lists.openscenegraph.org
>> >>
>> >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >
>> >
>> > _______________________________________________
>> > osg-users mailing list
>> > osg-users@lists.openscenegraph.org
>> >
>> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>> >
>> >
>> _______________________________________________
>> osg-users mailing list
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to