Hi Deniz,

yes I read Jan has mentioned this. Have a look in the osgdb_txp loader in
TXPNode::traverse() for inspiration if helps a bit

Nick


On Thu, Nov 7, 2013 at 9:40 AM, Deniz Koçak <lend...@gmail.com> wrote:

> Hi Trajce,
>
> I think Jan's answer [1] in the first mail mentions a similar
> solution. Setting a flag (by using userdata of the drawable may be)
> and updating the drawable in the osg::Drawable::UpdateCallback (of
> course by checking the flag) MAY solve the problem. It seems that,
> thrusting the Qt's Signal/Slot mechanism is not a good option as Jan
> pointed.
>
> Cheers,
> Deniz
>
>
>
> [1] One way to solve this is to use the slot to only modify a buffer/set a
> flag and then use e.g. an update callback on the affected OSG node to
> pick up the changes and implement them in the scene graph when it is
> safe (during update traversal).
>
> On Thu, Nov 7, 2013 at 10:35 AM, Trajce Nikolov NICK
> <trajce.nikolov.n...@gmail.com> wrote:
> > Hi Jan,
> >
> > You can modify the scenegraph in the update traversal as well. Like I
> did in
> > the TerraPage (txp) loader. In the Cull traversall I collect info for
> what
> > is to be modified and then in the update traversal I update the
> scenegraph
> > safely.
> >
> > Just a note
> >
> > Nick
> >
> >
> > On Thu, Nov 7, 2013 at 9:33 AM, Trajce Nikolov NICK
> > <trajce.nikolov.n...@gmail.com> wrote:
> >>
> >> Hi Jan,
> >>
> >> > Your approach isn't safe. OSG is *not threadsafe*. Or, rather, it is
> >> not threadsafe from arbitrary modifications. If you want to be safe,
> >> the only time when modifications to the scene graph may happen is
> >> before or after the frame() is invoked, not while frame() is running.
> >>
> >>
> >>
> >> On Wed, Nov 6, 2013 at 9:19 PM, Jan Ciger <jan.ci...@gmail.com> wrote:
> >>>
> >>> -----BEGIN PGP SIGNED MESSAGE-----
> >>> Hash: SHA1
> >>>
> >>> Hello Deniz,
> >>>
> >>> On 11/06/2013 07:07 PM, Deniz Koçak wrote:
> >>> > This is already a long mail, still I have more to say, many code to
> >>> > post, but I am not sure where should I begin. I can provide as
> >>> > much as possible. However, before ending my e-mail, I would like to
> >>> > ask if this approach is safe or not? I mean, I call frame() method
> >>> > within a Qt slot and again update related datas within another Qt
> >>> > slot. Qt has a main loop (GUI thread) of course, and is it possible
> >>> > to cause a race-condition with OSG, because it has its own
> >>> > threading model? Please ask if you need more information and of
> >>> > course you will, I would be glad to tell more.
> >>>
> >>> Your approach isn't safe. OSG is *not threadsafe*. Or, rather, it is
> >>> not threadsafe from arbitrary modifications. If you want to be safe,
> >>> the only time when modifications to the scene graph may happen is
> >>> before or after the frame() is invoked, not while frame() is running.
> >>>
> >>> If your GUI is modifying the vertex array from the Qt slot, that is,
> >>> by definition, asynchronous - you have no idea when the user presses
> >>> that button. Which may well be during the rendering when OSG is using
> >>> that data structure. If you are clearing the vertex array while the
> >>> size of the array is still set, it will go boom.
> >>>
> >>> One way to solve this is to use the slot to only modify a buffer/set a
> >>> flag and then use e.g. an update callback on the affected OSG node to
> >>> pick up the changes and implement them in the scene graph when it is
> >>> safe (during update traversal).
> >>>
> >>> Regards,
> >>>
> >>> J.
> >>> -----BEGIN PGP SIGNATURE-----
> >>> Version: GnuPG v1.4.14 (GNU/Linux)
> >>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> >>>
> >>> iD8DBQFSeqRWn11XseNj94gRAuBdAKDuE2rxjaXltXEWg4g2Mka1ZBqVIgCfbKju
> >>> vGG9MllrwxlDZjkUd1HHg+8=
> >>> =S3At
> >>> -----END PGP SIGNATURE-----
> >>> _______________________________________________
> >>> osg-users mailing list
> >>> osg-users@lists.openscenegraph.org
> >>>
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> >>
> >>
> >>
> >>
> >> --
> >> trajce nikolov nick
> >
> >
> >
> >
> > --
> > trajce nikolov nick
> >
> > _______________________________________________
> > 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
>



-- 
trajce nikolov nick
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to