diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-28 09:04:43 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-28 09:04:43 +0100 |
| commit | 06900ef196288b2bf9b9123f20d6561d5c8fd70b (patch) | |
| tree | 0aa192a44d2572051bbc091d00ae68619f25776b /src/lib | |
| parent | e899b255083acafeac601253a33e109b30285707 (diff) | |
A couple of 3D fixes.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/writer.cc | 27 |
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 |
