Hi Sukender, My gut reaction is "urgggh". VisualStudio just loves to shit on being a programmer...
I don't like the helper class approach, but perhaps one could created an osg::GeometryDeprecated subclass from osg::Geometry that adds the deprecated functions. This would break user code though... forcing them to use GeometryDeprecated interface to get access to old functions. Perhaps this is no bad thing... Robert. On 24 June 2013 14:04, Sukender <[email protected]> wrote: > Thank you for the merge and for the answer. > One strange thing, however: I have an issue linking plugins that rely on > "deprecated" stuff under MSVC 2008. Actually the lines: > #ifndef OSG_USE_DEPRECATED_GEOMETRY_METHODS > #define OSG_USE_DEPRECATED_GEOMETRY_METHODS 1 > #endif > seems to induce an unpleasant thing for MSVC. Indeed, when compiling core > OSG, the compiler marks as "dll export" the osg::Geometry class WITHOUT the > deprecated methods; but when it comes to compile the plugin, the > osg::Geometry is marked as "dll import" and I guess the compiler expects the > methods to be in the code OSG DLL, enven if those methods are inline. The > result is a linker error saying the symbols are unresolved. > When compiling ScalarBar.cpp, (which has the #define trick, but which is in > core OSG), everything works fine. This seems to confirm the hypothesis. > > May I suggest to create a utility class or free functions to perform > deprecated operations? This class would have no "export" stuff, and would be > friend of Geometry to access everything private. Draft: > class GeometryDeprecatedOperations { > public: > GeometryDeprecatedOperations(Geometry* g) : g(g) {} > inline void setVertexIndices(IndexArray* array); > //blah blah blah... > }; > > or > > inline void setVertexIndices(Geometry* g, IndexArray* array); > //blah blah blah... > > Your choice? > > -- > Sukender > > > ----- Mail original ----- > De: "Robert Osfield" <[email protected]> > À: "OpenSceneGraph Submissions" <[email protected]> > Envoyé: Lundi 24 Juin 2013 14:26:50 > Objet: Re: [osg-submissions] Fixed a #include inside a "namespace osg" > > Hi Sukender, > > On 24 June 2013 13:07, Sukender <[email protected]> wrote: >> I recently pulled from the GIT mirror and found that >> "OSG_USE_DEPRECATED_GEOMETRY_METHODS=OFF" hides a little mistake: there is a >> "#include <osg/Notify>" inside the "osg" namespace, in inlude/osg/Geometry. > > Thanks, fix merged and submitted to svn/trunk. > > >> >> Here is the full Geometry header, against rev. >> b0746b5a1c81b311258dce2885f2dc0a3d7c3b62 (2013-06-21 11:43). >> >> BTW, do you accept submissions using a pull request on GitHub? Or is this >> still in testing phase? > > I'm just using the standard submission protocol of whole files right > now. Once 3.2 is out the door I'll start looking at git once more. > > Robert. > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
