diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-11-07 00:42:45 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-11-07 00:42:45 +0000 |
| commit | a3ec24ce1952a3bfd556d30b50cee79cc57436cb (patch) | |
| tree | d10ea5ac62f4596296ea9e006cfe6a031a4ed9a5 /src | |
| parent | 54cba12f5b76f98f69de8c3702d841b94c6df90f (diff) | |
swaroop: new slightly-hacky way to make background image appear on stop.v2.13.67
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/controls.cc | 4 | ||||
| -rw-r--r-- | src/wx/film_viewer.cc | 29 | ||||
| -rw-r--r-- | src/wx/film_viewer.h | 1 |
3 files changed, 22 insertions, 12 deletions
diff --git a/src/wx/controls.cc b/src/wx/controls.cc index f7573c28b..cf805e8f7 100644 --- a/src/wx/controls.cc +++ b/src/wx/controls.cc @@ -221,10 +221,6 @@ Controls::add_clicked () if (!ok || !report_errors_from_last_job(this)) { return; } - if (_film->content().size() == 1) { - /* Put 1 frame of black at the start so when we seek to 0 we don't see anything */ - sel->set_position (DCPTime::from_frames(1, _film->video_frame_rate())); - } add_content_to_list (sel, _current_spl_view); setup_sensitivity (); } diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 6d9592b65..afa1940db 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -306,6 +306,22 @@ FilmViewer::timer () } } +bool +FilmViewer::maybe_draw_background_image (wxPaintDC& dc) +{ +#ifdef DCPOMATIC_VARIANT_SWAROOP + optional<boost::filesystem::path> bg = Config::instance()->player_background_image(); + if (bg) { + wxImage image (std_to_wx(bg->string())); + wxBitmap bitmap (image); + dc.DrawBitmap (bitmap, max(0, (_panel_size.width - image.GetSize().GetWidth()) / 2), max(0, (_panel_size.height - image.GetSize().GetHeight()) / 2)); + return true; + } +#endif + + return false; +} + void FilmViewer::paint_panel () { @@ -313,14 +329,11 @@ FilmViewer::paint_panel () if (!_frame || !_film || !_out_size.width || !_out_size.height || _out_size != _frame->size()) { dc.Clear (); -#ifdef DCPOMATIC_VARIANT_SWAROOP - optional<boost::filesystem::path> bg = Config::instance()->player_background_image(); - if (bg) { - wxImage image (std_to_wx(bg->string())); - wxBitmap bitmap (image); - dc.DrawBitmap (bitmap, max(0, (_panel_size.width - image.GetSize().GetWidth()) / 2), max(0, (_panel_size.height - image.GetSize().GetHeight()) / 2)); - } -#endif + maybe_draw_background_image (dc); + return; + } + + if (_video_position == DCPTime() && maybe_draw_background_image (dc)) { return; } diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index b0dbf56a3..6f5df7e49 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -108,6 +108,7 @@ private: void film_change (ChangeType, Film::Property); void recreate_butler (); void config_changed (Config::Property); + bool maybe_draw_background_image (wxPaintDC& dc); DCPTime time () const; DCPTime uncorrected_time () const; |
