[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17752] trunk/blender/source: Commit patch [#18057] by Dalai Felinto (dfelinto)

Diego Borghetti bdiego at gmail.com
Tue Dec 9 05:02:21 CET 2008


Revision: 17752
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17752
Author:   bdiego
Date:     2008-12-09 05:02:18 +0100 (Tue, 09 Dec 2008)

Log Message:
-----------
Commit patch [#18057] by Dalai Felinto (dfelinto)

This implement the option of playback an animation using the
step value in the render panel (or -a -j).

Tested here and work fine, about the ffmpeg/avi bug it's my
fault, I don't think in "step + video format", so now it's
in my todo-list :)

Modified Paths:
--------------
    trunk/blender/source/blender/src/buttons_scene.c
    trunk/blender/source/blender/src/playanim.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/src/buttons_scene.c
===================================================================
--- trunk/blender/source/blender/src/buttons_scene.c	2008-12-09 00:46:05 UTC (rev 17751)
+++ trunk/blender/source/blender/src/buttons_scene.c	2008-12-09 04:02:18 UTC (rev 17752)
@@ -1388,9 +1388,9 @@
 	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 -s %d -e %d -p %d %d -f %d %g \"%s\"", bprogname, G.scene->r.sfra, G.scene->r.efra, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, file);
+	sprintf(str, "%s -a -s %d -e %d -p %d %d -f %d %g -j %d \"%s\"", bprogname, G.scene->r.sfra, G.scene->r.efra, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, G.scene->frame_step, file);
 #else
-	sprintf(str, "\"%s\" -a -s %d -e %d  -p %d %d -f %d %g \"%s\"", bprogname, G.scene->r.sfra, G.scene->r.efra, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, file);
+	sprintf(str, "\"%s\" -a -s %d -e %d  -p %d %d -f %d %g -j %d \"%s\"", bprogname, G.scene->r.sfra, G.scene->r.efra, pos[0], pos[1], G.scene->r.frs_sec, G.scene->r.frs_sec_base, G.scene->frame_step, file);
 #endif
 	system(str);
 }

Modified: trunk/blender/source/blender/src/playanim.c
===================================================================
--- trunk/blender/source/blender/src/playanim.c	2008-12-09 00:46:05 UTC (rev 17751)
+++ trunk/blender/source/blender/src/playanim.c	2008-12-09 04:02:18 UTC (rev 17752)
@@ -169,6 +169,7 @@
 static struct ListBase _picsbase = {0,0};
 static struct ListBase *picsbase = &_picsbase;
 static int fromdisk = FALSE;
+static int fstep = 1; 
 static float zoomx = 1.0 , zoomy = 1.0;
 static double ptottime = 0.0, swaptime = 0.04;
 
@@ -208,14 +209,14 @@
 		char str[512];
 		cpack(-1);
 		glRasterPos2f(0.02f,  0.03f);
-		sprintf(str, "%s | %.2f frames/s\n", picture->name, 1.0 / swaptime);
+		sprintf(str, "%s | %.2f frames/s\n", picture->name, fstep / swaptime);
 		BMF_DrawString(G.fonts, str);
 	}
 	
 	window_swap_buffers(g_window);
 }
 
-static void build_pict_list(char * first, int totframes)
+static void build_pict_list(char * first, int totframes, int fstep)
 {
 	int size,pic,file;
 	char *mem, name[512];
@@ -240,7 +241,7 @@
 				picture->anim = anim;
 				picture->frame = pic;
 				picture->IB_flags = IB_rect;
-				sprintf(str, "%s : %d", first, pic + 1);
+				sprintf(str, "%s : %d", first, pic);
 				picture->name = strdup(str);
 				BLI_addtail(picsbase, picture);
 			}
@@ -322,7 +323,7 @@
 				ptottime = 0.0;
 			}
 			
-			BLI_newname(name, +1);
+			BLI_newname(name, +fstep);
 			
 			while(qtest()){
 				switch(qreadN(&val)){
@@ -396,6 +397,12 @@
 					argc--;
 					argv++;
 					break;
+				case 'j':
+					fstep= MIN2(MAXFRAME, MAX2(1, atoi(argv[2])));
+					swaptime*= fstep;
+					argc--;
+					argv++;
+					break;
 				default:
 					printf("unknown option '%c': skipping\n", argv[1][1]);
 					break;
@@ -486,11 +493,11 @@
 		efra = MAXFRAME;
 	}
 	
-	build_pict_list(name, (efra - sfra) + 1);
+	build_pict_list(name, (efra - sfra) + 1, fstep);
 	
 	for (i = 2; i < argc; i++){
 		strcpy(name, argv[i]);
-		build_pict_list(name, (efra - sfra) + 1);
+		build_pict_list(name, (efra - sfra) + 1, fstep);
 	}
 
 	IMB_freeImBuf(ibuf); 
@@ -571,9 +578,9 @@
 					if (val) {
 						if (qualN & SHIFT) {
 							if (ibuf)
-								printf(" Name: %s | Speed: %.2f frames/s\n", ibuf->name, 1.0 / swaptime);
+								printf(" Name: %s | Speed: %.2f frames/s\n", ibuf->name, fstep / swaptime);
 						} else {
-							swaptime = 1.0 / 5.0;
+							swaptime = fstep / 5.0;
 						}
 					}
 					break;
@@ -688,34 +695,34 @@
 					}
 					break;
 				case PAD1:
-					swaptime = 1.0 / 60.0;
+					swaptime = fstep / 60.0;
 					break;
 				case PAD2:
-					swaptime = 1.0 / 50.0;
+					swaptime = fstep / 50.0;
 					break;
 				case PAD3:
-					swaptime = 1.0 / 30.0;
+					swaptime = fstep / 30.0;
 					break;
 				case PAD4:
 					if (qualN & SHIFT)
-						swaptime = 1.0 / 24.0;
+						swaptime = fstep / 24.0;
 					else
-						swaptime = 1.0 / 25.0;
+						swaptime = fstep / 25.0;
 					break;
 				case PAD5:
-					swaptime = 1.0 / 20.0;
+					swaptime = fstep / 20.0;
 					break;
 				case PAD6:
-					swaptime = 1.0 / 15.0;
+					swaptime = fstep / 15.0;
 					break;
 				case PAD7:
-					swaptime = 1.0 / 12.0;
+					swaptime = fstep / 12.0;
 					break;
 				case PAD8:
-					swaptime = 1.0 / 10.0;
+					swaptime = fstep / 10.0;
 					break;
 				case PAD9:
-					swaptime = 1.0 / 6.0;
+					swaptime = fstep / 6.0;
 					break;
 				case PADPLUSKEY:
 					if (val == 0) break;

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2008-12-09 00:46:05 UTC (rev 17751)
+++ trunk/blender/source/creator/creator.c	2008-12-09 04:02:18 UTC (rev 17752)
@@ -208,7 +208,7 @@
 	printf ("    -t <threads>\tUse amount of <threads> for rendering (background mode only).\n");
 	printf ("      [1-8], 0 for systems processor count.\n");
 	printf ("\nAnimation playback options:\n");
-	printf ("  -a <file(s)>\tPlayback <file(s)>, only operates this way when -b is not used.\n");
+	printf ("  -a <options> <file(s)>\tPlayback <file(s)>, only operates this way when -b is not used.\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");





More information about the Bf-blender-cvs mailing list