[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