Move _inter_position out of FilmViewer.
[dcpomatic.git] / src / wx / gl_video_view.cc
index 55c6cc9699f45f08f3a069efff293b7020c68d69..93a53b4111a1472113c7501041efc69942cee950 100644 (file)
@@ -140,7 +140,7 @@ GLVideoView::update ()
 }
 
 void
-GLVideoView::draw ()
+GLVideoView::draw (Position<int> inter_position)
 {
        glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        check_gl_error ("glClear");
@@ -232,7 +232,6 @@ GLVideoView::draw ()
        if (_viewer->outline_content()) {
                glColor3ub (255, 0, 0);
                glBegin (GL_LINE_LOOP);
-               Position<int> inter_position = _viewer->inter_position ();
                dcp::Size inter_size = _viewer->inter_size ();
                glVertex2f (inter_position.x, inter_position.y + (canvas_size.GetHeight() - out_size.height) / 2);
                glVertex2f (inter_position.x + inter_size.width, inter_position.y + (canvas_size.GetHeight() - out_size.height) / 2);
@@ -305,6 +304,7 @@ try
                _one_shot = false;
                lm.unlock ();
 
+               Position<int> inter_position;
                if (length() != dcpomatic::DCPTime()) {
                        dcpomatic::DCPTime const next = position() + one_video_frame();
 
@@ -316,8 +316,9 @@ try
 
                        get_next_frame (false);
                        set_image (player_video().first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true));
+                       inter_position = player_video().first->inter_position();
                }
-               draw ();
+               draw (inter_position);
 
                while (time_until_next_frame() < 5) {
                        get_next_frame (true);