changeset 30971:9d024ceb45e3

Check texture dimensions instead of internal format in max texture size check to work around OS X ATI driver bugs: - does not keep format but use an equivalent one (1 becomes 0x8040). - does not set to 0 on failure but to 0x8018
author reimar
date Sun, 04 Apr 2010 19:56:26 +0000
parents 600d1bbaf62b
children 886527159cae
files libvo/vo_gl2.c
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_gl2.c	Sun Apr 04 19:44:03 2010 +0000
+++ b/libvo/vo_gl2.c	Sun Apr 04 19:56:26 2010 +0000
@@ -172,7 +172,6 @@
   GLfloat texpercx, texpercy;
   int s;
   int x=0, y=0;
-  GLint format=0;
 
   // textures smaller than 64x64 might not be supported
   s=64;
@@ -190,15 +189,16 @@
 
   /* Test the max texture size */
   do {
+    GLint w;
     glTexImage2D (GL_PROXY_TEXTURE_2D, 0,
                   gl_internal_format,
                   texture_width, texture_height,
                   0, gl_bitmap_format, gl_bitmap_type, NULL);
 
     glGetTexLevelParameteriv
-      (GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format);
+      (GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &w);
 
-    if (format == gl_internal_format)
+    if (w >= texture_width)
       break;
 
     mp_msg (MSGT_VO, MSGL_V, "[gl2] Needed texture [%dx%d] too big, trying ",