Hi Robert,

I think I catched another problem in version 3.4.0.
I try exporting my scene as .osgx file.
But except the xml header nothing is written.
I debuged it and found the following sequence of calls:


osg::ref_ptr<osgDB::ReaderWriter>rw=osgDB::Registry::instance()->getReaderWriterForExtension(

osgDB::getLowerCaseFileExtension(_filename.toStdString()));

if(!rw.valid())

returnfalse;

osgDB::ReaderWriter::WriteResultresult=rw->writeNode(_node,_filename.toStdString());

-> ReaderWriterOSG2::writeNode(...)
result=writeNode(node,fout,local_opt.get());

-> ReaderWriterOSG2::writeNode(...) os.writeObject(&node);CATCH_EXCEPTION(os);

->OutputStream::writeObject(...)

if(newID)
{
writeObjectFields(obj);
}

->OutputStream::writeObjectFields(...)

ObjectWrapper*wrapper=Registry::instance()->getObjectWrapperManager()->findWrapper(name);
if(!wrapper)
{
OSG_WARN<<"OutputStream::writeObject():Unsupportedwrapperclass"
<<name<<std::endl;
return;
}

->OutputStream::writeObjectFields(...)

ObjectWrapper*wrapper=Registry::instance()->getObjectWrapperManager()->findWrapper(name);
if(!wrapper)
{
OSG_WARN<<"OutputStream::writeObject():Unsupportedwrapperclass"
<<name<<std::endl;
return;
}
->ObjectWrapperManager::findWrapper(...)

pluginLib=osgDB::Registry::instance()->createLibraryNameForExtension(libName);
if(osgDB::Registry::instance()->loadLibrary(pluginLib)==osgDB::Registry::LOADED)
returnfindWrapper(name);
}
returnNULL;

The loadLibrary(...) method returns "PREVIOUSLY_LOADED" and so NULL is returned 
and nothing gets written.

I think that should be different. Am I right?

- Werner -


_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to