# HG changeset patch # User reimar # Date 1126628173 0 # Node ID 55b04cfc255c84be4b5a908c7bfb88992cd3e9b7 # Parent 01d27e023ae47ff775a9810e9eb3a37485a76217 Allow disabling the glFinish call diff -r 01d27e023ae4 -r 55b04cfc255c libvo/vo_gl2.c --- a/libvo/vo_gl2.c Tue Sep 13 15:56:32 2005 +0000 +++ b/libvo/vo_gl2.c Tue Sep 13 16:16:13 2005 +0000 @@ -10,6 +10,7 @@ #include "config.h" #include "mp_msg.h" +#include "subopt-helper.h" #include "video_out.h" #include "video_out_internal.h" #include "sub.h" @@ -70,6 +71,7 @@ static int gl_bilinear=1; static int gl_antialias=0; +static int use_glFinish; static void (*draw_alpha_fnc) (int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride); @@ -891,6 +893,7 @@ drawTextureDisplay(); // glFlush(); + if (use_glFinish) glFinish(); #ifdef GL_WIN32 SwapBuffers(vo_hdc); @@ -951,13 +954,25 @@ #endif } +static opt_t subopts[] = { + {"glfinish", OPT_ARG_BOOL, &use_glFinish, NULL}, + {NULL} +}; + static int preinit(const char *arg) { - if(arg) - { - mp_msg(MSGT_VO, MSGL_FATAL, "[gl2] Unknown subdevice: %s\n",arg); - return -1; - } + // set defaults + use_glFinish = 1; + if (subopt_parse(arg, subopts) != 0) { + mp_msg(MSGT_VO, MSGL_FATAL, + "\n-vo gl2 command line help:\n" + "Example: mplayer -vo gl2:noglfinish\n" + "\nOptions:\n" + " noglfinish\n" + " Do not call glFinish() before swapping buffers\n" + "\n" ); + return -1; + } if( !vo_init() ) return -1; // Can't open X11 return 0; }