16 #include <tbb/atomic.h>
19 #include <boost/thread.hpp>
20 #include <boost/unordered_map.hpp>
33 class DtBackgroundLoader;
34 struct DtLoaderHandle;
51 static const std::string& theClassName();
55 virtual void updateQueue(
int max_thread_count,
int active_threads);
64 virtual void setForegroundTimeBudget(
double budget);
67 virtual void incrementForegroundTime(
double time_elapse);
70 virtual bool isForegroundTimeBudgetExpired()
const;
73 virtual double timeSpentThisFrame()
const;
78 virtual void loadIfPossibleOrAddToQueue(
DtModel*
object);
80 virtual bool hasActiveAsyncTasks()
const;
83 virtual int numModelDefinitionsToIco()
const;
85 virtual std::string nextModelDefinitionToIco();
88 virtual int numOfActiveTasks()
const;
91 virtual void addToAdditionalIcoList(osgUtil::StateToCompile* compile);
93 virtual std::list<osgUtil::StateToCompile*>& additionalToIcoList();
96 virtual bool multithreadedLoadingActive()
const;
98 virtual void setMultithreadedLoadingActive(
bool val);
108 virtual void timedForegroundLoad(
DtModel*
object);
110 virtual void ts_setModelDefinitionLoaded(
const std::string& modelDefinition);
111 virtual bool ts_isModelDefinitionLoaded(
const std::string& modelDefinition)
const;
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< std::string, bool > myActivelyLoadingModelDefs
Definition: DtBackgroundLoader.h:126
std::list< DtLoaderHandle * > myForegroundQueue
Definition: DtBackgroundLoader.h:117
async task that loads a DtModel in the background
Definition: DtBackgroundLoadAsyncTask.h:25
core singleton that manages loading for all the various DtModel subclasses
Definition: DtBackgroundLoader.h:38
boost::unordered_map< std::string, bool > myLoadedDefMap
Definition: DtBackgroundLoader.h:131
boost::mutex myMutableLoadedDefMapMutex
Definition: DtBackgroundLoader.h:130
bool myMultithreadedLoadingActive
Definition: DtBackgroundLoader.h:134
tbb::atomic< int > myNumberOfActiveTasks
Definition: DtBackgroundLoader.h:127
DtDe & myDe
Definition: DtBackgroundLoader.h:105
double myForegroundTimeBudget
Definition: DtBackgroundLoader.h:133
Contains makVrv::DtVirtualBaseClass class.
boost::mutex myTaskFinishedMutex
Definition: DtBackgroundLoader.h:123
wrapper object that insulates the loader from other threads destroying an object
Definition: DtLoaderHandle.h:23
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::list< osgUtil::StateToCompile * > myAdditionalToIcoList
Definition: DtBackgroundLoader.h:121
std::list< std::string > myModelDefsToIcoQueue
Definition: DtBackgroundLoader.h:118
std::list< DtLoaderHandle * > myObjectsToForegroundLoad
Definition: DtBackgroundLoader.h:124
std::list< DtLoaderHandle * > myProducerQueue
Definition: DtBackgroundLoader.h:116
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
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:70
std::list< DtLoaderHandle * > myObjectsFinishedWithTBBTask
Definition: DtBackgroundLoader.h:120
boost::mutex myProducerQueueMutex
Definition: DtBackgroundLoader.h:115
double myTimeSpentThisFrame
Definition: DtBackgroundLoader.h:129
DtDe & de()
returns the de
Definition: DtBackgroundLoader.h:101
Contains DLL export macros.