X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fsystem_information_dialog.cc;h=addb89da4c7ab7d64882905b830b1f6651a23312;hb=e72a69ac2ebf24df05ba4b6de65bfa338a58b0ec;hp=0e19162027570b3222e64af29c12662c34b9c840;hpb=d1e19450e051d70531a6c1f0973bfd6cfd64319b;p=dcpomatic.git diff --git a/src/wx/system_information_dialog.cc b/src/wx/system_information_dialog.cc index 0e1916202..addb89da4 100644 --- a/src/wx/system_information_dialog.cc +++ b/src/wx/system_information_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2019 Carl Hetherington + Copyright (C) 2019-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,10 +18,12 @@ */ + +#include "film_viewer.h" +#include "gl_video_view.h" #include "system_information_dialog.h" #include "wx_util.h" -#include "gl_video_view.h" -#include "film_viewer.h" + #ifdef DCPOMATIC_OSX #include @@ -31,35 +33,58 @@ #include #endif + using std::string; -using boost::weak_ptr; -using boost::shared_ptr; +using std::weak_ptr; +using std::shared_ptr; + + +#if wxCHECK_VERSION(3, 1, 0) SystemInformationDialog::SystemInformationDialog (wxWindow* parent, weak_ptr weak_viewer) : TableDialog (parent, _("System information"), 2, 1, false) { - add (_("OpenGL version"), true); - char const * v = (char const *) glGetString (GL_VERSION); - if (v) { - add (std_to_wx(v), false); - } else { - add (_("unknown (OpenGL not enabled in DCP-o-matic)"), false); + auto viewer = weak_viewer.lock (); + shared_ptr gl; + if (viewer) { + gl = std::dynamic_pointer_cast(viewer->video_view()); } + if (!gl) { + add (_("OpenGL version"), true); + add (_("unknown (OpenGL not enabled in DCP-o-matic)"), false); + } else { - add (_("vsync"), true); - shared_ptr viewer = weak_viewer.lock (); + auto information = gl->information(); + auto add_string = [this, &information](GLenum name, wxString label) { + add (label, true); + auto i = information.find(name); + if (i != information.end()) { + add (std_to_wx(i->second), false); + } else { + add (_("unknown"), false); + } + }; - if (!viewer) { - add (_("unknown"), false); - } else { - GLVideoView* gl = dynamic_cast(viewer->panel()); - if (!gl) { - add (_("unknown"), false); - } else { - add (gl->vsync_enabled() ? _("enabled") : _("not enabled"), false); - } + add_string (GL_VENDOR, _("Vendor")); + add_string (GL_RENDERER, _("Renderer")); + add_string (GL_VERSION, _("Version")); + add_string (GL_SHADING_LANGUAGE_VERSION, _("Shading language version")); + + add (_("vsync"), true); + add (gl->vsync_enabled() ? _("enabled") : _("not enabled"), false); } layout (); } + +#else + +SystemInformationDialog::SystemInformationDialog (wxWindow* parent, weak_ptr) + : TableDialog (parent, _("System information"), 2, 1, false) +{ + add (_("OpenGL version"), true); + add (_("OpenGL renderer not supported by this DCP-o-matic version"), false); +} + +#endif