[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31578] trunk/blender/source/blender/ editors/space_view3d: patch [#23376] Fix for Bug[[#23351] X-Ray + Transparency removes X-Ray effect

Campbell Barton ideasman42 at gmail.com
Wed Aug 25 14:01:15 CEST 2010


Revision: 31578
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31578
Author:   campbellbarton
Date:     2010-08-25 14:01:15 +0200 (Wed, 25 Aug 2010)

Log Message:
-----------
patch [#23376] Fix for Bug[[#23351] X-Ray + Transparency removes X-Ray effect
from Phil Gosch (saphires)

minor edit on the patch, was adding V3D_XRAY and V3D_XRAYTRANSP lists, only add to one.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/editors/space_view3d/drawvolume.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-08-25 09:33:48 UTC (rev 31577)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-08-25 12:01:15 UTC (rev 31578)
@@ -5537,8 +5537,13 @@
 		/* don't do xray in particle mode, need the z-buffer */
 		if(!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
 			/* xray and transp are set when it is drawing the 2nd/3rd pass */
-			if(!v3d->xray && !v3d->transp && (ob->dtx & OB_DRAWXRAY) && !(ob->dtx & OB_DRAWTRANSP)) {
-				add_view3d_after(v3d, base, V3D_XRAY, flag);
+			if(!v3d->xray && !v3d->transp && (ob->dtx & OB_DRAWXRAY)) {
+				if(ob->dtx & OB_DRAWTRANSP) {
+					add_view3d_after(v3d, base, V3D_XRAYTRANSP, flag);
+				}
+				else {
+					add_view3d_after(v3d, base, V3D_XRAY, flag);
+				}
 				return;
 			}
 		}

Modified: trunk/blender/source/blender/editors/space_view3d/drawvolume.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawvolume.c	2010-08-25 09:33:48 UTC (rev 31577)
+++ trunk/blender/source/blender/editors/space_view3d/drawvolume.c	2010-08-25 12:01:15 UTC (rev 31578)
@@ -116,6 +116,7 @@
 {
 	gettimeofday ( &_tend,&tz );
 }
+  #if 0
 static double tval()
 {
 	double t1, t2;
@@ -123,6 +124,7 @@
 	t2 = ( double ) _tend.tv_sec*1000 + ( double ) _tend.tv_usec/ ( 1000 );
 	return t2-t1;
 }
+  #endif
 #endif
 
 struct GPUTexture;

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-08-25 09:33:48 UTC (rev 31577)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-08-25 12:01:15 UTC (rev 31578)
@@ -1440,7 +1440,7 @@
 	int doit= 0;
 	
 	for(v3da= v3d->afterdraw.first; v3da; v3da= v3da->next)
-		if(v3da->type==V3D_XRAY) doit= 1;
+		if(v3da->type==V3D_XRAY || v3da->type==V3D_XRAYTRANSP) doit= 1;
 	
 	if(doit) {
 		if(clear && v3d->zbuf) glClear(GL_DEPTH_BUFFER_BIT);
@@ -1453,6 +1453,13 @@
 				BLI_remlink(&v3d->afterdraw, v3da);
 				MEM_freeN(v3da);
 			}
+			else if(v3da->type==V3D_XRAYTRANSP){ 
+				v3d->transp= TRUE;
+				draw_object(scene, ar, v3d, v3da->base, v3da->flag);
+				BLI_remlink(&v3d->afterdraw, v3da);
+				MEM_freeN(v3da);
+				v3d->transp= FALSE;
+			}
 		}
 		v3d->xray= FALSE;
 	}
@@ -1767,6 +1774,8 @@
 				v3d->xray= TRUE; v3d->transp= FALSE;  
 			} else if (v3da->type==V3D_TRANSP) {
 				v3d->xray= FALSE; v3d->transp= TRUE;
+			} else if (v3da->type == V3D_XRAYTRANSP) {
+				v3d->xray= TRUE; v3d->transp= TRUE;
 			}
 			
 			draw_object(scene, ar, v3d, v3da->base, 0); /* Draw Xray or Transp objects normally */

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-08-25 09:33:48 UTC (rev 31577)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-08-25 12:01:15 UTC (rev 31578)
@@ -56,6 +56,7 @@
 
 #define V3D_XRAY	1
 #define V3D_TRANSP	2
+#define V3D_XRAYTRANSP	4
 
 #define V3D_SELECT_MOUSE	1
 





More information about the Bf-blender-cvs mailing list