From 3d69dbd44a8c14c54785833fc469ee14173c6132 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 12 Dec 2012 05:04:01 +0000 Subject: use openmp to thread some common bmesh operations - BM_mesh_elem_toolflags_ensure / bmo_flag_layer_alloc / bmo_flag_layer_free / bmo_flag_layer_clear - BM_mesh_select_flush - EDBM_index_arrays_init notes: - mostly use openmp `sections` to split operations on vert/edge/face since this is a fairly minor change. - split tool flag pool in 3, this means we can allocate exact sizes needed and iterate on them in threads without alloc'ing. --- source/blender/bmesh/bmesh_class.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/bmesh/bmesh_class.h') diff --git a/source/blender/bmesh/bmesh_class.h b/source/blender/bmesh/bmesh_class.h index 9d797c1e602..4a370a24c7d 100644 --- a/source/blender/bmesh/bmesh_class.h +++ b/source/blender/bmesh/bmesh_class.h @@ -187,8 +187,9 @@ typedef struct BMesh { /*element pools*/ struct BLI_mempool *vpool, *epool, *lpool, *fpool; - /*operator api stuff*/ - struct BLI_mempool *toolflagpool; + /*operator api stuff (must be all NULL or all alloc'd)*/ + struct BLI_mempool *vtoolflagpool, *etoolflagpool, *ftoolflagpool; + int stackdepth; struct BMOperator *currentop; -- cgit v1.2.3