![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtRenderer.h,v $ $Revision: 1.31 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/vrvCore.h> 00015 #include <vrvUtil/DtVirtualBaseClass.h> 00016 #include <boost/signals.hpp> 00017 00018 namespace makVrv 00019 { 00020 00021 class DtDe; 00022 class DtObserverObjectManager; 00023 class DtOverlayManager; 00024 class DtUpdaterManager; 00025 00031 00033 class DT_DLL_VRVCORE DtRenderer 00034 { 00035 public: 00036 00038 DtRenderer(DtDe& de); 00039 00041 virtual ~DtRenderer(); 00042 00044 virtual void update(); 00045 00047 virtual void postUpdate(); 00048 00050 DtObserverObjectManager* observerObjectManager(); 00051 00053 DtUpdaterManager& updaterManager(); 00054 const DtUpdaterManager& updaterManager() const; 00055 00057 DtOverlayManager& overlayManager(); 00058 const DtOverlayManager& overlayManager() const; 00059 00062 virtual bool exportTerrainAndProps(const std::string&) = 0; 00063 00065 virtual void render() = 0; 00066 00068 virtual void resetSceneGraph() = 0; 00069 00071 virtual void setWireframeRendering(bool enabled) = 0; 00072 00074 virtual bool wireframeRendering() const = 0; 00075 00077 virtual void setShadowState(bool enabled, int quality, bool entity, bool props, bool terrain) =0; 00078 00080 virtual bool shadowsEnabled() const = 0; 00081 00083 virtual int shadowQuality() const = 0; 00084 00086 virtual bool entityShadowsEnabled() const =0; 00087 00089 virtual bool propShadowsEnabled() const =0; 00090 00092 virtual bool terrainShadowsEnabled() const =0; 00093 00095 virtual void releaseResources() = 0; 00096 00099 boost::signal<void (double simTime)> signal_update; 00100 00103 boost::signal<void (double simTime)> signal_postUpdate; 00104 00107 boost::signal<void ()> signal_releaseResources; 00108 00111 virtual bool makeContextCurrent() = 0; 00112 00115 void createManagers(); 00116 00117 protected: 00118 00119 DtDe& myDe; 00120 DtObserverObjectManager* myObserverObjectManager; 00121 DtUpdaterManager* myUpdaterManager; 00122 DtOverlayManager* myOverlayManager; 00123 }; 00124 00127 class DT_DLL_VRVCORE DtRendererCreator : public DtVirtualBaseClass 00128 { 00129 public: 00130 00133 static DtRendererCreator& instance(DtDe& de); 00134 00136 static void registerInstance(DtDe& de, DtRendererCreator* anInstance); 00137 00139 virtual DtRenderer* create(DtDe& de) = 0; 00140 }; 00141 00142 00143 00144 }