[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