aboutsummaryrefslogtreecommitdiffstats
path: root/gui/application.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gui/application.cc')
-rw-r--r--gui/application.cc24
1 files changed, 21 insertions, 3 deletions
diff --git a/gui/application.cc b/gui/application.cc
index 7751e6f1..33a106bc 100644
--- a/gui/application.cc
+++ b/gui/application.cc
@@ -21,9 +21,11 @@
#include "application.h"
#include <QMessageBox>
+#include <QOpenGLContext>
#include <QSurfaceFormat>
#include <QTextStream>
#include <exception>
+#include "log.h"
NEXTPNR_NAMESPACE_BEGIN
@@ -37,12 +39,28 @@ BOOL WINAPI WinHandler(DWORD dwCtrlType)
}
#endif
-Application::Application(int &argc, char **argv) : QApplication(argc, argv)
+Application::Application(int &argc, char **argv, bool noantialiasing) : QApplication(argc, argv)
{
QSurfaceFormat fmt;
- fmt.setSamples(10);
+ if (!noantialiasing)
+ fmt.setSamples(10);
fmt.setProfile(QSurfaceFormat::CoreProfile);
+ // macOS is very picky about this version matching
+ // the version of openGL used in ImGuiRenderer
+ fmt.setMajorVersion(3);
+ fmt.setMinorVersion(2);
QSurfaceFormat::setDefaultFormat(fmt);
+
+ QOpenGLContext glContext;
+ fmt = glContext.format();
+ if (fmt.majorVersion() < 3) {
+ printf("Could not get OpenGL 3.0 context. Aborting.\n");
+ log_abort();
+ }
+ if (fmt.minorVersion() < 2) {
+ printf("Could not get OpenGL 3.2 context - trying anyway...\n ");
+ }
+
#ifdef _WIN32
SetConsoleCtrlHandler((PHANDLER_ROUTINE)WinHandler, TRUE);
#endif
@@ -53,7 +71,7 @@ bool Application::notify(QObject *receiver, QEvent *event)
bool retVal = true;
try {
retVal = QApplication::notify(receiver, event);
- } catch (assertion_failure ex) {
+ } catch (const assertion_failure &ex) {
QString msg;
QTextStream out(&msg);
out << ex.filename.c_str() << " at " << ex.line << "\n";