[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47818] trunk/blender/source/blender: mango request
Campbell Barton
ideasman42 at gmail.com
Wed Jun 13 10:36:01 CEST 2012
Revision: 47818
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47818
Author: campbellbarton
Date: 2012-06-13 08:35:50 +0000 (Wed, 13 Jun 2012)
Log Message:
-----------
mango request
- highlight active mask layers.
- remove keyframes when all layer data is removed.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_mask.h
trunk/blender/source/blender/blenkernel/intern/mask.c
trunk/blender/source/blender/editors/mask/mask_ops.c
Modified: trunk/blender/source/blender/blenkernel/BKE_mask.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mask.h 2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/blenkernel/BKE_mask.h 2012-06-13 08:35:50 UTC (rev 47818)
@@ -48,6 +48,7 @@
void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay);
void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay);
+void BKE_mask_layer_free_shapes(struct MaskLayer *masklay);
void BKE_mask_layer_free(struct MaskLayer *masklay);
void BKE_mask_spline_free(struct MaskSpline *spline);
struct MaskSpline *BKE_mask_spline_copy(struct MaskSpline *spline);
Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c 2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c 2012-06-13 08:35:50 UTC (rev 47818)
@@ -1029,10 +1029,27 @@
MEM_freeN(masklay_shape);
}
+/** \brief Free all animation keys for a mask layer
+ */
+void BKE_mask_layer_free_shapes(MaskLayer *masklay)
+{
+ MaskLayerShape *masklay_shape;
+
+ /* free animation data */
+ masklay_shape = masklay->splines_shapes.first;
+ while (masklay_shape) {
+ MaskLayerShape *next_masklay_shape = masklay_shape->next;
+
+ BLI_remlink(&masklay->splines_shapes, masklay_shape);
+ BKE_mask_layer_shape_free(masklay_shape);
+
+ masklay_shape = next_masklay_shape;
+ }
+}
+
void BKE_mask_layer_free(MaskLayer *masklay)
{
MaskSpline *spline;
- MaskLayerShape *masklay_shape;
/* free splines */
spline = masklay->splines.first;
@@ -1046,16 +1063,8 @@
}
/* free animation data */
- masklay_shape = masklay->splines_shapes.first;
- while (masklay_shape) {
- MaskLayerShape *next_masklay_shape = masklay_shape->next;
+ BKE_mask_layer_free_shapes(masklay);
- BLI_remlink(&masklay->splines_shapes, masklay_shape);
- BKE_mask_layer_shape_free(masklay_shape);
-
- masklay_shape = next_masklay_shape;
- }
-
MEM_freeN(masklay);
}
Modified: trunk/blender/source/blender/editors/mask/mask_ops.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_ops.c 2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/editors/mask/mask_ops.c 2012-06-13 08:35:50 UTC (rev 47818)
@@ -957,6 +957,12 @@
spline = next_spline;
}
+
+ /* not essential but confuses users when there are keys with no data!
+ * assume if they delete all data from the layer they also dont care about keys */
+ if (masklay->splines.first == NULL) {
+ BKE_mask_layer_free_shapes(masklay);
+ }
}
/* TODO: only update edited splines */
More information about the Bf-blender-cvs
mailing list