[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56275] trunk/blender/source/blender/ editors/render/render_preview.c: Fix blender internal preview rendering continuously restarting after recent

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Apr 24 21:21:14 CEST 2013


Revision: 56275
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56275
Author:   blendix
Date:     2013-04-24 19:21:14 +0000 (Wed, 24 Apr 2013)
Log Message:
-----------
Fix blender internal preview rendering continuously restarting after recent
viewport render changes.

Actually was an older issue that would cause unnecessary preview render restarts
if the render result was not allocated before it was drawn. Now the render result
is being reallocated each time for freestyle which made the issue worse.

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

Modified: trunk/blender/source/blender/editors/render/render_preview.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_preview.c	2013-04-24 17:49:13 UTC (rev 56274)
+++ trunk/blender/source/blender/editors/render/render_preview.c	2013-04-24 19:21:14 UTC (rev 56275)
@@ -531,6 +531,7 @@
 	int offx = 0;
 	int newx = BLI_rcti_size_x(rect);
 	int newy = BLI_rcti_size_y(rect);
+	int ok = 0;
 
 	if (!split || first) sprintf(name, "Preview %p", (void *)sa);
 	else sprintf(name, "SecondPreview %p", (void *)sa);
@@ -549,7 +550,6 @@
 	/* test if something rendered ok */
 	re = RE_GetRender(name);
 	RE_AcquireResultImage(re, &rres);
-	RE_ReleaseResultImage(re);
 
 	if (rres.rectf) {
 		
@@ -568,12 +568,17 @@
 				
 				MEM_freeN(rect_byte);
 				
-				return 1;
+				ok = 1;
 			}
 		}
 	}
+	else {
+		ok = 1;
+	}
 
-	return 0;
+	RE_ReleaseResultImage(re);
+
+	return ok;
 }
 
 void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, rcti *rect)




More information about the Bf-blender-cvs mailing list