Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2015-07-01 16:23:09 +0300
committerAntony Riakiotakis <kalast@gmail.com>2015-07-01 16:23:21 +0300
commitf525483d837f8f91876ba395134c3ed263dcc7c2 (patch)
tree3af17ffaed6e29a21a82fd64f874de7dc1135aba /source/blender/render
parent0e084f93d923092a5da6cf821f0286ca591039eb (diff)
Sequencer metadata:
Add option to render strip metadata to final result, bypassing current scene metadata.
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/intern/source/pipeline.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index c939c697f1c..31efdb95ac1 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2617,6 +2617,7 @@ static void do_render_seq(Render *re)
if (out) {
ibuf_arr[view_id] = IMB_dupImBuf(out);
+ IMB_metadata_copy(ibuf_arr[view_id], out);
IMB_freeImBuf(out);
BKE_sequencer_imbuf_from_sequencer_space(re->scene, ibuf_arr[view_id]);
}
@@ -2639,6 +2640,12 @@ static void do_render_seq(Render *re)
/* copy ibuf into combined pixel rect */
render_result_rect_from_ibuf(rr, &re->r, ibuf_arr[view_id], view_id);
+ if (ibuf_arr[view_id]->metadata && (re->r.stamp & R_STAMP_STRIPMETA)) {
+ /* ensure render stamp info first */
+ BKE_render_result_stamp_info(NULL, NULL, rr, true);
+ BKE_stamp_info_from_imbuf(rr, ibuf_arr[view_id]);
+ }
+
if (recurs_depth == 0) { /* with nested scenes, only free on toplevel... */
Editing *ed = re->scene->ed;
if (ed)
@@ -2678,6 +2685,7 @@ static void do_render_seq(Render *re)
static void do_render_all_options(Render *re)
{
Object *camera;
+ bool render_seq = false;
re->current_scene_update(re->suh, re->scene);
@@ -2693,8 +2701,10 @@ static void do_render_all_options(Render *re)
}
else if (RE_seq_render_active(re->scene, &re->r)) {
/* note: do_render_seq() frees rect32 when sequencer returns float images */
- if (!re->test_break(re->tbh))
+ if (!re->test_break(re->tbh)) {
do_render_seq(re);
+ render_seq = true;
+ }
re->stats_draw(re->sdh, &re->i);
re->display_update(re->duh, re->result, NULL);
@@ -2714,7 +2724,9 @@ static void do_render_all_options(Render *re)
/* save render result stamp if needed */
camera = RE_GetCamera(re);
- BKE_render_result_stamp_info(re->scene, camera, re->result);
+ /* sequence rendering should have taken care of that already */
+ if (!(render_seq && (re->r.stamp & R_STAMP_STRIPMETA)))
+ BKE_render_result_stamp_info(re->scene, camera, re->result, false);
/* stamp image info here */
if ((re->r.stamp & R_STAMP_ALL) && (re->r.stamp & R_STAMP_DRAW)) {