[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24904] trunk/blender/source/blender/ editors/screen/glutil.c: Fix for [#20034] Background Image Distortion while zooming and moving around 3D window.

Matt Ebb matt at mke3.net
Thu Nov 26 03:11:08 CET 2009


Revision: 24904
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24904
Author:   broken
Date:     2009-11-26 03:11:07 +0100 (Thu, 26 Nov 2009)

Log Message:
-----------
Fix for [#20034] Background Image Distortion while zooming and moving around 3D window.

This is working around an Apple OpenGL driver bug, chatted to Martin about this in IRC, seems ok. Hopefully can revert this if/when Apple comes up with a driver fix.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/glutil.c

Modified: trunk/blender/source/blender/editors/screen/glutil.c
===================================================================
--- trunk/blender/source/blender/editors/screen/glutil.c	2009-11-26 00:15:26 UTC (rev 24903)
+++ trunk/blender/source/blender/editors/screen/glutil.c	2009-11-26 02:11:07 UTC (rev 24904)
@@ -439,10 +439,15 @@
 	glPixelStorei(GL_UNPACK_ROW_LENGTH, img_w);
 	glBindTexture(GL_TEXTURE_2D, texid);
 
-	 /* don't want nasty border artifacts */
-	 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	/* don't want nasty border artifacts */
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
 
+#ifdef __APPLE__
+	/* workaround for os x 10.5/10.6 driver bug: http://lists.apple.com/archives/Mac-opengl/2008/Jul/msg00117.html */
+	glPixelZoom(1.f, 1.f);
+#endif
+	
 	for (subpart_y=0; subpart_y<nsubparts_y; subpart_y++) {
 		for (subpart_x=0; subpart_x<nsubparts_x; subpart_x++) {
 			int subpart_w= (subpart_x==nsubparts_x-1)?(img_w-subpart_x*tex_w):tex_w;
@@ -476,6 +481,11 @@
 	glBindTexture(GL_TEXTURE_2D, ltexid);
 	glPixelStorei(GL_UNPACK_ROW_LENGTH, lrowlength);
 	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+	
+#ifdef __APPLE__
+	/* workaround for os x 10.5/10.6 driver bug (above) */
+	glPixelZoom(xzoom, yzoom);
+#endif
 }
 
 void glaDrawPixelsTex(float x, float y, int img_w, int img_h, int format, void *rect)





More information about the Bf-blender-cvs mailing list