Bugfix 25965

New "auto render" now prevents calling anim-updates, that's
not needed (and popped back transformed keyed objects).
This commit is contained in:
Ton Roosendaal 2011-02-07 18:09:27 +00:00
parent 5c421c328e
commit c8be8a7c6d
4 changed files with 10 additions and 3 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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 */

View File

@ -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! */