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:
authorCampbell Barton <ideasman42@gmail.com>2012-04-16 10:48:57 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-04-16 10:48:57 +0400
commit0635f8101c98d74da729d464472a4d9efa09337f (patch)
tree2588585adbcd09b0e14497d12a8403488bfe2efb /source/blender/blenkernel/intern/editderivedmesh.c
parentfb1e60762f3a4c32b3ae57824f5bcbb984b33cbc (diff)
make scanfill threadsafe (wasnt threadsafe before BMesh merge but before the merge it didn't need to be) - now rendering uses its better if its threadsafe.
Diffstat (limited to 'source/blender/blenkernel/intern/editderivedmesh.c')
-rw-r--r--source/blender/blenkernel/intern/editderivedmesh.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index 75f6abc6c74..07a43db8560 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -120,6 +120,8 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
BMLoop *l;
int i = 0, j;
+ ScanFillContext sf_ctx;
+
#if 0
/* note, we could be clever and re-use this array but would need to ensure
* its realloced at some point, for now just free it */
@@ -195,18 +197,18 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
ScanFillFace *efa;
int totfilltri;
- BLI_begin_edgefill();
+ BLI_begin_edgefill(&sf_ctx);
/*scanfill time*/
l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
for (j=0; l; l=BM_iter_step(&liter), j++) {
/*mark order*/
BM_elem_index_set(l, j); /* set_loop */
- v = BLI_addfillvert(l->v->co);
+ v = BLI_addfillvert(&sf_ctx, l->v->co);
v->tmp.p = l;
if (lastv) {
- /* e = */ BLI_addfilledge(lastv, v);
+ /* e = */ BLI_addfilledge(&sf_ctx, lastv, v);
}
lastv = v;
@@ -214,12 +216,12 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
}
/*complete the loop*/
- BLI_addfilledge(firstv, v);
+ BLI_addfilledge(&sf_ctx, firstv, v);
- totfilltri = BLI_edgefill(FALSE);
+ totfilltri = BLI_edgefill(&sf_ctx, FALSE);
BLI_array_growitems(looptris, totfilltri);
- for (efa = fillfacebase.first; efa; efa=efa->next) {
+ for (efa = sf_ctx.fillfacebase.first; efa; efa=efa->next) {
BMLoop *l1= efa->v1->tmp.p;
BMLoop *l2= efa->v2->tmp.p;
BMLoop *l3= efa->v3->tmp.p;
@@ -234,7 +236,7 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
i += 1;
}
- BLI_end_edgefill();
+ BLI_end_edgefill(&sf_ctx);
}
}