<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<span style=" color:#c0c0c0;"><font color="#000000">Hi Robert,<br>
<br>
I think I catched another problem in version 3.4.0.<br>
I try exporting my scene as .osgx file.<br>
But except the xml header nothing is written.<br>
I debuged it and found the following sequence of calls:<br>
<br>
</font><br>
</span><span style=" color:#800080;">osg</span>::<span
style=" color:#800080;">ref_ptr</span><<span style="
color:#800080;">osgDB</span>::<span style=" color:#800080;">ReaderWriter</span>><span
style=" color:#c0c0c0;"> </span>rw<span style=" color:#c0c0c0;">
</span>=<span style=" color:#c0c0c0;"> </span><span style="
color:#800080;">osgDB</span>::<span style=" color:#800080;">Registry</span>::instance()->getReaderWriterForExtension(
<pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">osgDB</span>::getLowerCaseFileExtension(_filename.toStdString()));</pre>
<pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#808000;"> if</span><span style=" color:#c0c0c0;"> </span>(!rw.valid())</pre>
<pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;"> </span><span style=" color:#808000;"> return</span><span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">false</span>;</pre>
<pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#800080;"> osgDB</span>::<span style=" color:#800080;">ReaderWriter</span>::<span style=" color:#800080;">WriteResult</span><span style=" color:#c0c0c0;"> </span>result<span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span>rw-><span style=" font-style:italic; color:#000000;">writeNode</span>(_node,<span style=" color:#c0c0c0;"> </span>_filename.toStdString());</pre>
<pre style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
-> ReaderWriterOSG2::<span style=" font-style:italic; color:#000000;">writeNode(...)</span>
<span style=" color:#c0c0c0;">
</span>result<span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" font-style:italic; color:#000000;">writeNode</span>(<span style=" color:#c0c0c0;"> </span>node,<span style=" color:#c0c0c0;"> </span>fout,<span style=" color:#c0c0c0;"> </span>local_opt.get()<span style=" color:#c0c0c0;"> </span>);
-> ReaderWriterOSG2::<span style=" font-style:italic; color:#000000;">writeNode(...)
</span><span style=" color:#c0c0c0;"> </span>os.writeObject(<span style=" color:#c0c0c0;"> </span>&node<span style=" color:#c0c0c0;"> </span>);<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">CATCH_EXCEPTION</span>(os);
-> <span style=" color:#800080;">OutputStream</span>::writeObject(...)
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(newID)
<span style=" color:#c0c0c0;"> </span>{
<span style=" color:#c0c0c0;"> </span>writeObjectFields(obj);
<span style=" color:#c0c0c0;"> </span>}
-><span style=" color:#800080;"> OutputStream</span>::writeObjectFields(...)
<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">ObjectWrapper</span>*<span style=" color:#c0c0c0;"> </span>wrapper<span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">Registry</span>::instance()->getObjectWrapperManager()->findWrapper(<span style=" color:#c0c0c0;"> </span>name<span style=" color:#c0c0c0;"> </span>);
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#c0c0c0;"> </span>!wrapper<span style=" color:#c0c0c0;"> </span>)
<span style=" color:#c0c0c0;"> </span>{
<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">OSG_WARN</span><span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"OutputStream::writeObject():</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">Unsupported</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">wrapper</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">class</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"</span>
<span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span>name<span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">std</span>::endl;
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">return</span>;
<span style=" color:#c0c0c0;"> </span>}
-> <span style=" color:#800080;">OutputStream</span>::writeObjectFields(...)
<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">ObjectWrapper</span>*<span style=" color:#c0c0c0;"> </span>wrapper<span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">Registry</span>::instance()->getObjectWrapperManager()->findWrapper(<span style=" color:#c0c0c0;"> </span>name<span style=" color:#c0c0c0;"> </span>);
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#c0c0c0;"> </span>!wrapper<span style=" color:#c0c0c0;"> </span>)
<span style=" color:#c0c0c0;"> </span>{
<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">OSG_WARN</span><span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"OutputStream::writeObject():</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">Unsupported</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">wrapper</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">class</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"</span>
<span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span>name<span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">std</span>::endl;
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">return</span>;
<span style=" color:#c0c0c0;"> </span>}
-> <span style=" color:#800080;">ObjectWrapperManager</span>::findWrapper(...)
<span style=" color:#c0c0c0;"> </span>pluginLib<span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">osgDB</span>::<span style=" color:#800080;">Registry</span>::instance()->createLibraryNameForExtension(libName);
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">osgDB</span>::<span style=" color:#800080;">Registry</span>::instance()->loadLibrary(pluginLib)==<span style=" color:#800080;">osgDB</span>::<span style=" color:#800080;">Registry</span>::<span style=" color:#800080;">LOADED</span><span style=" color:#c0c0c0;"> </span>)
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">return</span><span style=" color:#c0c0c0;"> </span>findWrapper(name);
<span style=" color:#c0c0c0;"> </span>}
<span style=" color:#c0c0c0;"> </span><span style=" color:#808000;">return</span><span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">NULL</span>;
The loadLibrary(...) method returns "<span style=" color:#800080;">PREVIOUSLY_LOADED</span>" and so NULL is returned and nothing gets written.
I think that should be different. Am I right?
- Werner -</pre>
<br>
</body>
</html>