[MPlayer-cvslog] r18696 - trunk/libvo/gl_common.c

reimar subversion at mplayerhq.hu
Tue Jun 13 21:55:21 CEST 2006


Author: reimar
Date: Tue Jun 13 21:55:20 2006
New Revision: 18696

Modified:
   trunk/libvo/gl_common.c

Log:
Do not use border for bicubic filter helper texture, since it will cause ATI
cards to switch to software mode and be unusable. Double texture size to avoid
this causing artefacts.
Note: yuv=6 will not be changed, so it will stay unusable with ATI cards unless
ATI starts supporting this.


Modified: trunk/libvo/gl_common.c
==============================================================================
--- trunk/libvo/gl_common.c	(original)
+++ trunk/libvo/gl_common.c	Tue Jun 13 21:55:20 2006
@@ -621,14 +621,14 @@
 }
 
 //! to avoid artefacts this should be rather large
-#define LOOKUP_BSPLINE_RES (1024)
+#define LOOKUP_BSPLINE_RES (2 * 1024)
 /**
  * \brief creates the 1D lookup texture needed for fast higher-order filtering
  * \param unit texture unit to attach texture to
  */
 static void gen_spline_lookup_tex(GLenum unit) {
-  GLfloat tex[4 * (LOOKUP_BSPLINE_RES + 2)];
-  GLfloat *tp = &tex[4];
+  GLfloat tex[4 * LOOKUP_BSPLINE_RES];
+  GLfloat *tp = tex;
   int i;
   for (i = 0; i < LOOKUP_BSPLINE_RES; i++) {
     float x = (float)(i + 0.5) / LOOKUP_BSPLINE_RES;
@@ -636,9 +636,9 @@
     tp += 4;
   }
   store_weights(0, tex);
-  store_weights(1, &tex[4 * (LOOKUP_BSPLINE_RES + 1)]);
+  store_weights(1, &tex[4 * (LOOKUP_BSPLINE_RES - 1)]);
   ActiveTexture(unit);
-  glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA16, LOOKUP_BSPLINE_RES + 2, 1, GL_RGBA, GL_FLOAT, tex);
+  glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA16, LOOKUP_BSPLINE_RES, 0, GL_RGBA, GL_FLOAT, tex);
   glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_PRIORITY, 1.0);
   glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
   glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);



More information about the MPlayer-cvslog mailing list