bool Window::configInitGL( const eq::uint128_t& ) { Pipe* pipe = static_cast<Pipe*>( getPipe() ); Renderer* renderer = pipe->getRenderer(); if( !renderer ) return false; if( !GLEW_ARB_shader_objects ) { sendError( ERROR_EVOLVE_ARB_SHADER_OBJECTS_MISSING ); return false; } if( !GLEW_EXT_blend_func_separate ) { sendError( ERROR_EVOLVE_EXT_BLEND_FUNC_SEPARATE_MISSING ); return false; } if( !GLEW_ARB_multitexture ) { sendError( ERROR_EVOLVE_ARB_MULTITEXTURE_MISSING ); return false; } glEnable( GL_SCISSOR_TEST ); // needed to constrain channel viewport glClear( GL_COLOR_BUFFER_BIT ); swapBuffers(); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); renderer->glewSetContext( glewGetContext( )); if( !renderer->loadShaders( )) { sendError( ERROR_EVOLVE_LOADSHADERS_FAILED ); return false; } _loadLogo(); return true; }
bool Window::configInitGL( const eq::uint128_t& initID ) { if( !eq::Window::configInitGL( initID )) return false; glLightModeli( GL_LIGHT_MODEL_LOCAL_VIEWER, 1 ); glEnable( GL_CULL_FACE ); // OPT - produces sparser images in DB mode glCullFace( GL_BACK ); LBASSERT( !_state ); _state = new VertexBufferState( getObjectManager( )); const Config* config = static_cast< const Config* >( getConfig( )); const InitData& initData = config->getInitData(); if( initData.showLogo( )) _loadLogo(); if( initData.useGLSL() ) _loadShaders(); return true; }