HI Rui, Thanks for your input. I think the version wrapper would be the best way forward.
Robert. On 24 March 2015 at 14:39, Wang Rui <[email protected]> wrote: > Hi Robert and John, > > As Geode and Group serializers both contain only one user macro for > storing children nodes, I think we can simply rewrite the Geode serializer > like this: > REGISTER_OBJECT_WRAPPER( Geode, > new osg::Geode, > osg::Geode, > "osg::Object osg::Node osg::Geode" ) > { > ADD_USER_SERIALIZER( Drawables ); // _drawables > { > UPDATE_TO_VERSION_SCOPED( 115 ) > REMOVE_SERIALIZER( Drawables ); > ADD_USER_SERIALIZER( Children ); // _children > } > } > > Similar work should be done on osg::Drawable serializers as well to > support some important attributes like NodeMask and CullingActive. This is > the fastest way to update serializers and keep back-compatibility in my > opinion, without changes to the core modules. > > An alternative way is to have a new REGISTER_VERSIONED_OBJECT_WRAPPER > macro to submit a new ObjectWrapper to the registry, in which only wrapper > with newer version number can be accepted, such like: > REGISTER_VERSIONED_OBJECT_WRAPPER( 115, Geode, > new osg::Geode, > osg::Geode, > "osg::Object osg::Group osg::Geode" ) > { > ... > } > > The second way might be easier and more readable for further use. > > Cheers, > > Wang Rui > > ------------------ Original ------------------ > *From: * "Robert Osfield";<[email protected]>; > *Date: * Tue, Mar 24, 2015 05:37 PM > *To: * "OpenSceneGraph Users"<[email protected]>; "Wang > Rui"<[email protected]>; > *Subject: * Re: [osg-users] Register object wrapper for osg::Geode > > Hi John and Rui, > > Well spotted. I am not sure what to do about this one. I think fixing the > REGISTER_OBJECT_WRAPPER to include osg::Group may well break the parsing of > .osgb files as the current serializers aren't versioned for the associates > list. > > Having two separate wrappers might be the way forward. Or adding some for > of versioning for the associate list. > > Any thoughts Rui? > > Cheers, > Robert. > > On 24 March 2015 at 08:33, John Ivar Haugland <[email protected]> > wrote: > >> Hi, >> >> I notice that osg::Geode now inherits osg::Group instead of osg::Node. >> >> However, in the corresponsing serializer osg::Group is not mentioned in >> REGISTER_OBJECT_WRAPPER( Geode, >> new osg::Geode, >> osg::Geode, >> "osg::Object osg::Node osg::Geode" ) >> >> >> Is this correct ? or should it be changed to >> >> REGISTER_OBJECT_WRAPPER( Geode, >> new osg::Geode, >> osg::Geode, >> "osg::Object osg::Node osg::Group osg::Geode" ) >> >> >> Kind regards >> John Ivar Haugland >> >> >> >> _______________________________________________ >> 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

