[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27807] branches/soc-2008-mxcurioni/source /blender/freestyle/intern/blender_interface: Slightly reduced the memory consumption during stroke rendering by

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Sun Mar 28 20:12:46 CEST 2010


Revision: 27807
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27807
Author:   kjym3
Date:     2010-03-28 20:12:45 +0200 (Sun, 28 Mar 2010)

Log Message:
-----------
Slightly reduced the memory consumption during stroke rendering by
removing ListBase BlenderStrokeRenderer::objects and relying on
Base freestyle_scene::base instead.

Modified Paths:
--------------
    branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
    branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h

Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp	2010-03-28 17:50:45 UTC (rev 27806)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp	2010-03-28 18:12:45 UTC (rev 27807)
@@ -15,6 +15,7 @@
 #include "DNA_listBase.h"
 #include "DNA_mesh_types.h"
 #include "DNA_meshdata_types.h"
+#include "DNA_object_types.h"
 #include "DNA_screen_types.h"
 
 #include "BKE_customdata.h"
@@ -42,8 +43,6 @@
 	// Scene.New("FreestyleStrokes")
 	old_scene = re->scene;
 
-	objects.first = objects.last = NULL;
-	
 	ListBase lb;
 	char name[22];
 	snprintf(name, sizeof(name), "FRS%d_%s", render_count, re->scene->id.name+2);
@@ -78,8 +77,6 @@
 	object_camera->loc[2] = 1.0;
 	
 	freestyle_scene->camera = object_camera;
-
-	store_object(object_camera);
 	
 	// Material
 	material = add_material("stroke_material");
@@ -91,16 +88,16 @@
 
 BlenderStrokeRenderer::~BlenderStrokeRenderer(){
 	
-	  if(0 != _textureManager)
-	  {
-	    delete _textureManager;
-	    _textureManager = 0;
-	  }
+	if(0 != _textureManager)
+	{
+		delete _textureManager;
+		_textureManager = 0;
+	}
 
 	// release objects and data blocks
-	LinkData *link = (LinkData *)objects.first;
-	while(link) {
-		Object *ob = (Object *)link->data;
+	Base *b = (Base *)freestyle_scene->base.first;
+	while(b) {
+		Object *ob = b->object;
 		void *data = ob->data;
 		char name[24];
 		strcpy(name, ob->id.name);
@@ -113,13 +110,14 @@
 		case OB_CAMERA:
 			free_libblock( &G.main->object, ob );
 			free_libblock( &G.main->camera, data );
+			freestyle_scene->camera = NULL;
 			break;
 		default:
 			cerr << "Warning: unexpected object in the scene: " << name[0] << name[1] << ":" << (name+2) << endl;
 		}
-		link = link->next;
+		b = b->next;
 	}
-	BLI_freelistN( &objects );
+	BLI_freelistN( &freestyle_scene->base );
 
 	// release material
 	free_libblock( &G.main->mat, material );
@@ -127,13 +125,6 @@
 	set_scene_bg( old_scene );
 }
 
-void BlenderStrokeRenderer::store_object(Object *ob) const {
-
-	LinkData *link = (LinkData *)MEM_callocN(sizeof(LinkData), "temporary object" );
-	link->data = ob;
-	BLI_addhead(const_cast<ListBase *>(&objects), link);
-}
-
 float BlenderStrokeRenderer::get_stroke_vertex_z(void) const {
     float z = _z;
     BlenderStrokeRenderer *self = const_cast<BlenderStrokeRenderer *>(this);
@@ -210,8 +201,6 @@
 		MEM_freeN(mesh->bb);
 		mesh->bb= NULL;
 		mesh->id.us = 0;
-
-		store_object(object_mesh);
 		
 #if 1
 		// me.materials = [mat]

Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h	2010-03-28 17:50:45 UTC (rev 27806)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h	2010-03-28 18:12:45 UTC (rev 27807)
@@ -9,7 +9,6 @@
 #endif
 
 #include "DNA_material_types.h"
-#include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 
 #include "render_types.h"
@@ -36,11 +35,8 @@
 	Scene* old_scene;
 	Scene* freestyle_scene;
 	Material* material;
-	ListBase objects;
 	float _z, _z_delta;
 
-	void store_object(Object *ob) const;
-
 	float get_stroke_vertex_z(void) const;
 };
 





More information about the Bf-blender-cvs mailing list