[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