X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fsystem_information_dialog.cc;h=fbae2e010ec57f7cbe9dc455e399b1a2f87c3401;hb=f36991d7a91a4fd38c4159d51396b0f44422fd19;hp=ed93a4ab42f57e5bc7409a760b3679d4dca9af74;hpb=4f4561c4b5bb1e8a2fa8e673606d18ffa25aec6c;p=dcpomatic.git diff --git a/src/wx/system_information_dialog.cc b/src/wx/system_information_dialog.cc index ed93a4ab4..fbae2e010 100644 --- a/src/wx/system_information_dialog.cc +++ b/src/wx/system_information_dialog.cc @@ -39,29 +39,47 @@ using std::weak_ptr; using std::shared_ptr; -SystemInformationDialog::SystemInformationDialog (wxWindow* parent, weak_ptr weak_viewer) +#if wxCHECK_VERSION(3, 1, 0) + +SystemInformationDialog::SystemInformationDialog(wxWindow* parent, FilmViewer const& viewer) : TableDialog (parent, _("System information"), 2, 1, false) { - auto viewer = weak_viewer.lock (); - shared_ptr gl; - if (viewer) { - gl = std::dynamic_pointer_cast(viewer->video_view()); - } + auto 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 (_("OpenGL version"), true); - auto v = reinterpret_cast(glGetString(GL_VERSION)); - if (v) { - add (std_to_wx(v), false); - } else { - add (_("unknown"), false); - } + 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); + } + }; + + 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, FilmViewer const&) + : TableDialog (parent, _("System information"), 2, 1, false) +{ + add (_("OpenGL version"), true); + add (_("OpenGL renderer not supported by this DCP-o-matic version"), false); +} + +#endif