fix for bug with render slots - where the menus wouldnt only show layers from the last render which could be meaningless in different render slots.
This commit is contained in:
@@ -2145,7 +2145,9 @@ RenderResult *BKE_image_acquire_renderresult(Scene *scene, Image *ima)
|
||||
|
||||
void BKE_image_release_renderresult(Scene *scene, Image *ima)
|
||||
{
|
||||
if (ima->rr) ;
|
||||
if (ima->rr) {
|
||||
/* pass */
|
||||
}
|
||||
else if (ima->type == IMA_TYPE_R_RESULT) {
|
||||
if (ima->render_slot == ima->last_render_slot)
|
||||
RE_ReleaseResult(RE_GetRender(scene->id.name));
|
||||
|
||||
@@ -681,10 +681,12 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
|
||||
}
|
||||
else if (ima->type == IMA_TYPE_R_RESULT) {
|
||||
/* browse layer/passes */
|
||||
Render *re = RE_GetRender(scene->id.name);
|
||||
RenderResult *rr = RE_AcquireResultRead(re);
|
||||
RenderResult *rr;
|
||||
|
||||
/* use BKE_image_acquire_renderresult so we get the correct slot in the menu */
|
||||
rr = BKE_image_acquire_renderresult(scene, ima);
|
||||
uiblock_layer_pass_arrow_buttons(layout, rr, iuser, &ima->render_slot);
|
||||
RE_ReleaseResult(re);
|
||||
BKE_image_release_renderresult(scene, ima);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -867,16 +869,16 @@ void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr)
|
||||
void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser *iuser)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Render *re;
|
||||
RenderResult *rr;
|
||||
|
||||
/* render layers and passes */
|
||||
if (ima && iuser) {
|
||||
const float dpi_fac = UI_DPI_FAC;
|
||||
re = RE_GetRender(scene->id.name);
|
||||
rr = RE_AcquireResultRead(re);
|
||||
RenderResult *rr;
|
||||
|
||||
/* use BKE_image_acquire_renderresult so we get the correct slot in the menu */
|
||||
rr = BKE_image_acquire_renderresult(scene, ima);
|
||||
uiblock_layer_pass_buttons(layout, rr, iuser, 160 * dpi_fac, (ima->type == IMA_TYPE_R_RESULT) ? &ima->render_slot : NULL);
|
||||
RE_ReleaseResult(re);
|
||||
BKE_image_release_renderresult(scene, ima);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user