diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-02-13 04:47:00 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-02-13 04:48:46 +0400 |
commit | 108ad3442960ef6ead3015736b3de679146f7a8d (patch) | |
tree | 7bc45177392eaf5c97b43a463052e299ded7c500 /source/blender/blenkernel/intern/mask_rasterize.c | |
parent | 6ee9d1b69db0064abb03d74dbc365cf860a3c3d9 (diff) |
Mask: option not to treat overlapping curves as holes
Diffstat (limited to 'source/blender/blenkernel/intern/mask_rasterize.c')
-rw-r--r-- | source/blender/blenkernel/intern/mask_rasterize.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c index e1e310f3d3c..694f892f2c8 100644 --- a/source/blender/blenkernel/intern/mask_rasterize.c +++ b/source/blender/blenkernel/intern/mask_rasterize.c @@ -916,6 +916,7 @@ void BKE_maskrasterize_handle_init(MaskRasterHandle *mr_handle, struct Mask *mas unsigned int sf_tri_tot; rctf bounds; unsigned int face_index; + int scanfill_flag = 0; /* now we have all the splines */ face_coords = MEM_mallocN((sizeof(float) * 3) * sf_vert_tot, "maskrast_face_coords"); @@ -941,7 +942,10 @@ void BKE_maskrasterize_handle_init(MaskRasterHandle *mr_handle, struct Mask *mas } /* main scan-fill */ - sf_tri_tot = (unsigned int)BLI_scanfill_calc_ex(&sf_ctx, BLI_SCANFILL_CALC_HOLES, zvec); + if ((masklay->flag & MASK_LAYERFLAG_FILL_DISCRETE) == 0) + scanfill_flag |= BLI_SCANFILL_CALC_HOLES; + + sf_tri_tot = (unsigned int)BLI_scanfill_calc_ex(&sf_ctx, scanfill_flag, zvec); face_array = MEM_mallocN(sizeof(*face_array) * ((size_t)sf_tri_tot + (size_t)tot_feather_quads), "maskrast_face_index"); face_index = 0; |