Incorporate GLView; requires putting Screen into dcpomatic namespace.
authorCarl Hetherington <cth@carlh.net>
Tue, 1 Jan 2019 22:48:06 +0000 (22:48 +0000)
committerCarl Hetherington <cth@carlh.net>
Mon, 6 May 2019 20:31:09 +0000 (21:31 +0100)
27 files changed:
src/lib/cinema.cc
src/lib/cinema.h
src/lib/film.h
src/lib/font.cc
src/lib/font.h
src/lib/player.h
src/lib/player_text.cc
src/lib/player_text.h
src/lib/reel_writer.h
src/lib/render_text.h
src/lib/screen.cc
src/lib/screen.h
src/lib/screen_kdm.h
src/lib/send_kdm_email_job.h
src/lib/text_content.h
src/lib/writer.h
src/tools/dcpomatic.cc
src/tools/dcpomatic_kdm.cc
src/tools/dcpomatic_kdm_cli.cc
src/tools/dcpomatic_player.cc
src/wx/film_viewer.cc
src/wx/film_viewer.h
src/wx/fonts_dialog.cc
src/wx/kdm_dialog.h
src/wx/screens_panel.cc
src/wx/screens_panel.h
src/wx/wscript

index 61862fa6dd9554f369aa6d7733d66acf5ef55eaf..1d43d27b46fb36f8a6e06e92588590e5e5be030a 100644 (file)
@@ -31,6 +31,7 @@ using std::list;
 using std::string;
 using boost::shared_ptr;
 using dcp::raw_convert;
+using namespace dcpomatic;
 
 Cinema::Cinema (cxml::ConstNodePtr node)
        : name (node->string_child ("Name"))
index 6a3d89845dbc11b747a694338ab34e5f6688b6a5..86245953b85b830d4031b3c5bbec0025a598ef2e 100644 (file)
@@ -29,7 +29,9 @@ namespace xmlpp {
        class Element;
 }
 
-class Screen;
+namespace dcpomatic {
+       class Screen;
+}
 
 /** @class Cinema
  *  @brief A description of a Cinema for KDM generation.
@@ -54,8 +56,8 @@ public:
 
        void as_xml (xmlpp::Element *) const;
 
-       void add_screen (boost::shared_ptr<Screen>);
-       void remove_screen (boost::shared_ptr<Screen>);
+       void add_screen (boost::shared_ptr<dcpomatic::Screen>);
+       void remove_screen (boost::shared_ptr<dcpomatic::Screen>);
 
        void set_utc_offset_hour (int h);
        void set_utc_offset_minute (int m);
@@ -72,12 +74,12 @@ public:
                return _utc_offset_minute;
        }
 
-       std::list<boost::shared_ptr<Screen> > screens () const {
+       std::list<boost::shared_ptr<dcpomatic::Screen> > screens () const {
                return _screens;
        }
 
 private:
-       std::list<boost::shared_ptr<Screen> > _screens;
+       std::list<boost::shared_ptr<dcpomatic::Screen> > _screens;
        /** Offset such that the equivalent time in UTC can be determined
            by subtracting the offset from the local time.
        */
index c4f3b31544bcbb072be261a5117e654485626f36..87da8e9d94a80cebf3c75a69227ff547d443fb48 100644 (file)
@@ -45,12 +45,15 @@ namespace xmlpp {
        class Document;
 }
 
+namespace dcpomatic {
+       class Screen;
+}
+
 class DCPContentType;
 class Log;
 class Content;
 class Playlist;
 class AudioContent;
-class Screen;
 class AudioProcessor;
 class AudioMapping;
 class Ratio;
