Re: [osg-users] Global draw callback

2015-05-27 Thread Robert Osfield
Hi Farshid,

On 26 May 2015 at 23:16, Farshid Lashkari fla...@gmail.com wrote:

 I understand not wanting to add extra overhead. I'll look into the custom
 RenderBin approach. Also, I noticed the RenderLeaf::render method is
 virtual, but I don't see any way to provide a custom RenderLeaf class. The
 creation seems to be hard-coded within CullVisitor. Was this class
 originally designed to allow custom implementations?


I don't recall the exact details, but don't recall a plan to allow for
custom RenderLead implementations.We a talking parts of the OSG were
written over a decade ago and haven't actually been touched much since -
they've just worked.

My guess is that it was originally made non virtual and then made virtual
by request. from the community.  If CullVisitor is hardwired then having it
cloning a prototype RenderLeaf would work.

Robert.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Global draw callback

2015-05-26 Thread Farshid Lashkari
Hi Robert,

I understand not wanting to add extra overhead. I'll look into the custom
RenderBin approach. Also, I noticed the RenderLeaf::render method is
virtual, but I don't see any way to provide a custom RenderLeaf class. The
creation seems to be hard-coded within CullVisitor. Was this class
originally designed to allow custom implementations?

Cheers,
Farshid


On Tue, May 26, 2015 at 10:29 AM, Robert Osfield robert.osfi...@gmail.com
wrote:

 Hi Farshid,

 Added a if call on an inner loop of the draw dispatch traversal just for
 the purpose of niche debugging isn't something I feel is justifying as
 there will be CPU cost for everyone, even though very few people will use
 that feature.

 This type of customization would be better done via a custom RenderBin
 that overrides the RenderBin::drawImplementation(..); This way only those
 who need this customization would pay the extra cost of it.

 Robert.

 On 26 May 2015 at 18:24, Farshid Lashkari fla...@gmail.com wrote:

 Hi Robert,

 I've run into the situation multiple times where having a global draw
 callback would have been very convenient. It's mostly been for debugging
 scenarios, but I can also see other situations where being able to globally
 augment draw calls would also be useful.

 What are your thoughts on having a global draw callback part of the
 osg::State object? It doesn't seem like much code would need to be changed,
 and the performance impact should be minimal.

 Essentially, osgUtil::RenderLeaf would be modified to call:

 state.draw(_drawable, renderInfo);

 And osg::State::draw would look like:

 if(_drawCallback.valid()) _drawCallback-draw(_drawable, renderInfo);
 else _drawable-draw(renderInfo);

 Does this seem like a reasonable feature to add? I can work on a patch if
 you feel it's appropriate.

 Cheers,
 Farshid

 ___
 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


Re: [osg-users] Global draw callback

2015-05-26 Thread Robert Osfield
Hi Farshid,

Added a if call on an inner loop of the draw dispatch traversal just for
the purpose of niche debugging isn't something I feel is justifying as
there will be CPU cost for everyone, even though very few people will use
that feature.

This type of customization would be better done via a custom RenderBin that
overrides the RenderBin::drawImplementation(..); This way only those who
need this customization would pay the extra cost of it.

Robert.

On 26 May 2015 at 18:24, Farshid Lashkari fla...@gmail.com wrote:

 Hi Robert,

 I've run into the situation multiple times where having a global draw
 callback would have been very convenient. It's mostly been for debugging
 scenarios, but I can also see other situations where being able to globally
 augment draw calls would also be useful.

 What are your thoughts on having a global draw callback part of the
 osg::State object? It doesn't seem like much code would need to be changed,
 and the performance impact should be minimal.

 Essentially, osgUtil::RenderLeaf would be modified to call:

 state.draw(_drawable, renderInfo);

 And osg::State::draw would look like:

 if(_drawCallback.valid()) _drawCallback-draw(_drawable, renderInfo);
 else _drawable-draw(renderInfo);

 Does this seem like a reasonable feature to add? I can work on a patch if
 you feel it's appropriate.

 Cheers,
 Farshid

 ___
 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] Global draw callback

2015-05-26 Thread Farshid Lashkari
Hi Robert,

I've run into the situation multiple times where having a global draw
callback would have been very convenient. It's mostly been for debugging
scenarios, but I can also see other situations where being able to globally
augment draw calls would also be useful.

What are your thoughts on having a global draw callback part of the
osg::State object? It doesn't seem like much code would need to be changed,
and the performance impact should be minimal.

Essentially, osgUtil::RenderLeaf would be modified to call:

state.draw(_drawable, renderInfo);

And osg::State::draw would look like:

if(_drawCallback.valid()) _drawCallback-draw(_drawable, renderInfo);
else _drawable-draw(renderInfo);

Does this seem like a reasonable feature to add? I can work on a patch if
you feel it's appropriate.

Cheers,
Farshid
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org