diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-02-16 16:43:09 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-02-16 18:30:39 +0000 |
commit | ae45b629b8a40318fa3e619116b0dd84c987f6ed (patch) | |
tree | 151de818a0b5ad0b617bc5bf7f4313960ce42451 /src | |
parent | 6956a3cf9b7121afa33d769d2fd1e9a9ff8b87cc (diff) |
Fix default material shaders for non-core OpenGL
The non-ES shader is an 150 core one. To keep things working with
2.x only and non-core, use the es2 variant. This is in line with how
all the other built-in materials work.
Change-Id: I63c673506c8be0b9b89aa4470728c40b867306c6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/renderer.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp index 82aef3c0b..7ad3813ce 100644 --- a/src/render/backend/renderer.cpp +++ b/src/render/backend/renderer.cpp @@ -164,9 +164,20 @@ void Renderer::buildDefaultTechnique() m_defaultTechnique->setObjectName(QStringLiteral("default-technique")); QShaderProgram* defaultShader = new QShaderProgram; - const bool isES = m_graphicsContext->openGLContext()->isOpenGLES(); - const QString vertexFileName = isES ? QStringLiteral("qrc:/shaders/es2/diffuse.vert") : QStringLiteral("qrc:/shaders/diffuse.vert"); - const QString fragmentFileName = isES ? QStringLiteral("qrc:/shaders/es2/diffuse.frag") : QStringLiteral("qrc:/shaders/diffuse.frag"); + QString vertexFileName; + QString fragmentFileName; + if (m_graphicsContext->openGLContext()->isOpenGLES()) { + vertexFileName = QStringLiteral("qrc:/shaders/es2/diffuse.vert"); + fragmentFileName = QStringLiteral("qrc:/shaders/es2/diffuse.frag"); + } else { + if (m_graphicsContext->openGLContext()->format().profile() == QSurfaceFormat::CoreProfile) { + vertexFileName = QStringLiteral("qrc:/shaders/diffuse.vert"); + fragmentFileName = QStringLiteral("qrc:/shaders/diffuse.frag"); + } else { + vertexFileName = QStringLiteral("qrc:/shaders/es2/diffuse.vert"); + fragmentFileName = QStringLiteral("qrc:/shaders/es2/diffuse.frag"); + } + } defaultShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(vertexFileName))); defaultShader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(fragmentFileName))); defaultShader->setObjectName(QStringLiteral("DefaultShader")); |