[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26653] trunk/blender/source/blender/ blenkernel/intern/image.c: Fix #20922: image window draw z-buffer wasn' t drawing the z-buffer

Brecht Van Lommel brecht at blender.org
Sun Feb 7 01:28:49 CET 2010


Revision: 26653
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26653
Author:   blendix
Date:     2010-02-07 01:28:49 +0100 (Sun, 07 Feb 2010)

Log Message:
-----------
Fix #20922: image window draw z-buffer wasn't drawing the z-buffer
from the select render layer.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/image.c

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2010-02-06 20:59:09 UTC (rev 26652)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2010-02-07 00:28:49 UTC (rev 26653)
@@ -1943,7 +1943,7 @@
 	}
 	else {
 		RenderResult rres;
-		float *rectf;
+		float *rectf, *rectz;
 		unsigned int *rect;
 		float dither;
 		int channels, layer, pass;
@@ -1956,6 +1956,7 @@
 		RE_AcquireResultImage(RE_GetRender(iuser->scene->id.name), &rres);
 		rect= (unsigned int *)rres.rect32;
 		rectf= rres.rectf;
+		rectz= rres.rectz;
 		dither= iuser->scene->r.dither_intensity;
 
 		/* get compo/seq result by default */
@@ -1963,18 +1964,24 @@
 		else if(rr->layers.first) {
 			RenderLayer *rl= BLI_findlink(&rr->layers, layer-(rr->rectf?1:0));
 			if(rl) {
+				RenderPass *rpass;
+
 				/* there's no combined pass, is in renderlayer itself */
 				if(pass==0) {
 					rectf= rl->rectf;
 				}
 				else {
-					RenderPass *rpass= BLI_findlink(&rl->passes, pass-1);
+					rpass= BLI_findlink(&rl->passes, pass-1);
 					if(rpass) {
 						channels= rpass->channels;
 						rectf= rpass->rect;
 						dither= 0.0f; /* don't dither passes */
 					}
 				}
+
+				for(rpass= rl->passes.first; rpass; rpass= rpass->next)
+					if(rpass->passtype == SCE_PASS_Z)
+						rectz= rpass->rect;
 			}
 		}
 		
@@ -1997,7 +2004,7 @@
 			ibuf->rect_float= rectf;
 			ibuf->flags |= IB_rectfloat;
 			ibuf->channels= channels;
-			ibuf->zbuf_float= rres.rectz;
+			ibuf->zbuf_float= rectz;
 			ibuf->flags |= IB_zbuffloat;
 			ibuf->dither= dither;
 





More information about the Bf-blender-cvs mailing list