24 #include <osgDB/ReaderWriter>
28 #include <tbb/spin_rw_mutex.h>
31 #include <unordered_map>
36 class GraphicsContext;
44 class DtMeifConverter;
45 class DtMetaFileManager;
46 class DtOsgShaderManager;
47 class DtOsgShaderFilesCache;
48 class DtEffectControllerFactory;
49 class DtReadFileCallback;
50 class DtModelDefinition;
69 virtual void initSingletonDependencies();
78 virtual void releaseResources(osg::State* state);
86 static void optimizeNodeGeometry(osg::Node* node);
91 osg::Node* readNodeFile(
const std::string& inputFilename,
92 const LoadFileOptions& loadFileOptions);
98 return ts_findNodeFile(inputFilename);
104 osg::Image* readImageFile(
const std::string& inputFilename,
105 const LoadFileOptions& loadFileOptions);
109 virtual osg::Texture* getTextureInstance(
const std::string& filePath,
110 osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
111 osg::Texture::WrapMode s, osg::Texture::WrapMode t,
112 const LoadFileOptions& loadFileOptions);
117 virtual void ts_getTextureInstance(
const std::string& filePath,
118 osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
119 osg::Texture::WrapMode s, osg::Texture::WrapMode t,
130 virtual void runMergeDuplicateTextureVisitor(osg::Node& node);
133 virtual void encodeOptionsString(
const LoadFileOptions& loadFileOptions,
134 osgDB::ReaderWriter::Options& options)
const;
137 virtual void decodeOptions(
const osgDB::ReaderWriter::Options& options,
138 LoadFileOptions& loadFileOptions)
const;
146 void cleanDataFilePathList(FilePathList& fileList);
152 boost::signalslib::signal<void (osg::Node*,
const std::string& origFileName,
159 boost::signalslib::signal<void (
osg::Image*,
const std::string& origFileName,
166 boost::signalslib::signal<void(osg::Object*,
const std::string& origFileName,
172 boost::signalslib::signal<void (
const std::string&
filename,
173 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
179 boost::signalslib::signal<void (
const std::string&
filename,
180 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
186 boost::signalslib::signal<void(
const std::string&
filename,
187 osgDB::ReaderWriter::ReadResult&,
const osgDB::ReaderWriter::Options*)>
196 virtual const std::string& loadShaderSource(
const std::string& shaderFile)
const;
200 virtual std::string ts_getTextureFilePathAndSetNameIfNotSet(
const osg::Texture* baseTexture)
const;
206 virtual void ts_setEffectTextureFilterAndHardwareMipMapGen(osg::Texture* effectTexture, osg::Texture::FilterMode minFilter, osg::Texture::FilterMode magFilter,
bool hardwareMipMapGen)
const;
209 virtual void ts_compareAndSwapIgnoreHint(osg::Texture* effectTexture,
bool oldVal,
bool newVal)
const;
215 virtual bool ts_checkAndSetIgnoreHint(osg::Object* obj,
bool val,
const char* hint)
const;
219 virtual bool ts_ignore(osg::Object* obj,
const char* hint)
const;
225 virtual void setNumActivePagerThreads(
int active);
228 virtual int numActivePagerThreads()
const;
231 virtual int numImageProcessingTasks()
const;
234 virtual void setNumDiguyWorkerThreads(
int num);
238 virtual void incrementNumSleepingPagerThreads();
241 virtual void decrementNumSleepingPagerThreads();
250 virtual void ts_flushInstancingCache(
bool multipass,
251 bool flushNodes,
bool flushTextures,
bool flushImages);
254 virtual int numNodes()
const;
257 virtual int numTextures()
const;
260 virtual int numImages()
const;
267 const LoadFileOptions& loadFileOptions,
const osg::UserDataContainer *optionsUserData);
271 const LoadFileOptions& loadFileOptions,
const osg::UserDataContainer *optionsUserData);
279 const osg::UserDataContainer* optionsUserData =0L);
284 const osg::UserDataContainer* optionsUserData = 0L);
287 virtual void compressCdbImage(
osg::Image* image,
const LoadFileOptions& loadFileOptions,
const std::string& ext,
const std::string& acceleratedFilename,
288 const std::string& zipTextureName,
const std::string& fileToLoad,
bool loadAccelerated,
bool writeAcceleratedFile,
DtCVMarkerSeries& objectCreation );
291 virtual void setKeysForCdbImage(
osg::Image* image,
const std::string& acceleratedFilename,
const std::string& absoluteInputFilename,
292 const std::string& zipTextureName,
const std::string& fileToLoad );
296 const std::string&
filename,
const osgDB::ReaderWriter::Options* options);
299 void ts_encryptImage(
const std::string& inputFileName,
300 const std::string& outputFilename,
const osgDB::ReaderWriter::Options* options,
bool printToConsole);
303 bool ts_resolveRelativeFilename(
const LoadFileOptions& loadFileOptions,
304 std::string& absoluteInputFilename );
307 virtual void ts_clearInstancingCache();
311 virtual void applyEffectTexture(osg::Node* node,
const std::string& extension,
312 bool isCdb, osgDB::ReaderWriter::Options* option);
319 virtual bool save(
const std::string& origFilename,
320 const std::string& cachedFilename,
bool optimize);
323 bool saveToAcceleratedFile(
const std::string& origFileName,
324 osg::Node* nodeRef,
const std::string& cachedFilename,
325 bool writeExternalReferences);
328 virtual void addMetaFlightOptions(std::string& optionsString);
331 virtual bool needsShaderGeneration(
const std::string& extension,
const LoadFileOptions& options)
const;
334 virtual void updateGlobalOptions();
337 virtual void slot_onDdsFlipChanged(
bool flip);
340 virtual void slot_instancingChanged(
bool enabled);
343 virtual bool getAttrFromLocalCache(
const std::string&
filename, osg::Object** attrData);
353 virtual void squishImage(
const std::string& fileToLoad,
const std::string& acceleratedFilename,
DtCVMarkerSeries& objectCreation,
360 virtual void saveImageFilename(
const std::string& absoluteInputFilename,
osg::Image* image);
391 :myBaseMaterialList(baseMaterialList)
399 virtual std::string getRasterMaterialFilename(
const std::string& modelFilename);
402 virtual void readCdbRasterMaterialFile(
const std::string& modelMaterialFile,
mcodColorMap& mcodMap,
const std::string& mcodCDBMaterialString);
408 virtual bool processRasterMaterialCreateEmat(osgDB::ReaderWriter::ReadResult& rasterMaterial,
const std::string& optionString,
const std::string& fileToLoad,
412 virtual void compressCdbEmatImage(
osg::Image* imageEmat,
const std::string& ext,
const LoadFileOptions& loadFileOptions,
const std::string& cdbZipFile,
413 const std::string& zipTextureName,
bool cacheCDB,
bool writeAcceleratedFile,
DtCVMarkerSeries& objectCreation );
424 typedef std::map< std::string, osg::ref_ptr<osg::Object> >
AttrCacheMap;
472 #include <vrvOsg/DtOsgReferencedCollection.inl>
tbb::spin_rw_mutex myRelativePathMutex
Definition: DtOsgFileCache.h:427
RelativePathCache myRelativePathCache
Definition: DtOsgFileCache.h:428
Contains makVrv::DtTextureCollection class.
materialListType myBaseMaterialList
Definition: DtOsgFileCache.h:394
virtual void releaseResources()
Release all rendering resources.
Definition: DtOsgFileCache.h:72
primarySubstrateInfo()
Definition: DtOsgFileCache.h:387
std::map< std::string, osg::ref_ptr< osg::Object > > AttrCacheMap
Definition: DtOsgFileCache.h:424
color2DArray myMcodColors
Definition: DtOsgFileCache.h:395
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Class responsible for converting images into MAK encrypted image files.
Definition: DtMeifConverter.h:25
AttrCacheMap myAttrCacheMap
Definition: DtOsgFileCache.h:425
DtOsgReferencedCollection< osg::Node > myNodeCollection
Definition: DtOsgFileCache.h:421
Creates a series/span line in the CV tool.
Definition: DtConcurrencyViewerMacros.h:27
std::string myBaseMat
Definition: DtOsgFileCache.h:379
The abstract creator for the abstract DtFileCache class.
Definition: DtFileCache.h:259
std::map< unsigned int, materialListType > materialMap
Definition: DtOsgFileCache.h:383
brief DtEffectControllerShaderCache is a cache for shaders used by effect texture controller ...
Definition: DtEffectControllerShaderCache.h:26
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtTextureInterface.h:24
osg::ref_ptr< osg::Node > findNodeFile(const std::string &inputFilename)
Find a node file. If the file was already cached then a copy will be returned.
Definition: DtOsgFileCache.h:96
osg::Vec4f myRGB1
Definition: DtOsgFileCache.h:370
Definition: DtOsgFileCache.h:377
class for holding loader shader files, so that they are not repeatedly loaded from disk ...
Definition: DtOsgShaderFilesCache.h:27
primarySubstrateInfo(const materialListType &baseMaterialList)
Definition: DtOsgFileCache.h:390
boost::signalslib::signal< void(const std::string &filename, osgDB::ReaderWriter::ReadResult &, const osgDB::ReaderWriter::Options *)> signal_readObjectCallback
Signaled emitted when osg calls readObject. This signal is emitted every time read object is called r...
Definition: DtOsgFileCache.h:188
Definition: DtOsgFileCache.h:385
The DtOsgFileCache creator..
Definition: DtOsgFileCache.h:460
boost::signalslib::signal< void(const std::string &filename, osgDB::ReaderWriter::ReadResult &, const osgDB::ReaderWriter::Options *)> signal_readNodeCallback
Signaled emitted when osg calls readNodeFile. This signal is emitted every time read image is called ...
Definition: DtOsgFileCache.h:174
osg::Vec4f myRGB2
Definition: DtOsgFileCache.h:371
int myNumActivePagerThreads
Definition: DtOsgFileCache.h:443
std::atomic< int > myNumDiguyWorkerThreads
Definition: DtOsgFileCache.h:445
Contains makVrv::DtFileCache class.
The OSG implementation of makVrv::DtOsgFileCache. This will cache files as .ive's for quicker load ti...
Definition: DtOsgFileCache.h:56
DtOsgReferencedCollection< osg::Image > myImageCollection
Definition: DtOsgFileCache.h:423
boost::signalslib::signal< void(const std::string &filename, osgDB::ReaderWriter::ReadResult &, const osgDB::ReaderWriter::Options *)> signal_readImageCallback
Signaled emitted when osg calls readImageFile. This signal is emitted every time read image is called...
Definition: DtOsgFileCache.h:181
std::atomic< int > myNumSleepingPagerThreads
Definition: DtOsgFileCache.h:444
osgDB::ReaderWriter * myFltCdbDriver
Definition: DtOsgFileCache.h:449
structure for converting CDB material to emat colors
Definition: DtOsgFileCache.h:368
osgDB::ReaderWriter * myFltDriver
Definition: DtOsgFileCache.h:448
Contains the DtEffectControllerShaderCache class declaration.
DtOsgShaderManager & myShaderManager
Definition: DtOsgFileCache.h:432
IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2 &size, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), const ImVec4 &tint_col=ImVec4(1, 1, 1, 1), const ImVec4 &border_col=ImVec4(0, 0, 0, 0))
boost::signalslib::signal< void(osg::Node *, const std::string &origFileName, const std::string &actualFileName)> signal_nodeFileLoaded
Signal emitted whenever a Node file is loaded from disk. When instancing is enabled then each file wi...
Definition: DtOsgFileCache.h:153
DtOsgShaderFilesCache & myShaderFilesCache
Definition: DtOsgFileCache.h:433
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtEffectControllerShaderCache myEffectControllerShaderCache
Definition: DtOsgFileCache.h:437
DtMetaFileManager * myMetaFileManager
Definition: DtOsgFileCache.h:430
Definition: DtFileCache.h:45
osg::ref_ptr< DtReadFileCallback > myReadFileCallback
Definition: DtOsgFileCache.h:439
DtOsgShaderManager injects custom shaders into the scenes, and keeps their uniform parameters set to ...
Definition: DtOsgShaderManager.h:41
Record for the settings associated with the VRV caching.
Definition: DtCacheSettingsRecord.h:17
Definition: DtReadFileCallback.h:22
DtEffectControllerFactory & myEffectControllerFactory
Definition: DtOsgFileCache.h:434
float myWeight
Definition: DtOsgFileCache.h:380
boost::signalslib::signal< void(osg::Image *, const std::string &origFileName, const std::string &actualFileName)> signal_imageFileLoaded
Signal emitted whenever an image file is loaded from disk. When instancing is enabled then each file ...
Definition: DtOsgFileCache.h:160
The scene object creators are registered with the scene object factory for accessing DtSceneObjectCre...
Definition: DtEffectControllerFactory.h:31
DtMeifConverter * myImageCompressor
Definition: DtOsgFileCache.h:429
osgDB::ReaderWriter * myMedfDriver
Definition: DtOsgFileCache.h:450
Contains DLL export macros.
osgDB::ReaderWriter * myRgbDriver
Definition: DtOsgFileCache.h:452
std::vector< baseMaterial > materialListType
Definition: DtOsgFileCache.h:382
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
boost::signalslib::signal< void(osg::Object *, const std::string &origFileName, const std::string &actualFileName)> signal_objectFileLoaded
Signal emitted whenever an object file is loaded from disk. When instancing is enabled then each file...
Definition: DtOsgFileCache.h:167
osgDB::ReaderWriter * myMeifDriver
Definition: DtOsgFileCache.h:454
std::map< unsigned int, color2DArray > mcodColorMap
CDB Composite material index and emat2/emat3 colors.
Definition: DtOsgFileCache.h:375
Contains makVrv::DtOsgReferencedCollection class.
Contains the DtCVMarkerSeries and DtCVMarkerSeries class declarations responsible for wrapping up to ...
Handles the caching of files. Includes functions for excluding files with certain extensions from bei...
Definition: DtFileCache.h:37
DtOsgReferencedCollection< DtTextureCollection > myTextureCollection
Definition: DtOsgFileCache.h:422
DtSignalConnectionManager myConnections
Definition: DtOsgFileCache.h:440
osgDB::ReaderWriter * myCDBZipDriver
Definition: DtOsgFileCache.h:455
Contains the DtEffectControllerContainer class.
osgDB::ReaderWriter * myTiffDriver
Definition: DtOsgFileCache.h:453
std::unordered_map< std::string, std::string > RelativePathCache
Definition: DtOsgFileCache.h:419