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
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2011-02-07 21:09:27 +0300
committerTon Roosendaal <ton@blender.org>2011-02-07 21:09:27 +0300
commitc8be8a7c6dfd84e6e3e0f51f85fa44760a137b60 (patch)
treed4f491be494ab4000c7c6b7fbce171f727afb07f /source
parent5c421c328e963fe27725e6961e60de74cca87c7f (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.c6
-rw-r--r--source/blender/editors/space_node/node_edit.c3
-rw-r--r--source/blender/makesdna/DNA_scene_types.h2
-rw-r--r--source/blender/render/intern/source/convertblender.c2
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! */