Changeset 9887
- Timestamp:
- 03/10/09 16:00:39 (4 years ago)
- Location:
- OpenSceneGraph/trunk
- Files:
-
- 4 modified
-
include/osgDB/PluginQuery (modified) (1 diff)
-
include/osgDB/ReaderWriter (modified) (2 diffs)
-
src/osgDB/PluginQuery.cpp (modified) (2 diffs)
-
src/osgDB/ReaderWriter.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/include/osgDB/PluginQuery
r8689 r9887 40 40 ReaderWriter::FormatDescriptionMap extensions; 41 41 ReaderWriter::FormatDescriptionMap options; 42 ReaderWriter::Features features; 42 43 43 44 protected: -
OpenSceneGraph/trunk/include/osgDB/ReaderWriter
r9200 r9887 49 49 50 50 typedef std::map<std::string, std::string> FormatDescriptionMap; 51 typedef std::list<std::string> FeatureList; 51 52 52 53 /** return which protocols are supported by ReaderWriter. */ … … 61 62 /** return true if ReaderWriter accepts specified file extension.*/ 62 63 virtual bool acceptsExtension(const std::string& /*extension*/) const; 64 65 /// bit mask for setting up which feature types are available for read and/or write 66 enum Features 67 { 68 FEATURE_NONE = 0, 69 FEATURE_READ_OBJECT = 1<<0, 70 FEATURE_READ_IMAGE = 1<<1, 71 FEATURE_READ_HEIGHT_FIELD = 1<<2, 72 FEATURE_READ_NODE = 1<<3, 73 FEATURE_READ_SHADER = 1<<4, 74 FEATURE_WRITE_OBJECT = 1<<5, 75 FEATURE_WRITE_IMAGE = 1<<6, 76 FEATURE_WRITE_HEIGHT_FIELD = 1<<7, 77 FEATURE_WRITE_NODE = 1<<8, 78 FEATURE_WRITE_SHADER = 1<<9, 79 FEATURE_ALL = FEATURE_READ_OBJECT | 80 FEATURE_READ_IMAGE | 81 FEATURE_READ_HEIGHT_FIELD | 82 FEATURE_READ_NODE | 83 FEATURE_READ_SHADER | 84 FEATURE_WRITE_OBJECT | 85 FEATURE_WRITE_IMAGE | 86 FEATURE_WRITE_HEIGHT_FIELD | 87 FEATURE_WRITE_NODE | 88 FEATURE_WRITE_SHADER 89 }; 90 /** return available features*/ 91 virtual Features supportedFeatures() const; 92 93 /** return feature as string */ 94 static FeatureList featureAsString(Features feature); 63 95 64 96 /** Options base class used for passing options into plugins to control their operation.*/ -
OpenSceneGraph/trunk/src/osgDB/PluginQuery.cpp
r8913 r9887 81 81 rwi->extensions = rw->supportedExtensions(); 82 82 rwi->options = rw->supportedOptions(); 83 rwi->features = rw->supportedFeatures(); 83 84 84 85 infoList.push_back(rwi.get()); … … 117 118 out<<" ReaderWriter : "<<info.description<<std::endl; 118 119 out<<" {"<<std::endl; 119 120 out<<" features : "; 121 osgDB::ReaderWriter::FeatureList fl = ReaderWriter::featureAsString(info.features); 122 osgDB::ReaderWriter::FeatureList::iterator fl_itr; 123 for(fl_itr = fl.begin(); 124 fl_itr != fl.end(); 125 ++fl_itr) 126 { 127 out << *fl_itr << " "; 128 } 129 out << std::endl; 130 120 131 unsigned int longestOptionLength = 0; 121 132 osgDB::ReaderWriter::FormatDescriptionMap::iterator fdm_itr; -
OpenSceneGraph/trunk/src/osgDB/ReaderWriter.cpp
r9884 r9887 61 61 _supportedOptions[fmt] = description; 62 62 } 63 64 ReaderWriter::Features ReaderWriter::supportedFeatures() const 65 { 66 Features features = FEATURE_ALL; 67 return features; 68 } 69 70 ReaderWriter::FeatureList ReaderWriter::featureAsString(ReaderWriter::Features feature) 71 { 72 typedef struct { 73 ReaderWriter::Features feature; 74 const char *s; 75 } FeatureStringList; 76 77 FeatureStringList list[] = { 78 { FEATURE_READ_OBJECT, "readObject" }, 79 { FEATURE_READ_IMAGE, "readImage" }, 80 { FEATURE_READ_HEIGHT_FIELD, "readHeightField" }, 81 { FEATURE_READ_NODE, "readNode" }, 82 { FEATURE_READ_SHADER, "readShader" }, 83 { FEATURE_WRITE_OBJECT, "writeObject" }, 84 { FEATURE_WRITE_IMAGE, "writeImage" }, 85 { FEATURE_WRITE_HEIGHT_FIELD, "writeHeightField" }, 86 { FEATURE_WRITE_NODE, "writeNode" }, 87 { FEATURE_WRITE_SHADER, "writeShader" }, 88 { FEATURE_NONE,0 } 89 }; 90 91 FeatureList result; 92 93 for(FeatureStringList *p=list; p->feature != 0; p++) 94 { 95 if ((feature & p->feature) != 0) 96 result.push_back(p->s); 97 } 98 return result; 99 }
