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

Attachment: 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

Reply via email to