Fix T53971: single layer render showing the wrong render layer in image editor.

Original patch Cheryl Chen, extra fixes by Brecht.

Differential Revision: https://developer.blender.org/D3098
This commit is contained in:
Cheryl Chen
2018-03-15 23:36:15 +01:00
committed by Brecht Van Lommel
parent e56fd59f22
commit 07b07e53ea
3 changed files with 37 additions and 11 deletions

View File

@@ -521,10 +521,8 @@ static void render_image_update_pass_and_layer(RenderJob *rj, RenderResult *rr,
int layer = BLI_findstringindex(&main_rr->layers,
(char *)rr->renlay->name,
offsetof(RenderLayer, name));
if (layer != rj->last_layer) {
sima->iuser.layer = layer;
rj->last_layer = layer;
}
sima->iuser.layer = layer;
rj->last_layer = layer;
}
iuser->pass = sima->iuser.pass;
@@ -621,7 +619,21 @@ static void render_image_restore_layer(RenderJob *rj)
if (sa == rj->sa) {
if (sa->spacetype == SPACE_IMAGE) {
SpaceImage *sima = sa->spacedata.first;
sima->iuser.layer = rj->orig_layer;
if (RE_HasSingleLayer(rj->re)) {
/* For single layer renders keep the active layer
* visible, or show the compositing result. */
RenderResult *rr = RE_AcquireResultRead(rj->re);
if(RE_HasCombinedLayer(rr)) {
sima->iuser.layer = 0;
}
RE_ReleaseResult(rj->re);
}
else {
/* For multiple layer render, set back the layer
* that was set at the start of rendering. */
sima->iuser.layer = rj->orig_layer;
}
}
return;
}