diff options
author | Peter Schlaile <peter@schlaile.de> | 2007-12-23 20:27:06 +0300 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2007-12-23 20:27:06 +0300 |
commit | 690d7a85bd7862ce01111335913bc22391049470 (patch) | |
tree | 41fdcca83425f385bb99222846d6040b2b65dd00 /source | |
parent | 74ebc7754729add77fa2b7dc9e74798a407bffed (diff) |
== Playback (peach request) ==
Correct playback frames per second when "Play" is pressed. (Play spawns a new instance of blender, it could pass an argument that sets the frames per second)
(double credit :)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/src/buttons_scene.c | 4 | ||||
-rw-r--r-- | source/blender/src/playanim.c | 16 | ||||
-rw-r--r-- | source/creator/creator.c | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index 7a4093dd965..8fd74ddc08e 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -507,9 +507,9 @@ static void run_playanim(char *file) calc_renderwin_rectangle((G.scene->r.xsch*G.scene->r.size)/100, (G.scene->r.ysch*G.scene->r.size)/100, G.winpos, pos, size); #ifdef WIN32 - sprintf(str, "%s -a -p %d %d \"%s\"", bprogname, pos[0], pos[1], file); + sprintf(str, "%s -a -p %d %d -f %d %g \"%s\"", bprogname, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, file); #else - sprintf(str, "\"%s\" -a -p %d %d \"%s\"", bprogname, pos[0], pos[1], file); + sprintf(str, "\"%s\" -a -p %d %d -f %d %g \"%s\"", bprogname, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, file); #endif system(str); } diff --git a/source/blender/src/playanim.c b/source/blender/src/playanim.c index 828ff8e774e..e94366571db 100644 --- a/source/blender/src/playanim.c +++ b/source/blender/src/playanim.c @@ -362,6 +362,22 @@ void playanim(int argc, char **argv) printf("too few arguments for -p (need 2): skipping\n"); } break; + case 'f': + if (argc>3) { + double fps = atof(argv[2]); + double fps_base= atof(argv[3]); + if (fps == 0) { + fps = 1; + printf("invalid fps," + "forcing 1\n"); + } + swaptime = fps_base / fps; + argc-= 2; + argv+= 2; + } else { + printf("too few arguments for -f (need 2): skipping\n"); + } + break; default: printf("unknown option '%c': skipping\n", argv[1][1]); break; diff --git a/source/creator/creator.c b/source/creator/creator.c index 1feaf075e1c..6a780553607 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -194,6 +194,7 @@ static void print_help(void) printf (" -a <file(s)>\tPlayback <file(s)>\n"); printf (" -p <sx> <sy>\tOpen with lower left corner at <sx>, <sy>\n"); printf (" -m\t\tRead from disk (Don't buffer)\n"); + printf (" -f <fps> <fps-base>\t\tSpecify FPS to start with\n"); printf ("\nWindow options:\n"); printf (" -w\t\tForce opening with borders (default)\n"); |