Hi Robert, Thanks for the efficient work!
I've made some fixes to the osgDB headers and sources, to make sure they could be built under Windows and the visual studio. I've also merge the osg2/ObjectRegistry with the osgDB/Registry class, adding the add/remove/findWrapper() and add/remove/findCompressor() functions to the latter, to be consistent with the implementation of DotOSGWrapper's mechanism. Please review the attached headers and sources first and let me know if they could be accepted. 2010/1/21 Robert Osfield <[email protected]>: > Hi Wang Rui, > > I have now refactored and merged your osg2 plugin into a combination > of include/osgDB, src/osgDB, src/osgWrappers/serializers/osg and > src/osgPlugins/osg. In the osg plugin I have placed your > ReaderWriterOSG2.cpp alongside the original plugin rather than attempt > to merge them. Later down the road I'll look at merging these to > allow the OSG to detect automatically which type of .osg ascii file we > have. > Yes, they seem to both work well, on my Windows XP and Arch Linux. > > I haven't yet done anything about notifying of the deprecation of the > old Input/Output/DotOsgWrapper headers etc. I will leave the new > wrapper/plugin scheme to be bedded in more before I make any changes > to other parts of the OSG, so for the time being well just run the two > schemes in a parallel. > I agree that the Input/Output headers should still be used in a parallel, because many other plugins depend on them. Maybe we could find a better way to replace them step by step. A good idea in my mind is to find a way to merge Output and OutputStream together, so do Input and InputStream headers. This may cause significant renaming and modifying of the wrapper classes and the plugins, but should be worth to be done. > One thing of note that I would like to change about the new > wrappers/readerwriter is that C++ exception support on embedded > platform is available but not recommend for the cost it brings in > execution size. This has lead me to avoid using exceptions in all the > core OSG components, including .osg and .ive plugins. A not very serious problem here is how to actually 'throw' exceptions using a common throwException() function like the ive plugin does. That is to say, how to stop reading/writing immediately if there are fatal errors. Otherwise users may meet an application crash, which is unfriendly and tiresome sometime. I'd like to start writing other core osg class wrappers, such like osgText, osgParticle and so on. After that, we could announce this new feature on osg-users and call for public tests and suggestions. I expect these would be finished next week. BTW: I live with my parents at present, but I'm sure to have a family with my fiancee in the near future. :) Cheers, Wang Rui
osgDB_modified.tar.gz
Description: GNU Zip compressed data
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