@@ -140,7 +143,7 @@ public:
                ) const;
 
        std::list<ScreenKDM> make_kdms (
-               std::list<boost::shared_ptr<Screen> > screens,
+               std::list<boost::shared_ptr<dcpomatic::Screen> > screens,
                boost::filesystem::path cpl_file,
                boost::posix_time::ptime from,
                boost::posix_time::ptime until,
index 333539aa4b7cbc6441dbc2e5c75dae4d0f7752a3..019c9ab076fe8f83e362c8030f2542b4beceb1df 100644 (file)
@@ -24,6 +24,7 @@
 #include <boost/foreach.hpp>
 
 using std::string;
+using namespace dcpomatic;
 
 Font::Font (cxml::NodePtr node)
        : _id (node->string_child ("Id"))
@@ -47,7 +48,7 @@ Font::as_xml (xmlpp::Node* node)
 
 
 bool
-operator== (Font const & a, Font const & b)
+dcpomatic::operator== (Font const & a, Font const & b)
 {
        if (a.id() != b.id()) {
                return false;
@@ -57,7 +58,7 @@ operator== (Font const & a, Font const & b)
 }
 
 bool
-operator!= (Font const & a, Font const & b)
+dcpomatic::operator!= (Font const & a, Font const & b)
 {
        return !(a == b);
 }
index b2ae86daff328d208a1e5c59d4f6b2ae83fe4b2f..5876bf8a46052cbbbd75ad2adb941a581b2c7029 100644 (file)
@@ -27,6 +27,8 @@
 #include <boost/filesystem.hpp>
 #include <string>
 
+namespace dcpomatic {
+
 class Font
 {
 public:
@@ -61,4 +63,6 @@ private:
 bool operator!= (Font const & a, Font const & b);
 bool operator== (Font const & a, Font const & b);
 
+}
+
 #endif
index 381aa80b71c113ab3b615bf5151a10487b9d8596..9f3dc7e71c9c2cea77d0705c2c2fa5913bbdaf5f 100644 (file)
@@ -41,9 +41,12 @@ namespace dcp {
        class ReelAsset;
 }
 
+namespace dcpomatic {
+       class Font;
+}
+
 class PlayerVideo;
 class Playlist;
-class Font;
 class AudioBuffers;
 class ReferencedReelAsset;
 class Shuffler;
@@ -70,7 +73,7 @@ public:
        bool pass ();
        void seek (dcpomatic::DCPTime time, bool accurate);
 
-       std::list<boost::shared_ptr<Font> > get_subtitle_fonts ();
+       std::list<boost::shared_ptr<dcpomatic::Font> > get_subtitle_fonts ();
        std::list<ReferencedReelAsset> get_reel_assets ();
        dcp::Size video_container_size () const {
                boost::mutex::scoped_lock lm (_mutex);
index 16e89b0f10681d756724dd9e0cd49cf8f57aaff0..d31c7d02467b0507e83fc93e1485a5abcda4fa61 100644 (file)
@@ -24,6 +24,7 @@
 
 using std::list;
 using boost::shared_ptr;
+using namespace dcpomatic;
 
 void
 PlayerText::add_fonts (list<shared_ptr<Font> > fonts_)
index 3f5066314cc256ae198a70290660134dce14ca71..fb1d846d8217d2c4f85af36c7b81270deff45db4 100644 (file)
 #include "dcpomatic_time.h"
 #include "string_text.h"
 
-class Font;
+namespace dcpomatic {
+       class Font;
+}
 
 /** A set of text (subtitle/CCAP) which span the same time period */
 class PlayerText
 {
 public:
-       void add_fonts (std::list<boost::shared_ptr<Font> > fonts_);
-       std::list<boost::shared_ptr<Font> > fonts;
+       void add_fonts (std::list<boost::shared_ptr<dcpomatic::Font> > fonts_);
+       std::list<boost::shared_ptr<dcpomatic::Font> > fonts;
 
        /** BitmapTexts, with their rectangles transformed as specified by their content */
        std::list<BitmapText> bitmap;
index 9ea576d7ab371dd01ba659cd519c2f1cf512030b..fff2e0b9ea7568d646b4ef0b18b86e5104757799 100644 (file)
 #include <dcp/picture_asset_writer.h>
 #include <boost/shared_ptr.hpp>
 
+namespace dcpomatic {
+       class Font;
+}
+
 class Film;
 class Job;
-class Font;
 class AudioBuffers;
 
 namespace dcp {
@@ -64,7 +67,7 @@ public:
        void write (PlayerText text, TextType type, boost::optional<DCPTextTrack> track, dcpomatic::DCPTimePeriod period);
 
        void finish ();
-       boost::shared_ptr<dcp::Reel> create_reel (std::list<ReferencedReelAsset> const & refs, std::list<boost::shared_ptr<Font> > const & fonts);
+       boost::shared_ptr<dcp::Reel> create_reel (std::list<ReferencedReelAsset> const & refs, std::list<boost::shared_ptr<dcpomatic::Font> > const & fonts);
        void calculate_digests (boost::function<void (float)> set_progress);
 
        Frame start () const;
index f235fb45971d69241c1abea7212b31feb095475d..7187ca30b5c0c28ea2a9d9ff5ddcbd1fc43dde3a 100644 (file)
 #include "string_text.h"
 #include <dcp/util.h>
 
-class Font;
+namespace dcpomatic {
+       class Font;
+}
 
 std::string marked_up (std::list<StringText> subtitles, int target_height, float fade_factor);
 std::list<PositionImage> render_text (
-       std::list<StringText>, std::list<boost::shared_ptr<Font> > fonts, dcp::Size, dcpomatic::DCPTime, int
+       std::list<StringText>, std::list<boost::shared_ptr<dcpomatic::Font> > fonts, dcp::Size, dcpomatic::DCPTime, int
        );
index 5ec00f9c152ed7e04f56fe000f0dcfae4ef2b211..fe62a5e6cdd9841394e03760601aea466f80065c 100644 (file)
@@ -25,6 +25,7 @@
 
 using std::string;
 using std::vector;
+using namespace dcpomatic;
 
 Screen::Screen (cxml::ConstNodePtr node)
        : name (node->string_child("Name"))
index eff2e5ffe71c96b4ca390cf634673f83347a786c..829df23739629e35bba3423c23e0ed055b5d56cb 100644 (file)
@@ -46,6 +46,8 @@ private:
        boost::optional<std::string> _thumbprint;
 };
 
+namespace dcpomatic {
+
 /** @class Screen
  *  @brief A representation of a Screen for KDM generation.
  *
@@ -74,4 +76,6 @@ public:
        std::vector<TrustedDevice> trusted_devices;
 };
 
+}
+
 #endif
index 9ab73b8515ac69a3c3d23b54c5250bb9da2b6708..4184b07b0e353a3a838dc9139b4361ebe7ec235e 100644 (file)
 #include <dcp/name_format.h>
 #include <boost/shared_ptr.hpp>
 
-class Screen;
+namespace dcpomatic {
+       class Screen;
+}
 
 /** Simple class to collect a screen and an encrypted KDM */
 class ScreenKDM
 {
 public:
-       ScreenKDM (boost::shared_ptr<Screen> s, dcp::EncryptedKDM k)
+       ScreenKDM (boost::shared_ptr<dcpomatic::Screen> s, dcp::EncryptedKDM k)
                : screen (s)
                , kdm (k)
        {}
@@ -42,7 +44,7 @@ public:
                boost::function<bool (boost::filesystem::path)> confirm_overwrite
                );
 
-       boost::shared_ptr<Screen> screen;
+       boost::shared_ptr<dcpomatic::Screen> screen;
        dcp::EncryptedKDM kdm;
 };
 
index b4e007e3ba51cac9d576c115b90e4bac20245070..d145ea8fe717c1145eb999d4996a9754b48572f7 100644 (file)
 #include <dcp/name_format.h>
 #include <boost/filesystem.hpp>
 
-class Screen;
+namespace dcpomatic {
+       class Screen;
+}
+
 class CinemaKDMs;
 class Log;
 
index c7d1b590d101cbdf5e5acb4c08a822c3c6a0c231..20e80a2c3cc2f7a7cb994916f0ad6480c74557ac 100644 (file)
@@ -27,7 +27,9 @@
 #include <dcp/types.h>
 #include <boost/signals2.hpp>
 
-class Font;
+namespace dcpomatic {
+       class Font;
+}
 
 class TextContentProperty
 {
@@ -67,7 +69,7 @@ public:
        std::string identifier () const;
        void take_settings_from (boost::shared_ptr<const TextContent> c);
 
-       void add_font (boost::shared_ptr<Font> font);
+       void add_font (boost::shared_ptr<dcpomatic::Font> font);
 
        void set_use (bool);
        void set_burn (bool);
@@ -122,7 +124,7 @@ public:
                return _y_scale;
        }
 
-       std::list<boost::shared_ptr<Font> > fonts () const {
+       std::list<boost::shared_ptr<dcpomatic::Font> > fonts () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _fonts;
        }
@@ -211,7 +213,7 @@ private:
        double _x_scale;
        /** y scale factor to apply to subtitles */
        double _y_scale;
-       std::list<boost::shared_ptr<Font> > _fonts;
+       std::list<boost::shared_ptr<dcpomatic::Font> > _fonts;
        boost::optional<dcp::Colour> _colour;
        boost::optional<dcp::Effect> _effect;
        boost::optional<dcp::Colour> _effect_colour;
index ce1d04cedb8c239087bd444c05daa4f859f20b14..9d2089d9fffe9c72d9ceaa79cae30f08ba3df190 100644 (file)
@@ -36,10 +36,13 @@ namespace dcp {
        class Data;
 }
 
+namespace dcpomatic {
+       class Font;
+}
+
 class Film;
 class AudioBuffers;
 class Job;
-class Font;
 class ReferencedReelAsset;
 class ReelWriter;
 
@@ -106,7 +109,7 @@ public:
        void repeat (Frame, Eyes);
        void write (boost::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
        void write (PlayerText text, TextType type, boost::optional<DCPTextTrack>, dcpomatic::DCPTimePeriod period);
-       void write (std::list<boost::shared_ptr<Font> > fonts);
+       void write (std::list<boost::shared_ptr<dcpomatic::Font> > fonts);
        void write (ReferencedReelAsset asset);
        void finish ();
 
@@ -163,5 +166,5 @@ private:
 
        std::list<ReferencedReelAsset> _reel_assets;
 
-       std::list<boost::shared_ptr<Font> > _fonts;
+       std::list<boost::shared_ptr<dcpomatic::Font> > _fonts;
 };
index 508390a38986dce5161aaab445ddb925c26df55c..f6427e68ed5ca1fb30ff184690a2faff1f5efd3c 100644 (file)
@@ -341,7 +341,7 @@ public:
                JobManagerView* job_manager_view = new JobManagerView (overall_panel, false);
 
                wxBoxSizer* right_sizer = new wxBoxSizer (wxVERTICAL);
-               right_sizer->Add (_film_viewer->panel(), 2, wxEXPAND | wxALL, 6);
+               right_sizer->Add (_film_viewer->window(), 2, wxEXPAND | wxALL, 6);
                right_sizer->Add (_controls, 0, wxEXPAND | wxALL, 6);
                right_sizer->Add (job_manager_view, 1, wxEXPAND | wxALL, 6);
 
index 8ee4c72d40f27c2c1670b178bc63b27eac42227b..60bb54f5914c3b9c0e1a876b0420cd71b4089e1b 100644 (file)
@@ -74,6 +74,7 @@ using boost::bind;
 using boost::optional;
 using boost::ref;
 using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
 
 enum {
        ID_help_report_a_problem = 1,
index 21f9ec7340d198ac70dd584106cadbd4ebfc1bce..79912a36a8d33fb46814e4b730b9c1b3d2ae2391 100644 (file)
@@ -47,6 +47,7 @@ using boost::shared_ptr;
 using boost::optional;
 using boost::bind;
 using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
 
 static void
 help ()
index 3ba63379bbbecb820c3ad30fd82aeff1fa4fff13..fd2e08021c0958ac401aa9ac9cf3c433a93b081c 100644 (file)
@@ -251,7 +251,7 @@ public:
        {
                wxSizer* main_sizer = new wxBoxSizer (wxVERTICAL);
                if (mode != Config::PLAYER_MODE_DUAL) {
-                       main_sizer->Add (_viewer->panel(), 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+                       main_sizer->Add (_viewer->window(), 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
                }
                main_sizer->Add (_controls, mode == Config::PLAYER_MODE_DUAL ? 1 : 0, wxEXPAND | wxALL, 6);
                main_sizer->Add (_info, 0, wxEXPAND | wxALL, 6);
@@ -715,7 +715,7 @@ private:
                        _dual_screen = new wxFrame (this, wxID_ANY, wxT(""));
                        _dual_screen->SetBackgroundColour (wxColour(0, 0, 0));
                        _dual_screen->ShowFullScreen (true);
-                       _viewer->panel()->Reparent (_dual_screen);
+                       _viewer->window()->Reparent (_dual_screen);
                        _dual_screen->Show ();
                        if (wxDisplay::GetCount() > 1) {
                                switch (Config::instance()->image_display()) {
@@ -732,7 +732,7 @@ private:
                        }
                } else {
                        if (_dual_screen) {
-                               _viewer->panel()->Reparent (_overall_panel);
+                               _viewer->window()->Reparent (_overall_panel);
                                _dual_screen->Destroy ();
                                _dual_screen = 0;
                        }
index 48fbf9fdce1eba2062a2ed72b67fc5d91f6d9ccc..5777b9771acd76bcdf8d8974376ed08a976dd4e7 100644 (file)
@@ -77,7 +77,7 @@ rtaudio_callback (void* out, void *, unsigned int frames, double, RtAudioStreamS
 }
 
 FilmViewer::FilmViewer (wxWindow* p)
-       : _panel (new wxPanel (p))
+       : _gl_view (new GLView (p))
        , _coalesce_player_changes (false)
        , _audio (DCPOMATIC_RTAUDIO_API)
        , _audio_channels (0)
@@ -96,15 +96,6 @@ FilmViewer::FilmViewer (wxWindow* p)
        , _state_timer ("viewer")
        , _gets (0)
 {
-#ifndef __WXOSX__
-       _panel->SetDoubleBuffered (true);
-#endif
-
-       _panel->SetBackgroundStyle (wxBG_STYLE_PAINT);
-       _panel->SetBackgroundColour (*wxBLACK);
-
-       _panel->Bind (wxEVT_PAINT, boost::bind (&FilmViewer::paint_panel, this));
-       _panel->Bind (wxEVT_SIZE,  boost::bind (&FilmViewer::panel_sized, this, _1));
        _timer.Bind  (wxEVT_TIMER, boost::bind (&FilmViewer::timer, this));
 
        set_film (shared_ptr<Film> ());
@@ -147,8 +138,8 @@ FilmViewer::set_film (shared_ptr<Film> film)
                if (_dcp_decode_reduction) {
                        _player->set_dcp_decode_reduction (_dcp_decode_reduction);
                }
-       } catch (bad_alloc &) {
-               error_dialog (_panel, _("There is not enough free memory to do that."));
+       } catch (bad_alloc) {
+               error_dialog (_gl_view, _("There is not enough free memory to do that."));
                _film.reset ();
                return;
        }
@@ -214,10 +205,7 @@ FilmViewer::recreate_butler ()
 void
 FilmViewer::refresh_panel ()
 {
-       _state_timer.set ("refresh-panel");
-       _panel->Refresh ();
-       _panel->Update ();
-       _state_timer.unset ();
+       /* XXX */
 }
 
 void
@@ -326,6 +314,8 @@ bool
 #ifdef DCPOMATIC_VARIANT_SWAROOP
 FilmViewer::maybe_draw_background_image (wxPaintDC& dc)
 {
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       XXX
        optional<boost::filesystem::path> bg = Config::instance()->player_background_image();
        if (bg) {
                wxImage image (std_to_wx(bg->string()));
@@ -343,6 +333,8 @@ FilmViewer::maybe_draw_background_image (wxPaintDC &)
 }
 #endif
 
+#if 0
+XXX
 void
 FilmViewer::paint_panel ()
 {
@@ -417,6 +409,7 @@ FilmViewer::paint_panel ()
 
        _state_timer.unset ();
 }
+#endif
 
 void
 FilmViewer::set_outline_content (bool o)
@@ -432,6 +425,8 @@ FilmViewer::set_eyes (Eyes e)
        slow_refresh ();
 }
 
+#if 0
+XXX
 void
 FilmViewer::panel_sized (wxSizeEvent& ev)
 {
@@ -444,6 +439,7 @@ FilmViewer::panel_sized (wxSizeEvent& ev)
        }
        PositionChanged ();
 }
+#endif
 
 void
 FilmViewer::calculate_sizes ()
@@ -454,16 +450,16 @@ FilmViewer::calculate_sizes ()
 
        Ratio const * container = _film->container ();
 
-       float const panel_ratio = _panel_size.ratio ();
+       float const view_ratio = float(_gl_view->GetSize().x) / _gl_view->GetSize().y;
        float const film_ratio = container ? container->ratio () : 1.78;
 
-       if (panel_ratio < film_ratio) {
+       if (view_ratio < film_ratio) {
                /* panel is less widscreen than the film; clamp width */
-               _out_size.width = _panel_size.width;
+               _out_size.width = _gl_view->GetSize().x;
                _out_size.height = lrintf (_out_size.width / film_ratio);
        } else {
                /* panel is more widescreen than the film; clamp height */
-               _out_size.height = _panel_size.height;
+               _out_size.height = _gl_view->GetSize().y;
                _out_size.width = lrintf (_out_size.height * film_ratio);
        }
 
@@ -679,7 +675,7 @@ FilmViewer::config_changed (Config::Property p)
                } catch (RtAudioError& e) {
 #endif
                        error_dialog (
-                               _panel,
+                               _gl_view,
                                _("Could not set up audio output.  There will be no audio during the preview."), std_to_wx(e.what())
                                );
                }
index 0222d31c95bf487e9dd2375162b5c5a199334c42..b96fba34c34f0071e6e5d5492f0ecf3635e592ad 100644 (file)
@@ -22,6 +22,7 @@
  *  @brief FilmViewer class.
  */
 
+#include "gl_view.h"
 #include "lib/film.h"
 #include "lib/config.h"
 #include "lib/player_text.h"
@@ -47,9 +48,9 @@ public:
        FilmViewer (wxWindow *);
        ~FilmViewer ();
 
-       /** @return the panel showing the film's video */
-       wxPanel* panel () const {
-               return _panel;
+       /** @return the window showing the film's video */
+       wxWindow* window () const {
+               return _gl_view;
        }
 
        void show_closed_captions ();
@@ -114,8 +115,8 @@ public:
        boost::signals2::signal<bool ()> PlaybackPermitted;
 
 private:
-       void paint_panel ();
-       void panel_sized (wxSizeEvent &);
+//     void paint_panel ();
+//     void panel_sized (wxSizeEvent &);
        void timer ();
        void calculate_sizes ();
        void player_change (ChangeType type, int, bool);
@@ -136,8 +137,7 @@ private:
        boost::shared_ptr<Film> _film;
        boost::shared_ptr<Player> _player;
 
-       /** The area that we put our image in */
-       wxPanel* _panel;
+       GLView* _gl_view;
        wxTimer _timer;
        bool _coalesce_player_changes;
        std::list<int> _pending_player_changes;
@@ -150,8 +150,6 @@ private:
 
        /** Size of our output (including padding if we have any) */
        dcp::Size _out_size;
-       /** Size of the panel that we have available */
-       dcp::Size _panel_size;
 
        RtAudio _audio;
        int _audio_channels;
index 88fcb2dce5de2f65d9d7a9d2d7c05380bf921aed..66f8ab0e486dfab24dde0c3f6c36c1aa49933ed9 100644 (file)
@@ -33,6 +33,7 @@ using std::list;
 using std::string;
 using std::cout;
 using boost::shared_ptr;
+using namespace dcpomatic;
 
 FontsDialog::FontsDialog (wxWindow* parent, shared_ptr<Content> content, shared_ptr<TextContent> caption)
        : wxDialog (parent, wxID_ANY, _("Fonts"))
index 099db951beede0d9fde2b4d3622bdc60cb8398f5..a240ec1b6bb85040cf854b62cf9fd05a99546e65 100644 (file)
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <map>
 
+namespace dcpomatic {
+       class Screen;
+}
+
 class Cinema;
-class Screen;
 class Film;
 class ScreensPanel;
 class KDMTimingPanel;
index e89173eb27dd82f43f209e43ecffb2643187b85b..7e012b522e3212fd1ccb0198b93e9e1001c743cb 100644 (file)
@@ -36,6 +36,7 @@ using std::string;
 using std::make_pair;
 using boost::shared_ptr;
 using boost::optional;
+using namespace dcpomatic;
 
 ScreensPanel::ScreensPanel (wxWindow* parent)
        : wxPanel (parent, wxID_ANY)
index 3e9accde556b91f1b69c72ef04cb09acb21577e7..59746f1018478eed5162b5421579e35801baf22e 100644 (file)
 #include <map>
 
 class Cinema;
-class Screen;
+
+namespace dcpomatic {
+       class Screen;
+}
 
 class ScreensPanel : public wxPanel
 {
@@ -35,7 +38,7 @@ public:
        explicit ScreensPanel (wxWindow* parent);
        ~ScreensPanel ();
 
-       std::list<boost::shared_ptr<Screen> > screens () const;
+       std::list<boost::shared_ptr<dcpomatic::Screen> > screens () const;
        void setup_sensitivity ();
 
        boost::signals2::signal<void ()> ScreensChanged;
@@ -43,7 +46,7 @@ public:
 private:
        void add_cinemas ();
        void add_cinema (boost::shared_ptr<Cinema>);
-       boost::optional<wxTreeItemId> add_screen (boost::shared_ptr<Cinema>, boost::shared_ptr<Screen>);
+       boost::optional<wxTreeItemId> add_screen (boost::shared_ptr<Cinema>, boost::shared_ptr<dcpomatic::Screen>);
        void add_cinema_clicked ();
        void edit_cinema_clicked ();
        void remove_cinema_clicked ();
@@ -65,7 +68,7 @@ private:
        wxTreeItemId _root;
 
        typedef std::map<wxTreeItemId, boost::shared_ptr<Cinema> > CinemaMap;
-       typedef std::map<wxTreeItemId, boost::shared_ptr<Screen> > ScreenMap;
+       typedef std::map<wxTreeItemId, boost::shared_ptr<dcpomatic::Screen> > ScreenMap;
 
        CinemaMap _cinemas;
        ScreenMap _screens;
index 193093e142220715c085ac587a825fdab24461c3..f3849c53bde20ab22f86b56431b18711fd5241fc 100644 (file)
@@ -70,6 +70,7 @@ sources = """
           full_config_dialog.cc
           gain_calculator_dialog.cc
           gdc_certificate_panel.cc
+          gl_view.cc
           hints_dialog.cc
           html_dialog.cc
           initial_setup_dialog.cc
@@ -156,7 +157,7 @@ def configure(conf):
         conf.check_cfg(msg='Checking for wxWidgets using gtk2-unicode-3.0',
                        package='',
                        path=wx_config,
-                       args='--cppflags --cxxflags --libs %s' % wx_libs,
+                       args='--cppflags --cxxflags --libs %s --gl-libs' % wx_libs,
                        uselib_store='WXWIDGETS',
                        mandatory=True)
     except:
@@ -165,7 +166,7 @@ def configure(conf):
             conf.check_cfg(msg='Checking for wxWidgets using wx-config-3.0-gtk2',
                            package='',
                            path=wx_config,
-                           args='--cppflags --cxxflags --libs %s' % wx_libs,
+                           args='--cppflags --cxxflags --libs %s --gl-libs' % wx_libs,
                            uselib_store='WXWIDGETS',
                            mandatory=True)
         except:
@@ -173,7 +174,7 @@ def configure(conf):
             conf.check_cfg(msg='Checking for wxWidgets using wx-config',
                            package='',
                            path=wx_config,
-                           args='--cppflags --cxxflags --libs %s' % wx_libs,
+                           args='--cppflags --cxxflags --libs %s --gl-libs' % wx_libs,
                            uselib_store='WXWIDGETS',
                            mandatory=True)