diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2015-05-18 16:57:59 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2015-05-18 16:57:59 +0300 |
commit | 947b756d5e8af3d056fe0a7cabc7a8e376732255 (patch) | |
tree | 0a35020103a0f902ba8ccf1a9398bd1ae485df91 /source/blender | |
parent | cecd1f98a4c1295421ca011ea5bec95b1c918111 (diff) |
Multi-View: small cleranup/refactor with RE_pass_find_by_type and RE_RenderLayerGetPass
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 33 |
2 files changed, 13 insertions, 22 deletions
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; } |