diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-05-13 11:36:09 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-13 11:36:09 +0100 |
| commit | 5de2fd90b92829cea8ab297c6fce81c582332cb7 (patch) | |
| tree | 20e3f27fd3a254c21c0028d272e6844e660bc0b6 /src/wx/simple_video_view.cc | |
| parent | cb0a41355327f0308e5b56c21bff1d1ac004a9cb (diff) | |
Build fixes related to simple/GL view.
Diffstat (limited to 'src/wx/simple_video_view.cc')
| -rw-r--r-- | src/wx/simple_video_view.cc | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/wx/simple_video_view.cc b/src/wx/simple_video_view.cc index 0a0fce277..66af8f19f 100644 --- a/src/wx/simple_video_view.cc +++ b/src/wx/simple_video_view.cc @@ -20,12 +20,16 @@ #include "simple_video_view.h" #include "film_viewer.h" +#include "wx_util.h" #include "lib/image.h" #include <dcp/util.h> #include <wx/wx.h> #include <boost/bind.hpp> using std::max; +using std::string; +using boost::optional; +using namespace dcpomatic; SimpleVideoView::SimpleVideoView (FilmViewer* viewer, wxWindow* parent) : VideoView (viewer) @@ -49,17 +53,22 @@ SimpleVideoView::paint () _viewer->state_timer().set("paint-panel"); wxPaintDC dc (_panel); + dcp::Size const out_size = _viewer->out_size (); + wxSize const panel_size = _panel->GetSize (); + #ifdef DCPOMATIC_VARIANT_SWAROOP - if (viewer->background_image()) { + if (_viewer->background_image()) { dc.Clear (); - maybe_draw_background_image (dc); + 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.GetWidth() - image.GetSize().GetWidth()) / 2), max(0, (panel_size.GetHeight() - image.GetSize().GetHeight()) / 2)); + } return; } #endif - dcp::Size const out_size = _viewer->out_size (); - wxSize const panel_size = _panel->GetSize (); - if (!out_size.width || !out_size.height || !_image || out_size != _image->size()) { dc.Clear (); } else { @@ -69,16 +78,15 @@ SimpleVideoView::paint () dc.DrawBitmap (frame_bitmap, 0, max(0, (panel_size.GetHeight() - out_size.height) / 2)); #ifdef DCPOMATIC_VARIANT_SWAROOP - XXX DCPTime const period = DCPTime::from_seconds(Config::instance()->player_watermark_period() * 60); - int64_t n = _video_position.get() / period.get(); + int64_t n = _viewer->video_position().get() / period.get(); DCPTime from(n * period.get()); DCPTime to = from + DCPTime::from_seconds(Config::instance()->player_watermark_duration() / 1000.0); - if (from <= _video_position && _video_position <= to) { + if (from <= _viewer->video_position() && _viewer->video_position() <= to) { if (!_in_watermark) { _in_watermark = true; - _watermark_x = rand() % _panel_size.width; - _watermark_y = rand() % _panel_size.height; + _watermark_x = rand() % panel_size.GetWidth(); + _watermark_y = rand() % panel_size.GetHeight(); } dc.SetTextForeground(*wxWHITE); string wm = Config::instance()->player_watermark_theatre(); |
