On Mon, Aug 11, 2008 at 5:47 PM, Botorabi <[EMAIL PROTECTED]> wrote:

> hi Serge,
>
> thanks for your hints.
>
> >Have you looked to osgDB::Registry::setReadFileCallback ?
>
> unfortunately, osgDB::Registry::setReadFileCallback does not the job. it
> passes the file name down to the loading mechanism chain, i.e. the actual
> file access is still managed in individual plugins using istream.
>
> >This way you can even pass to the OSG plugin a custom std::stream which
> can read into your pack system.
>
> well, i fear this won't work as well, as plugins expect a file name, no
> stream object.
>
>
Did you see this method from the ReaderWriter interface :

virtual ReadResult readNode(std::istream& /*fin*/,const Options* =NULL)
const;

In your plugin, you'll just need to get the wanted plugin thanks to the
registry (getReaderWriterForExtension or something like that) and then call
this method to read your object with your custom std::stream. I am using
this method to be able to read data from SQL databases like PGSql or SQLite.

But be aware that not all the plugins implement this method (but with the
main ones like OSG or IVE it just works fine).

-- 
Serge Lages
http://www.tharsis-software.com
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to