[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26936] trunk/blender/source/blender: Test code for Brecht:

Ton Roosendaal ton at blender.org
Mon Feb 15 19:36:07 CET 2010


Revision: 26936
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26936
Author:   ton
Date:     2010-02-15 19:36:06 +0100 (Mon, 15 Feb 2010)

Log Message:
-----------
Test code for Brecht:

Added a function that quickly extracts a full main dbase from an undo buffer,
to pass on to render code. This will efficiently then make a render using only
own memory, allowing real threading and running multiple renders at once.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2010-02-15 16:46:24 UTC (rev 26935)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2010-02-15 18:36:06 UTC (rev 26936)
@@ -41,7 +41,9 @@
 struct MemFile;
 struct bContext;
 struct ReportList;
-
+struct Scene;
+struct Main;
+	
 #define BLENDER_VERSION			250
 #define BLENDER_SUBVERSION		17
 
@@ -70,6 +72,7 @@
 extern char *BKE_undo_menu_string(void);
 extern void BKE_undo_number(struct bContext *C, int nr);
 extern void BKE_undo_save_quit(void);
+extern struct Main *BKE_undo_get_main(struct Scene **scene);
 
 #ifdef __cplusplus
 }

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-02-15 16:46:24 UTC (rev 26935)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-02-15 18:36:06 UTC (rev 26936)
@@ -421,6 +421,7 @@
 	return (bfd?1:0);
 }
 
+
 /* *****************  testing for break ************* */
 
 static void (*blender_test_break_cb)(void)= NULL;
@@ -710,3 +711,20 @@
 	else printf("Saved session recovery to %s\n", str);
 }
 
+/* sets curscene */
+Main *BKE_undo_get_main(Scene **scene)
+{
+	Main *mainp= NULL;
+	BlendFileData *bfd= BLO_read_from_memfile(G.main, G.sce, &curundo->memfile, NULL);
+	
+	if(bfd) {
+		mainp= bfd->main;
+		if(scene)
+			*scene= bfd->curscene;
+		
+		MEM_freeN(bfd);
+	}
+	
+	return mainp;
+}
+

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2010-02-15 16:46:24 UTC (rev 26935)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2010-02-15 18:36:06 UTC (rev 26936)
@@ -3123,6 +3123,7 @@
 static void render_startjob(void *rjv, short *stop, short *do_update)
 {
 	RenderJob *rj= rjv;
+//	Main *mainp= BKE_undo_get_main(&rj->scene);
 	
 	rj->stop= stop;
 	rj->do_update= do_update;
@@ -3136,6 +3137,9 @@
 		RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports);
 	else
 		RE_BlenderFrame(rj->re, rj->scene, rj->srl, rj->scene->r.cfra);
+	
+//	if(mainp)
+//		free_main(mainp);
 }
 
 /* called by render, check job 'stop' value or the global */





More information about the Bf-blender-cvs mailing list