ScreenAnimData *sad= wt->customdata;
ScrArea *sa;
int sync;
-
+
/* sync, don't sync, or follow scene setting */
if(sad->flag & ANIMPLAY_FLAG_SYNC) sync= 1;
else if(sad->flag & ANIMPLAY_FLAG_NO_SYNC) sync= 0;
}
}
}
-
+
/* since we follow drawflags, we can't send notifier but tag regions ourselves */
ED_update_for_newframe(C, 1);
-
+
sound_update_playing(C);
-
+
for(sa= screen->areabase.first; sa; sa= sa->next) {
ARegion *ar;
for(ar= sa->regionbase.first; ar; ar= ar->next) {
}
}
+ /* recalculate the timestep for the timer now that we've finished calculating this,
+ * since the frames-per-second value may have been changed
+ */
+ // TODO: this may make evaluation a bit slower if the value doesn't change... any way to avoid this?
+ wt->timestep= (1.0/FPS);
+
//WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
return OPERATOR_FINISHED;
FRS_set_context(C);
if(RNA_boolean_get(op->ptr, "animation"))
- RE_BlenderAnim(re, scene, scene->r.sfra, scene->r.efra, scene->frame_step);
+ RE_BlenderAnim(re, scene, scene->r.sfra, scene->r.efra, scene->r.frame_step);
else
RE_BlenderFrame(re, scene, scene->r.cfra);
rj->do_update= do_update;
if(rj->anim)
- RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->frame_step);
+ RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step);
else
RE_BlenderFrame(rj->re, rj->scene, rj->scene->r.cfra);
}
printf("\n");
/* go to next frame */
- oglrender->nfra += scene->frame_step;
+ oglrender->nfra += scene->r.frame_step;
scene->r.cfra++;
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);