$search
00001 #ifndef RENDERER_MANAGER_H 00002 #define RENDERER_MANAGER_H 00003 00004 //== INCLUDES ================================================================== 00005 #define GL_GLEXT_PROTOTYPES 00006 #include <GL/glew.h> 00007 #include <GL/glui.h> 00008 #include <GL/gl.h> 00009 #include <GL/glu.h> 00010 #include <GL/glut.h> 00011 #include <list> 00012 #include "rtc/rtcRenderer.h" 00013 00014 //== CONSTANTS ================================================================= 00015 #define GL_GLEXT_PROTOTYPES 00016 #define MAX_NUMBER_OF_RENDERERS 256 00017 00018 //== NAMESPACES ================================================================ 00019 namespace rtc { 00020 00021 class Renderer; 00022 class RenderManager { 00023 00024 public: 00028 RenderManager(int* argc, char **argv); 00029 00033 virtual ~RenderManager(); 00034 00038 int createWindow(const char* title, Renderer* renderer); 00039 00043 void dispatch(void); 00044 00045 void disableIdleFunction(void); 00046 void enableIdleFunction(void); 00047 int idleFunctionEnabled(void); 00048 int idleSetToCurrentWindow(void); 00049 void setIdleToCurrentWindow(void); 00050 00051 private: 00052 static void callbackDisplayFunc(void); 00053 static void callbackIdleFunc(void); 00054 static void callbackKeyboardFunc(unsigned char key, int x, int y); 00055 static void callbackMotionFunc(int x, int y); 00056 static void callbackMouseFunc(int button, int state, int x, int y); 00057 static void callbackPassiveMotionFunc(int x, int y); 00058 static void callbackReshapeFunc(int w, int h); 00059 static void callbackSpecialFunc(int key, int x, int y); 00060 static void callbackVisibilityFunc(int visible); 00061 static void callbackTimerFunc(int value); 00062 00063 static int m_currentIdleRenderer; 00064 static int m_idleFunctionEnabled; 00065 }; 00066 00067 //============================================================================== 00068 } // namespace rtc 00069 //============================================================================== 00070 #endif // RENDERER_MANAGER_H defined 00071 //============================================================================== 00072