[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49275] trunk/blender/source/blender/ blenkernel: copy support for mask datablocks
Campbell Barton
ideasman42 at gmail.com
Fri Jul 27 10:18:11 CEST 2012
Revision: 49275
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49275
Author: campbellbarton
Date: 2012-07-27 08:18:11 +0000 (Fri, 27 Jul 2012)
Log Message:
-----------
copy support for mask datablocks
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_mask.h
trunk/blender/source/blender/blenkernel/intern/library.c
trunk/blender/source/blender/blenkernel/intern/mask.c
Modified: trunk/blender/source/blender/blenkernel/BKE_mask.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mask.h 2012-07-27 03:10:45 UTC (rev 49274)
+++ trunk/blender/source/blender/blenkernel/BKE_mask.h 2012-07-27 08:18:11 UTC (rev 49275)
@@ -122,6 +122,8 @@
/* general */
struct Mask *BKE_mask_new(const char *name);
+struct Mask *BKE_mask_copy_nolib(struct Mask *mask);
+struct Mask *BKE_mask_copy(struct Mask *mask);
void BKE_mask_free(struct Mask *mask);
void BKE_mask_unlink(struct Main *bmain, struct Mask *mask);
Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c 2012-07-27 03:10:45 UTC (rev 49274)
+++ trunk/blender/source/blender/blenkernel/intern/library.c 2012-07-27 08:18:11 UTC (rev 49275)
@@ -360,6 +360,8 @@
return 0; /* can't be copied from here */
case ID_GD:
return 0; /* not implemented */
+ case ID_MSK:
+ if (!test) *newid = (ID *)BKE_mask_copy((Mask *)id);
}
return 0;
Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c 2012-07-27 03:10:45 UTC (rev 49274)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c 2012-07-27 08:18:11 UTC (rev 49275)
@@ -1330,6 +1330,49 @@
return mask;
}
+Mask *BKE_mask_copy_nolib(Mask *mask)
+{
+ Mask *mask_new;
+
+ mask_new = MEM_dupallocN(mask);
+
+ /*take care here! - we may want to copy anim data */
+ mask_new->adt = NULL;
+
+ mask_new->masklayers.first = NULL;
+ mask_new->masklayers.last = NULL;
+
+ BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers);
+
+ /* enable fake user by default */
+ if (!(mask_new->id.flag & LIB_FAKEUSER)) {
+ mask_new->id.flag |= LIB_FAKEUSER;
+ mask_new->id.us++;
+ }
+
+ return mask_new;
+}
+
+Mask *BKE_mask_copy(Mask *mask)
+{
+ Mask *mask_new;
+
+ mask_new = BKE_libblock_copy(&mask->id);
+
+ mask_new->masklayers.first = NULL;
+ mask_new->masklayers.last = NULL;
+
+ BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers);
+
+ /* enable fake user by default */
+ if (!(mask_new->id.flag & LIB_FAKEUSER)) {
+ mask_new->id.flag |= LIB_FAKEUSER;
+ mask_new->id.us++;
+ }
+
+ return mask_new;
+}
+
void BKE_mask_point_free(MaskSplinePoint *point)
{
if (point->uw)
More information about the Bf-blender-cvs
mailing list