bool Window::configInit() { GLXFBConfig* fbConfig = chooseGLXFBConfig(); if( !fbConfig ) { sendError( ERROR_SYSTEMWINDOW_PIXELFORMAT_NOTFOUND ); return false; } GLXContext context = createGLXContext( fbConfig ); setGLXContext( context ); if( !context ) { XFree( fbConfig ); return false; } bool success = configInitGLXDrawable( fbConfig ); XFree( fbConfig ); if( !success || !_impl->xDrawable ) { sendError( ERROR_GLXWINDOW_NO_DRAWABLE ); return false; } makeCurrent(); initGLEW(); _initSwapSync(); if( getIAttribute( IATTR_HINT_DRAWABLE ) == FBO ) success = configInitFBO(); return success; }
bool Window::configInitAGLDrawable() { switch( getIAttribute( eq::Window::IATTR_HINT_DRAWABLE )) { case PBUFFER: return configInitAGLPBuffer(); case FBO: return configInitFBO(); default: LBWARN << "Unknown drawable type " << getIAttribute( eq::Window::IATTR_HINT_DRAWABLE ) << ", using window" << std::endl; // no break; case UNDEFINED: case WINDOW: if( getIAttribute( eq::Window::IATTR_HINT_FULLSCREEN ) == ON ) return configInitAGLFullscreen(); return configInitAGLWindow(); case OFF: return true; } }