[Bf-blender-cvs] [a856b12] master: Fix T38726: missing rendered viewport update when removing render layer.

Brecht Van Lommel noreply at git.blender.org
Wed Feb 26 17:30:48 CET 2014


Commit: a856b123ff1798860cdfee1927d5c7452fa87ed3
Author: Brecht Van Lommel
Date:   Wed Feb 26 17:29:50 2014 +0100
https://developer.blender.org/rBa856b123ff1798860cdfee1927d5c7452fa87ed3

Fix T38726: missing rendered viewport update when removing render layer.

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

M	source/blender/render/intern/source/pipeline.c

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

diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index adb8100..50fc9df 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 */




More information about the Bf-blender-cvs mailing list