Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-08-19 13:36:40 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-08-19 13:36:40 +0400
commit7ef3f98de1339f9b25ce5670b9b5d5e5ef798327 (patch)
treebfdd9b53c3c6a382b8eb915e8cc4d1812c88a4fc /source/blender/blenkernel/intern/mesh.c
parent345fff872b19a48ea674815165c7e8a0bd57f2ba (diff)
Made curves almost thread-safe
Now modifier stack wouldn't modify original curve's nurbs and will operate on a copy of nurbs. This makes it possible to process curve object update with shared curve datablocks from multiple threads. There's no big overhead for creating a copy of nurbs comparing to old behavior which was allocating original vertex array and apply coordinates on curve after all modifier are applied. The only remained issue with curves is curve's bounding box and texture space. It's not thread-safe, but it wouldn't lead to crashes -- it just could lead to either memory leak or wrong texture coordinates due to difference in modifiers stacks of objects which shares the same curve. -- svn merge -r57959:57961 ^/branches/soc-2013-depsgraph_mt
Diffstat (limited to 'source/blender/blenkernel/intern/mesh.c')
-rw-r--r--source/blender/blenkernel/intern/mesh.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index ada1dfa2a69..a5556b7e817 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -1307,7 +1307,7 @@ int BKE_mesh_nurbs_to_mdata(Object *ob, MVert **allvert, int *totvert,
MEdge **alledge, int *totedge, MLoop **allloop, MPoly **allpoly,
int *totloop, int *totpoly)
{
- ListBase disp = {NULL};
+ ListBase disp = {NULL, NULL};
if (ob->curve_cache) {
disp = ob->curve_cache->disp;
@@ -1659,7 +1659,7 @@ void BKE_mesh_from_nurbs(Object *ob)
{
Curve *cu = (Curve *) ob->data;
bool use_orco_uv = (cu->flag & CU_UV_ORCO) != 0;
- ListBase disp = {NULL};
+ ListBase disp = {NULL, NULL};
if (ob->curve_cache) {
disp = ob->curve_cache->disp;