[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54561] branches/soc-2008-mxcurioni/source /blender/freestyle/intern/blender_interface: Fix for a static variable in BlenderStrokeRenderer::RenderStrokeRep() left after

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Thu Feb 14 20:19:44 CET 2013


Revision: 54561
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54561
Author:   kjym3
Date:     2013-02-14 19:19:44 +0000 (Thu, 14 Feb 2013)
Log Message:
-----------
Fix for a static variable in BlenderStrokeRenderer::RenderStrokeRep() left after
quick trials of different approaches to performance improvement.

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	2013-02-14 17:35:46 UTC (rev 54560)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp	2013-02-14 19:19:44 UTC (rev 54561)
@@ -154,6 +154,9 @@
 	material->mode |= MA_TRANSP;
 	material->mode |= MA_SHLESS;
 	material->vcol_alpha = 1;
+
+	// Reset serial mesh ID (used for BlenderStrokeRenderer::NewMesh())
+	_mesh_id = 0xffffffff;
 }
 
 BlenderStrokeRenderer::~BlenderStrokeRenderer()
@@ -211,6 +214,14 @@
 	return -z;
 }
 
+unsigned int BlenderStrokeRenderer::get_stroke_mesh_id(void) const
+{
+	unsigned mesh_id = _mesh_id;
+	BlenderStrokeRenderer *self = const_cast<BlenderStrokeRenderer *>(this);
+	self->_mesh_id--;
+	return mesh_id;
+}
+
 void BlenderStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const
 {
 	RenderStrokeRepBasic(iStrokeRep);
@@ -473,7 +484,7 @@
 	Object *ob;
 	Base *base;
 	char name[MAX_ID_NAME];
-	static unsigned int mesh_id = 0xffffffff;
+	unsigned int mesh_id = get_stroke_mesh_id();
 
 	BLI_snprintf(name, MAX_ID_NAME, "0%08xOB", mesh_id);
 	ob = BKE_object_add_only_object(G.main, OB_MESH, name);
@@ -490,8 +501,6 @@
 #endif
 	ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME;
 
-	--mesh_id;
-
 	return ob;
 }
 

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	2013-02-14 17:35:46 UTC (rev 54560)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h	2013-02-14 19:19:44 UTC (rev 54561)
@@ -69,8 +69,10 @@
 	Material *material;
 	float _width, _height;
 	float _z, _z_delta;
+	unsigned int _mesh_id;
 
 	float get_stroke_vertex_z(void) const;
+	unsigned int get_stroke_mesh_id(void) const;
 };
 
 #endif // __BLENDER_STROKE_RENDERER_H__




More information about the Bf-blender-cvs mailing list