Fix the build for older macOS.
[dcpomatic.git] / src / wx / film_viewer.cc
index e678c6aa3045cc9057d29c77ecd6cafbe2f69cbe..392c68d70610444ea62ca085855c8080758782b5 100644 (file)
@@ -283,17 +283,25 @@ FilmViewer::calculate_sizes ()
 
        auto const container = _film->container ();
 
-       auto const view_ratio = float(_video_view->get()->GetSize().x) / _video_view->get()->GetSize().y;
+#if wxCHECK_VERSION(3,1,0)
+       auto const dpi_scale_factor = _video_view->get()->GetDPIScaleFactor();
+#else
+       auto const dpi_scale_factor = 1;
+#endif
+       int const video_view_width = std::round(_video_view->get()->GetSize().x * dpi_scale_factor);
+       int const video_view_height = std::round(_video_view->get()->GetSize().y * dpi_scale_factor);
+
+       auto const view_ratio = float(video_view_width) / video_view_height;
        auto const film_ratio = container ? container->ratio () : 1.78;
 
        dcp::Size out_size;
        if (view_ratio < film_ratio) {
                /* panel is less widscreen than the film; clamp width */
-               out_size.width = _video_view->get()->GetSize().x;
+               out_size.width = video_view_width;
                out_size.height = lrintf (out_size.width / film_ratio);
        } else {
                /* panel is more widescreen than the film; clamp height */
-               out_size.height = _video_view->get()->GetSize().y;
+               out_size.height = video_view_height;
                out_size.width = lrintf (out_size.height * film_ratio);
        }
 
@@ -371,7 +379,7 @@ FilmViewer::start ()
        /* Calling start() below may directly result in Stopped being emitted, and if that
         * happens we want it to come after the Started signal, so do that first.
         */
-       Started (position());
+       Started ();
        _video_view->start ();
 }
 
@@ -390,7 +398,7 @@ FilmViewer::stop ()
 
        _playing = false;
        _video_view->stop ();
-       Stopped (position());
+       Stopped ();
 
        _video_view->rethrow ();
        return true;