00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef _VRJ_DISPLAY_MANAGER_H_
00034 #define _VRJ_DISPLAY_MANAGER_H_
00035
00036 #include <vrj/vrjConfig.h>
00037 #include <vector>
00038
00039 #include <vpr/Util/Singleton.h>
00040
00041
00042 #include <vrj/Util/Debug.h>
00043 #include <jccl/RTRC/ConfigElementHandler.h>
00044 #include <jccl/Config/ConfigElementPtr.h>
00045
00046 namespace vrj
00047 {
00048
00049 class DrawManager;
00050 class Display;
00051
00064 class VJ_CLASS_API DisplayManager : public jccl::ConfigElementHandler
00065 {
00066 public:
00071 virtual bool configAdd(jccl::ConfigElementPtr element);
00072
00077 virtual bool configRemove(jccl::ConfigElementPtr element);
00078
00084 virtual bool configCanHandle(jccl::ConfigElementPtr element);
00085
00086 public:
00091 virtual void updateProjections(const float scaleFactor);
00092
00100 void setDrawManager(DrawManager* drawMgr);
00101
00106 std::vector<vrj::Display*> getActiveDisplays()
00107 { return mActiveDisplays;}
00108
00113 std::vector<vrj::Display*> getInActiveDisplays()
00114 { return mInactiveDisplays;}
00115
00120 std::vector<vrj::Display*> getAllDisplays();
00121
00122 jccl::ConfigElementPtr getDisplaySystemElement();
00123
00124 private:
00133 bool configAddDisplay(jccl::ConfigElementPtr element);
00134
00141 bool configRemoveDisplay(jccl::ConfigElementPtr element);
00142
00143
00152 int addDisplay(vrj::Display* disp, bool notifyDrawMgr = true);
00153
00161 int closeDisplay(vrj::Display* disp, bool notifyDrawMgr = true);
00162
00164 bool isMemberDisplay(vrj::Display* disp);
00165
00170 vrj::Display* findDisplayNamed(std::string name);
00171
00172 public:
00173 std::vector<vrj::Display*> mActiveDisplays;
00174 std::vector<vrj::Display*> mInactiveDisplays;
00176 protected:
00177 DrawManager* mDrawManager;
00178 jccl::ConfigElementPtr mDisplaySystemElement;
00182 protected:
00183 DisplayManager() : mDrawManager(NULL)
00184 {
00185 ;
00186 }
00187
00188 virtual ~DisplayManager()
00189 {;}
00190
00191 DisplayManager(const DisplayManager& o)
00192 : jccl::ConfigElementHandler()
00193 {
00194 ;
00195 }
00196
00197 void operator= (const DisplayManager& o) {;}
00198
00199 vprSingletonHeader( DisplayManager );
00200 };
00201
00202 }
00203 #endif