15#define OSGDB_REGISTRY 1
532 typedef std::map<std::string, osg::ref_ptr<osgDB::Archive> >
ArchiveCache;
630 static std::string
trim(
const std::string& str );
719#define USE_OSGPLUGIN(ext) \
720 extern "C" void osgdb_##ext(void); \
721 static osgDB::PluginFunctionProxy proxy_##ext(osgdb_##ext);
723#define USE_DOTOSGWRAPPER(classname) \
724 extern "C" void dotosgwrapper_##classname(void); \
725 static osgDB::PluginFunctionProxy proxy_dotosgwrapper_##classname(dotosgwrapper_##classname);
727#define USE_DOTOSGWRAPPER_LIBRARY(libname) \
728 extern "C" void dotosgwrapper_library_##libname(void); \
729 static osgDB::PluginFunctionProxy proxy_dotosgwrapper_library_##libname(dotosgwrapper_library_##libname);
731#define USE_SERIALIZER_WRAPPER(classname) \
732 extern "C" void wrapper_serializer_##classname(void); \
733 static osgDB::PluginFunctionProxy proxy_serializer_##classname(wrapper_serializer_##classname);
735#define USE_SERIALIZER_WRAPPER_LIBRARY(libname) \
736 extern "C" void wrapper_serializer_library_##libname(void); \
737 static osgDB::PluginFunctionProxy proxy_serializer_library_##libname(wrapper_serializer_library_##libname);
739#define USE_COMPRESSOR_WRAPPER(classname) \
740 extern "C" void wrapper_compressor_##classname(void); \
741 static osgDB::PluginFunctionProxy proxy_compressor_##classname(wrapper_compressor_##classname);
743#define REGISTER_OSGPLUGIN(ext, classname) \
744 extern "C" void osgdb_##ext(void) {} \
745 static osgDB::RegisterReaderWriterProxy<classname> g_proxy_##classname;
747#define REGISTER_OSGIMAGEPROCESSOR(ext, classname) \
748 extern "C" void osgdb_##ext(void) {} \
749 static osgDB::RegisterImageProcessorProxy<classname> g_proxy_##classname;
Definition ReentrantMutex:24
Definition AuthenticationMap:62
Definition DotOsgWrapper:84
Definition DynamicLibrary:29
Definition osgDB/Callbacks:95
Definition osgDB/Callbacks:40
virtual std::string findDataFile(const std::string &filename, const Options *options, CaseSensitivity caseSensitivity)
virtual std::string findLibraryFile(const std::string &filename, const Options *options, CaseSensitivity caseSensitivity)
Definition ImageProcessor:22
Definition ObjectCache:27
Definition ObjectWrapper:157
CacheHintOptions
bit mask for setting up which object types get cached by readObject/Image/HeightField/Node(filename) ...
Definition Options:35
BuildKdTreesHint
range of options of whether to build kdtrees automatically on loading
Definition Options:91
@ NO_PREFERENCE
Definition Options:92
@ BUILD_KDTREES
Definition Options:94
ReadFileCallback * getReadFileCallback() const
Definition Options:211
BuildKdTreesHint getBuildKdTreesHint() const
Definition Options:147
FindFileCallback * getFindFileCallback() const
Definition Options:204
WriteFileCallback * getWriteFileCallback() const
Definition Options:218
Definition osgDB/Callbacks:53
virtual ReaderWriter::ReadResult readHeightField(const std::string &filename, const Options *options)
virtual ReaderWriter::ReadResult openArchive(const std::string &filename, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint, const Options *useObjectCache)
virtual ReaderWriter::ReadResult readShader(const std::string &filename, const Options *options)
virtual ReaderWriter::ReadResult readImage(const std::string &filename, const Options *options)
virtual ReaderWriter::ReadResult readObject(const std::string &filename, const Options *options)
virtual ReaderWriter::ReadResult readNode(const std::string &filename, const Options *options)
virtual ReaderWriter::ReadResult readScript(const std::string &filename, const Options *options)
Definition ReaderWriter:109
bool validNode()
Definition ReaderWriter:148
Definition ReaderWriter:184
Definition ReaderWriter:40
ArchiveStatus
Definition ReaderWriter:221
~RegisterImageProcessorProxy()
Definition osgDB/Registry:700
osg::ref_ptr< T > _rw
Definition osgDB/Registry:711
RegisterImageProcessorProxy()
Definition osgDB/Registry:691
T * get()
Definition osgDB/Registry:708
osg::ref_ptr< T > _rw
Definition osgDB/Registry:682
RegisterReaderWriterProxy()
Definition osgDB/Registry:662
~RegisterReaderWriterProxy()
Definition osgDB/Registry:671
T * get()
Definition osgDB/Registry:679
osg::ref_ptr< FileCache > _fileCache
Definition osgDB/Registry:547
osg::ref_ptr< AuthenticationMap > _authenticationMap
Definition osgDB/Registry:549
friend struct ReadImageFunctor
Definition osgDB/Registry:590
ImageProcessor * getImageProcessorForExtension(const std::string &ext)
FileCache * getFileCache()
Definition osgDB/Registry:360
const ObjectCache * getObjectCache() const
Definition osgDB/Registry:437
osg::KdTreeBuilder * getKdTreeBuilder()
Definition osgDB/Registry:353
void setReadFileCallback(ReadFileCallback *cb)
Definition osgDB/Registry:188
void removeExpiredObjectsInCache(const osg::FrameStamp &frameStamp)
std::vector< std::string > ArchiveExtensionList
Definition osgDB/Registry:522
ReaderWriter::ReadResult read(const ReadFunctor &readFunctor)
void addFileExtensionAlias(const std::string mapExt, const std::string toExt)
static std::string trim(const std::string &str)
void removeReaderWriter(ReaderWriter *rw)
bool getCreateNodeFromImage() const
Definition osgDB/Registry:384
FilePathList & getLibraryFilePathList()
Definition osgDB/Registry:423
void setSharedStateManager(SharedStateManager *SharedStateManager)
Definition osgDB/Registry:499
MimeTypeExtensionMap _mimeTypeExtMap
Definition osgDB/Registry:627
void getReaderWriterListForProtocol(const std::string &protocol, ReaderWriterList &results) const
ReaderWriter::ReadResult readImplementation(const ReadFunctor &readFunctor, Options::CacheHintOptions cacheHint)
FindFileCallback * getFindFileCallback()
Definition osgDB/Registry:163
friend class AvailableReaderWriterIterator
Definition osgDB/Registry:603
ReaderWriter * getReaderWriterForProtocolAndExtension(const std::string &protocol, const std::string &extension)
void setAuthenticationMap(AuthenticationMap *authenticationMap)
Definition osgDB/Registry:367
std::string findLibraryFile(const std::string &fileName, const Options *options, CaseSensitivity caseSensitivity)
Definition osgDB/Registry:177
ExtensionAliasMap _extAliasMap
Definition osgDB/Registry:624
void setWriteFileCallback(WriteFileCallback *cb)
Definition osgDB/Registry:265
std::set< std::string > RegisteredProtocolsSet
Definition osgDB/Registry:534
friend struct ReadArchiveFunctor
Definition osgDB/Registry:593
ReaderWriterList & getReaderWriterList()
Definition osgDB/Registry:128
ReaderWriter::ReadResult readHeightFieldImplementation(const std::string &fileName, const Options *options)
friend struct ReadNodeFunctor
Definition osgDB/Registry:592
osgDB::Archive * getFromArchiveCache(const std::string &fileName)
const WriteFileCallback * getWriteFileCallback() const
Definition osgDB/Registry:271
class osgDB::FindFileCallback FindFileCallback
Definition osgDB/Registry:154
ReaderWriter::ReadResult readNode(const std::string &fileName, const Options *options, bool buildKdTreeIfRequired=true)
Definition osgDB/Registry:234
ReaderWriter * getReaderWriterForMimeType(const std::string &mimeType)
void setDataFilePathList(const FilePathList &filepath)
Definition osgDB/Registry:401
ReaderWriterList _rwList
Definition osgDB/Registry:614
ReaderWriter * getReaderWriterForExtension(const std::string &ext)
void setCreateNodeFromImage(bool flag)
Definition osgDB/Registry:383
void initDataFilePathList()
Options * getOptions()
Definition osgDB/Registry:388
LoadStatus
Definition osgDB/Registry:103
@ LOADED
Definition osgDB/Registry:106
@ NOT_LOADED
Definition osgDB/Registry:104
@ PREVIOUSLY_LOADED
Definition osgDB/Registry:105
ReaderWriter::WriteResult writeScriptImplementation(const osg::Script &obj, const std::string &fileName, const Options *options)
ReaderWriter::WriteResult writeScript(const osg::Script &obj, const std::string &fileName, const Options *options)
Definition osgDB/Registry:314
osg::ref_ptr< osg::KdTreeBuilder > _kdTreeBuilder
Definition osgDB/Registry:545
ReaderWriter::ReadResult readImage(const std::string &fileName, const Options *options)
Definition osgDB/Registry:218
const ReaderWriterList & getReaderWriterList() const
Definition osgDB/Registry:131
void setDataFilePathList(const std::string &paths)
AuthenticationMap * getAuthenticationMap()
Definition osgDB/Registry:377
friend struct ReadScriptFunctor
Definition osgDB/Registry:595
bool _createNodeFromImage
Definition osgDB/Registry:551
const FilePathList & getDataFilePathList() const
Definition osgDB/Registry:410
std::string findLibraryFileImplementation(const std::string &fileName, const Options *options, CaseSensitivity caseSensitivity)
osg::ref_ptr< ObjectCache > _objectCache
Definition osgDB/Registry:638
void addImageProcessor(ImageProcessor *ip)
ReaderWriter::WriteResult writeImageImplementation(const osg::Image &obj, const std::string &fileName, const Options *options)
osg::ref_ptr< FileLocationCallback > _fileLocationCallback
Definition osgDB/Registry:611
FilePathList _libraryFilePath
Definition osgDB/Registry:636
FileLocationCallback * getFileLocationCallback() const
Definition osgDB/Registry:339
const ArchiveExtensionList & getArchiveExtensions() const
Definition osgDB/Registry:523
std::map< std::string, std::string > ExtensionAliasMap
Definition osgDB/Registry:530
osg::ref_ptr< SharedStateManager > _sharedStateManager
Definition osgDB/Registry:645
void removeFromObjectCache(const std::string &fileName, Options *options=NULL)
ArchiveExtensionList _archiveExtList
Definition osgDB/Registry:643
AuthenticationMap * getOrCreateAuthenticationMap()
Definition osgDB/Registry:370
ReadFileCallback * getReadFileCallback()
Definition osgDB/Registry:191
void _buildKdTreeIfRequired(ReaderWriter::ReadResult &result, const Options *options)
Definition osgDB/Registry:322
osg::ref_ptr< osg::Object > getRefFromObjectCache(const std::string &fileName, Options *options=NULL)
FilePathList & getDataFilePathList()
Definition osgDB/Registry:407
void addEntryToObjectCache(const std::string &filename, osg::Object *object, double timestamp=0.0, Options *options=NULL)
void setObjectCache(ObjectCache *objectCache)
Definition osgDB/Registry:431
ReaderWriter::ReadResult readShader(const std::string &fileName, const Options *options)
Definition osgDB/Registry:247
ReaderWriter::ReadResult readNodeImplementation(const std::string &fileName, const Options *options)
void setFileCache(FileCache *fileCache)
Definition osgDB/Registry:357
osg::ref_ptr< ReadFileCallback > _readFileCallback
Definition osgDB/Registry:609
ReaderWriter::ReadResult openArchive(const std::string &fileName, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint, const Options *options)
Definition osgDB/Registry:197
OpenThreads::ReentrantMutex _archiveCacheMutex
Definition osgDB/Registry:618
friend struct ReadHeightFieldFunctor
Definition osgDB/Registry:591
DynamicLibraryList::iterator getLibraryItr(const std::string &fileName)
ReaderWriter::WriteResult writeHeightField(const osg::HeightField &obj, const std::string &fileName, const Options *options)
Definition osgDB/Registry:290
ReaderWriter::WriteResult writeShaderImplementation(const osg::Shader &obj, const std::string &fileName, const Options *options)
ReaderWriter::ReadResult readHeightField(const std::string &fileName, const Options *options)
Definition osgDB/Registry:226
SharedStateManager * getOrCreateSharedStateManager()
ImageProcessor * getImageProcessor()
const ReadFileCallback * getReadFileCallback() const
Definition osgDB/Registry:194
class osgDB::ReadFileCallback ReadFileCallback
Definition osgDB/Registry:155
static Registry * instance(bool erase=false)
ObjectWrapperManager * getObjectWrapperManager()
Definition osgDB/Registry:517
void setBuildKdTreesHint(Options::BuildKdTreesHint hint)
Definition osgDB/Registry:344
bool isProtocolRegistered(const std::string &protocol)
void setExpiryDelay(double expiryDelay)
Definition osgDB/Registry:440
void setLibraryFilePathList(const FilePathList &filepath)
Definition osgDB/Registry:417
SharedStateManager * getSharedStateManager()
Definition osgDB/Registry:505
void updateTimeStampOfObjectsInCacheWithExternalReferences(const osg::FrameStamp &frameStamp)
std::string createLibraryNameForFile(const std::string &fileName)
DynamicLibrary * getLibrary(const std::string &fileName)
ReaderWriter::WriteResult writeNode(const osg::Node &node, const std::string &fileName, const Options *options)
Definition osgDB/Registry:298
std::map< std::string, std::string > MimeTypeExtensionMap
Definition osgDB/Registry:77
const FileCache * getFileCache() const
Definition osgDB/Registry:363
void removeFromArchiveCache(const std::string &fileName)
std::vector< osg::ref_ptr< DynamicLibrary > > DynamicLibraryList
Definition osgDB/Registry:529
std::string createLibraryNameForExtension(const std::string &ext)
ImageProcessorList & getImageProcessorList()
Definition osgDB/Registry:148
void setFileLocationCallback(FileLocationCallback *cb)
Definition osgDB/Registry:336
DynamicLibraryList _dlList
Definition osgDB/Registry:616
const Options * getOptions() const
Definition osgDB/Registry:389
void readCommandLine(osg::ArgumentParser &commandLine)
Options::BuildKdTreesHint _buildKdTreesHint
Definition osgDB/Registry:544
bool readPluginAliasConfigurationFile(const std::string &file)
RegisteredProtocolsSet _registeredProtocols
Definition osgDB/Registry:553
void setLibraryFilePathList(const std::string &paths)
OpenThreads::ReentrantMutex _pluginMutex
Definition osgDB/Registry:613
double getExpiryDelay() const
Definition osgDB/Registry:442
ReaderWriter::ReadResult readObject(const std::string &fileName, const Options *options, bool buildKdTreeIfRequired=true)
Definition osgDB/Registry:205
osg::ref_ptr< FindFileCallback > _findFileCallback
Definition osgDB/Registry:608
LoadStatus loadLibrary(const std::string &fileName)
void initFilePathLists()
Definition osgDB/Registry:395
void removeImageProcessor(ImageProcessor *ip)
bool closeLibrary(const std::string &fileName)
ReaderWriter::WriteResult writeObject(const osg::Object &obj, const std::string &fileName, const Options *options)
Definition osgDB/Registry:274
void addReaderWriter(ReaderWriter *rw)
friend struct ReadObjectFunctor
Definition osgDB/Registry:589
bool _openingLibrary
Definition osgDB/Registry:621
osg::ref_ptr< Options > _options
Definition osgDB/Registry:633
const FilePathList & getLibraryFilePathList() const
Definition osgDB/Registry:426
ReaderWriter::ReadResult readScript(const std::string &fileName, const Options *options)
Definition osgDB/Registry:255
void releaseGLObjects(osg::State *state=0)
ReaderWriter::ReadResult readImageImplementation(const std::string &fileName, const Options *options)
ReaderWriter::ReadResult readObjectImplementation(const std::string &fileName, const Options *options)
void registerProtocol(const std::string &protocol)
std::string findDataFile(const std::string &fileName, const Options *options, CaseSensitivity caseSensitivity)
Definition osgDB/Registry:169
ReaderWriter::ReadResult readShaderImplementation(const std::string &fileName, const Options *options)
MimeTypeExtensionMap & getMimeTypeExtensionMap()
Definition osgDB/Registry:84
ReaderWriter::WriteResult writeShader(const osg::Shader &obj, const std::string &fileName, const Options *options)
Definition osgDB/Registry:306
ReaderWriter::WriteResult writeImage(const osg::Image &obj, const std::string &fileName, const Options *options)
Definition osgDB/Registry:282
osg::ref_ptr< WriteFileCallback > _writeFileCallback
Definition osgDB/Registry:610
friend class AvailableArchiveIterator
Definition osgDB/Registry:605
void setFindFileCallback(FindFileCallback *cb)
Definition osgDB/Registry:160
ReaderWriter::WriteResult writeNodeImplementation(const osg::Node &node, const std::string &fileName, const Options *options)
ReaderWriter::WriteResult writeObjectImplementation(const osg::Object &obj, const std::string &fileName, const Options *options)
const MimeTypeExtensionMap & getMimeTypeExtensionMap() const
Definition osgDB/Registry:85
const ImageProcessorList & getImageProcessorList() const
Definition osgDB/Registry:151
std::string findDataFileImplementation(const std::string &fileName, const Options *options, CaseSensitivity caseSensitivity)
void addArchiveExtension(const std::string ext)
std::vector< osg::ref_ptr< ImageProcessor > > ImageProcessorList
Definition osgDB/Registry:139
friend struct ReadShaderFunctor
Definition osgDB/Registry:594
void addMimeTypeExtensionMapping(const std::string fromMimeType, const std::string toExt)
double _expiryDelay
Definition osgDB/Registry:640
osg::Object * getFromObjectCache(const std::string &fileName, Options *options=NULL)
osg::ref_ptr< DeprecatedDotOsgWrapperManager > _deprecatedDotOsgWrapperManager
Definition osgDB/Registry:648
ImageProcessorList _ipList
Definition osgDB/Registry:615
ArchiveCache _archiveCache
Definition osgDB/Registry:619
void initLibraryFilePathList()
FilePathList _dataFilePath
Definition osgDB/Registry:635
ReaderWriter::ReadResult openArchiveImplementation(const std::string &fileName, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint, const Options *options)
ReaderWriter::WriteResult writeHeightFieldImplementation(const osg::HeightField &obj, const std::string &fileName, const Options *options)
void addToArchiveCache(const std::string &fileName, osgDB::Archive *archive)
void setKdTreeBuilder(osg::KdTreeBuilder *builder)
Definition osgDB/Registry:350
WriteFileCallback * getWriteFileCallback()
Definition osgDB/Registry:268
ReaderWriter::ReadResult readScriptImplementation(const std::string &fileName, const Options *options)
std::vector< osg::ref_ptr< ReaderWriter > > ReaderWriterList
Definition osgDB/Registry:118
class osgDB::FileLocationCallback FileLocationCallback
Definition osgDB/Registry:157
osg::ref_ptr< ObjectWrapperManager > _objectWrapperManager
Definition osgDB/Registry:647
osg::ref_ptr< osgDB::Archive > getRefFromArchiveCache(const std::string &fileName)
ObjectCache * getObjectCache()
Definition osgDB/Registry:434
DeprecatedDotOsgWrapperManager * getDeprecatedDotOsgObjectWrapperManager()
Definition osgDB/Registry:520
const FindFileCallback * getFindFileCallback() const
Definition osgDB/Registry:166
std::string createLibraryNameForNodeKit(const std::string &name)
const AuthenticationMap * getAuthenticationMap() const
Definition osgDB/Registry:380
std::map< std::string, osg::ref_ptr< osgDB::Archive > > ArchiveCache
Definition osgDB/Registry:532
Options::BuildKdTreesHint getBuildKdTreesHint() const
Definition osgDB/Registry:347
void setOptions(Options *opt)
Definition osgDB/Registry:387
class osgDB::WriteFileCallback WriteFileCallback
Definition osgDB/Registry:156
Definition SharedStateManager:31
Definition osgDB/Callbacks:75
virtual ReaderWriter::WriteResult writeHeightField(const osg::HeightField &obj, const std::string &fileName, const Options *options)
virtual ReaderWriter::WriteResult writeScript(const osg::Script &obj, const std::string &fileName, const Options *options)
virtual ReaderWriter::WriteResult writeImage(const osg::Image &obj, const std::string &fileName, const Options *options)
virtual ReaderWriter::WriteResult writeNode(const osg::Node &obj, const std::string &fileName, const Options *options)
virtual ReaderWriter::WriteResult writeShader(const osg::Shader &obj, const std::string &fileName, const Options *options)
virtual ReaderWriter::WriteResult writeObject(const osg::Object &obj, const std::string &fileName, const Options *options)
Definition ArgumentParser:28
virtual void accept(NodeVisitor &nv)
Definition osg/ScriptEngine:30
std::deque< std::string > FilePathList
Definition osgDB/Callbacks:28
CaseSensitivity
Definition osgDB/Callbacks:31
void readCommandLine(osg::ArgumentParser &parser)
Definition osgDB/Registry:652
#define OSGDB_EXPORT
Definition osgDB/Export:39
void(* CPluginFunction)(void)
Definition osgDB/Registry:39
#define NULL
Definition osg/Export:55
PluginFunctionProxy(CPluginFunction function)
Definition osgDB/Registry:716
Definition osgDB/Registry:558
virtual ReadFunctor * cloneType(const std::string &filename, const Options *options) const =0
std::string _filename
Definition osgDB/Registry:570
virtual ReaderWriter::ReadResult doRead(ReaderWriter &rw) const =0
ReadFunctor(const std::string &filename, const Options *options)
Definition osgDB/Registry:559
const Options * _options
Definition osgDB/Registry:571
virtual bool isValid(ReaderWriter::ReadResult &readResult) const =0
virtual bool isValid(osg::Object *object) const =0
virtual ~ReadFunctor()
Definition osgDB/Registry:563