Commit: ed7260071bc397dd389737088fce869e8adc0dc3
Author: Brecht Van Lommel
Date:   Thu Oct 26 14:23:18 2017 +0200
Branches: master
https://developer.blender.org/rBed7260071bc397dd389737088fce869e8adc0dc3

Fix EXR multilayer compositing result saving issues.

* It was saved as Combined.Combined instead of Composite.Combined.
* It was written even if no compositing was enabled.

===================================================================

M       source/blender/blenkernel/intern/image.c
M       source/blender/editors/space_image/image_buttons.c
M       source/blender/render/extern/include/RE_pipeline.h
M       source/blender/render/intern/source/pipeline.c
M       source/blender/render/intern/source/render_result.c

===================================================================

diff --git a/source/blender/blenkernel/intern/image.c 
b/source/blender/blenkernel/intern/image.c
index 45c718fd5e4..4cdf98285c0 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2868,7 +2868,7 @@ RenderPass *BKE_image_multilayer_index(RenderResult *rr, 
ImageUser *iuser)
                bool is_stereo = (iuser->flag & IMA_SHOW_STEREO) && 
RE_RenderResult_is_stereo(rr);
 
                rv_index = is_stereo ? iuser->multiview_eye : iuser->view;
-               if (RE_HasFakeLayer(rr)) rl_index += 1;
+               if (RE_HasCombinedLayer(rr)) rl_index += 1;
 
                for (rl = rr->layers.first; rl; rl = rl->next, rl_index++) {
                        if (iuser->layer == rl_index) {
diff --git a/source/blender/editors/space_image/image_buttons.c 
b/source/blender/editors/space_image/image_buttons.c
index 6cee48ad05b..d68e4c88935 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -548,7 +548,7 @@ static bool ui_imageuser_layer_menu_step(bContext *C, int 
direction, void *rnd_p
        else if (direction == 1) {
                int tot = BLI_listbase_count(&rr->layers);
 
-               if (RE_HasFakeLayer(rr))
+               if (RE_HasCombinedLayer(rr))
                        tot++;  /* fake compo/sequencer layer */
 
                if (iuser->layer < tot - 1) {
@@ -588,7 +588,7 @@ static bool ui_imageuser_pass_menu_step(bContext *C, int 
direction, void *rnd_pt
                return false;
        }
 
-       if (RE_HasFakeLayer(rr)) {
+       if (RE_HasCombinedLayer(rr)) {
                layer -= 1;
        }
 
diff --git a/source/blender/render/extern/include/RE_pipeline.h 
b/source/blender/render/extern/include/RE_pipeline.h
index 61d0750a9c6..a94d048e26d 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -387,7 +387,7 @@ void RE_updateRenderInstances(Render *re, int flag);
 
 /******* defined in render_result.c *********/
 
-bool RE_HasFakeLayer(RenderResult *res);
+bool RE_HasCombinedLayer(RenderResult *res);
 bool RE_RenderResult_is_stereo(RenderResult *res);
 struct RenderView *RE_RenderViewGetById(struct RenderResult *res, const int 
view_id);
 struct RenderView *RE_RenderViewGetByName(struct RenderResult *res, const char 
*viewname);
diff --git a/source/blender/render/intern/source/pipeline.c 
b/source/blender/render/intern/source/pipeline.c
index 2eac20214ba..96a9bb44bcc 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -374,6 +374,7 @@ void RE_AcquireResultImageViews(Render *re, RenderResult 
*rr)
                        render_result_views_shallowcopy(rr, re->result);
 
                        rv = rr->views.first;
+                       rr->have_combined = (rv->rectf != NULL);
 
                        /* active layer */
                        rl = render_get_active_layer(re, re->result);
@@ -392,7 +393,6 @@ void RE_AcquireResultImageViews(Render *re, RenderResult 
*rr)
                                }
                        }
 
-                       rr->have_combined = (rv->rectf != NULL);
                        rr->layers = re->result->layers;
                        rr->xof = re->disprect.xmin;
                        rr->yof = re->disprect.ymin;
@@ -431,6 +431,7 @@ void RE_AcquireResultImage(Render *re, RenderResult *rr, 
const int view_id)
                        
                        /* actview view */
                        rv = RE_RenderViewGetById(re->result, view_id);
+                       rr->have_combined = (rv->rectf != NULL);
 
                        rr->rectf = rv->rectf;
                        rr->rectz = rv->rectz;
@@ -447,7 +448,6 @@ void RE_AcquireResultImage(Render *re, RenderResult *rr, 
const int view_id)
                                        rr->rectz = RE_RenderLayerGetPass(rl, 
RE_PASSNAME_Z, rv->name);
                        }
 
-                       rr->have_combined = (rv->rectf != NULL);
                        rr->layers = re->result->layers;
                        rr->views = re->result->views;
 
diff --git a/source/blender/render/intern/source/render_result.c 
b/source/blender/render/intern/source/render_result.c
index aa0c7357302..dbb2ef7ae51 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -883,7 +883,7 @@ bool RE_WriteRenderResult(ReportList *reports, RenderResult 
*rr, const char *fil
                                char passname[EXR_PASS_MAXNAME];
                                for (a = 0; a < 4; a++) {
                                        set_pass_name(passname, 
RE_PASSNAME_COMBINED, a, "RGBA");
-                                       IMB_exr_add_channel(exrhandle, 
RE_PASSNAME_COMBINED, passname,
+                                       IMB_exr_add_channel(exrhandle, 
"Composite", passname,
                                                            chan_view, 4, 4 * 
width, rview->rectf + a,
                                                            use_half_float);
                                }
@@ -1370,7 +1370,7 @@ void render_result_rect_get_pixels(RenderResult *rr, 
unsigned int *rect, int rec
 
 /*************************** multiview functions *****************************/
 
-bool RE_HasFakeLayer(RenderResult *res)
+bool RE_HasCombinedLayer(RenderResult *res)
 {
        RenderView *rv;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to