void glPrintInfo ( GsOutput* out ) { GsOutput& o = out? *out:std::cout; const char* end = "\"\n"; o << " Vendor: " << "\"" << (char*) glGetString (GL_VENDOR) << end; o << "Renderer: " << "\"" << (char*) glGetString (GL_RENDERER) << end; o << " OpenGL: " << glVersion() << ", \""<< (const char*)glGetString(GL_VERSION) << end; o << " GLSL: " << glslVersion() << ", \""<< (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION) << end; }
void GLWindow::initializeGL() { mInitialized = true; if( checkGLError() ) LOG_TRACE // Set up the rendering context, define display lists etc.: glClearColor( 8/256.0, 5/256.0, 76/256.0, 0.0 ); glDisable(GL_DEPTH_TEST); if( checkGLError() ) LOG_TRACE #ifdef COMPILE_CG if( mUseCG && cgGLIsProfileSupported( CG_PROFILE_FP20 ) ){ //LOG_3("Using Cg"); // This is the most basic fragment profile, should run on quite a few cards cgFragmentProfile = CG_PROFILE_FP20; cgSetErrorCallback(cgErrorCallback); cgContext = cgCreateContext(); // TODO: Include the shader source in the executable cgProgram = cgCreateProgram( cgContext, CG_SOURCE, FRAGMENT_SHADER, cgFragmentProfile, 0, 0); cgGLLoadProgram( cgProgram ); cgImageParam = cgGetNamedParameter( cgProgram, "image" ); cgColorClampParam = cgGetNamedParameter( cgProgram, "colorClamp" ); cgGLBindProgram( cgProgram ); }else #endif { //LOG_3("Using stock OpenGL"); mUseCG = false; } // GL_TEXTURE_ENV_MODE defaults to GL_MODULATE // GL_TEXTURE_ENV_COLOR defaults to (0,0,0,0) #ifdef GL_NV_texture_rectangle mUseGL_NV_texture_rectangle = isExtensionSupported( "GL_NV_texture_rectangle" ); if( checkGLError() ) LOG_TRACE #endif // GL_NV_texture_rectangle #ifdef GL_NV_texture_rectangle if( mUseGL_NV_texture_rectangle ){ //LOG_5( "Using GL_TEXTURE_RECTANGLE_NV" ); mTextureMode = GL_TEXTURE_RECTANGLE_NV; // Only try to use cg, if texture_rectangle is supported // 4/23/04 WHY? mUseCG = true; } else #endif // GL_NV_texture_rectangle { //qWarning("NOT USING GL_TEXTURE_RECTANGLE_NV"); mTextureMode = GL_TEXTURE_2D; // Set up the texturing params GLint wrapMode = GL_CLAMP; int glMajor, glMinor; glVersion(glMajor,glMinor); if( glMajor >= 1 && glMinor >=2 ) wrapMode = GL_CLAMP_TO_EDGE; glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, wrapMode); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, wrapMode); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR); } }