summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-07-28 09:04:43 +0100
committerCarl Hetherington <cth@carlh.net>2013-07-28 09:04:43 +0100
commit06900ef196288b2bf9b9123f20d6561d5c8fd70b (patch)
tree0aa192a44d2572051bbc091d00ae68619f25776b /src/lib
parente899b255083acafeac601253a33e109b30285707 (diff)
A couple of 3D fixes.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/writer.cc27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 4c8a36597..0d66df3e3 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -151,8 +151,15 @@ Writer::fake_write (int frame, Eyes eyes)
qi.type = QueueItem::FAKE;
qi.size = info.size;
qi.frame = frame;
- qi.eyes = eyes;
- _queue.push_back (qi);
+ if (_film->three_d() && eyes == EYES_BOTH) {
+ qi.eyes = EYES_LEFT;
+ _queue.push_back (qi);
+ qi.eyes = EYES_RIGHT;
+ _queue.push_back (qi);
+ } else {
+ qi.eyes = eyes;
+ _queue.push_back (qi);
+ }
_condition.notify_all ();
}
@@ -398,9 +405,15 @@ Writer::repeat (int f, Eyes e)
QueueItem qi;
qi.type = QueueItem::REPEAT;
qi.frame = f;
- qi.eyes = e;
-
- _queue.push_back (qi);
+ if (_film->three_d() && e == EYES_BOTH) {
+ qi.eyes = EYES_LEFT;
+ _queue.push_back (qi);
+ qi.eyes = EYES_RIGHT;
+ _queue.push_back (qi);
+ } else {
+ qi.eyes = e;
+ _queue.push_back (qi);
+ }
_condition.notify_all ();
}
@@ -487,8 +500,8 @@ operator< (QueueItem const & a, QueueItem const & b)
if (a.frame != b.frame) {
return a.frame < b.frame;
}
-
- return a.eyes == EYES_LEFT && b.eyes == EYES_RIGHT;
+
+ return static_cast<int> (a.eyes) < static_cast<int> (b.eyes);
}
bool