diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-26 20:29:50 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-26 20:29:50 +0400 |
commit | a856b123ff1798860cdfee1927d5c7452fa87ed3 (patch) | |
tree | e5ef7cec82e1a4f2da289b80ee76b42af5275dd6 /source/blender/render | |
parent | 1dbd3ae6291349f044c6eaa9b87b8e686f476865 (diff) |
Fix T38726: missing rendered viewport update when removing render layer.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index adb8100517d..50fc9df0d36 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -505,7 +505,6 @@ static int check_mode_full_sample(RenderData *rd) void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer *srl, int winx, int winy, rcti *disprect) { bool had_freestyle = (re->r.mode & R_EDGE_FRS) != 0; - int prev_actlay = re->r.actlay; re->ok = TRUE; /* maybe flag */ @@ -609,8 +608,16 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer * re->result = NULL; } else if (re->result) { + SceneRenderLayer *actsrl = BLI_findlink(&re->r.layers, re->r.actlay); + RenderLayer *rl; + bool have_layer = false; + + for (rl = re->result->layers.first; rl; rl = rl->next) + if (STREQ(rl->name, actsrl->name)) + have_layer = true; + if (re->result->rectx == re->rectx && re->result->recty == re->recty && - prev_actlay == re->r.actlay) + have_layer) { /* keep render result, this avoids flickering black tiles * when the preview changes */ |