Alternative fix for T39941, this also fixes odd behavior of rendered preview.
The rendered preview didn't show active layer or wasn't updated if the layer was disabled. Now the viewport always shows an active layer regardless of whether it's enabled or disabled.
This commit is contained in:
parent
c7612d68b2
commit
6ec2d72eca
Notes:
blender-bot
2023-02-14 10:43:46 +01:00
Referenced by issue #39941, Freestyle: Rendered preview crashes when non-primary render layer is selected and disabled.
|
@ -481,10 +481,14 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
|
|||
if (strcmp(srl->name, layername) != 0)
|
||||
continue;
|
||||
|
||||
if ((re->r.scemode & R_SINGLE_LAYER) && nr != re->r.actlay)
|
||||
continue;
|
||||
if (srl->layflag & SCE_LAY_DISABLE)
|
||||
continue;
|
||||
if (re->r.scemode & R_SINGLE_LAYER) {
|
||||
if (nr != re->r.actlay)
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
if (srl->layflag & SCE_LAY_DISABLE)
|
||||
continue;
|
||||
}
|
||||
|
||||
rl = MEM_callocN(sizeof(RenderLayer), "new render layer");
|
||||
BLI_addtail(&rr->layers, rl);
|
||||
|
@ -604,8 +608,6 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
|
|||
rl->passflag = SCE_PASS_COMBINED;
|
||||
|
||||
re->r.actlay = 0;
|
||||
srl = BLI_findlink(&re->r.layers, re->r.actlay);
|
||||
BLI_strncpy(rl->name, srl->name, sizeof(rl->name));
|
||||
}
|
||||
|
||||
/* border render; calculate offset for use in compositor. compo is centralized coords */
|
||||
|
|
Loading…
Reference in New Issue