[MPlayer-cvslog] r28125 - trunk/libvo/vo_gl.c

reimar subversion at mplayerhq.hu
Wed Dec 10 17:39:46 CET 2008


Author: reimar
Date: Wed Dec 10 17:39:45 2008
New Revision: 28125

Log:
Try to auto-detect several vo_gl settings (ati-hack, force-pbo and rectangle).


Modified:
   trunk/libvo/vo_gl.c

Modified: trunk/libvo/vo_gl.c
==============================================================================
--- trunk/libvo/vo_gl.c	(original)
+++ trunk/libvo/vo_gl.c	Wed Dec 10 17:39:45 2008
@@ -401,11 +401,21 @@ static void uninitGl(void) {
   err_shown = 0;
 }
 
+static void autodetectGlExtensions(void) {
+  const char *extensions = glGetString(GL_EXTENSIONS);
+  const char *vendor     = glGetString(GL_VENDOR);
+  int is_ati = strstr(vendor, "ATI") != NULL;
+  if (ati_hack      == -1) ati_hack      = is_ati;
+  if (force_pbo     == -1) force_pbo     = strstr(extensions, "_pixel_buffer_object")      ? is_ati : 0;
+  if (use_rectangle == -1) use_rectangle = strstr(extensions, "_texture_non_power_of_two") ?      2 : 0;
+}
+
 /**
  * \brief Initialize a (new or reused) OpenGL context.
  * set global gl-related variables to their default values
  */
 static int initGl(uint32_t d_width, uint32_t d_height) {
+  autodetectGlExtensions();
   texSize(image_width, image_height, &texture_width, &texture_height);
 
   glDisable(GL_BLEND); 
@@ -925,10 +935,10 @@ static int preinit(const char *arg)
     lscale = 0;
     cscale = 0;
     filter_strength = 0.5;
-    use_rectangle = 0;
+    use_rectangle = -1;
     use_glFinish = 0;
-    ati_hack = 0;
-    force_pbo = 0;
+    ati_hack = -1;
+    force_pbo = -1;
     mesa_buffer = 0;
     swap_interval = 1;
     slice_height = 0;



More information about the MPlayer-cvslog mailing list