int glw_opengl_init_context(glw_root_t *gr) { GLint tu = 0; glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CULL_FACE); glPixelStorei(GL_UNPACK_ALIGNMENT, PIXMAP_ROW_ALIGN); glPixelStorei(GL_PACK_ALIGNMENT, PIXMAP_ROW_ALIGN); glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &tu); if(tu < 6) { TRACE(TRACE_ERROR, "GLW", "Insufficient number of texture image units %d < 6 " "for GLW video rendering widget.", tu); return -1; } TRACE(TRACE_DEBUG, "GLW", "%d texture image units available", tu); const char *vendor = (const char *)glGetString(GL_VENDOR); const char *renderer = (const char *)glGetString(GL_RENDERER); TRACE(TRACE_INFO, "GLW", "OpenGL Renderer: '%s' by '%s'", renderer, vendor); gr->gr_br_read_pixels = opengl_read_pixels; return glw_opengl_shaders_init(gr); }
int glw_opengl_init_context(glw_root_t *gr) { GLint tu = 0; glw_backend_root_t *gbr = &gr->gr_be; const GLubyte *s; /* Check OpenGL extensions we would like to have */ s = glGetString(GL_EXTENSIONS); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CULL_FACE); gbr->gbr_frontface = GLW_CCW; glPixelStorei(GL_UNPACK_ALIGNMENT, PIXMAP_ROW_ALIGN); if(check_gl_ext(s, "GL_ARB_texture_non_power_of_two")) { gbr->gbr_texmode = GLW_OPENGL_TEXTURE_NPOT; gbr->gbr_primary_texture_mode = GL_TEXTURE_2D; gr->gr_normalized_texture_coords = 1; #ifdef GL_TEXTURE_RECTANGLE_ARB } else if(check_gl_ext(s, "GL_ARB_texture_rectangle")) { gbr->gbr_texmode = GLW_OPENGL_TEXTURE_RECTANGLE; gbr->gbr_primary_texture_mode = GL_TEXTURE_RECTANGLE_ARB; #endif } else { gbr->gbr_texmode = GLW_OPENGL_TEXTURE_SIMPLE; gbr->gbr_primary_texture_mode = GL_TEXTURE_2D; gr->gr_normalized_texture_coords = 1; } glEnable(gbr->gbr_primary_texture_mode); glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &tu); if(tu < 6) { TRACE(TRACE_ERROR, "GLW", "Insufficient number of texture image units %d < 6 " "for GLW video rendering widget.", tu); return -1; } TRACE(TRACE_DEBUG, "GLW", "%d texture image units available", tu); const char *vendor = (const char *)glGetString(GL_VENDOR); const char *renderer = (const char *)glGetString(GL_RENDERER); TRACE(TRACE_INFO, "GLW", "OpenGL Renderer: '%s' by '%s'", renderer, vendor); int use_shaders = 1; if(use_shaders) { return glw_opengl_shaders_init(gr, 0); } else { return glw_opengl_ff_init(gr); } }
int glw_opengl_init_context(glw_root_t *gr) { glw_backend_root_t *gbr = &gr->gr_be; glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CULL_FACE); gbr->gbr_frontface = GLW_CCW; glPixelStorei(GL_UNPACK_ALIGNMENT, PIXMAP_ROW_ALIGN); gbr->gbr_texmode = GLW_OPENGL_TEXTURE_NPOT; gbr->gbr_primary_texture_mode = GL_TEXTURE_2D; gr->gr_normalized_texture_coords = 1; glEnable(gbr->gbr_primary_texture_mode); const char *vendor = (const char *)glGetString(GL_VENDOR); const char *renderer = (const char *)glGetString(GL_RENDERER); TRACE(TRACE_INFO, "GLW", "OpenGL Renderer: '%s' by '%s'", renderer, vendor); return glw_opengl_shaders_init(gr, 1); }