[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47612] branches/soc-2011-tomato: svn merge ^/trunk/blender -r47603:47611

Campbell Barton ideasman42 at gmail.com
Fri Jun 8 16:49:08 CEST 2012


Revision: 47612
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47612
Author:   campbellbarton
Date:     2012-06-08 14:49:07 +0000 (Fri, 08 Jun 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r47603:47611

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47603

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/sequencer.c
    branches/soc-2011-tomato/source/blender/editors/animation/anim_channels_defines.c
    branches/soc-2011-tomato/source/blender/editors/animation/anim_channels_edit.c
    branches/soc-2011-tomato/source/blender/editors/animation/anim_filter.c
    branches/soc-2011-tomato/source/blender/editors/animation/keyframes_draw.c
    branches/soc-2011-tomato/source/blender/editors/include/ED_anim_api.h
    branches/soc-2011-tomato/source/blender/editors/include/ED_gpencil.h
    branches/soc-2011-tomato/source/blender/editors/include/ED_keyframes_draw.h
    branches/soc-2011-tomato/source/blender/editors/include/ED_mask.h
    branches/soc-2011-tomato/source/blender/editors/mask/CMakeLists.txt
    branches/soc-2011-tomato/source/blender/editors/mask/mask_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_action/action_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_action/action_edit.c
    branches/soc-2011-tomato/source/blender/editors/space_action/action_select.c
    branches/soc-2011-tomato/source/blender/editors/space_action/space_action.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform.h
    branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform_generics.c
    branches/soc-2011-tomato/source/blender/gpu/intern/gpu_draw.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_action_types.h
    branches/soc-2011-tomato/source/blender/makesdna/DNA_mask_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_mask.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c

Added Paths:
-----------
    branches/soc-2011-tomato/source/blender/editors/mask/mask_editaction.c

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-47603
   + /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-47611

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h	2012-06-08 14:46:17 UTC (rev 47611)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h	2012-06-08 14:49:07 UTC (rev 47612)
@@ -120,7 +120,7 @@
 void BKE_mask_update_display(struct Mask *mask, float ctime);
 
 void BKE_mask_evaluate_all_masks(struct Main *bmain, float ctime, const int do_newframe);
-void BKE_mask_evaluate(struct Mask *mask, float ctime, const int do_newframe);
+void BKE_mask_evaluate(struct Mask *mask, const float ctime, const int do_newframe);
 void BKE_mask_update_scene(struct Main *bmain, struct Scene *scene, const int do_newframe);
 void BKE_mask_parent_init(struct MaskParent *parent);
 void BKE_mask_calc_handle_adjacent_interp(struct MaskSpline *spline, struct MaskSplinePoint *point, const float u);
@@ -145,12 +145,13 @@
                                          struct MaskLayerShape *masklay_shape_b,
                                          const float fac);
 struct MaskLayerShape *BKE_mask_layer_shape_find_frame(struct MaskLayer *masklay, const int frame);
-int BKE_mask_layer_shape_find_frame_range(struct MaskLayer *masklay, const int frame,
+int BKE_mask_layer_shape_find_frame_range(struct MaskLayer *masklay, const float frame,
                                           struct MaskLayerShape **r_masklay_shape_a,
                                           struct MaskLayerShape **r_masklay_shape_b);
 struct MaskLayerShape *BKE_mask_layer_shape_alloc(struct MaskLayer *masklay, const int frame);
 void BKE_mask_layer_shape_free(struct MaskLayerShape *masklay_shape);
 struct MaskLayerShape *BKE_mask_layer_shape_varify_frame(struct MaskLayer *masklay, const int frame);
+struct MaskLayerShape *BKE_mask_layer_shape_duplicate(struct MaskLayerShape *masklay_shape);
 void BKE_mask_layer_shape_unlink(struct MaskLayer *masklay, struct MaskLayerShape *masklay_shape);
 void BKE_mask_layer_shape_sort(struct MaskLayer *masklay);
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c	2012-06-08 14:46:17 UTC (rev 47611)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c	2012-06-08 14:49:07 UTC (rev 47612)
@@ -1463,7 +1463,7 @@
 	}
 }
 
