From ecb3362a244f082d58c6b73a044d661e4b80f320 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Wed, 22 Apr 2015 18:44:30 -0300 Subject: Fix T44396 - Compositing render slots don't work Note 1: If you go to a render slot previously rendered and change something in the compositing the buffer will still vanish. This is an old bug, T44181, and not addressed here (I'm basically just fixing the regression introduced with multiview) Note 2: I have a work in progress patch to get rid of RenderResult->rectf/rect32/rectz entirely. It still not working, and we should have a working code base before doing refactoring anyways. --- source/blender/blenkernel/intern/image.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 88a96ddef18..d743c067cb3 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -3522,6 +3522,7 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_ { Render *re; RenderResult rres; + RenderView *rv; float *rectf, *rectz; unsigned int *rect; float dither; @@ -3570,10 +3571,14 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_ *lock_r = re; } + rv = BLI_findlink(&rres.views, actview); + if (rv == NULL) + rv = rres.views.first; + /* this gives active layer, composite or sequence result */ - rect = (unsigned int *)rres.rect32; - rectf = rres.rectf; - rectz = rres.rectz; + rect = (unsigned int *)rv->rect32; + rectf = rv->rectf; + rectz = rv->rectz; dither = iuser->scene->r.dither_intensity; /* combined layer gets added as first layer */ -- cgit v1.2.3