Go to the documentation of this file.00001 #ifndef RENDERER_MANAGER_H
00002 #define RENDERER_MANAGER_H
00003
00004
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
00015 #define GL_GLEXT_PROTOTYPES
00016 #define MAX_NUMBER_OF_RENDERERS 256
00017
00018
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 }
00069
00070 #endif // RENDERER_MANAGER_H defined
00071
00072