[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49281] branches/soc-2011-tomato: svn merge ^/trunk/blender -r49263:49280
Campbell Barton
ideasman42 at gmail.com
Fri Jul 27 12:27:28 CEST 2012
Revision: 49281
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49281
Author: campbellbarton
Date: 2012-07-27 10:27:28 +0000 (Fri, 27 Jul 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r49263:49280
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49263
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/BKE_blender.h
branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
branches/soc-2011-tomato/source/blender/blenkernel/intern/library.c
branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
branches/soc-2011-tomato/source/blender/blenkernel/intern/screen.c
branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_MaskNode.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_MaskOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_MaskOperation.h
branches/soc-2011-tomato/source/blender/editors/include/ED_clip.h
branches/soc-2011-tomato/source/blender/editors/include/ED_mask.h
branches/soc-2011-tomato/source/blender/editors/interface/interface_templates.c
branches/soc-2011-tomato/source/blender/editors/mask/mask_add.c
branches/soc-2011-tomato/source/blender/editors/mask/mask_draw.c
branches/soc-2011-tomato/source/blender/editors/mask/mask_edit.c
branches/soc-2011-tomato/source/blender/editors/mask/mask_intern.h
branches/soc-2011-tomato/source/blender/editors/mask/mask_ops.c
branches/soc-2011-tomato/source/blender/editors/mask/mask_select.c
branches/soc-2011-tomato/source/blender/editors/render/render_opengl.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_graph_ops.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_ops.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_utils.c
branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_select.c
branches/soc-2011-tomato/source/blender/editors/space_console/console_draw.c
branches/soc-2011-tomato/source/blender/editors/space_file/file_ops.c
branches/soc-2011-tomato/source/blender/editors/space_file/filesel.c
branches/soc-2011-tomato/source/blender/editors/space_image/image_buttons.c
branches/soc-2011-tomato/source/blender/editors/space_image/space_image.c
branches/soc-2011-tomato/source/blender/editors/space_info/info_draw.c
branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c
branches/soc-2011-tomato/source/blender/editors/space_node/space_node.c
branches/soc-2011-tomato/source/blender/editors/space_sequencer/sequencer_draw.c
branches/soc-2011-tomato/source/blender/editors/space_view3d/space_view3d.c
branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_edit.c
branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_fly.c
branches/soc-2011-tomato/source/blender/editors/transform/transform.c
branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c
branches/soc-2011-tomato/source/blender/makesdna/DNA_node_types.h
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_mask.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-49263
+ /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-49280
Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_blender.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_blender.h 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_blender.h 2012-07-27 10:27:28 UTC (rev 49281)
@@ -42,7 +42,7 @@
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 263
-#define BLENDER_SUBVERSION 16
+#define BLENDER_SUBVERSION 17
#define BLENDER_MINVERSION 250
#define BLENDER_MINSUBVERSION 0
Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h 2012-07-27 10:27:28 UTC (rev 49281)
@@ -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: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h 2012-07-27 10:27:28 UTC (rev 49281)
@@ -110,6 +110,8 @@
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2]);
+void BKE_tracking_marker_get_subframe_position(struct MovieTrackingTrack *track, float framenr, float pos[2]);
+
/* **** Object **** */
struct MovieTrackingObject *BKE_tracking_object_add(struct MovieTracking *tracking, const char *name);
void BKE_tracking_object_delete(struct MovieTracking *tracking, struct MovieTrackingObject *object);
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/library.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/library.c 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/library.c 2012-07-27 10:27:28 UTC (rev 49281)
@@ -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: branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-07-27 10:27:28 UTC (rev 49281)
@@ -203,28 +203,48 @@
BLI_uniquename(&mask->masklayers, masklay, "MaskLayer", '.', offsetof(MaskLayer, name), sizeof(masklay->name));
}
-MaskLayer *BKE_mask_layer_copy(MaskLayer *layer)
+MaskLayer *BKE_mask_layer_copy(MaskLayer *masklay)
{
- MaskLayer *layer_new;
+ MaskLayer *masklay_new;
MaskSpline *spline;
- layer_new = MEM_callocN(sizeof(MaskLayer), "new mask layer");
+ masklay_new = MEM_callocN(sizeof(MaskLayer), "new mask layer");
- BLI_strncpy(layer_new->name, layer->name, sizeof(layer_new->name));
+ BLI_strncpy(masklay_new->name, masklay->name, sizeof(masklay_new->name));
- layer_new->alpha = layer->alpha;
- layer_new->blend = layer->blend;
- layer_new->blend_flag = layer->blend_flag;
- layer_new->flag = layer->flag;
- layer_new->restrictflag = layer->restrictflag;
+ masklay_new->alpha = masklay->alpha;
+ masklay_new->blend = masklay->blend;
+ masklay_new->blend_flag = masklay->blend_flag;
+ masklay_new->flag = masklay->flag;
+ masklay_new->restrictflag = masklay->restrictflag;
- for (spline = layer->splines.first; spline; spline = spline->next) {
+ for (spline = masklay->splines.first; spline; spline = spline->next) {
MaskSpline *spline_new = BKE_mask_spline_copy(spline);
- BLI_addtail(&layer_new->splines, spline_new);
+ BLI_addtail(&masklay_new->splines, spline_new);
}
- return layer_new;
+ /* correct animation */
+ if (masklay->splines_shapes.first) {
+ MaskLayerShape *masklay_shape;
+ MaskLayerShape *masklay_shape_new;
+
+ for (masklay_shape = masklay->splines_shapes.first;
+ masklay_shape;
+ masklay_shape = masklay_shape->next)
+ {
+ masklay_shape_new = MEM_callocN(sizeof(MaskLayerShape), "new mask layer shape");
+
+ masklay_shape_new->data = MEM_dupallocN(masklay_shape->data);
+ masklay_shape_new->tot_vert = masklay_shape->tot_vert;
+ masklay_shape_new->flag = masklay_shape->flag;
+ masklay_shape_new->frame = masklay_shape->frame;
+
+ BLI_addtail(&masklay_new->splines_shapes, masklay_shape_new);
+ }
+ }
+
+ return masklay_new;
}
void BKE_mask_layer_copy_list(ListBase *masklayers_new, ListBase *masklayers)
@@ -1345,6 +1365,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)
@@ -1621,9 +1684,8 @@
user.framenr = ctime;
if (track) {
- MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_framenr);
float marker_pos_ofs[2];
- add_v2_v2v2(marker_pos_ofs, marker->pos, track->offset);
+ BKE_tracking_marker_get_subframe_position(track, clip_framenr, marker_pos_ofs);
BKE_mask_coord_from_movieclip(clip, &user, r_co, marker_pos_ofs);
return TRUE;
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/screen.c 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/screen.c 2012-07-27 10:27:28 UTC (rev 49281)
@@ -356,7 +356,7 @@
/* note, using this function is generally a last resort, you really want to be
* using the context when you can - campbell
* -1 for any type */
-struct ScrArea *BKE_screen_find_big_area(struct bScreen *sc, const int spacetype, const short min)
+ScrArea *BKE_screen_find_big_area(bScreen *sc, const int spacetype, const short min)
{
ScrArea *sa, *big = NULL;
int size, maxsize = 0;
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2012-07-27 10:20:36 UTC (rev 49280)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2012-07-27 10:27:28 UTC (rev 49281)
@@ -916,7 +916,7 @@
BKE_tracking_track_flag_clear(track, area, SELECT);
}
-/*********************** Marker *************************/
+/*********************** Marker *************************/
MovieTrackingMarker *BKE_tracking_marker_insert(MovieTrackingTrack *track, MovieTrackingMarker *marker)
{
@@ -1133,6 +1133,36 @@
DO_MINMAX2(marker->pattern_corners[3], min, max);
}
+void BKE_tracking_marker_get_subframe_position(MovieTrackingTrack *track, float framenr, float pos[2])
+{
+ MovieTrackingMarker *marker = BKE_tracking_marker_get(track, (int) framenr);
+ MovieTrackingMarker *marker_last = track->markers + (track->markersnr - 1);
+
+ if (marker != marker_last) {
+ MovieTrackingMarker *marker_next = marker + 1;
+
+ if (marker_next->framenr == marker->framenr + 1) {
+ /* currently only do subframing inside tracked ranges, do not extrapolate tracked segments
+ * could be changed when / if mask parent would be interpolating position in-between
+ * tracked segments
+ */
+
+ float fac = (framenr - (int) framenr) / (marker_next->framenr - marker->framenr);
+
+ interp_v2_v2v2(pos, marker->pos, marker_next->pos, fac);
+ }
+ else {
+ copy_v2_v2(pos, marker->pos);
+ }
+ }
+ else {
+ copy_v2_v2(pos, marker->pos);
+ }
+
+ /* currently track offset is always wanted to be applied here, could be made an option later */
+ add_v2_v2(pos, track->offset);
+}
+
/*********************** Object *************************/
MovieTrackingObject *BKE_tracking_object_add(MovieTracking *tracking, const char *name)
Modified: branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2012-07-27 10:20:36 UTC (rev 49280)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list