VR-Vantage 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtRenderer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 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 <boost/signals.hpp>
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::signal<void (double simTime)> signal_update;
103 
107  boost::signal<void (double simTime)> signal_preObserverUpdate;
108 
111  boost::signal<void (double simTime)> signal_postUpdate;
112 
115  boost::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 
141  protected:
142 
149  };
150 
154  {
155  public:
156 
159  static DtRendererCreator& instance(DtDe& de);
160 
162  static void registerInstance(DtDe& de, DtRendererCreator* anInstance);
163 
165  virtual DtRenderer* create(DtDe& de) = 0;
166  };
167 
168 
169 
170 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtSignalConnectionManager myConnections
Definition: DtRenderer.h:148
An abstract interface for managers of DtTickable objects.
Definition: DtTickableManagerInterface.h:25
The class responsible for managing and updating observer objects.
Definition: DtObserverObjectManager.h:25
DtTickableManagerInterface * myTickableManager
Definition: DtRenderer.h:145
boost::signal< void(double simTime)> signal_postUpdate
Signal used to update systems.
Definition: DtRenderer.h:111
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::signal< void(double simTime)> signal_update
Signal used to update systems.
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:24
DtRenderMap myRenderMap
Definition: DtRenderer.h:147
boost::signal< void(double simTime)> signal_preObserverUpdate
Signal used to update systems.
Definition: DtRenderer.h:107
Abstract base class for managing the overlays.
Definition: DtOverlayManager.h:28
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:153
DtObserverObjectManager * myObserverObjectManager
Definition: DtRenderer.h:144
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtDe & myDe
Definition: DtRenderer.h:143
boost::signal< void()> signal_releaseResources
Signal used to update systems.
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:146
Contains DLL export macros.


Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)