#include "IGL_intern.h" #include "BaseWin.h" #include using namespace IGL; // diese Klasse sorgt dafuer, dass glutMainLoop() genau einmal aufgerufen wird // sie ist daher in der Klasse IGLWin als 'static' deklariert class IGL::IGLoop { private: IGLoop(); ~IGLoop(); // Flag, das angibt, ob die IGLoop noch initialisiert werden muss static bool initialized; // Dummy-Fenster zum Hochfahren der IGLoop (kann nicht als normales Fenster // genutzt werden, da GLUT bei ihm fehlerhafte Ausgaben produziert) static BaseWin *dummy; // Thread-Verwaltung pthread_t Thrd; // Thread fuer die Event-Schleife // diese Methode sorgt durch Aufruf von glutMainLoop(), dafuer, dass // GLUT alle Events und States registriert und an die einzelnen BaseWin- // Instanzen weiterleitet static void* EventLoop(void *); friend class IGLWin; // Kann nur von einem Fenster erzeugt werden! friend class BaseWin; friend class CmdWin; friend class CmdSetProp; };