VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRenderer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtUniqueID.h>
13 
16 
17 #include <vrvUtil/signalslib.h>
18 #include <boost/unordered_map.hpp>
19 
20 namespace makVrv
21 {
22 
23  class DtDe;
24  class DtObserverObjectManager;
25  class DtOverlayManager;
26  class DtTickableManagerInterface;
27 
41 
44  {
45  public:
46 
50  typedef boost::unordered_map<DtElementID, double> DtRenderMap;
51 
53  DtRenderer(DtDe& de);
54 
56  virtual ~DtRenderer();
57 
59  virtual void update();
60 
62  virtual void postUpdate();
63 
65  DtObserverObjectManager* observerObjectManager();
66 
68  DtTickableManagerInterface& tickableManager();
69  const DtTickableManagerInterface& tickableManager() const;
70 
72  DtOverlayManager& overlayManager();
73  const DtOverlayManager& overlayManager() const;
74 
77  virtual bool exportTerrainAndProps(const std::string&) = 0;
78 
80  virtual void render() = 0;
81 
83  virtual void resetSceneGraph() = 0;
84 
86  virtual void setWireframeRendering(bool enabled) = 0;
87 
89  virtual bool wireframeRendering() const = 0;
90 
92  virtual void setShadowState(bool enabled) =0;
93 
95  virtual bool shadowsEnabled() const = 0;
96 
98  virtual void releaseResources() = 0;
99 
102  boost::signalslib::signal<void (double simTime)> signal_update;
103 
107  boost::signalslib::signal<void (double simTime)> signal_preObserverUpdate;
108 
111  boost::signalslib::signal<void (double simTime)> signal_postUpdate;
112 
115  boost::signalslib::signal<void ()> signal_releaseResources;
116 
119  virtual bool makeContextCurrent() = 0;
120 
123  void createManagers();
124 
128  inline const DtRenderMap& renderMap() const
129  {
130  return myRenderMap;
131  }
132 
136  virtual void runMainThreadJobs(double timeBudget) = 0;
137 
139  virtual void launchSwapBufferTasks() = 0;
140 
144  virtual void cleanup() = 0;
145 
147  virtual void setNewProfilerState(int value) = 0;
149  virtual int newProfilerState() = 0;
150 
151  protected:
152 
159 
160  };
161 
165  {
166  public:
167 
170  static DtRendererCreator& instance(DtDe& de);
171 
173  static void registerInstance(DtDe& de, DtRendererCreator* anInstance);
174 
176  virtual DtRenderer* create(DtDe& de) = 0;
177  };
178 
179 
180 
181 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSignalConnectionManager myConnections
Definition: DtRenderer.h:158
An abstract interface for managers of DtTickable objects.
Definition: DtTickableManagerInterface.h:25
boost::signalslib::signal< void(double simTime)> signal_postUpdate
Signal used to update systems. Connect functions to this signal that need to be called once per tick ...
Definition: DtRenderer.h:111
The class responsible for managing and updating observer objects.
Definition: DtObserverObjectManager.h:25
DtTickableManagerInterface * myTickableManager
Definition: DtRenderer.h:155
const DtRenderMap & renderMap() const
Returns a const reference to the unordered map that contains all the element IDs of objects that were...
Definition: DtRenderer.h:128
boost::signalslib::signal< void(double simTime)> signal_update
Signal used to update systems. Connect functions to this signal that need to be called once per tick ...
Definition: DtRenderer.h:102
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtRenderMap myRenderMap
Definition: DtRenderer.h:157
Abstract base class for managing the overlays.
Definition: DtOverlayManager.h:25
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:43
Base class to provide boost signal/slot management.
Abstract creator base class.
Definition: DtRenderer.h:164
DtObserverObjectManager * myObserverObjectManager
Definition: DtRenderer.h:154
Contains makVrv::DtUniqueID type.
boost::signalslib::signal< void(double simTime)> signal_preObserverUpdate
Signal used to update systems. Connect functions to this signal that need to be called once per tick ...
Definition: DtRenderer.h:107
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
DtDe & myDe
Definition: DtRenderer.h:153
boost::signalslib::signal< void()> signal_releaseResources
Signal used to update systems. Connect functions to this signal that need to be called once per tick ...
Definition: DtRenderer.h:115
boost::unordered_map< DtElementID, double > DtRenderMap
Type definition of an unordered map that maps the element ids of objects recently rendered to the las...
Definition: DtRenderer.h:50
DtOverlayManager * myOverlayManager
Definition: DtRenderer.h:156
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)