[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24783] trunk/blender/source/blender/ blenkernel/intern/sequence.c: == Sequencer ==

Peter Schlaile peter at schlaile.de
Sun Nov 22 21:49:13 CET 2009


Revision: 24783
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24783
Author:   schlaile
Date:     2009-11-22 21:49:13 +0100 (Sun, 22 Nov 2009)

Log Message:
-----------
== Sequencer ==

Broad back SCENE-rendering. (Hopefully did everything right)

Still missing: UI part (one can't select a scene, neither on add nor
in N-keys dialog...)

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/sequence.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequence.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-11-22 20:27:09 UTC (rev 24782)
+++ trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-11-22 20:49:13 UTC (rev 24783)
@@ -47,6 +47,7 @@
 #include "BKE_fcurve.h"
 #include "BKE_utildefines.h"
 #include "RNA_access.h"
+#include "RE_pipeline.h"
 
 #include "BLI_blenlib.h"
 #include "BLI_util.h"
@@ -2006,14 +2007,9 @@
 			}
 		}
 	} else if(seq->type == SEQ_SCENE) {	// scene can be NULL after deletions
-#if 0
-		/* XXX move entirely to render? */
-		int oldcfra = CFRA;
-		Sequence * oldseq = get_last_seq();
 		Scene *sce= seq->scene, *oldsce= scene;
 		Render *re;
 		RenderResult rres;
-		int doseq, rendering= G.rendering;
 		char scenename[64];
 		int have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first;
 		int sce_valid =sce && (sce->camera || have_seq);
@@ -2035,18 +2031,24 @@
 		if (!sce_valid) {
 			se->ok = STRIPELEM_FAILED;
 		} else if (se->ibuf==NULL && sce_valid) {
-			/* no need to display a waitcursor on sequencer
-			   scene strips */
-			if (!have_seq)
-				waitcursor(1);
-			
+			int oldcfra;
 			/* Hack! This function can be called from do_render_seq(), in that case
 			   the seq->scene can already have a Render initialized with same name, 
 			   so we have to use a default name. (compositor uses scene name to
 			   find render).
 			   However, when called from within the UI (image preview in sequencer)
 			   we do want to use scene Render, that way the render result is defined
-			   for display in render/imagewindow */
+			   for display in render/imagewindow 
+
+			   Hmm, don't see, why we can't do that all the time, 
+			   and since G.rendering is uhm, gone... (Peter)
+			*/
+
+			int rendering = 1;
+			int doseq;
+
+			oldcfra = seq->scene->r.cfra;
+
 			if(rendering) {
 				BLI_strncpy(scenename, sce->id.name+2, 64);
 				strcpy(sce->id.name+2, " do_build_seq_ibuf");
@@ -2057,16 +2059,9 @@
 			doseq= scene->r.scemode & R_DOSEQ;
 			scene->r.scemode &= ~R_DOSEQ;
 			
-			BIF_init_render_callbacks(re, 0);	/* 0= no display callbacks */
-			
-			/* XXX hrms, set_scene still needed? work on that... */
-			if(sce!=oldsce) set_scene_bg(sce);
 			RE_BlenderFrame(re, sce,
 					seq->sfra+se->nr+seq->anim_startofs);
-			if(sce!=oldsce) set_scene_bg(oldsce);
 			
-			/* UGLY WARNING, it is set to zero in  RE_BlenderFrame */
-			G.rendering= rendering;
 			if(rendering)
 				BLI_strncpy(sce->id.name+2, scenename, 64);
 			
@@ -2086,21 +2081,13 @@
 
 			RE_ReleaseResultImage(re);
 			
-			BIF_end_render_callbacks();
+			// BIF_end_render_callbacks();
 			
 			/* restore */
 			scene->r.scemode |= doseq;
+		
+			seq->scene->r.cfra = oldcfra;
 
-			// XXX
-#if 0
-			if((G.f & G_PLAYANIM)==0 /* bad, is set on do_render_seq */
-			   && !have_seq
-			   && !build_proxy_run) 
-#endif
-			
-			CFRA = oldcfra;
-			set_last_seq(oldseq);
-
 			copy_to_ibuf_still(seq, se);
 
 			if (!build_proxy_run) {
@@ -2112,7 +2099,6 @@
 			}
 
 		}
-#endif
 	}
 	if (!build_proxy_run) {
 		if (se->ibuf && use_limiter) {





More information about the Bf-blender-cvs mailing list