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
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-08-21 15:10:16 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-21 15:10:16 +0400
commitf8db7ccb62cf2dbd26d4b6d9b89d6b3839a2b96a (patch)
tree527a8d0e7fb4eab8f4b376df2c051456e0d76ca0 /source
parentae9f5239a6c5dc120d13076bf90053f63b986c8b (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/image.c4
-rw-r--r--source/blender/editors/space_image/image_buttons.c18
2 files changed, 13 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index d84c20f7a94..2b2128439c7 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -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));
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index 56b340aac09..d0f4fe92257 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -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);
}
}