From Luigi Calori, "In order to effectively use --image-ext and to add -O "plugin options",
some fix to osgdem.cpp and osgTerrain/DataSet.cpp These mods should allow to build terrains controlling jpeg compressed imagery embedded in ive files, using something like: osgdemd --image-ext jpeg --RGB_24 -O "JPEG_QUALITY 20 compressImageData" ......."
This commit is contained in:
parent
1a7a1704fd
commit
db163de91c
@ -210,7 +210,7 @@ int main( int argc, char **argv )
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--tile-image-size","Set the tile maximum image size");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--tile-terrain-size","Set the tile maximum terrain size");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--comment","Added a comment/description string to the top most node in the dataset");
|
||||
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-O","string option to pass to write plugins, use \" \" for multiple options");
|
||||
// create DataSet.
|
||||
osg::ref_ptr<osgTerrain::DataSet> dataset = new osgTerrain::DataSet;
|
||||
|
||||
@ -341,7 +341,13 @@ int main( int argc, char **argv )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (arguments.read("-O",str))
|
||||
{
|
||||
osgDB::ReaderWriter::Options* options = new osgDB::ReaderWriter::Options;
|
||||
options->setOptionString(str);
|
||||
osgDB::Registry::instance()->setOptions(options);
|
||||
}
|
||||
|
||||
// if user request help write it out to cout.
|
||||
if (arguments.read("-h") || arguments.read("--help"))
|
||||
{
|
||||
|
@ -2339,7 +2339,8 @@ osg::StateSet* DataSet::DestinationTile::createStateSet()
|
||||
|
||||
osg::Image* image = imageData._imagery->_image.get();
|
||||
|
||||
std::string imageExension(".dds"); // ".rgb"
|
||||
std::string imageExension(_dataSet->_imageExtension);
|
||||
//std::string imageExension(".dds"); // ".rgb"
|
||||
//std::string imageExension(".jp2"); // ".rgb"
|
||||
std::string imageName = _name;
|
||||
if (layerNum>0)
|
||||
@ -4758,8 +4759,12 @@ void DataSet::_buildDestination(bool writeToDisk)
|
||||
if (!_state) _state = new osg::State;
|
||||
|
||||
osg::ref_ptr<osgDB::ReaderWriter::Options> previous_options = osgDB::Registry::instance()->getOptions();
|
||||
osgDB::Registry::instance()->setOptions(new osgDB::ReaderWriter::Options("precision 16"));
|
||||
|
||||
if(previous_options.get()) {
|
||||
osg::notify(osg::NOTICE) << "osgTerrain: adding optionstring" << previous_options->getOptionString() << std::endl;
|
||||
osgDB::Registry::instance()->setOptions(new osgDB::ReaderWriter::Options(std::string("precision 16") + std::string(" ") + previous_options->getOptionString()) );
|
||||
} else {
|
||||
osgDB::Registry::instance()->setOptions(new osgDB::ReaderWriter::Options("precision 16"));
|
||||
}
|
||||
if (!_archive && !_archiveName.empty())
|
||||
{
|
||||
unsigned int indexBlockSizeHint=4096;
|
||||
|
Loading…
Reference in New Issue
Block a user