Added osgDB::Registry::s/getUseObjectCacheHint()
This commit is contained in:
@@ -19,18 +19,42 @@
|
||||
#include <osg/ArgumentParser>
|
||||
|
||||
#include <osgDB/Export>
|
||||
#include <osgDB/Registry>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace osgDB {
|
||||
|
||||
|
||||
/** Read an osg::Object from file.
|
||||
* Return valid osg::Object on success,
|
||||
* return NULL on failure.
|
||||
* Use the useObjectCache flag to override the osgDB::Regisytr::getUseObjectCacheHint().
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Object* readObjectFile(const std::string& filename,bool useObjectCache);
|
||||
|
||||
/** Read an osg::Object from file.
|
||||
* Return valid osg::Object on success,
|
||||
* return NULL on failure.
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Object* readObjectFile(const std::string& filename,bool useObjectCache=false);
|
||||
inline osg::Object* readObjectFile(const std::string& filename)
|
||||
{
|
||||
return readObjectFile(filename,Registry::instance()->getUseObjectCacheHint());
|
||||
}
|
||||
|
||||
|
||||
/** Read an osg::Image from file.
|
||||
* Return valid osg::Image on success,
|
||||
* return NULL on failure.
|
||||
* Use the useObjectCache flag to override the osgDB::Regisytr::getUseObjectCacheHint().
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Image* readImageFile(const std::string& filename,bool useObjectCache);
|
||||
|
||||
/** Read an osg::Image from file.
|
||||
* Return valid osg::Image on success,
|
||||
@@ -38,7 +62,19 @@ extern OSGDB_EXPORT osg::Object* readObjectFile(const std::string& filename,bool
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Image* readImageFile(const std::string& filename,bool useObjectCache=false);
|
||||
inline osg::Image* readImageFile(const std::string& filename)
|
||||
{
|
||||
return readImageFile(filename,Registry::instance()->getUseObjectCacheHint());
|
||||
}
|
||||
|
||||
/** Read an osg::Node from file.
|
||||
* Return valid osg::Node on success,
|
||||
* return NULL on failure.
|
||||
* Use the useObjectCache flag to override the osgDB::Regisytr::getUseObjectCacheHint().
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFile(const std::string& filename,bool useObjectCache);
|
||||
|
||||
/** Read an osg::Node from file.
|
||||
* Return valid osg::Node on success,
|
||||
@@ -46,15 +82,36 @@ extern OSGDB_EXPORT osg::Image* readImageFile(const std::string& filename,bool
|
||||
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
|
||||
* for the filename extension, and this plugin then handles the request
|
||||
* to read the specified file.*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFile(const std::string& filename,bool useObjectCache=false);
|
||||
inline osg::Node* readNodeFile(const std::string& filename)
|
||||
{
|
||||
return readNodeFile(filename,Registry::instance()->getUseObjectCacheHint());
|
||||
}
|
||||
|
||||
|
||||
/** Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more
|
||||
* than one subgraph has been loaded.
|
||||
* Use the useObjectCache flag to override the osgDB::Regisytr::getUseObjectCacheHint().*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFiles(std::vector<std::string>& commandLine,bool useObjectCache);
|
||||
|
||||
/** Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more
|
||||
* than one subgraph has been loaded.*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFiles(std::vector<std::string>& commandLine,bool useObjectCache=false);
|
||||
inline osg::Node* readNodeFiles(std::vector<std::string>& commandLine)
|
||||
{
|
||||
return readNodeFiles(commandLine,Registry::instance()->getUseObjectCacheHint());
|
||||
}
|
||||
|
||||
|
||||
/** Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more
|
||||
* than one subgraph has been loaded.
|
||||
* Use the useObjectCache flag to override the osgDB::Regisytr::getUseObjectCacheHint().*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFiles(osg::ArgumentParser& parser,bool useObjectCache);
|
||||
|
||||
/** Read an osg::Node subgraph from files, creating a osg::Group to contain the nodes if more
|
||||
* than one subgraph has been loaded.*/
|
||||
extern OSGDB_EXPORT osg::Node* readNodeFiles(osg::ArgumentParser& parser,bool useObjectCache=false);
|
||||
inline osg::Node* readNodeFiles(osg::ArgumentParser& parser)
|
||||
{
|
||||
return readNodeFiles(parser,Registry::instance()->getUseObjectCacheHint());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -191,7 +191,14 @@ class OSGDB_EXPORT Registry : public osg::Referenced
|
||||
/** Remove all objects in the cache regardless of having external references or expiry times.*/
|
||||
void clearObjectCache();
|
||||
|
||||
/** Add a filename,object,timestamp tripple to the Registry::ObjectCache.*/
|
||||
void addEntryToObjectCache(const std::string& filename, osg::Object* object, double timestamp = 0.0);
|
||||
|
||||
/** Set whether the Registry::ObjectCache should be used by default.*/
|
||||
void setUseObjectCacheHint(bool useObjectCache) { _useObjectCacheHint = useObjectCache; }
|
||||
|
||||
/** Get whether the Registry::ObjectCache should be used by default.*/
|
||||
bool getUseObjectCacheHint() const { return _useObjectCacheHint; }
|
||||
|
||||
/** get the attached library with specified name.*/
|
||||
DynamicLibrary* getLibrary(const std::string& fileName);
|
||||
@@ -247,7 +254,8 @@ class OSGDB_EXPORT Registry : public osg::Referenced
|
||||
|
||||
FilePathList _dataFilePath;
|
||||
FilePathList _libraryFilePath;
|
||||
|
||||
|
||||
bool _useObjectCacheHint;
|
||||
ObjectCache _objectCache;
|
||||
|
||||
};
|
||||
|
||||
@@ -93,6 +93,8 @@ Registry::Registry()
|
||||
|
||||
_createNodeFromImage = true;
|
||||
_openingLibrary = false;
|
||||
|
||||
_useObjectCacheHint = false;
|
||||
|
||||
initFilePathLists();
|
||||
|
||||
@@ -143,6 +145,7 @@ Registry::Registry()
|
||||
addFileExtensionAlias("pbm", "pnm");
|
||||
addFileExtensionAlias("pgm", "pnm");
|
||||
addFileExtensionAlias("ppm", "pnm");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user