diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-11-11 22:15:47 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-11-11 22:17:10 +0100 |
| commit | 5246249a23b244fc85f45f686abb4922122a1e41 (patch) | |
| tree | 5d7934c84f2f50981aed71252c4f8c7d8043a685 /src/wx/film_viewer.cc | |
| parent | 10efba9f8bab64be330908db01e225e4b7b6836d (diff) | |
Account for DPI scale factors when calculating some sizes (#2118).carsten-player-debug
Diffstat (limited to 'src/wx/film_viewer.cc')
| -rw-r--r-- | src/wx/film_viewer.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index e678c6aa3..6366f1bdd 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -283,17 +283,21 @@ FilmViewer::calculate_sizes () auto const container = _film->container (); - auto const view_ratio = float(_video_view->get()->GetSize().x) / _video_view->get()->GetSize().y; + auto const dpi_scale_factor = _video_view->get()->GetDPIScaleFactor(); + 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); } |
