Hi David,
I have just merged your changes, and tweaked the RenderBin setup so
that it's now down inside Dragger.cpp and looks like:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ManipulatorRenderBin
//
static osgUtil::RenderBin* createManipulatorRenderBin()
{
osg::ref_ptr<osgUtil::RenderBin> rb = new osgUtil::RenderBin();
osg::StateSet * ss = new osg::StateSet();
// switch off the Depth Test ==> Drawable is always draw over any
other Drawables
ss->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF |
osg::StateAttribute::OVERRIDE);
// switch on blending ==> Drawable is blend with Drawable back it
// ss->setAttributeAndModes(new osg::BlendColor(osg::Vec4(0.5,0.5,0.5,1)),
// osg::StateAttribute::ON |
osg::StateAttribute::OVERRIDE);
// ss->setAttributeAndModes(new
osg::BlendFunc(osg::BlendFunc::CONSTANT_COLOR,
osg::BlendFunc::ONE_MINUS_CONSTANT_COLOR),
ss->setAttributeAndModes(new
osg::BlendFunc(osg::BlendFunc::SRC_ALPHA,
osg::BlendFunc::ONE_MINUS_SRC_ALPHA),
osg::StateAttribute::ON |
osg::StateAttribute::OVERRIDE);
ss->setAttributeAndModes(new osg::BlendEquation(),
osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
rb->setStateSet(ss);
return rb.release();
}
osgUtil::RegisterRenderBinProxy
s_registerManipulatorRenderBinProxy("ManipulatorRenderBin",
createManipulatorRenderBin());
The changed Dragger.cpp is attached, this avoids the need to have the
RegisterManipulatorRenderBinProxy header and .cpp.
After merging and compiling everything I've run osgmanipulator and
couldn't get the dragging to work - I couldn't move any of the items,
and the once I attempted to drag the frame rate went way down and
became jerky. A second concern is that the visual effect of the
manipulators appearing through the objects is quite distracting, the
breaking of occlusion is really not something that will be generally
acceptable. Given the effect you are after is something that will be
very user specific in concerns me that you've made the code code paths
mandatory.
Since there are two major problems with the code as is I have to
reject the submission and revert back to to the original version of
osgManipulator - there is no way I can check in something that breaks
the existing applications. For this changes to be acceptable they
will have to make the new rendering mode an option that is switched
off by default, and for the manipulators to work correctly.
Cheers,
Robert.
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org