-void BKE_mask_evaluate(Mask *mask, float ctime, const int do_newframe)
+void BKE_mask_evaluate(Mask *mask, const float ctime, const int do_newframe)
 {
 	MaskLayer *masklay;
 
@@ -1475,7 +1475,7 @@
 			MaskLayerShape *masklay_shape_b;
 			int found;
 
-			if ((found = BKE_mask_layer_shape_find_frame_range(masklay, (int)ctime,
+			if ((found = BKE_mask_layer_shape_find_frame_range(masklay, ctime,
 			                                                   &masklay_shape_a, &masklay_shape_b)))
 			{
 				if (found == 1) {
@@ -1750,7 +1750,7 @@
 }
 
 /* when returning 2 - the frame isnt found but before/after frames are */
-int BKE_mask_layer_shape_find_frame_range(MaskLayer *masklay, const int frame,
+int BKE_mask_layer_shape_find_frame_range(MaskLayer *masklay, const float frame,
                                           MaskLayerShape **r_masklay_shape_a,
                                           MaskLayerShape **r_masklay_shape_b)
 {
@@ -1820,6 +1820,19 @@
 	return masklay_shape;
 }
 
+MaskLayerShape *BKE_mask_layer_shape_duplicate(MaskLayerShape *masklay_shape)
+{
+	MaskLayerShape *masklay_shape_copy;
+
+	masklay_shape_copy = MEM_dupallocN(masklay_shape);
+
+	if (LIKELY(masklay_shape_copy->data)) {
+		masklay_shape_copy->data = MEM_dupallocN(masklay_shape_copy->data);
+	}
+
+	return masklay_shape_copy;
+}
+
 void BKE_mask_layer_shape_unlink(MaskLayer *masklay, MaskLayerShape *masklay_shape)
 {
 	BLI_remlink(&masklay->splines_shapes, masklay_shape);

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/sequencer.c	2012-06-08 14:46:17 UTC (rev 47611)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/sequencer.c	2012-06-08 14:49:07 UTC (rev 47612)
@@ -2067,7 +2067,7 @@
 		return NULL;
 	}
 
-	BKE_mask_evaluate(seq->mask, (int)(seq->mask->sfra + nr), TRUE);
+	BKE_mask_evaluate(seq->mask, seq->mask->sfra + nr, TRUE);
 
 	maskbuf = MEM_callocN(sizeof(float) * context.rectx * context.recty, __func__);
 

Modified: branches/soc-2011-tomato/source/blender/editors/animation/anim_channels_defines.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/animation/anim_channels_defines.c	2012-06-08 14:46:17 UTC (rev 47611)
+++ branches/soc-2011-tomato/source/blender/editors/animation/anim_channels_defines.c	2012-06-08 14:49:07 UTC (rev 47612)
@@ -54,6 +54,7 @@
 #include "DNA_world_types.h"
 #include "DNA_gpencil_types.h"
 #include "DNA_speaker_types.h"
+#include "DNA_mask_types.h"
 
 #include "RNA_access.h"
 
@@ -2516,6 +2517,172 @@
 	acf_gpl_setting_ptr             /* pointer for setting */
 };
 
+
+/* Mask Datablock ------------------------------------------- */
+
+/* get backdrop color for mask datablock widget */
+static void acf_mask_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float r_color[3])
+{
+	/* these are ID-blocks, but not exactly standalone... */
+	UI_GetThemeColorShade3fv(TH_DOPESHEET_CHANNELSUBOB, 20, r_color);
+}
+
+// TODO: just get this from RNA?
+static int acf_mask_icon(bAnimListElem *UNUSED(ale))
+{
+	return ICON_GREASEPENCIL; // MASK_TODO - need real icon
+}
+
+/* check if some setting exists for this channel */
+static short acf_mask_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
+{
+	switch (setting) {
+		/* only select and expand supported */
+		case ACHANNEL_SETTING_SELECT:
+		case ACHANNEL_SETTING_EXPAND:
+			return 1;
+
+		default:
+			return 0;
+	}
+}
+
+/* get the appropriate flag(s) for the setting when it is valid  */
+static int acf_mask_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
+{
+	/* clear extra return data first */
+	*neg = 0;
+
+	switch (setting) {
+		case ACHANNEL_SETTING_SELECT: /* selected */
+			return AGRP_SELECTED;
+
+		case ACHANNEL_SETTING_EXPAND: /* expanded */
+			return MASK_ANIMF_EXPAND;
+	}
+
+	/* this shouldn't happen */
+	return 0;
+}
+
+/* get pointer to the setting */
+static void *acf_mask_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
+{
+	Mask *mask = (Mask *)ale->data;
+
+	/* all flags are just in mask->flag for now... */
+	return GET_ACF_FLAG_PTR(mask->flag, type);
+}
+
+/* mask datablock type define */
+static bAnimChannelType ACF_MASKDATA =
+{
+	"Mask Datablock",            /* type name */
+
+	acf_mask_color,                  /* backdrop color */
+	acf_group_backdrop,             /* backdrop */
+	acf_generic_indention_0,        /* indent level */
+	acf_generic_group_offset,       /* offset */
+
+	acf_generic_idblock_name,       /* name */
+	acf_generic_idfill_nameprop,    /* name prop */
+	acf_mask_icon,                   /* icon */
+
+	acf_mask_setting_valid,          /* has setting */
+	acf_mask_setting_flag,           /* flag for setting */
+	acf_mask_setting_ptr             /* pointer for setting */
+};
+
+/* Mask Layer ------------------------------------------- */
+
+/* name for grease pencil layer entries */
+static void acf_masklay_name(bAnimListElem *ale, char *name)
+{
+	MaskLayer *masklay = (MaskLayer *)ale->data;
+
+	if (masklay && name)
+		BLI_strncpy(name, masklay->name, ANIM_CHAN_NAME_SIZE);
+}
+
+/* name property for grease pencil layer entries */
+static short acf_masklay_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop)
+{
+	if (ale->data) {
+		RNA_pointer_create(ale->id, &RNA_MaskLayer, ale->data, ptr);
+		*prop = RNA_struct_name_property(ptr->type);
+
+		return (*prop != NULL);
+	}
+
+	return 0;
+}
+
+/* check if some setting exists for this channel */
+static short acf_masklay_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
+{
+	switch (setting) {
+		/* unsupported */
+		case ACHANNEL_SETTING_EXPAND: /* mask layers are more like F-Curves than groups */
+		case ACHANNEL_SETTING_VISIBLE: /* graph editor only */
+			return 0;
+
+		/* always available */
+		default:
+			return 1;
+	}
+}
+
+/* get the appropriate flag(s) for the setting when it is valid  */
+static int acf_masklay_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
+{
+	/* clear extra return data first */
+	*neg = 0;
+
+	switch (setting) {
+		case ACHANNEL_SETTING_SELECT: /* selected */
+			return MASK_LAYERFLAG_SELECT;
+
+//		case ACHANNEL_SETTING_MUTE: /* muted */
+//			return GP_LAYER_HIDE;
+
+		case ACHANNEL_SETTING_PROTECT: /* protected */
+			// *neg = 1; - if we change this to edtiability
+			return MASK_LAYERFLAG_LOCKED;
+
+		default: /* unsupported */
+			return 0;
+	}
+}
+
+/* get pointer to the setting */
+static void *acf_masklay_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
+{
+	MaskLayer *masklay = (MaskLayer *)ale->data;
+
+	/* all flags are just in agrp->flag for now... */
+	return GET_ACF_FLAG_PTR(masklay->flag, type);
+}
+
+/* grease pencil layer type define */
+static bAnimChannelType ACF_MASKLAYER =
+{
+	"Mask Layer",                /* type name */
+
+	acf_generic_channel_color,      /* backdrop color */
+	acf_generic_channel_backdrop,   /* backdrop */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list