diff options
author | Ton Roosendaal <ton@blender.org> | 2011-02-07 21:09:27 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2011-02-07 21:09:27 +0300 |
commit | c8be8a7c6dfd84e6e3e0f51f85fa44760a137b60 (patch) | |
tree | d4f491be494ab4000c7c6b7fbce171f727afb07f /source | |
parent | 5c421c328e963fe27725e6961e60de74cca87c7f (diff) |
Bugfix 25965
New "auto render" now prevents calling anim-updates, that's
not needed (and popped back transformed keyed objects).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/render/render_internal.c | 6 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 3 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 2 |
4 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index f38a5691a6f..341f56667fa 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -594,11 +594,15 @@ static void render_endjob(void *rjv) free_main(rj->main); /* else the frame will not update for the original value */ - ED_update_for_newframe(G.main, rj->scene, rj->win->screen, 1); + if(!(rj->scene->r.scemode & R_NO_FRAME_UPDATE)) + ED_update_for_newframe(G.main, rj->scene, rj->win->screen, 1); /* XXX above function sets all tags in nodes */ ntreeClearTags(rj->scene->nodetree); + /* potentially set by caller */ + rj->scene->r.scemode &= ~R_NO_FRAME_UPDATE; + if(rj->srl) { NodeTagIDChanged(rj->scene->nodetree, &rj->scene->id); WM_main_add_notifier(NC_NODE|NA_EDITED, rj->scene); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 1279863802a..7827058f886 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2178,6 +2178,9 @@ int node_render_changed_exec(bContext *C, wmOperator *UNUSED(op)) RNA_string_set(&op_ptr, "layer", srl->name); RNA_string_set(&op_ptr, "scene", sce->id.name+2); + /* to keep keypositions */ + sce->r.scemode |= R_NO_FRAME_UPDATE; + WM_operator_name_call(C, "RENDER_OT_render", WM_OP_INVOKE_DEFAULT, &op_ptr); WM_operator_properties_free(&op_ptr); diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index f87d10b1f7d..45850d3f20f 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -923,7 +923,7 @@ typedef struct Scene { #define R_COMP_FREE 0x0800 #define R_NO_IMAGE_LOAD 0x1000 #define R_NO_TEX 0x2000 -/*#define R_STAMP_INFO 0x4000 deprecated */ +#define R_NO_FRAME_UPDATE 0x4000 #define R_FULL_SAMPLE 0x8000 /* #define R_DEPRECATED 0x10000 */ /* #define R_RECURS_PROTECTION 0x20000 */ diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 14f80986ba3..b5cfc123c15 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4911,7 +4911,7 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l lay &= 0xFF000000; /* applies changes fully */ - if((re->r.scemode & R_PREVIEWBUTS)==0) + if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) scene_update_for_newframe(re->main, re->scene, lay); /* if no camera, viewmat should have been set! */ |