Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-06-25 20:36:22 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-06-25 20:36:22 +0400
commitc41b91f8c2b62e9e64848c996505988505500672 (patch)
treec78fa1fe8f0d3a0232597ea594960700e72cd268 /source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
parent1080c43d1cb2fb9e12823a2000786568ff26f90b (diff)
Ignore disabled markers when building keying screen.
Diffstat (limited to 'source/blender/compositor/operations/COM_KeyingScreenOperation.cpp')
-rw-r--r--source/blender/compositor/operations/COM_KeyingScreenOperation.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
index 6fd20b477e7..c75762a3f86 100644
--- a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
@@ -101,7 +101,14 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
else
tracksbase = BKE_tracking_get_active_tracks(tracking);
- sites_total = BLI_countlist(tracksbase);
+ /* count sites */
+ for (track = (MovieTrackingTrack *) tracksbase->first, sites_total = 0; track; track = track->next) {
+ MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_frame);
+
+ if ((marker->flag & MARKER_DISABLED) == 0) {
+ sites_total++;
+ }
+ }
if (!sites_total)
return NULL;
@@ -117,11 +124,17 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
sites = (VoronoiSite *) MEM_callocN(sizeof(VoronoiSite) * sites_total, "keyingscreen voronoi sites");
track = (MovieTrackingTrack *) tracksbase->first;
for (track = (MovieTrackingTrack *) tracksbase->first, i = 0; track; track = track->next, i++) {
- VoronoiSite *site = &sites[i];
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_frame);
- ImBuf *pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, TRUE, FALSE);
+ VoronoiSite *site;
+ ImBuf *pattern_ibuf;
int j;
+ if (marker->flag & MARKER_DISABLED)
+ continue;
+
+ site = &sites[i];
+ pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, TRUE, FALSE);
+
zero_v3(site->color);
for (j = 0; j < pattern_ibuf->x * pattern_ibuf->y; j++) {
if (pattern_ibuf->rect_float) {