diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-06-25 15:56:12 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-06-25 15:56:12 +0400 |
commit | 044a20821b290beef5b39a265a3527bc4ecf31fa (patch) | |
tree | c17a943b6b3a244861003ab32d0a0fd415749511 /source/creator | |
parent | 85ffe7e9ba446796749408dc4bda0b11666d3a73 (diff) |
extend command line argument for rendering the current frame
blender --background some.blend --render-frame 1 # renders frame 1
blender --background some.blend --render-frame +0 # renders the first frame
blender --background some.blend --render-frame -1 # renders the last frame
Diffstat (limited to 'source/creator')
-rw-r--r-- | source/creator/creator.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/source/creator/creator.c b/source/creator/creator.c index 2def6c8a3ca..f240a54788f 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -685,10 +685,22 @@ static int render_frame(int argc, char **argv, void *data) Scene *scene= CTX_data_scene(C); if (argc > 1) { - int frame = atoi(argv[1]); Render *re = RE_NewRender(scene->id.name); + int frame; ReportList reports; + if(*argv[1]) { + case '+': + frame= scene->r.sfra + atoi(argv[1]+1); + break; + case '-': + frame= (scene->r.efra - atoi(argv[1]+1)) + 1; + break; + default: + frame= atoi(argv[1]); + break; + } + BKE_reports_init(&reports, RPT_PRINT); frame = MIN2(MAXFRAME, MAX2(MINAFRAME, frame)); @@ -966,7 +978,7 @@ void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle) /* fourth pass: processing arguments */ BLI_argsAdd(ba, 4, "-g", NULL, game_doc, set_ge_parameters, syshandle); - BLI_argsAdd(ba, 4, "-f", "--render-frame", "<frame>\n\tRender frame <frame> and save it", render_frame, C); + BLI_argsAdd(ba, 4, "-f", "--render-frame", "<frame>\n\tRender frame <frame> and save it.\n\t+<frame> start frame relative, -<frame> end frame relative.", render_frame, C); BLI_argsAdd(ba, 4, "-a", "--render-anim", "\n\tRender frames from start to end (inclusive)", render_animation, C); BLI_argsAdd(ba, 4, "-S", "--scene", "<name>\n\tSet the active scene <name> for rendering", set_scene, NULL); BLI_argsAdd(ba, 4, "-s", "--frame-start", "<frame>\n\tSet start to frame <frame> (use before the -a argument)", set_start_frame, C); |