From 947b756d5e8af3d056fe0a7cabc7a8e376732255 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 18 May 2015 10:57:59 -0300 Subject: Multi-View: small cleranup/refactor with RE_pass_find_by_type and RE_RenderLayerGetPass --- source/blender/render/extern/include/RE_pipeline.h | 2 +- source/blender/render/intern/source/pipeline.c | 33 ++++++++-------------- 2 files changed, 13 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 2df4cde2b27..9331c45237d 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -321,7 +321,7 @@ int RE_seq_render_active(struct Scene *scene, struct RenderData *rd); bool RE_layers_have_name(struct RenderResult *result); -struct RenderPass *RE_pass_find_by_type(struct RenderLayer *rl, int passtype, const char *viewname); +struct RenderPass *RE_pass_find_by_type(volatile struct RenderLayer *rl, int passtype, const char *viewname); /* shaded view or baking options */ #define RE_BAKE_LIGHT 0 /* not listed in rna_scene.c -> can't be enabled! */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 9407412a6d0..64ed8f1153a 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -195,21 +195,8 @@ void RE_FreeRenderResult(RenderResult *res) float *RE_RenderLayerGetPass(volatile RenderLayer *rl, int passtype, const char *viewname) { - RenderPass *rpass; - float *rect = NULL; - - for (rpass = rl->passes.last; rpass; rpass = rpass->prev) { - if (rpass->passtype == passtype) { - rect = rpass->rect; - - if (viewname == NULL) - break; - else if (STREQ(rpass->view, viewname)) - break; - } - } - - return rect; + RenderPass *rpass = RE_pass_find_by_type(rl, passtype, viewname); + return rpass ? rpass->rect : NULL; } RenderLayer *RE_GetRenderLayer(RenderResult *rr, const char *name) @@ -3893,14 +3880,18 @@ bool RE_layers_have_name(struct RenderResult *rr) return false; } -RenderPass *RE_pass_find_by_type(RenderLayer *rl, int passtype, const char *viewname) +RenderPass *RE_pass_find_by_type(volatile RenderLayer *rl, int passtype, const char *viewname) { - RenderPass *rp; - for (rp = rl->passes.first; rp; rp = rp->next) { + RenderPass *rp = NULL; + + for (rp = rl->passes.last; rp; rp = rp->prev) { if (rp->passtype == passtype) { - if (STREQ(rp->view, viewname)) - return rp; + + if (viewname == NULL) + break; + else if (STREQ(rp->view, viewname)) + break; } } - return NULL; + return rp; } -- cgit v1.2.3