Changeset 8581
- Timestamp:
- 07/14/08 22:22:38
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/applications/osgconv/PluginQuery.cpp
r8579 r8581 40 40 return pluginFiles; 41 41 } 42 43 44 bool osgDB::queryPlugin(const std::string& fileName, ReaderWriterInfoList& infoList) 45 { 46 if (osgDB::Registry::instance()->loadLibrary(fileName)) 47 { 48 const Registry::ReaderWriterList& rwList = osgDB::Registry::instance()->getReaderWriterList(); 49 for(Registry::ReaderWriterList::const_iterator itr = rwList.begin(); 50 itr != rwList.end(); 51 ++itr) 52 { 53 const ReaderWriter* rw = itr->get(); 54 osg::ref_ptr<ReaderWriterInfo> rwi = new ReaderWriterInfo; 55 rwi->plugin = fileName; 56 rwi->description = rw->className(); 57 rwi->protocols = rw->supportedProtocols(); 58 rwi->extensions = rw->supportedExtensions(); 59 rwi->options = rw->supportedOptions(); 60 61 infoList.push_back(rwi.get()); 62 } 63 64 osgDB::Registry::instance()->closeLibrary(fileName); 65 return true; 66 } 67 else 68 { 69 return false; 70 } 71 } OpenSceneGraph/trunk/applications/osgconv/PluginQuery.h
r8579 r8581 23 23 FileNameList listAllAvailablePlugins(); 24 24 25 class ReaderWriterInfo : public osg::Referenced 26 { 27 public: 28 29 std::string plugin; 30 std::string description; 31 ReaderWriter::FormatDescriptionMap protocols; 32 ReaderWriter::FormatDescriptionMap extensions; 33 ReaderWriter::FormatDescriptionMap options; 34 }; 35 36 typedef std::list< osg::ref_ptr<ReaderWriterInfo> > ReaderWriterInfoList; 37 38 bool queryPlugin(const std::string& fileName, ReaderWriterInfoList& infoList); 25 39 26 40 } OpenSceneGraph/trunk/applications/osgconv/osgconv.cpp
r8579 r8581 508 508 arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display command line parameters"); 509 509 arguments.getApplicationUsage()->addCommandLineOption("--help-env","Display environmental variables available"); 510 arguments.getApplicationUsage()->addCommandLineOption("--fmts","List supported file formats"); 510 arguments.getApplicationUsage()->addCommandLineOption("--formats","List supported file formats"); 511 arguments.getApplicationUsage()->addCommandLineOption("--plugins","List database olugins"); 511 512 512 513 … … 525 526 } 526 527 527 if (arguments.read("-- fmts"))528 if (arguments.read("--plugins")) 528 529 { 529 530 osgDB::FileNameList plugins = osgDB::listAllAvailablePlugins(); … … 534 535 std::cout<<"Plugin "<<*itr<<std::endl; 535 536 } 536 return 1; 537 return 0; 538 } 539 540 if (arguments.read("--formats")) 541 { 542 osgDB::FileNameList plugins = osgDB::listAllAvailablePlugins(); 543 for(osgDB::FileNameList::iterator itr = plugins.begin(); 544 itr != plugins.end(); 545 ++itr) 546 { 547 std::cout<<"Plugin "<<*itr<<std::endl; 548 std::cout<<"{"<<std::endl; 549 osgDB::ReaderWriterInfoList infoList; 550 if (osgDB::queryPlugin(*itr, infoList)) 551 { 552 for(osgDB::ReaderWriterInfoList::iterator rwi_itr = infoList.begin(); 553 rwi_itr != infoList.end(); 554 ++rwi_itr) 555 { 556 osgDB::ReaderWriterInfo& info = *(*rwi_itr); 557 std::cout<<" ReaderWriter : "<<info.description<<std::endl; 558 std::cout<<" {"<<std::endl; 559 560 for(osgDB::ReaderWriter::FormatDescriptionMap::iterator fdm_itr = info.protocols.begin(); 561 fdm_itr != info.protocols.end(); 562 ++fdm_itr) 563 { 564 std::cout<<" protocol : "<<fdm_itr->first<<"\t"<<fdm_itr->second<<std::endl; 565 } 566 567 for(osgDB::ReaderWriter::FormatDescriptionMap::iterator fdm_itr = info.extensions.begin(); 568 fdm_itr != info.extensions.end(); 569 ++fdm_itr) 570 { 571 std::cout<<" extensions : ."<<fdm_itr->first<<"\t"<<fdm_itr->second<<std::endl; 572 } 573 574 for(osgDB::ReaderWriter::FormatDescriptionMap::iterator fdm_itr = info.options.begin(); 575 fdm_itr != info.options.end(); 576 ++fdm_itr) 577 { 578 std::cout<<" options : "<<fdm_itr->first<<"\t"<<fdm_itr->second<<std::endl; 579 } 580 std::cout<<" }"<<std::endl; 581 } 582 } 583 std::cout<<"}"<<std::endl<<std::endl; 584 } 585 return 0; 537 586 } 538 587
