[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60430] trunk/blender/source/blender/ editors/render/render_opengl.c: fix [#36842] OpenGL Animation Playblast renders 1 too many frames

Campbell Barton ideasman42 at gmail.com
Mon Sep 30 10:21:13 CEST 2013


Revision: 60430
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60430
Author:   campbellbarton
Date:     2013-09-30 08:21:12 +0000 (Mon, 30 Sep 2013)
Log Message:
-----------
fix [#36842] OpenGL Animation Playblast renders 1 too many frames

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_opengl.c

Modified: trunk/blender/source/blender/editors/render/render_opengl.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_opengl.c	2013-09-30 07:58:38 UTC (rev 60429)
+++ trunk/blender/source/blender/editors/render/render_opengl.c	2013-09-30 08:21:12 UTC (rev 60430)
@@ -517,7 +517,7 @@
 
 	return 1;
 }
-static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
+static bool screen_opengl_render_anim_step(bContext *C, wmOperator *op)
 {
 	Main *bmain = CTX_data_main(C);
 	OGLRender *oglrender = op->customdata;
@@ -549,12 +549,9 @@
 		BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, &scene->r.im_format, scene->r.scemode & R_EXTENSION, TRUE);
 
 		if ((scene->r.mode & R_NO_OVERWRITE) && BLI_exists(name)) {
-			printf("skipping existing frame \"%s\"\n", name);
-
-			/* go to next frame */
-			oglrender->nfra += scene->r.frame_step;
-
-			return 1;
+			BKE_reportf(op->reports, RPT_INFO, "Skipping existing frame \"%s\"", name);
+			ok = true;
+			goto finally;
 		}
 	}
 
@@ -656,6 +653,9 @@
 	/* movie stats prints have no line break */
 	printf("\n");
 
+
+finally:  /* Step the frame and bail early if needed */
+
 	/* go to next frame */
 	oglrender->nfra += scene->r.frame_step;
 
@@ -673,7 +673,7 @@
 {
 	OGLRender *oglrender = op->customdata;
 	int anim = RNA_boolean_get(op->ptr, "animation");
-	int ret;
+	bool ret;
 
 	switch (event->type) {
 		case ESCKEY:
@@ -698,11 +698,12 @@
 		screen_opengl_render_end(C, op->customdata);
 		return OPERATOR_FINISHED;
 	}
-	else
+	else {
 		ret = screen_opengl_render_anim_step(C, op);
+	}
 
 	/* stop at the end or on error */
-	if (ret == 0) {
+	if (ret == false) {
 		return OPERATOR_FINISHED;
 	}
 
@@ -750,7 +751,7 @@
 		return OPERATOR_FINISHED;
 	}
 	else {
-		int ret = 1;
+		bool ret = true;
 
 		if (!screen_opengl_render_anim_initialize(C, op))
 			return OPERATOR_CANCELLED;




More information about the Bf-blender-cvs mailing list