summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-02-16 16:43:09 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-02-16 18:30:39 +0000
commitae45b629b8a40318fa3e619116b0dd84c987f6ed (patch)
tree151de818a0b5ad0b617bc5bf7f4313960ce42451 /src
parent6956a3cf9b7121afa33d769d2fd1e9a9ff8b87cc (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.cpp17
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"));