Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2014-02-26 20:29:50 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2014-02-26 20:29:50 +0400
commita856b123ff1798860cdfee1927d5c7452fa87ed3 (patch)
treee5ef7cec82e1a4f2da289b80ee76b42af5275dd6
parent1dbd3ae6291349f044c6eaa9b87b8e686f476865 (diff)
Fix T38726: missing rendered viewport update when removing render layer.
-rw-r--r--source/blender/render/intern/source/pipeline.c11
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 */