Fix device view not showing anything on macOS.

* Fix line shader when running under the core profile and make version match those elsewhere.
* Make surface format version match the openGL functions we are using.
This commit is contained in:
Adrian Jeakins 2018-12-05 22:27:04 +00:00
parent a6315833d3
commit 38f80b1048
2 changed files with 11 additions and 6 deletions

View File

@ -42,6 +42,10 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
QSurfaceFormat fmt;
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);
#ifdef _WIN32
SetConsoleCtrlHandler((PHANDLER_ROUTINE)WinHandler, TRUE);

View File

@ -172,10 +172,10 @@ class LineShader
LineShader(QObject *parent) : parent_(parent), program_(nullptr) {}
static constexpr const char *vertexShaderSource_ =
"#version 110\n"
"attribute highp vec2 position;\n"
"attribute highp vec2 normal;\n"
"attribute highp float miter;\n"
"#version 330\n"
"in highp vec2 position;\n"
"in highp vec2 normal;\n"
"in highp float miter;\n"
"uniform highp float thickness;\n"
"uniform highp mat4 projection;\n"
"void main() {\n"
@ -183,10 +183,11 @@ class LineShader
" gl_Position = projection * vec4(p, 0.0, 1.0);\n"
"}\n";
static constexpr const char *fragmentShaderSource_ = "#version 110\n"
static constexpr const char *fragmentShaderSource_ = "#version 330\n"
"uniform lowp vec4 color;\n"
"out vec4 Out_Color;\n"
"void main() {\n"
" gl_FragColor = color;\n"
" Out_Color = color;\n"
"}\n";
// Must be called on initialization.