23 #include <osgDB/ReaderWriter>
26 #include <boost/signals2.hpp>
31 class GraphicsContext;
39 class DtMeifConverter;
40 class DtMetaFileManager;
41 class DtOsgShaderManager;
42 class DtOsgShaderFilesCache;
43 class DtEffectControllerFactory;
44 class DtReadFileCallback;
62 virtual void releaseResources()
68 virtual void releaseResources(osg::State* state);
76 static void optimizeNodeGeometry(osg::Node* node);
81 osg::Node* readNodeFile(
const std::string& inputFilename,
82 const LoadFileOptions& loadFileOptions);
86 inline osg::ref_ptr<osg::Node> findNodeFile(
const std::string& inputFilename )
88 return ts_findNodeFile(inputFilename);
94 osg::Image* readImageFile(
const std::string& inputFilename,
95 const LoadFileOptions& loadFileOptions);
99 virtual osg::Texture* getTextureInstance(
const std::string& filePath,
100 osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
101 osg::Texture::WrapMode s, osg::Texture::WrapMode t,
102 const LoadFileOptions& loadFileOptions);
107 virtual void ts_getTextureInstance(
const std::string& filePath,
108 osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
109 osg::Texture::WrapMode s, osg::Texture::WrapMode t,
110 const LoadFileOptions& loadFileOptions, osg::ref_ptr<osg::Texture>& texture);
113 virtual void encodeOptionsString(
const LoadFileOptions& loadFileOptions,
114 osgDB::ReaderWriter::Options& options)
const;
117 virtual void decodeOptions(
const osgDB::ReaderWriter::Options& options,
118 LoadFileOptions& loadFileOptions)
const;
126 void cleanDataFilePathList(FilePathList& fileList);
132 boost::signals2::signal<void (osg::Node*,
const std::string& origFileName,
139 boost::signals2::signal<void (
osg::Image*,
const std::string& origFileName,
146 boost::signals2::signal<void(osg::Object*,
const std::string& origFileName,
152 boost::signals2::signal<void (
const std::string&
filename,
153 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
159 boost::signals2::signal<void (
const std::string&
filename,
160 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
166 boost::signals2::signal<void(
const std::string&
filename,
167 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
178 virtual const std::string& loadShaderSource(
const std::string& shaderFile)
const;
182 virtual std::string ts_getTextureFilePathAndSetNameIfNotSet(
const osg::Texture* baseTexture)
const;
185 virtual void ts_setEffectTextureName(osg::ref_ptr<osg::Texture>& effectTexture,
const std::string& validFile)
const;
188 virtual void ts_setEffectTextureFilterAndHardwareMipMapGen(
osg::Texture* effectTexture, osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
bool hardwareMipMapGen)
const;
191 virtual void ts_compareAndSwapIgnoreHint(
osg::Texture* effectTexture,
bool oldVal,
bool newVal)
const;
197 virtual bool ts_checkAndSetIgnoreHint(osg::Object* obj,
bool val,
const char* hint)
const;
201 virtual bool ts_ignore(osg::Object* obj,
const char* hint)
const;
211 virtual int getNumberOfImageProcessingTasks()
const;
224 virtual osg::ref_ptr<osg::Node> ts_readNodeFile(
const std::string& inputFilename,
225 const LoadFileOptions& loadFileOptions,
const osg::UserDataContainer *optionsUserData);
228 virtual osg::ref_ptr<osg::Node> ts_findNodeFile(
const std::string& inputFilename );
231 virtual osg::ref_ptr<osg::Image> ts_readImageFile(
const std::string& inputFilename,
233 const osg::UserDataContainer* optionsUserData =0L);
236 virtual osg::ref_ptr<osg::Object> ts_readObject(
237 const std::string&
filename,
const osgDB::ReaderWriter::Options* options);
240 void ts_encryptImage(
const std::string& inputFileName,
241 const std::string& outputFilename,
const osgDB::ReaderWriter::Options* options,
bool printToConsole);
244 bool ts_resolveRelativeFilename(
const LoadFileOptions& loadFileOptions,
245 std::string& absoluteInputFilename );
248 virtual void ts_clearInstancingCache();
251 virtual void ts_flushInstancingCache(
bool multipass,
252 bool flushNodes,
bool flushTextures,
bool flushImages);
255 virtual void applyEffectTexture(osg::Node* node,
const std::string& extension,
256 bool isCdb, osgDB::ReaderWriter::Options* option);
264 std::string ts_buildAcceleratedFilename(
const std::string& filePathIn,
265 const std::string& cachedDir,
266 const std::string& cachedExtension)
const;
271 std::string ts_buildCdbAcceleratedFilename(
const std::string& zipfile,
272 const std::string& ftlfile,
273 const std::string& cachedDir,
274 const std::string& cachedExtension)
const;
278 virtual bool save(
const std::string& origFilename,
279 const std::string& cachedFilename,
bool optimize);
282 bool shouldSaveFile(
const std::string&
filename);
285 bool saveToAcceleratedFile(
const std::string& origFileName,
286 osg::Node* nodeRef,
const std::string& cachedFilename,
287 bool writeExternalReferences);
290 virtual void addMetaFlightOptions(std::string& optionsString);
293 virtual bool needsShaderGeneration(
const std::string& extension,
const LoadFileOptions& options)
const;
296 virtual void updateGlobalOptions();
299 virtual void slot_onDdsFlipChanged(
bool flip);
302 virtual void slot_instancingChanged(
bool enabled);
305 virtual bool getAttrFromLocalCache(
const std::string&
filename, osg::Object* attrData);
314 typedef std::map< std::string, osg::ref_ptr<osg::Object> >
AttrCacheMap;
360 #include <vrvOsg/DtOsgReferencedCollection.inl>