Hi All,
I'm trying to make osgEarth run on Android (OSG 3.2 & osgEarth 2.3). Now
the earth can display on Android system. But I run into a problem with regard
to std:istream. I tried to load an osgb file by the following code
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("/sdcard/WV/Models/tk.osgb");
the variable node's value is always be NULL. I step into this line and traced
down to file ReaderWriterOSG2.cpp
virtual ReadResult readNode( const std::string& file, const Options* options )
const
{
ReadResult result = ReadResult::FILE_LOADED;
std::string fileName = file;
std::ios::openmode mode = std::ios::in;
Options* local_opt = prepareReading( result, fileName, mode, options );
if ( !result.success() ) return result;
osgDB::ifstream istream( fileName.c_str(), mode );
return readNode( istream, local_opt );
}
virtual ReadResult readNode( std::istream& fin, const Options* options ) const
{
osg::ref_ptr<InputIterator> ii = readInputIterator(fin, options);
if ( !ii ) return ReadResult::FILE_NOT_HANDLED;
InputStream is( options );
if ( is.start(ii.get())!=InputStream::READ_SCENE )
{
CATCH_EXCEPTION(is);
return ReadResult::FILE_NOT_HANDLED;
}
is.decompress(); CATCH_EXCEPTION(is);
osg::Node* node = dynamic_cast<osg::Node*>(is.readObject());
CATCH_EXCEPTION(is);
return node;
}
the debugger couldn't step into the function readNode( std::istream& fin, const
Options* options ). But on windows it works.
Can anybody tell me how to solve this problem?
Dev Environment:
Visual Studio 2017
Android 7.0
Android NDK64 r13b
Arch arm64-v8a
Best regards.
Glen
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org