diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-16 06:16:21 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-16 06:35:37 +0300 |
commit | 3692a2bcb3b8f742551c791c6e484e01678a0835 (patch) | |
tree | d9953d66c88c504aaf7967da9ecadf1eea2d2d6d /source/blender/render | |
parent | cca1e1b707c2d34244d3da87efcd78775c4eb048 (diff) | |
parent | e5327afcb73f102db8a82ccefc29bbf9cc6fb60c (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 24 |
2 files changed, 20 insertions, 6 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 822993a2372..93ac53cdfcc 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -238,6 +238,8 @@ void RE_render_result_rect_from_ibuf( struct RenderLayer *RE_GetRenderLayer(struct RenderResult *rr, const char *name); float *RE_RenderLayerGetPass(volatile struct RenderLayer *rl, const char *name, const char *viewname); +bool RE_HasSingleLayer(struct Render *re); + /* add passes for grease pencil */ struct RenderPass *RE_create_gp_pass(struct RenderResult *rr, const char *layername, const char *viewname); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 33c633c76bc..170cd0ad419 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -261,6 +261,11 @@ RenderLayer *RE_GetRenderLayer(RenderResult *rr, const char *name) } } +bool RE_HasSingleLayer(Render *re) +{ + return (re->r.scemode & R_SINGLE_LAYER); +} + RenderResult *RE_MultilayerConvert(void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty) { return render_result_new_from_exr(exrhandle, colorspace, predivide, rectx, recty); @@ -268,12 +273,19 @@ RenderResult *RE_MultilayerConvert(void *exrhandle, const char *colorspace, bool RenderLayer *render_get_active_layer(Render *re, RenderResult *rr) { - RenderLayer *rl = BLI_findlink(&rr->layers, re->active_view_layer); - - if (rl) - return rl; - else - return rr->layers.first; + ViewLayer *view_layer = BLI_findlink(&re->view_layers, re->active_view_layer); + + if (view_layer) { + RenderLayer *rl = BLI_findstring(&rr->layers, + view_layer->name, + offsetof(RenderLayer, name)); + + if (rl) { + return rl; + } + } + + return rr->layers.first; } static int UNUSED_FUNCTION(render_scene_needs_vector)(Render *re) |