VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDe.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vrvCore/DtDisplayProxy.h>
14 
17 #include <vrvUtil/signalslib.h>
18 
19 #include <vlutil/vlThreadSysWrapper.h>
20 
21 #include <vector>
22 
23 #include <boost/bind.hpp>
24 #include <tbb/mutex.h>
25 #include <tbb/recursive_mutex.h>
26 
29 #define DT_DE_INIT_ONCE(de)\
30 if(de.isInitFunctionRegistered((void*)&init))\
31 {\
32  return;\
33 }\
34 else\
35 {\
36  de.registerInitFunction((void*)&init);\
37 }
38 
39 class DtClock;
40 
41 namespace makVrv
42 {
43  class DtAgentManager;
44  class DtBackgroundLoader;
45  class DtDataBank;
46  class DtDeProctor;
47  class DtDeSharedState;
48  class DtDisplay;
49  class DtDriverManager;
50  class DtFileCache;
51  class DtInMemoryProfilerDistributorAgent;
52  class DtMessageDispatcher;
53  class DtProctor;
54  class DtRenderer;
55  class DtScene;
56  class DtVirtualBaseClass;
57  class DtSchemaManager;
58  class DtStatsSet;
59  class DtDeError;
60  class DtDisplayConfiguration;
61  class DtWindowConfiguration;
62  class DtChannelConfiguration;
63  class DtDriverConfiguration;
64  class DtSynchronizedTimeManager;
65  class DtDrawnIntersectorManager;
66  class DtDeSplashScreen;
67  enum class DtModelSetId;
68 
73  {
74  public:
75 
76  friend class DtDeProctor;
77 
79  typedef std::vector<std::pair<DtDeError,bool> > DeErrors;
80 
81  public:
82 
84  enum class RenderingApiType
85  {
86  None, // this is valid and used for VRF sim
87  OpenGL, // opengl currently used by visual applications
88  };
89 
91  DtDe();
92 
95  virtual ~DtDe();
96 
100  bool destructing();
101 
108  bool resetting();
109 
113  virtual void setDeInitializer(const DtDeInitializer& initializer);
114 
119  virtual void setPathConfiguration(const DtDePathConfiguration& pathConfig);
120 
123  {
124  Initialized = 1,
125  UnableToInitialize = 0,
126  UnableToInitializeDueToLicense = -1
127  };
128 
141  virtual InitializationResult initialize( bool abortOnLicenseFailure = true, bool useLicenseErrorDialog = true);
142 
144  bool initialized() const;
145 
149  DtThreadId threadId();
150 
156  virtual void setDeConfiguration(const DtDeConfiguration& deConfig);
157 
166  virtual void tick(double simTime);
167 
171  inline void retick() { tick(simulationTime()); }
172 
176  virtual bool timeToStop() const;
177 
179  virtual void setTimeToStop(bool flag = true);
180 
182  virtual void quit();
183 
185  virtual void reset();
186 
188  virtual void updateScene();
189 
191 
192 
194  virtual const DtDeConfiguration& deConfiguration() const;
195 
198  virtual DtDeCommunicator& igCommunicator();
199 
201  DtMainEventQueue& mainEventQueue();
202 
205  virtual DtDisplay* display();
206 
211  virtual DtScene& scene();
212 
216  virtual DtDataBank& dataBank();
217 
221  virtual DtDriverManager& driverManager();
222 
224  bool driverManagerCreated() const;
225 
227  virtual DtMessageDispatcher& dispatcher();
228 
230  inline DtDebugLog& log() { return *myDebugLog; }
231 
234  DtAgentManager& agentManager();
235 
237  DtBackgroundLoader& backgroundLoader();
238 
240  virtual double simulationTime() const;
241 
244  virtual double syncedTime() const;
245 
249  virtual DtSynchronizedTimeManager* findSynchronizedTimeManager();
250 
252  virtual int displayCount() const;
253 
255  virtual const DtDeInitializer& deInitializer() const;
256 
258  virtual const DtDePathConfiguration& dePathConfiguration() const;
259 
261  virtual bool isInMasterMode() const;
262 
264  virtual bool isInSlaveMode() const;
265 
267  virtual DtDeSharedState& sharedState();
268  virtual const DtDeSharedState& sharedState() const;
269  virtual const DtDeSharedState* const sharedStatePtr() const;
270 
273  virtual const DtSchemaManager* findSchemaManager() const;
274  virtual DtSchemaManager* findSchemaManager();
275 
277  virtual DtFileCache* fileCache();
278 
280  virtual const DeErrors deErrors() const;
281 
283  virtual void clearDeErrors();
284 
286  virtual DtRenderer& renderer() const;
287 
289  bool renderFrameThisTick() const;
290 
294  virtual bool licenseAvailable() const;
295 
297  virtual DtDrawnIntersectorManager* drawnIntersectorManager();
298 
300  virtual const DtDrawnIntersectorManager* drawnIntersectorManager() const;
301 
303 
305 
306 
310  virtual bool addDisplayConfiguration(const DtDisplayConfiguration&);
311 
321  virtual void realizeDisplayConfiguration(const std::string& clientName,
322  const std::string& displayName);
323 
326  virtual void destroyDisplay(DtDisplayProxySP display);
327 
330  virtual void destroyDisplay(const std::string& displayName);
331 
333  virtual void destroyAllDisplays();
334 
336  virtual bool modifyDisplay( const std::string& displayName,
337  const DtDisplayConfiguration& config );
338 
340 
342 
343 
346  virtual void setSimulationTime(double time);
347 
351  virtual double systemTime() const;
352 
354  virtual void setCurrentFrameNumber(unsigned int frameNumber);
355 
357  virtual unsigned int currentFrameNumber() const;
358 
360  virtual bool isPaused() const;
361 
365  virtual void pause();
366 
368  virtual void resume();
369 
374  double pausedTime() const;
375 
377  typedef DtVirtualBaseClass& (*StaticInstanceFunction)(DtDe&);
378 
381  virtual DtVirtualBaseClass* findFastInstance(
382  StaticInstanceFunction classInstanceFunction) const;
383 
387  template <typename Class>
388  DtVirtualBaseClass* findFastInstance(Class& (*staticInstFunc)(DtDe&)) const
389  {
390  return findFastInstance(reinterpret_cast<StaticInstanceFunction>(staticInstFunc));
391  }
392 
395  virtual void registerFastInstance(
396  StaticInstanceFunction classInstanceFunction, DtVirtualBaseClass* inst);
397 
401  template <typename Class>
402  void registerFastInstance(Class& (*staticInstFunc)(DtDe&),DtVirtualBaseClass* inst)
403  {
404  registerFastInstance(reinterpret_cast<StaticInstanceFunction>(staticInstFunc),inst);
405  }
406 
409  virtual DtVirtualBaseClass* findInstance(
410  const std::string& instanceName) const;
411 
421  virtual void registerInstance(const std::string& instanceName,
422  DtVirtualBaseClass* instance);
423 
425  virtual void registerProctor(unsigned short handlerId,DtProctor*);
426 
429  virtual void unregisterProctor(unsigned short handlerId);
430 
432  DtProctor* findProctor(unsigned short handlerId) const;
433 
436  DtDisplayProxySP findDisplay(const std::string& displayName );
437 
439  virtual DtDisplayProxySP findDisplayByIndex(int index);
440 
442  void setRenderFrameThisTick(bool update);
443 
446  virtual bool modelSetActive( DtModelSetId i) const;
447 
450  virtual void determineActiveModelSets();
451 
453  virtual bool isValidDisplayConfiguration( const DtDisplayConfiguration& dec );
454 
456  virtual void createDebugLog(const std::string& fileName, DtDebugLog::PrintLevel level);
457 
462  virtual void startLogFrameTime();
463  virtual void stopLogFrameTime();
464 
466 
467  //
469 
470 
476  boost::signalslib::signal<void ()> signal_initializeDefaultState;
477 
482  boost::signalslib::signal<void ()> signal_postInitialize;
483 
489  boost::signalslib::signal<void (DtDe&)> signal_preTick;
490 
496  boost::signalslib::signal<void ()> signal_postTick;
497 
500  boost::signalslib::signal<void (const std::string&, const std::string&)>
502 
506  boost::signalslib::signal<void (const DtDisplayConfiguration&)> signal_displayConfigurationAdded;
507 
511  boost::signalslib::signal<void (const std::string&)> signal_displayToBeDestroyed;
512 
516  boost::signalslib::signal<void (const std::string&, const DtDisplayConfiguration&)>
518 
522  boost::signalslib::signal<void (const std::string&, const DtWindowConfiguration&)>
524 
529  boost::signalslib::signal<void (const std::string&, const std::string&)>
531 
535  boost::signalslib::signal<void (const std::string&, const std::string&,
537 
541  boost::signalslib::signal<void (const std::string&, const std::string&,
543 
547  boost::signalslib::signal<void (const std::string&, const std::string&,
548  const std::string&)> signal_channelToBeDestroyed;
549 
553  boost::signalslib::signal<void (const std::string&, const std::string&,
554  const std::string&, const DtChannelConfiguration&)>
556 
558  boost::signalslib::signal<void( )> signal_postMainWindowInitialize;
559 
562  boost::signalslib::signal<void (const DtDeError& error, bool critical)> signal_deError;
563 
566  boost::signalslib::signal<void ()> signal_quit;
567 
569  boost::signalslib::signal<void()> signal_pause;
570 
572  boost::signalslib::signal<void()> signal_resume;
573 
574  boost::signalslib::signal<void()> signal_aboutToAutoStartDrivers;
575 
577 
578  //
580 
581 
583  virtual void onSlaveConnected(const std::string& igName);
584 
586  virtual void emitDeError(const DtDeError& error, bool criticalError);
587 
589 
592  static const char* className();
593 
596  void registerInitFunction(void* address);
597 
599  bool isInitFunctionRegistered(void* address);
600 
603  inline bool shouldSendMesssage()
604  {
605  return isInMasterMode() && myCommunicator && !myCommunicator->masterIgOnly();
606  }
607 
610  virtual void setTargetFrameTime(double frameTimeInMs);
613  virtual double targetFrameTime();
614 
616  virtual void startProfilerNextFrame();
618  virtual void stopProfilerNextFrame();
619 
621  virtual double lastUpdateTime() const;
622 
624  virtual void setShowErrorDialogs(bool show);
625 
627  virtual bool showErrorDialogs() const;
628 
631  virtual void setRenderingApi(DtDe::RenderingApiType type);
632 
634  virtual DtDe::RenderingApiType renderingApi() const;
635 
636  protected:
637 
639 
640 
642  virtual unsigned int countEmbeddedWindows( const DtDisplayConfiguration &dec );
643 
645 
646 
647  virtual void initializeSchemaManager();
648 
649  virtual void initializeLibXmlIfNecessary();
650 
653  virtual bool shouldSkipThisTick( double simulationTime );
654 
656  virtual void postInitialize();
657 
659  virtual void postInitializeMaster();
660 
662  virtual void checkForData();
663 
665 
667  void slaveTick();
668 
670  void masterTick( double simulationTime );
671 
674  void renderTick(double elapsedTime);
675 
677  DtDeProctor* proctor();
678 
680  virtual bool local_realizeDisplayConfiguration(
681  const std::string& clientName, const std::string& displayName);
682 
685  virtual void local_destroyDisplay(const std::string& displayName);
686 
688  virtual bool local_modifyDisplay( const std::string& displayName,
689  const DtDisplayConfiguration& config );
690 
692  void createDisplay(DtDisplayConfiguration&);
693 
695  void createIgCommunicator( DtDriverConfiguration& config);
696 
698  void destroyDisplay();
699 
701  bool local_addDisplayConfiguration( const DtDisplayConfiguration& dec);
702 
704  virtual void intializeStatsManager(void);
705 
707 
708 
709  protected:
710 
712  typedef std::vector<void*> InitFunctionVector;
713 
714  // Normal map here since add/remove order matters for destruction order
715  typedef std::map<std::string,DtVirtualBaseClass*> RootedSingletonMap;
716  typedef std::map<StaticInstanceFunction,DtVirtualBaseClass*> FastRootedSingletonMap;
717 
718  typedef std::map<std::string,DtDisplayProxyWP> DisplayEngineProxyMap;
719 
720  protected:
721 
722  static const char* myClassName;
723 
728  bool myStopFlag;
731  unsigned int myCurrentFrameNumber;
747 
750 
757  std::vector<bool> myActiveModelSets;
758 
759  mutable std::string myLastInstanceName;
760  mutable RootedSingletonMap::const_iterator myLastInstance;
761  mutable tbb::mutex myInternalDataMutex;
762  mutable tbb::recursive_mutex myErrorMutex;
763 
764  DtThreadId myThreadId;
765 
768 
770  {
771  NoLicense = -1,
772  Master3D_License = 0,
773  XR_License = 1,
774  PVD_License = 2
775  };
776 
778 
779  DtInMemoryProfilerDistributorAgent* myFrameTimeLogger;
782 
783  // This is used to provide an advancing time to the observer and observer event processor
784  // when simulation time is paused. Users of this 'pausedTime' must deal with the fact that
785  // the switch from paused time back to simTime will go 'into the past'
787 
790 
793 
794  // used by IMGui Profiler to start before the rest of the events
797 
798  DtDrawnIntersectorManager* myDrawnIntersectorManager = nullptr;
799 
801 
803  };
804 
805 
806  template <typename ManagerClass>
807  void defaultManagerRegisterInstanceFunction(DtDe& de, ManagerClass* mgr);
808 
843  template <typename ManagerClass>
844  ManagerClass& defaultManagerInstanceFunction(DtDe& de, bool allowedInSlave)
845  {
846  ManagerClass* mgr = dynamic_cast<ManagerClass*>
847  (de.findFastInstance(&ManagerClass::instance));
848 
849  if(!mgr)
850  {
851  //Require that manager is created before de is initialized.
852  if(de.initialized())
853  {
854  DtTHROW_NEW(DtCorruptedState,
855  "Manager created after display engine was initialized.");
856  }
857 
858  if(!allowedInSlave && de.isInSlaveMode())
859  {
860  DtTHROW_NEW(DtCorruptedState, "Create unsupported manager in slave.");
861  }
862 
863  //Create and register the manager.
864  mgr = new ManagerClass(de);
866  }
867  return *mgr;
868  }
869 
881  template <typename ManagerClass>
882  void defaultManagerRegisterInstanceFunction(DtDe& de, ManagerClass* mgr)
883  {
884  //Always override before init.
885  if(de.initialized())
886  {
887  DtTHROW_NEW(DtCorruptedState,
888  "Manager created after display engine was initialized.");
889  }
890 
891  de.registerFastInstance(&ManagerClass::instance,mgr);
892 
895  mgr->myConnections.manageConnection(
897  &ManagerClass::loadDefaults,mgr)));
898  }
899 
900 }
DtVirtualBaseClass * findFastInstance(Class &(*staticInstFunc)(DtDe &)) const
The instance key is always return the subclass of the virtual base class, since it returns a referenc...
Definition: DtDe.h:388
boost::signalslib::signal< void(const std::string &, const std::string &, const std::string &)> signal_channelToBeDestroyed
Signal is emitted, then the channel is destroyed. Signal with a display engine name,window name and channel name arguments and a void return value.
Definition: DtDe.h:548
virtual DtVirtualBaseClass * findFastInstance(StaticInstanceFunction classInstanceFunction) const
Find an instance with the given name. If no instance is found than a null pointer is returned...
DeErrors myIgErrors
Definition: DtDe.h:752
boost::signalslib::signal< void(const std::string &, const std::string &, const std::string &, const DtChannelConfiguration &)> signal_channelConfigurationModified
Emitted when a channel is modified. Signal with a display engine name, window name ...
Definition: DtDe.h:555
DtDisplay * myDisplayEngine
Definition: DtDe.h:736
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(const std::string &)> signal_displayToBeDestroyed
Emitted when a display is removed. The signal is emitted then the configuration is destroyed...
Definition: DtDe.h:511
boost::signalslib::signal< void(const std::string &, const std::string &, const DtChannelConfiguration &)> signal_channelConfigurationAdded
Emitted when a channel is added. Signal with a display engine name, window name and DtChannelConfigur...
Definition: DtDe.h:542
boost::signalslib::signal< void(DtDe &)> signal_preTick
Signal emitted at the beginning of the tick function. This is useful for executing code before the Di...
Definition: DtDe.h:489
DtDeProctor * myIgProctor
Definition: DtDe.h:739
bool myInitializeFlag
Definition: DtDe.h:729
DtSynchronizedTimeManager manages NTP synchronized time DtSynchronizedTimeManager is used by the disp...
Definition: DtSynchronizedTimeManager.h:25
tbb::recursive_mutex myErrorMutex
Definition: DtDe.h:762
The DtDeError instance.
Definition: DtDeError.h:20
An object that represents everything that is visible in the scene.
Definition: DtScene.h:44
DisplayEngineProxyMap myDisplayProxies
Definition: DtDe.h:742
boost::signalslib::signal< void()> signal_quit
Signal emitted by the quit method. Applications should listen for this signal and respond appropriate...
Definition: DtDe.h:566
bool myInTickFlag
Definition: DtDe.h:756
boost::signalslib::signal< void()> signal_postMainWindowInitialize
Emitted when after the main window has been set up.
Definition: DtDe.h:558
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
boost::signalslib::signal< void()> signal_resume
signal emitted by the resume method.
Definition: DtDe.h:572
double mySystemPausedTime
Definition: DtDe.h:786
DtDePathConfiguration myPathConfiguration
Definition: DtDe.h:727
DtSynchronizedTimeManager * mySynchronizedTimeManager
Definition: DtDe.h:767
DtMainEventQueue myMainEventQueue
Definition: DtDe.h:735
This is a simple class for logging information to a file. To be used, the caller must specify a loggi...
Definition: DtDebugLog.h:38
Component which owns how the application is displayed.
Definition: DtDisplay.h:27
DtAgentManager * myAgentManager
Definition: DtDe.h:741
DtRenderer * myRenderer
Definition: DtDe.h:753
void retick()
Retick is a helper function for simply ticking using the current Simulation time. This may be necessa...
Definition: DtDe.h:171
bool mySceneNeedsUpdateFlag
Definition: DtDe.h:754
Base class for Proctor classes.
Definition: DtProctor.h:21
double myLastUpdateTime
used by stats system
Definition: DtDe.h:792
boost::signalslib::signal< void()> signal_aboutToAutoStartDrivers
Signal emitted during initialization at at time when it is possible to initialize default state...
Definition: DtDe.h:574
DtInMemoryProfilerDistributorAgent * myFrameTimeLogger
Definition: DtDe.h:779
InitializationResult
Result codes for the initialize() function.
Definition: DtDe.h:122
core singleton that manages loading for all the various DtModel subclasses
Definition: DtBackgroundLoader.h:39
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:26
The DtDriverManager manages all the DtDriver&#39;s in the DtDe.
Definition: DtDriverManager.h:32
DtDeCommunicator * myCommunicator
Definition: DtDe.h:737
Configuration for the makVrv::DtIgDriver class.
Definition: DtDriverConfiguration.h:19
PrintLevel
Definition: DtDebugLog.h:42
boost::signalslib::signal< void()> signal_postTick
Signal emitted at the end of the tick function. This is useful for executing code after the Display E...
Definition: DtDe.h:496
Contains makVrv:DtDeCommunicator class.
boost::signalslib::signal< void(const std::string &, const DtWindowConfiguration &)> signal_windowConfigurationAdded
Emitted when a window is added. Signal with a display engine name and DtViewConfiguration argument an...
Definition: DtDe.h:523
DtDebugLog & log()
Inline access for the debug log object.
Definition: DtDe.h:230
The DtDePathConfiguration contains paths to various files, and can resolve the path macros ...
Definition: DtDePathConfiguration.h:23
boost::signalslib::signal< void(const DtDisplayConfiguration &)> signal_displayConfigurationAdded
Emitted when a display is added. Signal with a const DtDisplayConfiguration&amp; argument and a void retu...
Definition: DtDe.h:506
DtSchemaManager * mySchemaManager
Definition: DtDe.h:745
bool myRenderedLastFrame
Definition: DtDe.h:780
boost::signalslib::signal< void()> signal_initializeDefaultState
Signal emitted during initialization at at time when it is possible to initialize default state...
Definition: DtDe.h:476
boost::signalslib::signal< void(const std::string &, const std::string &)> signal_windowConfigurationToBeDestroyed
Emitted when a window is destroyed. The signal is emitted then the configuration is destroyed...
Definition: DtDe.h:530
Contains makVrv::DtDisplayProctor class.
DtDriverManager * myDriverManager
Definition: DtDe.h:740
void * myRegInitFunction
Definition: DtDe.h:749
Contains the DtDeInitializer class definition.
std::map< StaticInstanceFunction, DtVirtualBaseClass * > FastRootedSingletonMap
Definition: DtDe.h:716
boost::signalslib::signal< void(const std::string &, const std::string &)> signal_displayConfigurationRealized
Emitted when a Display Engine is told to realize a display configuration. Signal with the name of the...
Definition: DtDe.h:501
LicenseTypes
Definition: DtDe.h:769
DtThreadId myThreadId
Definition: DtDe.h:764
bool myShowErrorDialogs
Definition: DtDe.h:800
unsigned int myCurrentFrameNumber
Definition: DtDe.h:731
DtClock * mySimulationClock
Definition: DtDe.h:766
tbb::mutex myInternalDataMutex
Definition: DtDe.h:761
RenderingApiType myRenderingApi
Definition: DtDe.h:802
bool initialized() const
Get whether the application is initialized.
bool shouldSendMesssage()
Helper function used to check if a message needs to be created and sent.
Definition: DtDe.h:603
boost::signalslib::signal< void()> signal_pause
signal emitted by the pause method.
Definition: DtDe.h:569
The main event queue should live in the main application thread and is used to communicate events to ...
Definition: DtMainEventQueue.h:24
DtDataBank * myDataBank
Definition: DtDe.h:744
LicenseTypes myLicenseType
Definition: DtDe.h:777
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
The DtDeSharedState represents all the data that is shared between the master and its slaves...
Definition: DtDeSharedState.h:45
bool myStopFlag
Definition: DtDe.h:728
DtBackgroundLoader * myBackgroundLoader
Definition: DtDe.h:746
bool myStopProfilerNextFrame
Definition: DtDe.h:796
std::vector< bool > myActiveModelSets
Definition: DtDe.h:757
DtDebugLog * myDebugLog
Definition: DtDe.h:733
DtFileCache * myFileCache
Definition: DtDe.h:751
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
static const char * myClassName
Definition: DtDe.h:722
This owns a list of window configurations.
Definition: DtDisplayConfiguration.h:43
std::vector< std::pair< DtDeError, bool > > DeErrors
Typedef of a vector of error/critical.
Definition: DtDe.h:79
virtual bool isInSlaveMode() const
Returns true if the DtDe is in slave mode.
RootedSingletonMap::const_iterator myLastInstance
Definition: DtDe.h:760
The de proctor is responsible for communication changes to slave DtDe instances running on separate p...
Definition: DtDeProctor.h:22
InitFunctionVector myRegisteredInitFunctions
Definition: DtDe.h:748
DtDeConfiguration myConfiguration
Definition: DtDe.h:734
std::string myLastInstanceName
Definition: DtDe.h:759
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:882
std::vector< void * > InitFunctionVector
This vector stores the address of registered init functions.
Definition: DtDe.h:712
Definition: DtDrawnIntersectorManager.h:35
The DtAgentManager manages the distributed scene object framework. This includes the objects and upda...
Definition: DtAgentManager.h:38
boost::signalslib::signal< void()> signal_postInitialize
Signal emitted at the end of the initialization function. This is useful for executing code after the...
Definition: DtDe.h:482
Definition: asyncJobServer.h:39
The class responsible for managing communication between multiple DtDe instances typically running in...
Definition: DtDeCommunicator.h:31
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:49
DtMessageDispatcher * myDispatcher
Definition: DtDe.h:738
FastRootedSingletonMap myFastRootedSingletonMap
Definition: DtDe.h:725
void registerFastInstance(Class &(*staticInstFunc)(DtDe &), DtVirtualBaseClass *inst)
The instance key is always return the subclass of the virtual base class, since it returns a referenc...
Definition: DtDe.h:402
DtDataBank is the repository for common element data and simulation-specific state data...
Definition: DtDataBank.h:20
RootedSingletonMap myRootedSingletonMap
Definition: DtDe.h:724
DtDeSharedState * myDeSharedState
Definition: DtDe.h:743
bool myStartProfilerNextFrame
Definition: DtDe.h:795
The configuration of the Display Engine.
Definition: DtDeConfiguration.h:22
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:24
boost::signalslib::signal< void(const std::string &, const std::string &, const DtWindowConfiguration &)> signal_windowConfigurationModified
Emitted when an realized window is modified. Signal with a display engine name and a window name and ...
Definition: DtDe.h:536
DtBoost::shared_ptr< DtDisplayProxy > DtDisplayProxySP
Definition: DtDisplayProxy.h:91
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:844
boost::signalslib::signal< void(const std::string &, const DtDisplayConfiguration &)> signal_displayModified
Emitted when a display is modified. Signal with display engine name and display configuration argumen...
Definition: DtDe.h:517
virtual void registerFastInstance(StaticInstanceFunction classInstanceFunction, DtVirtualBaseClass *inst)
Register a fast instance, if the inst is a null pointer the instance key is removed.
bool myResettingFlag
Definition: DtDe.h:781
IGI Manager managers both IGI clients and IGI interfaces.
Definition: DtMessageDispatcher.h:31
Contains makVrv::DtMainEventQueue class.
RenderingApiType
The type of rendering API being used.
Definition: DtDe.h:84
std::map< std::string, DtVirtualBaseClass * > RootedSingletonMap
Definition: DtDe.h:715
double myNextFixedTime
Definition: DtDe.h:732
boost::signalslib::signal< void(const DtDeError &error, bool critical)> signal_deError
Listen to this signal for Display Engine errors. DO NOT EMIT using this signal. Emit using the emit f...
Definition: DtDe.h:562
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:72
DtModelSetId
Definition: DtModelSetEnums.h:19
Handles the caching of files. Includes functions for excluding files with certain extensions from bei...
Definition: DtFileCache.h:37
The schema manager is responsible to managing all of the schemas in the system. It will save and load...
Definition: DtSchemaManager.h:78
double mySimulationTime
Definition: DtDe.h:730
double myTargetFrameTime
used to budget streaming at the end of a frame
Definition: DtDe.h:789
DtDeInitializer myInitializer
Definition: DtDe.h:726
The initialization configuration for the makVrv::DtDe.
Definition: DtDeInitializer.h:39
bool myDestructionFlag
Definition: DtDe.h:755
std::map< std::string, DtDisplayProxyWP > DisplayEngineProxyMap
Definition: DtDe.h:718

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)