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;
 


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to