diff options
Diffstat (limited to 'source/blender/blenkernel/intern/linestyle.c')
-rw-r--r-- | source/blender/blenkernel/intern/linestyle.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c index ac2c4e35dce..5a1dfc04045 100644 --- a/source/blender/blenkernel/intern/linestyle.c +++ b/source/blender/blenkernel/intern/linestyle.c @@ -80,8 +80,10 @@ static const char *modifier_name[LS_MODIFIER_NUM] = { "3D Curvature", }; -static void default_linestyle_settings(FreestyleLineStyle *linestyle) +void BKE_linestyle_init(FreestyleLineStyle *linestyle) { + BLI_assert(MEMCMP_STRUCT_OFS_IS_ZERO(linestyle, id)); + linestyle->panel = LS_PANEL_STROKES; linestyle->r = linestyle->g = linestyle->b = 0.0f; linestyle->alpha = 1.0f; @@ -118,7 +120,7 @@ FreestyleLineStyle *BKE_linestyle_new(struct Main *bmain, const char *name) linestyle = (FreestyleLineStyle *)BKE_libblock_alloc(bmain, ID_LS, name); - default_linestyle_settings(linestyle); + BKE_linestyle_init(linestyle); return linestyle; } @@ -132,8 +134,10 @@ void BKE_linestyle_free(FreestyleLineStyle *linestyle) for (a = 0; a < MAX_MTEX; a++) { mtex = linestyle->mtex[a]; - if (mtex && mtex->tex) mtex->tex->id.us--; - if (mtex) MEM_freeN(mtex); + if (mtex && mtex->tex) + id_us_min(&mtex->tex->id); + if (mtex) + MEM_freeN(mtex); } if (linestyle->nodetree) { ntreeFreeTree(linestyle->nodetree); @@ -382,7 +386,7 @@ LineStyleModifier *BKE_linestyle_color_modifier_copy(FreestyleLineStyle *linesty LineStyleColorModifier_DistanceFromObject *p = (LineStyleColorModifier_DistanceFromObject *)m; LineStyleColorModifier_DistanceFromObject *q = (LineStyleColorModifier_DistanceFromObject *)new_m; if (p->target) - p->target->id.us++; + id_us_plus(&p->target->id); q->target = p->target; q->color_ramp = MEM_dupallocN(p->color_ramp); q->range_min = p->range_min; @@ -620,7 +624,7 @@ LineStyleModifier *BKE_linestyle_alpha_modifier_copy(FreestyleLineStyle *linesty LineStyleAlphaModifier_DistanceFromObject *p = (LineStyleAlphaModifier_DistanceFromObject *)m; LineStyleAlphaModifier_DistanceFromObject *q = (LineStyleAlphaModifier_DistanceFromObject *)new_m; if (p->target) - p->target->id.us++; + id_us_plus(&p->target->id); q->target = p->target; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; @@ -895,7 +899,7 @@ LineStyleModifier *BKE_linestyle_thickness_modifier_copy(FreestyleLineStyle *lin LineStyleThicknessModifier_DistanceFromObject *p = (LineStyleThicknessModifier_DistanceFromObject *)m; LineStyleThicknessModifier_DistanceFromObject *q = (LineStyleThicknessModifier_DistanceFromObject *)new_m; if (p->target) - p->target->id.us++; + id_us_plus(&p->target->id); q->target = p->target; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; |