[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50719] trunk/blender/source/blender: Fixed missing display buffer invalidation when rendering sequencer animation

Sergey Sharybin sergey.vfx at gmail.com
Tue Sep 18 10:40:54 CEST 2012


Revision: 50719
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50719
Author:   nazgul
Date:     2012-09-18 08:40:53 +0000 (Tue, 18 Sep 2012)
Log Message:
-----------
Fixed missing display buffer invalidation when rendering sequencer animation

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/editors/render/render_internal.c
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2012-09-18 08:00:19 UTC (rev 50718)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2012-09-18 08:40:53 UTC (rev 50719)
@@ -2585,7 +2585,9 @@
 
 	/* invalidate color managed buffers if render result changed */
 	BLI_lock_thread(LOCK_COLORMANAGE);
-	if (ibuf->x != rres.rectx || ibuf->y != rres.recty || ibuf->rect_float != rectf) {
+	if (ibuf->x != rres.rectx || ibuf->y != rres.recty ||
+	    ibuf->rect_float != rectf || ibuf->rect != rect)
+	{
 		ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
 	}
 

Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c	2012-09-18 08:00:19 UTC (rev 50718)
+++ trunk/blender/source/blender/editors/render/render_internal.c	2012-09-18 08:40:53 UTC (rev 50719)
@@ -124,8 +124,14 @@
 	if (rr->rectf)
 		rectf = rr->rectf;
 	else {
-		if (rr->rect32)
+		if (rr->rect32) {
+			/* special case, currently only happens with sequencer rendering,
+			 * which updates the whole frame, so we can only mark display buffer
+			 * as invalid here (sergey)
+			 */
+			ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
 			return;
+		}
 		else {
 			if (rr->renlay == NULL || rr->renlay->rectf == NULL) return;
 			rectf = rr->renlay->rectf;

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2012-09-18 08:00:19 UTC (rev 50718)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2012-09-18 08:40:53 UTC (rev 50719)
@@ -1718,6 +1718,9 @@
 		re->progress(re->prh, (float)(cfra - re->r.sfra) / (re->r.efra - re->r.sfra));
 	else
 		re->progress(re->prh, 1.0f);
+
+	/* would mark display buffers as invalid */
+	re->display_draw(re->ddh, re->result, NULL);
 }
 
 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */




More information about the Bf-blender-cvs mailing list