[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