[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30730] trunk/blender/source/blender/ editors/space_view3d/view3d_draw.c: bugfix [#21388] Auto depth + Z Transparency artifacts

Campbell Barton ideasman42 at gmail.com
Mon Jul 26 03:59:52 CEST 2010


Revision: 30730
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30730
Author:   campbellbarton
Date:     2010-07-26 03:59:50 +0200 (Mon, 26 Jul 2010)

Log Message:
-----------
bugfix [#21388] Auto depth + Z Transparency artifacts

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-07-26 01:26:23 UTC (rev 30729)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-07-26 01:59:50 UTC (rev 30730)
@@ -1729,8 +1729,12 @@
 	if (v3d->afterdraw.first) {
 		View3DAfter *v3da, *next;
 		int num = 0;
+		int mask_orig;
 		v3d->xray= TRUE;
 		
+		/* transp materials can change the depth mask, see #21388 */
+		glGetIntegerv(GL_DEPTH_WRITEMASK, &mask_orig);
+
 		glDepthFunc(GL_ALWAYS); /* always write into the depth bufer, overwriting front z values */
 		for(v3da= v3d->afterdraw.first; v3da; v3da= next) {
 			next= v3da->next;
@@ -1757,6 +1761,8 @@
 		}
 		v3d->xray= FALSE;
 		v3d->transp= FALSE;
+
+		glDepthMask(mask_orig);
 	}
 	
 	if(rv3d->rflag & RV3D_CLIPPING)





More information about the Bf-blender-cvs mailing list