/*
- Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2019 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
#include "system_information_dialog.h"
#include "wx_util.h"
+#include "gl_video_view.h"
+#include "film_viewer.h"
#ifdef DCPOMATIC_OSX
#include <OpenGL/glu.h>
#endif
using std::string;
+using std::weak_ptr;
+using std::shared_ptr;
-SystemInformationDialog::SystemInformationDialog (wxWindow* parent)
+SystemInformationDialog::SystemInformationDialog (wxWindow* parent, weak_ptr<FilmViewer> weak_viewer)
: TableDialog (parent, _("System information"), 2, 1, false)
{
- add (_("OpenGL version"), true);
- add (std_to_wx((char const *) glGetString(GL_VERSION)), false);
+ shared_ptr<FilmViewer> viewer = weak_viewer.lock ();
+ GLVideoView const * gl = viewer ? dynamic_cast<GLVideoView const *>(viewer->video_view()) : 0;
+
+ if (!gl) {
+ add (_("OpenGL version"), true);
+ add (_("unknown (OpenGL not enabled in DCP-o-matic)"), false);
+ } else {
+ add (_("OpenGL version"), true);
+ char const * v = (char const *) glGetString (GL_VERSION);
+ if (v) {
+ add (std_to_wx(v), false);
+ } else {
+ add (_("unknown"), false);
+ }
+ add (_("vsync"), true);
+ add (gl->vsync_enabled() ? _("enabled") : _("not enabled"), false);
+ }
layout ();
}