# HG changeset patch # User reimar # Date 1267220502 0 # Node ID d68d26ab8e64b194b5426bf9fcd50d88a20fa13e # Parent c6524b71a9da6d1bfefed8b79015da8d4a5e5bfc Port yuv=... auto-detection from gl to gl2. diff -r c6524b71a9da -r d68d26ab8e64 libvo/vo_gl2.c --- a/libvo/vo_gl2.c Fri Feb 26 20:01:04 2010 +0000 +++ b/libvo/vo_gl2.c Fri Feb 26 21:41:42 2010 +0000 @@ -865,7 +865,7 @@ #ifdef CONFIG_GL_WIN32 gltype = GLTYPE_W32; #endif - use_yuv = 0; + use_yuv = -1; use_glFinish = 1; if (subopt_parse(arg, subopts) != 0) { mp_msg(MSGT_VO, MSGL_FATAL, @@ -884,8 +884,25 @@ "\n" ); return -1; } - if(!init_mpglcontext(&glctx, gltype)) return -1; + if(!init_mpglcontext(&glctx, gltype)) goto err_out; + if (use_yuv == -1) { + const char *extensions; +#ifdef CONFIG_GL_WIN32 + if (config_w32(320, 200, 320, 200, VOFLAG_HIDDEN, "", 0) == -1) +#else + if (config_glx(320, 200, 320, 200, VOFLAG_HIDDEN, "", 0) == -1) +#endif + goto err_out; + if (glctx.setGlWindow(&glctx) == SET_WINDOW_FAILED) + goto err_out; + extensions = GetString(GL_EXTENSIONS); + use_yuv = strstr(extensions, "GL_ARB_fragment_program") ? 2 : 0; + } return 0; + +err_out: + uninit(); + return -1; } static int control(uint32_t request, void *data, ...)