diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2015-04-28 23:36:44 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2015-04-29 00:08:56 +0300 |
commit | f8540d7fd5a47bc9d1d676d5aaaa0de379c71637 (patch) | |
tree | 9c2bb3b5e0e317871392db21bd7d8d3c108e5287 /source/blender/render | |
parent | f9d23b82fe4461ccab40124b8a4cdb4735fbedd3 (diff) |
RenderResult should have a valid view whenever possible
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/include/render_result.h | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/render_result.c | 20 |
3 files changed, 13 insertions, 9 deletions
diff --git a/source/blender/render/intern/include/render_result.h b/source/blender/render/intern/include/render_result.h index e7a2cbf99cd..f031be9e9c9 100644 --- a/source/blender/render/intern/include/render_result.h +++ b/source/blender/render/intern/include/render_result.h @@ -60,6 +60,7 @@ struct RenderResult *render_result_new_full_sample(struct Render *re, struct RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty); +void render_result_view_new(struct RenderResult *rr, const char *viewname); void render_result_views_new(struct RenderResult *rr, struct RenderData *rd); /* Merge */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 7b5692fbdb6..7206c21de9e 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -747,6 +747,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, re->result = MEM_callocN(sizeof(RenderResult), "new render result"); re->result->rectx = re->rectx; re->result->recty = re->recty; + render_result_view_new(re->result, "new temporary view"); } if (re->r.scemode & R_VIEWPORT_PREVIEW) diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c index 0d3720a9eca..0bd4284746d 100644 --- a/source/blender/render/intern/source/render_result.c +++ b/source/blender/render/intern/source/render_result.c @@ -911,10 +911,16 @@ RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace return rr; } +void render_result_view_new(RenderResult *rr, const char *viewname) +{ + RenderView *rv = MEM_callocN(sizeof(RenderView), "new render view"); + BLI_addtail(&rr->views, rv); + BLI_strncpy(rv->name, viewname, sizeof(rv->name)); +} + void render_result_views_new(RenderResult *rr, RenderData *rd) { SceneRenderView *srv; - RenderView *rv; /* clear previously existing views - for sequencer */ render_result_views_free(rr); @@ -922,19 +928,15 @@ void render_result_views_new(RenderResult *rr, RenderData *rd) /* check renderdata for amount of views */ if ((rd->scemode & R_MULTIVIEW)) { for (srv = rd->views.first; srv; srv = srv->next) { - if (BKE_scene_multiview_is_render_view_active(rd, srv) == false) continue; - - rv = MEM_callocN(sizeof(RenderView), "new render view"); - BLI_addtail(&rr->views, rv); - - BLI_strncpy(rv->name, srv->name, sizeof(rv->name)); + if (BKE_scene_multiview_is_render_view_active(rd, srv) == false) + continue; + render_result_view_new(rr, srv->name); } } /* we always need at least one view */ if (BLI_listbase_count_ex(&rr->views, 1) == 0) { - rv = MEM_callocN(sizeof(RenderView), "new render view"); - BLI_addtail(&rr->views, rv); + render_result_view_new(rr, "new render view"); } } |