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

This commit is contained in:
Brecht Van Lommel
2014-02-26 17:29:50 +01:00
parent 1dbd3ae629
commit a856b123ff

View File

@@ -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 */