[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47329] branches/soc-2011-tomato/source/ blender: Ignore track' s disabled channels when requesting for pattern used in keying screen node

Sergey Sharybin sergey.vfx at gmail.com
Fri Jun 1 16:42:55 CEST 2012


Revision: 47329
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47329
Author:   nazgul
Date:     2012-06-01 14:42:55 +0000 (Fri, 01 Jun 2012)
Log Message:
-----------
Ignore track's disabled channels when requesting for pattern used in keying screen node

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
    branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2012-06-01 14:42:21 UTC (rev 47328)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2012-06-01 14:42:55 UTC (rev 47329)
@@ -74,6 +74,8 @@
 struct ImBuf *BKE_tracking_get_pattern_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track,
                                              struct MovieTrackingMarker *marker, int margin, int anchored,
                                              float pos[2], int origin[2]);
+struct ImBuf *BKE_tracking_get_pattern_color_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track,
+                                                   struct MovieTrackingMarker *marker, int anchored);
 struct ImBuf *BKE_tracking_get_search_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track,
                                             struct MovieTrackingMarker *marker);
 struct ImBuf *BKE_tracking_track_mask_get(struct MovieTracking *tracking, struct MovieTrackingTrack *track,

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2012-06-01 14:42:21 UTC (rev 47328)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2012-06-01 14:42:55 UTC (rev 47329)
@@ -1177,7 +1177,8 @@
 }
 
 static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker,
-                             float min[2], float max[2], int margin, int anchored, float pos[2], int origin[2])
+                             float min[2], float max[2], int margin, int anchored,
+							 int grayscale, float pos[2], int origin[2])
 {
 	ImBuf *tmpibuf;
 	int x, y;
@@ -1223,12 +1224,14 @@
 		origin[1] = y1 - margin;
 	}
 
-	if ((track->flag & TRACK_PREVIEW_GRAYSCALE) ||
-	   (track->flag & TRACK_DISABLE_RED)       ||
-	   (track->flag & TRACK_DISABLE_GREEN)     ||
-	   (track->flag & TRACK_DISABLE_BLUE))
-	{
-		disable_imbuf_channels(tmpibuf, track, TRUE /* grayscale */);
+	if (grayscale) {
+		if ((track->flag & TRACK_PREVIEW_GRAYSCALE) ||
+		    (track->flag & TRACK_DISABLE_RED)       ||
+		    (track->flag & TRACK_DISABLE_GREEN)     ||
+		    (track->flag & TRACK_DISABLE_BLUE))
+		{
+			disable_imbuf_channels(tmpibuf, track, TRUE /* grayscale */);
+		}
 	}
 
 	return tmpibuf;
@@ -1244,9 +1247,20 @@
 	 */
 	BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
 
-	return get_area_imbuf(ibuf, track, marker, pat_min, pat_max, margin, anchored, pos, origin);
+	return get_area_imbuf(ibuf, track, marker, pat_min, pat_max, margin, anchored, TRUE, pos, origin);
 }
 
+ImBuf *BKE_tracking_get_pattern_color_imbuf(ImBuf *ibuf, MovieTrackingTrack *track,
+                                            MovieTrackingMarker *marker, int anchored)
+{
+	float pat_min[2], pat_max[2];
+
+	/* see comment above */
+	BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
+
+	return get_area_imbuf(ibuf, track, marker, pat_min, pat_max, 0, anchored, FALSE, NULL, NULL);
+}
+
 ImBuf *BKE_tracking_get_search_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker)
 {
 	ImBuf *searchibuf;

Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp	2012-06-01 14:42:21 UTC (rev 47328)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp	2012-06-01 14:42:55 UTC (rev 47329)
@@ -116,7 +116,7 @@
 	while (track) {
 		VoronoiSite *site = &sites[i];
 		MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenumber);
-		ImBuf *pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, 0, TRUE, NULL, NULL);
+		ImBuf *pattern_ibuf = BKE_tracking_get_pattern_color_imbuf(ibuf, track, marker, TRUE);
 		int j;
 
 		zero_v3(site->color);

Modified: branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c
===================================================================
--- branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c	2012-06-01 14:42:21 UTC (rev 47328)
+++ branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c	2012-06-01 14:42:55 UTC (rev 47329)
@@ -91,7 +91,7 @@
 	while (track) {
 		VoronoiSite *site = &sites[i];
 		MovieTrackingMarker *marker = BKE_tracking_get_marker(track, rd->cfra);
-		ImBuf *pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, 0, FALSE, NULL, NULL);
+		ImBuf *pattern_ibuf = BKE_tracking_get_pattern_color_imbuf(ibuf, track, marker, TRUE);
 		int j;
 
 		zero_v3(site->color);




More information about the Bf-blender-cvs mailing list