*/
+
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
+#include <wx/glcanvas.h>
+#include <wx/wx.h>
+LIBDCP_ENABLE_WARNINGS
+
+#undef None
+#undef Success
+#undef Status
+
+
+/* The OpenGL API in wxWidgets 3.0.x is sufficiently different to make it awkward to support,
+ * and I think it may even have things missing that we require (e.g. the attributes parameter
+ * to wxGLContext). Hence we only support the GLVideoView on wxWidgets 3.1.0 and higher
+ * (which only excludes the old macOS builds, since wxWidgets 3.1.x does not support macOS
+ * 10.9 or earlier).
+ */
+#if wxCHECK_VERSION(3,1,0)
+
+
#include "video_view.h"
#include "lib/signaller.h"
#include "lib/position.h"
-#include "lib/warnings.h"
-DCPOMATIC_DISABLE_WARNINGS
-#include <wx/glcanvas.h>
-#include <wx/wx.h>
-DCPOMATIC_ENABLE_WARNINGS
#include <dcp/util.h>
#include <boost/atomic.hpp>
#include <boost/thread.hpp>
#include <boost/thread/condition.hpp>
-#undef None
-#undef Success
-#undef Status
class Texture
private:
void set_image (std::shared_ptr<const PlayerVideo> pv);
void set_image_and_draw ();
- void draw (Position<int> inter_position, dcp::Size inter_size);
+ void draw ();
void thread ();
void thread_playing ();
void request_one_shot ();
void ensure_context ();
void size_changed (wxSizeEvent const &);
void setup_shaders ();
- void set_border_colour (GLuint program);
+ void set_outline_content_colour (GLuint program);
+ void set_crop_guess_colour (GLuint program);
wxGLCanvas* _canvas;
wxGLContext* _context;
Last<Position<int>> _last_inter_position;
Last<dcp::Size> _last_inter_size;
Last<dcp::Size> _last_out_size;
+ Last<boost::optional<dcpomatic::Rect<float>>> _last_crop_guess;
boost::atomic<wxSize> _canvas_size;
+ boost::atomic<bool> _rec2020;
std::unique_ptr<Texture> _video_texture;
std::unique_ptr<Texture> _subtitle_texture;
bool _have_subtitle_to_render = false;
std::map<GLenum, std::string> _information;
};
+
+#endif