Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/mask.c
| Show First 20 Lines • Show All 815 Lines • ▼ Show 20 Lines | Mask *BKE_mask_new(Main *bmain, const char *name) | ||||
| /* arbitrary defaults */ | /* arbitrary defaults */ | ||||
| mask->sfra = 1; | mask->sfra = 1; | ||||
| mask->efra = 100; | mask->efra = 100; | ||||
| return mask; | return mask; | ||||
| } | } | ||||
| /* TODO(sergey): Use generic BKE_libblock_copy_nolib() instead. */ | /* TODO(sergey): Use generic BKE_libblock_copy_nolib() instead. */ | ||||
| /* TODO(bastien): Use new super cool & generic BKE_id_copy_ex() instead! */ | |||||
| Mask *BKE_mask_copy_nolib(Mask *mask) | Mask *BKE_mask_copy_nolib(Mask *mask) | ||||
| { | { | ||||
| Mask *mask_new; | Mask *mask_new; | ||||
| mask_new = MEM_dupallocN(mask); | mask_new = MEM_dupallocN(mask); | ||||
| /*take care here! - we may want to copy anim data */ | /*take care here! - we may want to copy anim data */ | ||||
| mask_new->adt = NULL; | mask_new->adt = NULL; | ||||
| BLI_listbase_clear(&mask_new->masklayers); | BLI_listbase_clear(&mask_new->masklayers); | ||||
| BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers); | BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers); | ||||
| /* enable fake user by default */ | /* enable fake user by default */ | ||||
| id_fake_user_set(&mask->id); | id_fake_user_set(&mask->id); | ||||
| return mask_new; | return mask_new; | ||||
| } | } | ||||
| Mask *BKE_mask_copy(Main *bmain, const Mask *mask) | /** | ||||
| * Only copy internal data of Mask ID from source to already allocated/initialized destination. | |||||
| * You probably nerver want to use that directly, use id_copy or BKE_id_copy_ex for typical needs. | |||||
| * | |||||
| * WARNING! This function will not handle ID user count! | |||||
| * | |||||
| * \param flag Copying options (see BKE_library.h's LIB_ID_COPY_... flags for more). | |||||
| */ | |||||
| void BKE_mask_copy_data(Main *UNUSED(bmain), Mask *mask_dst, const Mask *mask_src, const int UNUSED(flag)) | |||||
| { | { | ||||
| Mask *mask_new; | BLI_listbase_clear(&mask_dst->masklayers); | ||||
| mask_new = BKE_libblock_copy(bmain, &mask->id); | BKE_mask_layer_copy_list(&mask_dst->masklayers, &mask_src->masklayers); /* TODO add unused flag to those as well. */ | ||||
| BLI_listbase_clear(&mask_new->masklayers); | |||||
| BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers); | |||||
| /* enable fake user by default */ | /* enable fake user by default */ | ||||
| id_fake_user_set(&mask_new->id); | id_fake_user_set(&mask_dst->id); | ||||
| } | |||||
| BKE_id_copy_ensure_local(bmain, &mask->id, &mask_new->id); | |||||
| return mask_new; | Mask *BKE_mask_copy(Main *bmain, const Mask *mask) | ||||
| { | |||||
| Mask *mask_copy; | |||||
| BKE_id_copy_ex(bmain, &mask->id, (ID **)&mask_copy, 0, false); | |||||
| return mask_copy; | |||||
| } | } | ||||
| void BKE_mask_make_local(Main *bmain, Mask *mask, const bool lib_local) | void BKE_mask_make_local(Main *bmain, Mask *mask, const bool lib_local) | ||||
| { | { | ||||
| BKE_id_make_local_generic(bmain, &mask->id, true, lib_local); | BKE_id_make_local_generic(bmain, &mask->id, true, lib_local); | ||||
| } | } | ||||
| void BKE_mask_point_free(MaskSplinePoint *point) | void BKE_mask_point_free(MaskSplinePoint *point) | ||||
| ▲ Show 20 Lines • Show All 1,204 Lines • Show Last 20 Lines | |||||