Fix for [#19852] Animation rendering not working in new scene
As part of this commit, I moved the scene frame_step to RenderData, where the other frame-related data is.
This commit is contained in:
parent
b24b858394
commit
297045fd96
|
@ -323,6 +323,7 @@ Scene *add_scene(char *name)
|
|||
sce->r.cfra= 1;
|
||||
sce->r.sfra= 1;
|
||||
sce->r.efra= 250;
|
||||
sce->r.frame_step= 1;
|
||||
sce->r.xsch= 1920;
|
||||
sce->r.ysch= 1080;
|
||||
sce->r.xasp= 1;
|
||||
|
|
|
@ -9157,15 +9157,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
|
|||
}
|
||||
}
|
||||
|
||||
if (main->versionfile < 247 || (main->versionfile == 247 && main->subversionfile < 4)){
|
||||
Scene *sce= main->scene.first;
|
||||
while(sce) {
|
||||
if(sce->frame_step==0)
|
||||
sce->frame_step= 1;
|
||||
sce= sce->id.next;
|
||||
}
|
||||
}
|
||||
|
||||
if (main->versionfile < 247 || (main->versionfile == 247 && main->subversionfile < 5)) {
|
||||
Lamp *la= main->lamp.first;
|
||||
for(; la; la= la->id.next) {
|
||||
|
@ -10036,6 +10027,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
|
|||
|
||||
/* put 2.50 compatibility code here until next subversion bump */
|
||||
{
|
||||
{
|
||||
Scene *sce= main->scene.first;
|
||||
while(sce) {
|
||||
if(sce->r.frame_step==0)
|
||||
sce->r.frame_step= 1;
|
||||
sce= sce->id.next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
|
||||
|
|
|
@ -2672,7 +2672,7 @@ static int screen_render_exec(bContext *C, wmOperator *op)
|
|||
RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break);
|
||||
|
||||
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);
|
||||
|
||||
|
@ -2892,7 +2892,7 @@ static void render_startjob(void *rjv, short *stop, short *do_update)
|
|||
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);
|
||||
}
|
||||
|
@ -3245,7 +3245,7 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even
|
|||
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);
|
||||
|
|
|
@ -191,7 +191,8 @@ typedef struct RenderData {
|
|||
float edgeR, edgeG, edgeB;
|
||||
|
||||
short fullscreen, xplay, yplay, freqplay; /* standalone player */ // XXX deprecated since 2.5
|
||||
short depth, attrib, rt1, rt2; /* standalone player */ // XXX deprecated since 2.5
|
||||
short depth, attrib, rt2; /* standalone player */ // XXX deprecated since 2.5
|
||||
short frame_step; /* frames to jump during render/playback */
|
||||
|
||||
short stereomode; /* standalone player stereo settings */ // XXX deprecated since 2.5
|
||||
|
||||
|
@ -738,10 +739,8 @@ typedef struct Scene {
|
|||
short recalc; /* recalc = counterpart of ob->recalc */
|
||||
|
||||
short jumpframe;
|
||||
int pad5;
|
||||
|
||||
/* frame step. */
|
||||
int frame_step;
|
||||
|
||||
/* User-Defined KeyingSets */
|
||||
int active_keyingset; /* index of the active KeyingSet. first KeyingSet has index 1, 'none' active is 0, 'add new' is -1 */
|
||||
ListBase keyingsets; /* KeyingSets for the given frame */
|
||||
|
|
|
@ -2287,7 +2287,7 @@ void RNA_def_scene(BlenderRNA *brna)
|
|||
|
||||
prop= RNA_def_property(srna, "frame_step", PROP_INT, PROP_TIME);
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "frame_step");
|
||||
RNA_def_property_int_sdna(prop, NULL, "r.frame_step");
|
||||
RNA_def_property_range(prop, 0, MAXFRAME);
|
||||
RNA_def_property_ui_range(prop, 0, 100, 1, 0);
|
||||
RNA_def_property_ui_text(prop, "Frame Step", "Number of frames to skip forward while rendering/playing back each frame");
|
||||
|
|
|
@ -621,7 +621,7 @@ int main(int argc, char **argv)
|
|||
|
||||
frame = MIN2(MAXFRAME, MAX2(MINAFRAME, frame));
|
||||
|
||||
RE_BlenderAnim(re, scene, frame, frame, scene->frame_step);
|
||||
RE_BlenderAnim(re, scene, frame, frame, scene->r.frame_step);
|
||||
}
|
||||
} else {
|
||||
printf("\nError: no blend loaded. cannot use '-f'.\n");
|
||||
|
@ -631,7 +631,7 @@ int main(int argc, char **argv)
|
|||
if (CTX_data_scene(C)) {
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
Render *re= RE_NewRender(scene->id.name);
|
||||
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 {
|
||||
printf("\nError: no blend loaded. cannot use '-a'.\n");
|
||||
}
|
||||
|
@ -671,7 +671,7 @@ int main(int argc, char **argv)
|
|||
Scene *scene= CTX_data_scene(C);
|
||||
if (a < argc) {
|
||||
int frame = atoi(argv[a]);
|
||||
(scene->frame_step) = MIN2(MAXFRAME, MAX2(1, frame));
|
||||
(scene->r.frame_step) = MIN2(MAXFRAME, MAX2(1, frame));
|
||||
}
|
||||
} else {
|
||||
printf("\nError: no blend loaded. cannot use '-j'.\n");
|
||||
|
|
Loading…
Reference in New Issue